1 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
3 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
6 2010-05-28 Richard Guenther <rguenther@suse.de>
9 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
10 Stream fixed-point constants mode.
11 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
13 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
14 Stream fixed-point constants mode.
15 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
18 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
20 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
21 only place it was called from.
22 (number_of_latch_executions): Do not return chrec_dont_know when the
23 may_be_zero is a runtime condition: instead, return a COND_EXPR
24 including the may_be_zero condition.
25 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
30 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
32 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
33 generate COND_EXPRs for degenerate_phi_result.
35 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
38 * tree-if-conv.c (if_convertible_loop_p): Check the
39 if-convertibility of phi nodes in non predicated BBs.
41 2010-05-28 Joseph Myers <joseph@codesourcery.com>
43 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
45 2010-05-28 Joseph Myers <joseph@codesourcery.com>
48 * gcc.c (inform, warning, inform): New functions.
49 (fatal_ice): Rename to internal_error; change cmsgid parameter to
50 gmsgid. All callers changed.
51 (notice): Rename to fnotice; add parameter fp. All callers
53 (fatal_error): Rename to fatal_signal. All users changed.
54 (fatal): Rename to fatal_error; change cmsgid parameter to
55 gmsgid. All callers changed.
56 (process_command): Use warning instead of error for warnings.
57 (end_going_arg): Don't use _() around argument of error.
58 (do_spec_1): Use inform for message from %n specs. Use warning
59 instead of error for warnings.
60 (main): Use inform for comparison messages. Use warning for
61 message about unused linker input.
62 (error): Increment error_count. Print "error: ".
63 * gcc.h (fatal): Change to fatal_error.
65 * config/darwin-driver.c (darwin_default_min_version): Use warning
66 instead of fprintf for warnings.
67 * cppspec.c (lang_specific_driver): Use fatal_error instead of
70 2010-05-28 Julian Brown <julian@codesourcery.com>
72 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
73 (*thumb2_addsi3_compare0_scratch): New.
74 * config/arm/constraints.md (Pv): New.
75 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
77 (*addsi3_compare0_scratch): Likewise.
79 2010-05-28 Jan Hubicka <jh@suse.cz>
81 * ipa-reference.c (add_static_var): Remove redundant all_module_statics check.
82 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis only
85 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
87 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
89 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
92 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
93 (OPTION_GLIBC): Define.
95 2010-05-28 Jakub Jelinek <jakub@redhat.com>
98 * dwarf2out.c (double_int_type_size_in_bits): New function.
99 (round_up_to_align): Change first argument and return value to
101 (field_byte_offset): Work internally on double_ints.
104 * builtins.c (expand_movstr): Use a temporary pseudo instead
105 of target even when target is not NULL and not const0_rtx, but
106 fails movstr predicate.
107 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
109 2010-05-28 Joseph Myers <joseph@codesourcery.com>
111 * final.c (rest_of_clean_state): Use %m in errors instead of
113 * gengtype.c (read_input_list, close_output_files): Use xstrerror
115 * toplev.c (process_options): Use %m in errors instead of strerror
117 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
120 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
122 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
123 (ix86_canonical_va_list_type): Make static. Add declaration.
124 (ix86_enum_va_list): Make static. Reindent.
125 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
126 (ix86_canonical_va_list_type): Ditto.
127 (ix86_enum_va_list): Ditto.
129 2010-05-28 Richard Guenther <rguenther@suse.de>
131 * lto-wrapper.c (run_gcc): With -save-temps generate a
132 user-visible ltrans filename. Fixup ltrans unit numbering.
134 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
136 * c-common.c (c_common_nodes_and_builtins): Replace use
137 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
138 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
139 to ix86_enum_va_list.
140 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
141 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
142 (TARGET_ENUM_VA_LIST_P): Add hook description.
143 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
144 * target.h (gcc_target): Add enum_va_list hook.
147 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
148 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
149 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
151 2010-05-28 Alan Modra <amodra@gmail.com>
154 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
155 emit_library_call machinery to set up __tls_get_addr calls.
157 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
159 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
161 2010-05-28 Dodji Seketeli <dodji@redhat.com>
163 revert fix for PR c++/44188
164 * c-common.c (is_typedef_decl): Revert the moving of this
166 * tree.c (is_typedef_decl): ... here.
167 (typdef_variant_p): Revert the moving of this definition
168 here from gcc/cp/tree.c.
169 * c-common.h (is_typedef_decl): Revert the moving of this
171 * tree.h (is_typedef_decl): ... here.
172 (typedef_variant_p): Revert the moving of this declaration here
173 from gcc/cp/cp-tree.h
174 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
175 (gen_tagged_type_die): Revert the splitting out of ...
176 (gen_type_die_with_usage): ... this function. Revert the anonymous
177 tagged type handling.
178 (gen_typedef_die): Revert emitting DW_TAG_typedef for
179 typedefs naming anonymous tagged types.
182 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
184 * config/rs6000/rs6000-modes.def (PSImode): Delete.
186 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
188 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
189 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
191 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
193 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
194 XER_REGS to CA_REGS throughout.
195 * config/rs6000/rs6000.h: Same.
196 (ADDITIONAL_REGISTER_NAMES): Add "xer".
197 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
198 that mode_iterator "P" is the size for arithmetic carries as well.
199 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
201 2010-05-28 Jakub Jelinek <jakub@redhat.com>
204 * combine.c (struct rtx_subst_pair): Define unconditionally.
205 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
206 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
207 Call make_compound_operation on pair->to.
208 (propagate_for_debug): Don't call make_compound_operation here.
209 Always use simplify_replace_fn_rtx.
211 2010-05-27 Sterling Augustine <sterling@tensilica.com>
213 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
214 * config/xtensa/xtensa.c (override_options): Check
215 TARGET_FORCE_NO_PIC and set flag_pic.
216 * config/xtensa/xtensa.opt: Document -mforce-no-pic
218 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
221 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
222 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
224 2010-05-27 Joseph Myers <joseph@codesourcery.com>
226 * diagnostic-core.h: New. Contents moved from diagnostic.h and
228 * diagnostic.c: Don't include toplev.h.
229 (progname): Define. Moved from toplev.c.
230 (seen_error): New function.
231 * diagnostic.h: Include diagnostic-core.h.
232 (diagnostic_t, emit_diagnostic): Don't declare here.
233 * toplev.c (progname): Move to toplev.c.
234 (emit_debug_global_declarations, compile_file, finalize,
235 do_compile, toplev_main): Use seen_error.
236 * toplev.h: Include diagnostic-core.h.
237 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
238 internal_error, warning, warning_at, error, error_n, error_at,
239 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
240 verbatim, fnotice, progname): Move to diagnostic-core.h.
241 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
242 (expand_builtin_expect): Use seen_error.
243 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
244 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
245 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
246 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
247 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
248 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
249 errorcount for errors.
250 * c-opts.c (c_common_finish): Use seen_error.
251 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
252 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
253 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
254 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
255 (get_coverage_counts): Use seen_error.
256 * dwarf2out.c (dwarf2out_finish): Use seen_error.
257 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
258 gimplify_body): Use seen_error.
259 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
260 * ipa-pure-const.c (gate_pure_const): Use seen_error.
261 * ipa-reference.c (gate_reference): Use seen_error.
262 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
263 * lambda-code.c: Include diagnostic-core.h instead of
265 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
266 * lto-compress.c: Include diagnostic-core.h instead of
268 * lto-section-in.c: Include diagnostic-core.h instead of
270 * lto-streamer-out.c: Include diagnostic-core.h instead of
272 * lto-streamer.c: Include diagnostic-core.h instead of
274 (gate_lto_out): Use seen_error.
275 * matrix-reorg.c: Include diagnostic-core.h instead of
277 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
278 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
279 (gate_expand_omp, lower_omp_1): Use seen_error.
280 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
281 (rest_of_decl_compilation, rest_of_type_compilation,
282 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
283 * tree-cfg.c (label_to_block_fn): Use seen_error.
284 * tree-inline.c (optimize_inline_calls): Use seen_error.
285 * tree-mudflap.c (mudflap_finish_file): Use
287 * tree-optimize.c (gate_all_optimizations,
288 gate_all_early_local_passes, gate_all_early_optimizations): Use
290 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
291 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
292 (varpool_remove_unreferenced_decls,
293 varpool_assemble_pending_decls): Use seen_error.
294 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
295 (TOPLEV_H, DIAGNOSTIC_H): Update.
296 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
297 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
298 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
299 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
300 coverage.o, lambda-code.o): Update dependencies.
302 2010-05-25 Dodji Seketeli <dodji@redhat.com>
305 * c-common.c (is_typedef_decl): Move this definition ...
306 * tree.c (is_typedef_decl): ... here.
307 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
308 * c-common.h (is_typedef_decl): Move this declaration ...
309 * tree.h (is_typedef_decl): ... here.
310 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
311 * dwarf2out.c (is_naming_typedef_decl): New function.
312 (gen_tagged_type_die): Split out of ...
313 (gen_type_die_with_usage): ... this function. When an anonymous
314 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
315 is emitted for the typedef.
316 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
317 anonymous tagged types.
319 2010-05-27 Jason Merrill <jason@redhat.com>
321 * print-tree.c (debug_vec_tree): New fn.
322 (print_vec_tree): New fn.
323 * tree.h: Declare them.
324 * gdbinit.in (pvt): New command.
326 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
328 * gdbinit.in (pdd): New command.
330 2010-05-27 Jan Hubicka <jh@suse.cz>
332 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
333 (update_caller_keys): Return early if there are no callers;
334 only update fibheap when decresing the key.
335 (update_callee_keys): Avoid recursion.
336 (decide_inlining_of_small_functions): When badness does not match;
337 re-insert into fibheap.
339 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
341 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
342 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
343 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
344 (ALL_HOST_OBJS): Now a union of the above two.
345 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
346 all files in ALL_HOST_FRONTEND_OBJS.
347 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
349 * c-common.c: Pretend to be a backend file by undefining
350 IN_GCC_FRONTEND (still need rtl.h here).
352 2010-05-27 Jan Hubicka <jh@suse.cz>
354 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
355 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
357 2010-05-27 Jan Hubicka <jh@suse.cz>
359 * sched-ebb.c: Rename struct deps to struct deps_desc.
361 * sel-sched-ir.c: Likewise.
362 * sched-deps.c: Likewise.
363 * sched-int.h: Likewise.
364 * sched-rgn.c: Likewise.
366 2010-05-27 Jon Beniston <jon@beniston.com>
369 * config/lm32/lm32.h: Remove definition of
370 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
372 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
375 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
377 2010-05-27 Richard Guenther <rguenther@suse.de>
379 PR tree-optimization/44284
380 * tree-vect-stmts.c (vectorizable_assignment): Handle
381 sign-changing conversions as simple copy.
383 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
385 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
387 (__gthread_active_p): Check for pthread_create if compiling against
390 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
392 Support compilation for Android platform. Reimplement -mandroid.
394 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
395 (*android*): Set ANDROID_DEFAULT.
396 (arm*-*-linux*): Include linux-android.h.
397 (arm*-*-eabi*): Don't include previous -mandroid implementation.
398 * config/arm/eabi.h: Remove, move Android-specific parts ...
399 * config/linux-android.h: ... here. New file.
400 * config/arm/eabi.opt: Rename to ...
401 * config/linux-android.opt: ... this.
402 (mandroid): Allow -mno-android option. Initialize based on
404 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
405 Move logic to corresponding LINUX_TARGET_* macros.
406 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
407 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
408 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
410 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
411 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
414 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
416 Add support for Bionic C library
418 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
420 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
421 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
423 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
424 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
425 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
426 to support multiple C libraries. Handle Bionic.
427 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
428 (BIONIC_DYNAMIC_LINKER64): Define.
429 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
431 (TARGET_HAS_SINCOS): Enable for Bionic.
433 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
434 the last option specified on command line take effect.
435 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
437 (mglibc, muclibc): Update.
439 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
440 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
443 * doc/invoke.texi (-mglibc, -muclibc): Update.
444 (-mbionic): Document.
446 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
448 * c-common.h (c_register_addr_space): Add prototype.
449 (ADDR_SPACE_KEYWORD): Remove.
450 * c-common.c (c_register_addr_space): New function.
451 (c_addr_space_name): Reimplement.
452 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
454 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
455 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
457 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
458 Remove TARGET_ADDR_SPACE_KEYWORDS.
460 2010-05-27 Joseph Myers <joseph@codesourcery.com>
463 * input.h (main_input_filename): Move declaration to toplev.h.
464 * toplev.c (input_location, line_table): Move to input.c
465 * toplev.h (main_input_filename): Move declaration from input.h.
466 * tree.c (expand_location): Move to input.c.
467 * Makefile.in (OBJS-common): Add input.o.
468 (input.o): Add dependencies.
470 2010-05-27 Richard Guenther <rguenther@suse.de>
472 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
473 for non-existant files.
474 (fork_execute): Mark args_name file as deleted.
476 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
479 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
480 (narrow_signed_type): Likewise.
482 2010-05-26 Jan Hubicka <jh@suse.cz>
484 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
485 edge only when checking is enabled; check using former_clone_of;
486 check inline clones too.
487 (cgraph_materialize_clone): Record former_clone_of pointer.
488 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
489 combining redirections; dump args_to_skip bitmap
490 (cgraph_materialize_all_clones): Do no redirection here.
491 * ipa-inline.c (inline_transform): Do redirection here.
492 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
495 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
497 * config/avr/avr-c.c: Do not include regs.h.
498 Include cpplib.h for cpp_define and tree.h for c-common.h.
499 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
500 * config/avr/t-avr: Fix dependencies for avr-c.o.
502 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
504 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
505 string instead of SYMBOL_REF rtx.
506 * rtl.h (set_stack_check_libfunc): Move prototype from here...
507 * libfuncs.h: ...to here. Adjust for explow.c change.
509 2010-05-26 Joseph Myers <joseph@codesourcery.com>
511 * pretty-print.c: Don't include ggc.h.
512 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
513 (identifier_to_locale): Use them for allocation.
514 * pretty-print.h (identifier_to_locale_alloc,
515 identifier_to_locale_free): Declare.
516 * toplev.c (alloc_for_identifier_to_locale): New.
517 (general_init): Set identifier_to_locale_alloc and
518 identifier_to_locale_free.
519 * Makefile.in (pretty-print.o): Update dependencies.
521 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
523 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
524 pointer types if they have different alignment or mode.
526 2010-05-26 Anatoly Sokolov <aesok@post.ru>
528 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
529 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
530 * config/sparc/sparc-protos.h (function_value): Remove declaration.
531 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
532 sparc_function_value_regno_p): New functions.
533 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
534 TARGET_FUNCTION_VALUE_REGNO_P): Define.
535 (function_value): Rename to...
536 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
537 argument to 'outgoing'.
538 (function_arg_record_value, function_arg_union_value,
539 function_arg_vector_value): Update comment.
541 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
543 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
544 (fde_needed_for_eh_p): New predicate.
545 (output_call_frame_info): Use it throughout to decide whether FDEs
546 are needed for EH purpose.
547 (dwarf2out_begin_prologue): Reorder assignments.
549 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
551 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
552 special case loop->header.
553 (is_predicated): New.
554 (if_convertible_loop_p): Call it.
556 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
558 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
559 iterator in parameter. Do not generate code during the analysis.
560 (tree_if_convert_cond_stmt): Removed.
561 (tree_if_convert_stmt): Removed.
562 (predicate_bbs): New.
563 (if_convertible_loop_p): Call predicate_bbs.
564 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
565 now contains all the analysis part.
567 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
569 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
570 statements in the analysis part.
571 (tree_if_convert_stmt): Update comment.
572 (remove_conditions_and_labels): New.
573 (combine_blocks): Call remove_conditions_and_labels.
574 (tree_if_conversion): Update comment.
576 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
578 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
579 than 2 predecessors or more than 2 successors.
581 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
583 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
584 of loops in which the data dependence analysis fails.
586 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
588 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
590 (tree_if_conversion): Same.
592 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
594 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
596 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
598 * tree-if-conv.c: Update copyright years. Fix comments.
601 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
603 * builtin-types.def (BT_INT128): New primitive type.
604 (BT_UINT128): Likewise.
605 * c-common.c (c_common_r): Add __int128 keyword.
606 (c_common_type_for_size): Handle __int128.
607 (c_common_type_for_mode): Likewise.
608 (c_common_signed_or_unsigned_type): Likewise.
609 (c_common_nodes_and_builtins): Add builtin type
610 if target supports 128-bit integer scalar.
611 * c-common.h (enum rid): Add RID_INT128.
612 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
613 if target supports 128-bit integer scalar.
614 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
615 (finish_declspecs): Likewise.
616 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
617 (c_token_starts_declspecs): Likewise.
618 (c_parser_declspecs): Likewise.
619 (c_parser_attributes): Likewise.
620 (c_parser_objc_selector): Likewise.
621 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
622 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
623 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
624 * tree.c (make_or_reuse_type): Likewise.
625 (make_unsigned_type): Likewise.
626 (build_common_tree_nodes_2): Likewise.
627 * tree.h (enum integer_type_kind): Add itk_int128 and
629 (int128_integer_type_node): New define.
630 (int128_unsigned_type_node): New define.
631 * doc/extend.texi: Add documentation about __int128 type.
633 2010-05-26 Richard Guenther <rguenther@suse.de>
635 * tree-ssa-sccvn.c (copy_nary): Adjust.
636 (copy_phis): Rename to ...
637 (copy_phi): ... this. Adjust.
638 (copy_references): Rename to ...
639 (copy_reference): ... this. Adjust.
640 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
641 result into the valid table.
643 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
645 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
646 insn-config.h, insn-codes.h, recog.h, and optabs.h.
648 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
650 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
652 2010-05-26 Richard Guenther <rguenther@suse.de>
654 * opts.c (common_handle_option): Handle OPT_Ofast.
656 2010-05-26 Joseph Myers <joseph@codesourcery.com>
658 * diagnostic.c: Don't include opts.h.
659 (permissive_error_option): Define.
660 (diagnostic_initialize): Take n_opts parameter. Allocate memory
661 for classify_diagnostic. Don't use memset for
662 classify_diagnostic. Initialize new and recently added fields.
663 (diagnostic_classify_diagnostic): Use context->n_opts instead of
665 (diagnostic_report_diagnostic): Pass context parameter to
666 diagnostic_report_warnings_p. Use option_enabled and option_name
668 (emit_diagnostic): Use permissive_error_option.
669 (permerror): Likewise.
670 * diagnostic.h: Don't include options.h.
671 (struct diagnostic_context): Add n_opts, opt_permissive,
672 inhibit_warnings, warn_system_headers, option_enabled and
673 option_name fields. Change classify_diagnostic to a pointer.
674 * opts-diagnostic.h: New file.
675 * opts.c: Include opts-diagnostic.h.
676 (common_handle_option): Set global_dc fields for -Wfatal-errors,
677 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
678 (option_name): New function.
679 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
680 (c_common_handle_option): Set global_dc->permissive for
682 * c-common.c (c_cpp_error): Save and restore
683 global_dc->warn_system_headers, not variable warn_system_headers.
684 * toplev.c: Include opts-diagnostic.h.
685 (general_init): Update call to diagnostic_initialize. Set
686 global_dc->show_column, global_dc->option_enabled and
687 global_dc->option_name.
688 (process_options): Don't set global_dc fields here.
689 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
690 (diagnostic.o, opts.o, toplev.o): Update dependencies.
692 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
694 * config/picochip/picochip.md (movsi): Split a movsi from a
697 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
699 * ggc-zone.c: Update copyright year.
700 (poison_region): Mark memory for Valgrind as undefined before
701 memset () call and inaccessible afterwards.
702 (ggc_pch_total_size): Change type of i to int.
704 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
706 * ggc-common.c (ggc_free_overhead): Allow empty slot.
708 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
710 * ggc-common.c: Update copyright year.
711 (ggc_rlimit_bound): Remove prototype. Compile only if
712 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
713 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
714 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
715 (ggc_min_heapsize_heuristic): Likewise.
717 2010-05-26 Richard Guenther <rguenther@suse.de>
719 PR rtl-optimization/44164
720 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
721 no-common access-path disambiguation.
722 (indirect_ref_may_alias_decl_p): Adjust.
723 (indirect_refs_may_alias_p): Likewise.
724 (refs_may_alias_p_1): Likewise.
726 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
728 * c-typeck.c: Do not include expr.h.
730 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
732 * rtl.h (decl_default_tls_model): Move prototype from here...
733 * output.h: ...to here.
734 * c-decl.c: Do not include rtl.h.
735 * c-pragma.c: Likewise.
736 * c-parser.c: Likewise.
737 * c-gimplify.c: Likewise. And also not hard-reg-set.
738 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
739 FIXME note for it. Add a FIXME note for expr.h.
740 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
741 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
744 2010-05-26 Jakub Jelinek <jakub@redhat.com>
747 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
748 or total_size is larger than red zone size for non-V4 ABI, emit a
749 stack_tie resp. frame_tie insn before stack pointer restore.
750 * config/rs6000/rs6000.md (frame_tie): New insn.
752 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
754 * function.h (struct function): Add can_throw_non_call_exceptions bit.
755 * lto-streamer-in.c (input_function): Stream it in.
756 * lto-streamer-out.c (output_function): Stream it out.
757 * function.c (allocate_struct_function): Set it.
758 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
759 for flag_non_call_exceptions.
760 * cfgbuild.c (control_flow_insn_p): Likewise.
761 (make_edges): Likewise.
762 * cfgexpand.c (expand_stack_alignment): Likewise.
763 * combine.c (distribute_notes): Likewise.
764 * cse.c (cse_extended_basic_block): Likewise.
765 * except.c (insn_could_throw_p): Likewise.
766 * gcse.c (simple_mem): Likewise.
767 * ipa-pure-const.c (check_call): Likewise.
768 (check_stmt ): Likewise.
769 * lower-subreg.c (lower-subreg.c): Likewise.
770 * optabs.c (emit_libcall_block): Likewise.
771 (prepare_cmp_insn): Likewise.
772 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
773 * postreload.c (rest_of_handle_postreload): Likewise.
774 * reload1.c (reload_as_needed): Likewise.
775 (emit_input_reload_insns): Likewise.
776 (emit_output_reload_insns): Likewise.
777 (fixup_abnormal_edges): Likewise.
778 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
779 * store-motion.c (find_moveable_store): Likewise.
780 * tree-eh.c (stmt_could_throw_p): Likewise.
781 (tree_could_throw_p): Likewise.
782 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
783 * config/arm/arm.c (arm_expand_prologue): Likewise.
784 (thumb1_expand_prologue): Likewise.
785 * config/rx/rx.md (cbranchsf4): Likewise.
787 * config/s390/s390.c (s390_emit_prologue): Likewise.
788 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
789 (inline_forbidden_into_p): New predicate.
790 (expand_call_inline): Use it to forbid inlining.
791 (tree_can_inline_p): Likewise.
793 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
795 * config/i386/i386-c.c: Do not include rtl.h.
796 * config/i386/t-i386: Update dependencies.
798 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
800 * attribs.c: Do not include rtl.h.
801 * Makefile.in: Update dependencies.
803 2010-05-25 Anatoly Sokolov <aesok@post.ru>
805 * double-int.h (double_int_and): New.
806 * combine.c (try_combine): Clean up, use double_int_* and
807 immed_double_int_const functions.
809 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
811 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
812 stderr to /dev/null instead of grep -q.
813 * configure: Regenerate.
815 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
817 * Makefile.in (EXCEPT_H): Fix typo.
819 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
821 * ira-build.c (update_conflict_hard_reg_costs): New.
822 (ira_build): Call update_conflict_hard_reg_costs.
824 2010-05-25 Jakub Jelinek <jakub@redhat.com>
827 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
829 (intersect_loc_chains): Walk the s2var's loc_chain together
830 with s1node chain as long as the locations are equal, don't
831 call find_loc_in_1pdv in that case.
834 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
835 (copy_bind_expr): ... instead of here.
836 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
837 if the block hasn't been remapped.
838 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
839 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
841 2010-05-25 Richard Guenther <rguenther@suse.de>
844 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
845 out-of-bounds array accesses.
847 2010-05-25 Richard Guenther <rguenther@suse.de>
849 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
850 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
851 (run_gcc): Re-organize to make cleanup easier.
853 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
855 * config/s390/s390.c (optimization_options): Fix and move the
856 flag_prefetch_loop_arrays override ...
857 (override_options): ... here.
859 2010-05-25 Joseph Myers <joseph@codesourcery.com>
861 * diagnostic.c: Don't include plugin.h.
862 (diagnostic_report_diagnostic): Don't handle plugins specially
863 here. Pass context to internal_error callback.
864 * diagnostic.h (struct diagnostic_context): Add context parameter
865 to internal_error callback.
866 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
867 * plugin.h (struct diagnostic_context): Declare.
868 (warn_if_plugins, plugins_internal_error_function): Declare.
869 * toplev.c (general_init): Set global_dc->internal_error.
870 * Makefile.in (diagnostic.o): Update dependencies.
872 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
874 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
875 * config/rs6000/t-darwin64: New.
876 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
879 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
882 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
883 match the original (and intended) behaviour before r159557. This
884 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
887 2010-05-25 Richard Guenther <rguenther@suse.de>
889 * doc/invoke.texi: Document -Ofast.
890 * target.h (struct gcc_target): Add handle_ofast.
891 * target-def.h (TARGET_HANDLE_OFAST): Add.
892 (TARGET_INITIALIZER): Adjust.
893 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
894 * common.opt (Ofast): Add.
896 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
898 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
899 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
901 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
904 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
905 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
906 false_rtx. Use false_rtx to compute the correct *ptest for reversed
907 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
909 2010-05-25 Jakub Jelinek <jakub@redhat.com>
911 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
912 DW_OP_minus with negated offset instead of DW_OP_plus.
913 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
915 2010-05-25 Wei Guozhi <carrot@google.com>
917 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
918 tst instruction and a new alternative.
919 * config/arm/constraints.md (Pu): New constraint.
921 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
923 * function.c (assign_stack_local_1): Initialize variable
924 to avoid warning when bootstrapping at -O3.
926 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
928 * configure.ac (all_lang_makefiles): Remove everything related to it.
929 * configure: Regenerate.
930 * Makefile.in: Fix reference to ada Make-lang.in.
931 Remove support for LANG_MAKEFILES.
933 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
934 Sandra Loosemore <sandra@codesourcery.com>
936 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
937 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
938 description. Add arm_neon_fp16_ok.
939 (Add Options): Add arm_neon and arm_neon_fp16.
941 2010-05-24 Joseph Myers <joseph@codesourcery.com>
943 * diagnostic.c: Don't include flags.h.
944 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
945 context parameters. Check flags in the context passed as a parameter.
946 (diagnostic_build_prefix): Add context parameter. Check
947 show_column flag in context.
948 (diagnostic_action_after_output): Check fatal_errors flag in context.
949 (diagnostic_report_current_module): Check show_column flag in context.
950 (default_diagnostic_starter): Update call to
951 diagnostic_build_prefix.
952 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
953 (emit_diagnostic): Pass context to permissive_error_kind.
954 (permerror): Pass context to permissive_error_kind.
955 * diagnostic.h (struct diagnostic_context): Add show_column,
956 pedantic_errors, permissive and fatal_errors fields.
957 (diagnostic_build_prefix): Update prototype.
959 * toplev.c (process_options): Set flags in global_dc from
960 flag_show_column, flag_pedantic_errors, flag_permissive,
962 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
963 to diagnostic_build_prefix.
964 * Makefile.in (diagnostic.o): Update dependencies.
966 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
968 * config/i386/ia32intrin.h (__crc32q): Define only if
969 __SSE4_2__ is defined.
971 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
975 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
976 DECL_VISIBILITY_SPECIFIED.
977 (emutls_decl): Set DECL_PRESERVE_P and copy
978 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
979 (emutls_finalize_control_var): New callback.
980 (emutls_finish): Finalize emutls control variables.
981 * toplev.c (compile_file): Move the call to emutls_finish ()
982 before varpool_assemble_pending_decls ().
984 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
986 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
987 added to the preprocessor condition.
989 2010-05-24 Paul Brook <paul@codesourcery.com>
991 * gengtype-lex.l: Add HARD_REG_SET.
992 * expr.c (expand_expr_real_1): Record writes to hard registers.
993 * function.c (rtl_data): Add asm_clobbers.
994 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
995 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
996 Use crtl->asm_clobbers.
998 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1000 * doc/makefile.texi (Makefile): Mention stages 'profile'
1001 and 'feedback' for profiledbootstrap.
1003 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
1006 * config/i386/i386.c (def_builtin): Properly check
1007 OPTION_MASK_ISA_64BIT.
1009 2010-05-23 Joseph Myers <joseph@codesourcery.com>
1011 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1012 typedefs with different but compatible types. Allow duplicate
1013 typedefs with the same type except for pedantic non-C1X, but give
1014 warning for variably modified types.
1015 * c-typeck.c (tagged_types_tu_compatible_p,
1016 function_types_compatible_p, type_lists_compatible_p,
1017 comptypes_internal): Add parameter different_types_p; set
1018 *different_types_p for different but compatible types. All
1020 (comptypes_check_different_types): New.
1021 * c-tree.h (comptypes_check_different_types): Declare.
1023 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
1025 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
1026 * jump.c: Include basic-block.h.
1027 * profile.c: Likewise.
1028 * tree-profile.c: Likewise.
1029 * coverage.c: Likewise.
1030 * basic-block.h (optimize_function_for_size_p): Move to function.h.
1031 (optimize_function_for_speed_p): Likewise.
1032 * function.h (optimize_function_for_size_p,
1033 optimize_function_for_speed_p): Moved here from basic-block.h.
1034 * Makefile.in: Update dependencies.
1036 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1038 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1039 before calling make; allow override through $MAKE.
1040 * doc/invoke.texi (Optimize Options): Document override.
1042 2010-05-23 Anatoly Sokolov <aesok@post.ru>
1044 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1045 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1046 (rs6000_mode_dependent_address_ptr): Make static.
1047 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1048 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1051 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
1054 * config/i386/i386.c: Make sure that the correct regparm is passed.
1056 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
1058 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1059 * sbitmap.c: ...to here to internalize sbitmap element access.
1060 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1061 Explain why basic-block.h is included.
1062 * function.h: Include tm.h for CUMULATIVE_ARGS.
1063 * Makefile.in: Update dependencies.
1065 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
1067 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1069 * sbitmap.h (struct sbitmap_def): Do not typedef here.
1070 * sbitmap.c: Include sbitmap.h.
1071 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1072 hard-reg-set.h. Split everything related to regsets out from here...
1073 * regset.h: ...to here. New file.
1074 * df.h: Include regset.h and sbitmap.h.
1075 * tree-flow.h: Likewise.
1076 * cfgloop.h: Likewise.
1077 * except.h: Do not include sbitmap.h. Include hashtab.h.
1078 * cgraph.h: Include vec.h and function.h.
1079 * reload.h (struct insn_chain): Change types of live_throughout
1080 and dead_or_set from regset_head to bitmap_head.
1081 (compute_use_by_pseudos): Be defined also if regset.h is not included.
1082 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1083 spilled_regs from regset_head to bitmap_head to avoid dependency
1085 * sel-sched-ir.h: Include regset.h.
1086 * reload.c: Include df.h before reload.h.
1087 * caller-save.c: Likewise.
1088 * reload1.c: Likewise.
1090 (mark_elimination): Update type of r to bitmap, consistent with
1092 * dominance.c: Include bitmap.h.
1093 * modulo-sched.c: Include df.h.
1094 * cfganal.c: Include bitmap.h and sbitmap.h.
1095 * cfgbuild.c: Include sbitmap.h.
1096 * lcm.c: Include sbitmap.h.
1097 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1098 * domwalk.c: Include sbitmap.h, exclude ggc.h.
1099 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1100 * cselib.c: Include bitmap.h.
1101 * tree-optimize.c: Include regset.h.
1102 * stmt.c: Include bitmap.h.
1103 * Makefile.in: Update dependencies.
1105 2010-05-22 Jan Hubicka <jh@suse.cz>
1107 * cgraph.h (struct varpool_node): Add same_comdat_group.
1108 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1110 (output_varpool): Update call of lto_output_varpool_node.
1111 (input_varpool): Read same_comdat_group pointer.
1112 (input_varpool_1): Fixup same_comdat_group pointer.
1113 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1114 group is needed, all are.
1115 * varpool.c (varpool_remove_node): Remove node from same comdat group
1117 (varpool_analyze_pending_decls): Walk same comdat groups.
1119 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
1121 * rtl.h (union rtunion_def): Remove rt_bit member.
1122 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1123 * print-rtl (print_rtx): Do not print the member.
1124 * gengtype.c (adjust_field_rtx_def): Do not handle it.
1125 * gengenrtl.c (type_from_format): Likewise.
1126 (accessor_from_format): Likewise.
1128 2010-05-22 Joseph Myers <joseph@codesourcery.com>
1130 * dbgcnt.c: Include toplev.h instead of errors.h.
1131 * ira-emit.c: Don't include errors.h.
1132 * ira.c: Include toplev.h instead of errors.h.
1133 * lto-compress.c: Include toplev.h instead of errors.h.
1134 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1135 ira.o, dbgcnt.o): Update dependencies.
1137 2010-05-22 Richard Guenther <rguenther@suse.de>
1139 * gimple.c (gimple_types_compatible_p): Check type qualifications
1140 before merging pointer to complete and pointer to incomplete type.
1141 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1142 we use our own resolution algorithm. The gold linker plugin
1143 doesn't do the job we want it to do here.
1145 2010-05-22 Anatoly Sokolov <aesok@post.ru>
1147 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1148 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1149 (sparc_mode_dependent_address_p): New function.
1151 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1153 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1155 * timevar.c: Do not include any core headers.
1156 (timevar_print): De-i18n-ize.
1157 (print_time): Likewise.
1158 * timevar.h (timevar_push, timevar_pop): Make inline functions.
1160 2010-05-21 Joseph Myers <joseph@codesourcery.com>
1162 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1164 (diagnostic_initialize): Initialize x_data not last_function.
1165 (diagnostic_report_current_function): Move to tree-diagnostic.c.
1166 (default_diagnostic_starter): Call
1167 diagnostic_report_current_module not
1168 diagnostic_report_current_function.
1169 (diagnostic_report_diagnostic): Initialize x_data not
1171 (verbatim): Likewise.
1172 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1174 (struct diagnostic_context): Change last_function to x_data.
1175 (diagnostic_auxiliary_data): Replace with
1176 diagnostic_context_auxiliary_data and
1177 diagnostic_info_auxiliary_data.
1178 (diagnostic_last_function_changed, diagnostic_set_last_function,
1179 diagnostic_report_current_function): Move to tree-diagnostic.h.
1180 (print_declaration, dump_generic_node, print_generic_stmt,
1181 print_generic_stmt_indented, print_generic_expr,
1182 print_generic_decl, debug_c_tree, dump_omp_clauses,
1183 print_call_name, debug_generic_expr, debug_generic_stmt,
1184 debug_tree_chain, default_tree_printer): Move to
1185 tree-pretty-print.h.
1186 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1187 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1188 gimple-pretty-print.h.
1189 * pretty-print.c: Don't include tree.h
1190 (pp_base_format): Don't handle %K here.
1191 (pp_base_tree_identifier): Move to tree-pretty-print.c.
1192 * pretty-print.h (text_info): Change abstract_origin to x_data.
1193 (pp_tree_identifier, pp_unsupported_tree,
1194 pp_base_tree_identifier): Move to tree-pretty-print.h.
1195 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1196 tree-pretty-print.h: New files.
1197 * tree-pretty-print.c: Include tree-pretty-print.h.
1198 (percent_K_format): New. Moved from pretty-print.c.
1199 (pp_base_tree_identifier): Move from pretty-print.c.
1200 * c-objc-common.c: Include tree-pretty-print.h.
1201 (c_tree_printer): Handle %K here.
1202 * langhooks.c: Include tree-diagnostic.h.
1203 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1204 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1205 (default_tree_printer): Handle %K using percent_K_format.
1206 (general_init): Use default_tree_diagnostic_starter.
1207 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1208 (free_lang_data): Use default_tree_diagnostic_starter.
1209 * c-pretty-print.c: Include tree-pretty-print.h.
1210 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1211 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1212 * dwarf2out.c: Include tree-pretty-print.h.
1213 * except.c: Include tree-pretty-print.h.
1214 * gimple-pretty-print.c: Include tree-pretty-print.h and
1215 gimple-pretty-print.h.
1216 * gimplify.c: Include tree-pretty-print.h.
1217 * graphite-poly.c: Include tree-pretty-print.h and
1218 gimple-pretty-print.h.
1219 * ipa-cp.c: Include tree-pretty-print.h.
1220 * ipa-inline.c: Include gimple-pretty-print.h.
1221 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1222 * ipa-pure-const.c: Include gimple-pretty-print.h.
1223 * ipa-struct-reorg.c: Include tree-pretty-print.h and
1224 gimple-pretty-print.h.
1225 * ipa-type-escape.c: Include tree-pretty-print.h.
1226 * print-rtl.c: Include tree-pretty-print.h.
1227 * print-tree.c: Include gimple-pretty-print.h.
1228 * sese.c: Include tree-pretty-print.h.
1229 * tree-affine.c: Include tree-pretty-print.h.
1230 * tree-browser.c: Include tree-pretty-print.h.
1231 * tree-call-cdce.c: Include gimple-pretty-print.h.
1232 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1233 * tree-chrec.c: Include tree-pretty-print.h.
1234 * tree-data-ref.c: Include tree-pretty-print.h and
1235 gimple-pretty-print.h.
1236 * tree-dfa.c: Include tree-pretty-print.h.
1237 * tree-if-conv.c: Include tree-pretty-print.h and
1238 gimple-pretty-print.h.
1239 * tree-inline.c: Include tree-pretty-print.h.
1240 * tree-into-ssa.c: Include tree-pretty-print.h and
1241 gimple-pretty-print.h.
1242 * tree-nrv.c: Include tree-pretty-print.h.
1243 * tree-object-size.c: Include tree-pretty-print.h and
1244 gimple-pretty-print.h.
1245 * tree-outof-ssa.c: Include tree-pretty-print.h and
1246 gimple-pretty-print.h.
1247 * tree-parloops.c: Include tree-pretty-print.h and
1248 gimple-pretty-print.h.
1249 * tree-predcom.c: Include tree-pretty-print.h and
1250 gimple-pretty-print.h.
1251 * tree-scalar-evolution.c: Include tree-pretty-print.h and
1252 gimple-pretty-print.h.
1253 * tree-sra.c: Include tree-pretty-print.h.
1254 * tree-ssa-address.c: Include tree-pretty-print.h.
1255 * tree-ssa-alias.c: Include tree-pretty-print.h.
1256 * tree-ssa-ccp.c: Include tree-pretty-print.h and
1257 gimple-pretty-print.h.
1258 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1259 * tree-ssa-copy.c: Include tree-pretty-print.h and
1260 gimple-pretty-print.h.
1261 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1262 * tree-ssa-dce.c: Include tree-pretty-print.h and
1263 gimple-pretty-print.h.
1264 * tree-ssa-dom.c: Include tree-pretty-print.h and
1265 gimple-pretty-print.h.
1266 * tree-ssa-dse.c: Include gimple-pretty-print.h.
1267 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1268 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1269 * tree-ssa-live.c: Include tree-pretty-print.h and
1270 gimple-pretty-print.h.
1271 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1272 gimple-pretty-print.h.
1273 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1274 gimple-pretty-print.h.
1275 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1276 gimple-pretty-print.h.
1277 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1278 gimple-pretty-print.h.
1279 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1280 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1281 * tree-ssa-operands.c: Include tree-pretty-print.h and
1282 gimple-pretty-print.h.
1283 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1284 gimple-pretty-print.h.
1285 * tree-ssa-pre.c: Include tree-pretty-print.h and
1286 gimple-pretty-print.h.
1287 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1288 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1289 gimple-pretty-print.h.
1290 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1291 gimple-pretty-print.h.
1292 * tree-ssa-sink.c: Include gimple-pretty-print.h.
1293 * tree-ssa-ter.c: Include tree-pretty-print.h and
1294 gimple-pretty-print.h.
1295 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1296 * tree-ssa.c: Include tree-pretty-print.h and
1297 gimple-pretty-print.h.
1298 * tree-stdarg.c: Include gimple-pretty-print.h.
1299 * tree-switch-conversion.c: Include gimple-pretty-print.h.
1300 * tree-tailcall.c: Include tree-pretty-print.h and
1301 gimple-pretty-print.h.
1302 * tree-vect-data-refs.c: Include tree-pretty-print.h and
1303 gimple-pretty-print.h.
1304 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1305 gimple-pretty-print.h.
1306 * tree-vect-loop.c: Include tree-pretty-print.h and
1307 gimple-pretty-print.h.
1308 * tree-vect-patterns.c: Include gimple-pretty-print.h.
1309 * tree-vect-slp.c: Include tree-pretty-print.h and
1310 gimple-pretty-print.h.
1311 * tree-vect-stmts.c: Include tree-pretty-print.h and
1312 gimple-pretty-print.h.
1313 * tree-vectorizer.c: Include tree-pretty-print.h.
1314 * tree-vrp.c: Include tree-pretty-print.h and
1315 gimple-pretty-print.h.
1316 * value-prof.c: Include tree-pretty-print.h and
1317 gimple-pretty-print.h.
1318 * var-tracking.c: Include tree-pretty-print.h.
1319 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1320 (tree-diagnostic.o): New dependencies.
1321 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1322 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1323 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1324 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1325 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1326 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1327 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1328 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1329 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1330 tree-ssa-address.o, tree-ssa-loop-niter.o,
1331 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1332 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1333 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1334 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1335 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1336 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1337 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1338 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1339 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1340 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1341 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1342 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1343 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1344 tree-switch-conversion.o, var-tracking.o, value-prof.o,
1345 cfgexpand.o, pretty-print.o): Update dependencies.
1347 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
1349 * tree-ssa-structalias.c: Remove tm_p.h from include.
1351 2010-05-21 Jeff Law <law@redhat.com>
1353 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1355 2010-05-21 Jason Merrill <jason@redhat.com>
1357 * tree-eh.c (cleanup_is_dead_in): New.
1358 (lower_try_finally): Don't generate a dead cleanup region.
1359 (lower_cleanup): Likewise.
1361 2010-05-21 Jakub Jelinek <jakub@redhat.com>
1364 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1365 unchain each use from the cyclic next_regno_use chain first.
1367 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1369 * real: Do not include gmp.h, mpfr.h, and mpc.h.
1370 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1371 (real_value_negate, real_value_abs): New prototypes.
1372 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1373 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1374 new include file for interface between MPFR and REAL_VALUE_TYPE.
1375 * real.c: Include realmpfr.h.
1376 (real_arithmetic2): Remove legacy function.
1377 (real_value_negate): New.
1378 (real_value_abs): New.
1379 (mfpr_from_real, real_from_mpfr): Move from here...
1380 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1381 * builtins.c: Include realmpfr.h.
1382 * fold-const.c: Include realmpfr.h.
1383 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1384 (fold_negate_const): Likewise.
1385 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1386 * toplev.c: Include realmpfr.h.
1387 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1388 and real_value_negate.
1389 * fixed-value.c (check_real_for_fixed_mode): Likewise.
1390 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1391 (vfp3_const_double_index): Likewise.
1392 (arm_print_operand): Likewise.
1393 * Makefile.in: Update dependencies.
1395 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1397 * config/s390/s390.c (override_options): Increase the default
1398 of max-completely-peel-times.
1400 2010-05-21 Julian Brown <julian@codesourcery.com>
1401 Mark Mitchell <mark@codesourcery.com>
1403 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1404 sibling calls for Thumb-1.
1405 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1406 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1408 (*call_insn, *call_value_insn): Don't use for Thumb-2.
1409 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1411 (return): New expander.
1412 (*arm_return): New name for ARM return insn.
1413 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1415 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
1417 * config.gcc (sparc64-*-rtems*): New target.
1419 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
1421 * tree.c (build_function_decl_skip_args): Fix grammar.
1422 (build_function_type_list_1): Fix typos, adjust formatting.
1424 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1426 * tree.h: Include real.h and fixed-value.h as basic datatypes.
1427 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1428 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1429 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1430 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1431 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1432 tree-pretty-print.c, tree-loop-distribution.c,
1433 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1434 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1435 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1436 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1437 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1438 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1439 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1440 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1441 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1442 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1443 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1444 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1445 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1446 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1447 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1448 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1449 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1450 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1451 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1452 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1453 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1454 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1455 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1456 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1457 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1458 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1459 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1460 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1461 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1462 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1463 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1464 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1465 config/score/score7.c, config/score/score.c, config/arm/arm.c,
1466 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1467 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1468 config/bfin/bfin.c: Clean up redundant includes.
1469 * Makefile.in: Update accordingly.
1471 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
1474 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1475 statement has no arguments.
1477 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
1480 * varasm.c (emutls_decl): Merge attributes to new decl.
1482 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
1485 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1486 around the uniquized constructor if its type requires a conversion.
1488 2010-05-21 Jakub Jelinek <jakub@redhat.com>
1491 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1492 at -O0 goto_locus of any of the incoming edges differs from
1493 goto_locus of outgoing edge, or gimple_location of any of the
1496 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
1498 * ira.c (ira_non_ordered_class_hard_regs): Define.
1499 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1500 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1501 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1502 cost of unaligned hard regs when allocating multi-reg pseudos.
1504 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
1506 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1507 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1508 for TARGET_NO_FLOAT.
1509 * config/mips/mips.c (mips_file_start): Expand conditional expression
1510 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1511 (mips_override_options): Move -mno-float override -msoft-float and
1513 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1514 Condition(TARGET_SUPPORTS_NO_FLOAT).
1515 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1516 __mips_no_float here.
1517 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1518 (TARGET_SUPPORTS_NO_FLOAT): Define.
1519 * config/mips/sdemtk.opt: Delete.
1521 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
1523 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1525 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
1528 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1529 * configure: Regenerate.
1530 * config.in: Regenerate.
1531 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1532 instead of sahf only for 64bit targets.
1534 2010-05-20 Jakub Jelinek <jakub@redhat.com>
1537 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1538 setup_ref_regs for DEBUG_INSNs.
1540 2010-05-20 Jan Hubicka <jh@suse.cz>
1543 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1545 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
1548 * df-scan.c (df_ref_compare): Stabilize sort.
1550 2010-05-20 Jakub Jelinek <jakub@redhat.com>
1552 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1553 argument. Don't use DW_OP_piece if offset is non-zero,
1554 put offset into second DW_OP_bit_piece argument.
1555 (dw_sra_loc_expr): Adjust callers. For memory expressions
1558 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
1561 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1562 settings for 16-bit-constant "addo" alternative.
1564 2010-05-19 James E. Wilson <wilson@codesourcery.com>
1566 * config/mips/mips-dsp.md (add<DSPV:mode>3,
1567 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1570 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
1571 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1574 2010-05-19 Joseph Myers <joseph@codesourcery.com>
1576 * diagnostic.c (FLOAT, FFS): Don't undefine.
1577 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1578 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1581 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
1583 * combine.c (propagate_for_debug): Call make_compound_operation
1584 on the source value.
1585 (try_combine): When implementing a split chosen by find_split_point,
1586 either copy i2src or set it to null. Assert that i2src is not null
1587 before substituting into CALL_INSN_FUNCTION_USAGE.
1589 2010-05-19 Anatoly Sokolov <aesok@post.ru>
1591 * double-int.h (double_int_ior): New function.
1592 * tree.h (build_int_cst_wide_type): Remove.
1593 * tree.c (build_int_cst_wide_type): Remove.
1594 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1595 of build_int_cst_wide_type.
1596 * stor-layout.c (set_sizetype): (Ditto.).
1597 * dojump.c (do_jump): Use build_int_cstu instead of
1598 build_int_cst_wide_type.
1600 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
1602 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1603 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1604 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1605 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1606 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
1607 propagate the 'data' argument to copy_tree_r.
1608 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1609 Propagate 'data' argument to walk_tree.
1610 (copy_if_shared): New function.
1611 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1612 (unmark_visited): New function.
1613 (unshare_body): Call copy_if_shared instead of doing it manually.
1614 (unvisit_body): Call unmark_visited instead of doing it manually.
1616 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
1618 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1619 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
1620 * hooks.c: Likewise.
1621 * target-def.h (TARGET_FOLD_BUILTIN): Define to
1622 hook_tree_tree_int_treep_bool_null.
1623 * target.h (struct gcc_target): Update signature of fold_builtin
1625 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1626 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1627 instead of the call expression.
1628 (fold_builtin_call_array): Pass n and argarray directly.
1629 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1631 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
1632 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
1633 `i' and use it in place of `arity'.
1634 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1635 Dereference `args' directly.
1636 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1638 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1640 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1642 (Directives): Document optional dg-require-effective-target
1645 2010-05-19 Richard Guenther <rguenther@suse.de>
1648 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1650 2010-05-19 Richard Guenther <rguenther@suse.de>
1652 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1653 * common.opt (fwhopr=): New.
1654 * opts.c (common_handle_option): Handle OPT_fwhopr.
1655 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1656 * collect2.c (main): Match -fwhopr*.
1657 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1658 Execute ltrans stage in parallel when jobs is bigger than 1.
1660 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1662 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1663 pentiumpro on Solaris 8/x86 with Sun as.
1664 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1666 (gcc_cv_as_ix86_quad): Check for .quad directive.
1667 * configure: Regenerate.
1668 * config.in: Regenerate.
1669 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1671 2010-05-19 Martin Jambor <mjambor@suse.cz>
1673 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1674 also for indirect edges. Actual printing moved...
1675 (ipa_print_node_jump_functions_for_edge): ...here.
1676 (ipa_compute_jump_functions): Renamed to
1677 ipa_compute_jump_functions_for_edge and made static.
1678 (ipa_compute_jump_functions): New function.
1679 (make_edge_direct_to_target): Check if the number of arguments on
1680 the newly direct edge is the same as the number of parametrs of
1682 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1683 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
1684 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1685 analysis functions unconditionally, call the new
1686 ipa_analyze_params_uses on the node instead of every edge.
1688 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
1690 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1692 (dump_mem_ref): Adopt debug code to handle a tree as step. This
1693 also checks for a constant int vs. non-constant but
1694 loop-invariant steps.
1695 (find_or_create_group): Change the sort algorithm to only consider
1696 steps that are constant ints.
1697 (idx_analyze_ref): Adopt code to handle a tree instead of a
1698 HOST_WIDE_INT for step.
1699 (gather_memory_references_ref): Handle tree instead of int and be
1700 prepared to see a NULL_TREE.
1701 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1702 prefetches if the step cannot be calculated at compile time.
1703 (issue_prefetch_ref): Issue prefetches for non-constant but
1704 loop-invariant steps.
1706 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1709 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1711 * tree.h (build_call_list): Remove.
1712 * tree.c (build_call_list): Remove.
1714 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1716 * tree.h (build_call_list): Remove.
1717 * tree.c (build_call_list): Remove.
1719 2010-05-18 Jan Hubicka <jh@suse.cz>
1721 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1723 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
1725 PR rtl-optimization/43332
1726 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1728 2010-05-18 Anatoly Sokolov <aesok@post.ru>
1730 * tree.h (build_int_cstu): Implement as static inline.
1731 * tree.c (build_int_cstu): Remove function.
1732 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1735 2010-05-18 Richard Guenther <rguenther@suse.de>
1738 * lto-wrapper.c (verbose): New variable. Initialize from -v.
1739 (debug): Initialize from -save-temps.
1740 (collect_execute): Print command-line when verbose.
1741 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
1742 for ltrans invocation. Produce -dumpbase flag again.
1743 (process_args): Remove.
1745 * collect2.c (maybe_run_lto_and_relink): Only pass object
1746 files to lto-wrapper.
1747 * gcc.c (LINK_COMMAND_SPEC): Likewise.
1749 2010-05-18 Jan Hubicka <jh@suse.cz>
1751 * opts.c (decode_options): Do not disable whopr at ipa_cp.
1752 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1754 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
1757 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1759 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1762 2010-05-18 Jakub Jelinek <jakub@redhat.com>
1765 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1768 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
1770 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1771 lto-macho as lto_binary_reader.
1773 * darwin.c (darwin_asm_named_section): Do not add assembler comment
1774 after .section directive; just print it before the directive instead.
1776 2010-05-17 Jan Hubicka <jh@suse.cz>
1778 * cgraph.c (cgraph_create_virtual_clone): Only check
1779 versionable_function_p when not in wpa and checking is enabled.
1780 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1781 there are no more functions to materialize.
1783 2010-05-17 Jan Hubicka <jh@suse.cz>
1785 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1786 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1788 (output_cgraph): Call output_cgraph_opt_summary.
1789 (input_cgrpah): Call input_cgraph_opt_summary.
1790 (output_cgraph_opt_summary_p, output_node_opt_summary,
1791 input_node_opt_summary, input_cgraph_opt_section): New functions.
1792 * lto-section-in.c (lto_section_name): Add cgraphopt.
1793 * tree-inline.c (tree_function_versioning): Handle parm_num.
1794 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1795 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1797 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
1799 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1800 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1801 the insn to prefetch ratio heuristic to loops with known trip count.
1803 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
1805 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1806 (schedule_prefetches): Do not generate a prefetch if the unroll factor
1807 is far from what is required by the prefetch.
1809 2010-05-17 Jan Hubicka <jh@suse.cz>
1811 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1812 (ipcp_estimate_growth): Likewise.
1813 (ipcp_const_param_count): Likewise.
1814 (ipcp_insert_stage): Likewise.
1815 * ipa-prop.c (visit_load_for_mod_analysis): New function.
1816 (visit_store_addr_for_mod_analysis): Set used flag.
1817 (ipa_detect_param_modifications): Set used flag for SSE params;
1818 update use of walk_stmt_load_store_addr_ops.
1819 (ipa_print_node_params): Print used flag.
1820 (ipa_write_node_info): Stream used flag.
1821 (ipa_read_node_info): Likewise.
1822 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1823 (ipa_is_param_used): New function.
1824 (lto_ipa_fixup_call_notes): Remove unused declaration.
1826 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1829 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1830 * configure: Regenerate.
1831 * config.in: Regenerate.
1832 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1833 !HAVE_AS_IX86_REP_LOCK_PREFIX.
1834 Don't emit whitespace.
1835 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1836 (*rep_movsi): Likewise.
1837 (*rep_movsi_rex64): Likewise.
1838 (*rep_movqi): Likewise.
1839 (*rep_movqi_rex64): Likewise.
1840 (*rep_stosdi_rex64): Likewise.
1841 (*rep_stossi): Likewise.
1842 (*rep_stossi_rex64): Likewise.
1843 (*rep_stosqi): Likewise.
1844 (*rep_stosqi_rex64): Likewise.
1845 (*cmpstrnqi_nz_1): Use {%;} after repz.
1846 (*cmpstrnqi_nz_rex_1): Likewise.
1847 (*cmpstrnqi_1): Likewise.
1848 (*cmpstrnqi_rex_1): Likewise.
1849 (*strlenqi_1): Use {%;} after repnz.
1850 (*strlenqi_rex_1): Likewise.
1851 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1852 (*sync_compare_and_swap<mode>): Likewise.
1853 (sync_double_compare_and_swap<mode>): Likewise.
1854 (*sync_double_compare_and_swapdi_pic): Likewise.
1855 (sync_old_add<mode>): Likewise.
1856 (sync_add<mode>): Likewise.
1857 (sync_sub<mode>): Likewise.
1858 (sync_<code><mode>): Likewise.
1860 2010-05-17 Martin Jambor <mjambor@suse.cz>
1862 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1863 otr_token and polymorphic.
1864 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1865 (cgraph_clone_edge): Copy the above fields.
1866 * tree.c (get_binfo_at_offset): New function.
1867 * tree.h (get_binfo_at_offset): Declare.
1868 * ipa-prop.h (enum jump_func_type): Added known_type jump function
1869 type, reordered items, updated comments.
1870 (union jump_func_value): Added base_type field, reordered fields.
1871 (enum ipa_lattice_type): Moved down in the file.
1872 (struct ipa_param_descriptor): New field polymorphic.
1873 (ipa_is_param_polymorphic): New function.
1874 * ipa-prop.c: Include gimple.h and gimple-fold.h.
1875 (ipa_print_node_jump_functions): Print known type jump functions.
1876 (compute_complex_pass_through): Renamed to...
1877 (compute_complex_assign_jump_func): this.
1878 (compute_complex_ancestor_jump_func): New function.
1879 (compute_known_type_jump_func): Likewise.
1880 (compute_scalar_jump_functions): Create known type and complex ancestor
1882 (ipa_note_param_call): New parameter polymorphic, set the corresponding
1883 flag in the call note accordingly.
1884 (ipa_analyze_call_uses): Renamed to...
1885 (ipa_analyze_indirect_call_uses): this. New parameter target, define
1886 variable var only in the block where it is used.
1887 (ipa_analyze_virtual_call_uses): New function.
1888 (ipa_analyze_call_uses): Likewise.
1889 (combine_known_type_and_ancestor_jfs): Likewise.
1890 (update_jump_functions_after_inlining): Implemented handling of a
1891 number of new jump function types combination.
1892 (print_edge_addition_message): Removed.
1893 (make_edge_direct_to_target): New function.
1894 (try_make_edge_direct_simple_call): Likewise.
1895 (try_make_edge_direct_virtual_call): Likewise.
1896 (update_call_notes_after_inlining): Renamed to...
1897 (update_indirect_edges_after_inlining): this. Moved edge creation for
1898 indirect calls to try_make_edge_direct_simple_call, also calls
1899 try_make_edge_direct_virtual_call for virtual calls.
1900 (ipa_print_node_params): Changed the header message.
1901 (ipa_write_jump_function): Stream also known type jump functions.
1902 (ipa_read_jump_function): Likewise.
1903 (ipa_write_indirect_edge_info): Stream new fields in
1904 cgraph_indirect_call_info.
1905 (ipa_read_indirect_edge_info): Likewise.
1906 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1909 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1911 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1913 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1915 * tree.h (CALL_EXPR_ARGS): Delete.
1916 (call_expr_arglist): Delete.
1917 * tree.c (call_expr_arglist): Delete.
1918 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1919 targetm.fold_builtin.
1920 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1921 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1922 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1923 arglist parameter. Use CALL_EXPR_ARG.
1924 (picochip_expand_builtin_3op): Likewise.
1925 (picochip_expand_builtin_2opvoid): Likewise.
1926 (picochip_expand_array_get): Likewise.
1927 (picochip_expand_array_put): Likewise.
1928 (picochip_expand_array_testport): Likewise.
1929 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
1930 rather than arglist.
1931 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1933 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1934 than TREE_VALUE and TREE_CHAIN.
1935 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1936 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1939 2010-05-17 Jakub Jelinek <jakub@redhat.com>
1942 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1943 to have no fallthru edge.
1946 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1947 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1948 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1949 add BARRIER after previous bb if needed.
1951 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1953 * tree.c (build_function_type_list_1): Remove bogus assert condition.
1955 2010-05-17 Alan Modra <amodra@gmail.com>
1957 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1958 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
1959 with copy_reg rtx param.
1960 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1961 Correct cases where code for ABI_V4 did not initialise the reg
1962 used to access frame. Also leave frame_reg_rtx as sp for large
1963 frames that save no regs.
1965 2010-05-17 Martin Jambor <mjambor@suse.cz>
1968 * tree-sra.c (create_access_replacement): New parameter rename, mark
1969 the replaement for renaming only when it is true.
1970 (get_access_replacement): Pass true in the rename parameter of
1971 create_access_replacement.
1972 (get_unrenamed_access_replacement): New function.
1973 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1974 replacement declaration from it.
1976 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
1978 * function.c (try_fit_stack_local, add_frame_space): New static
1980 (assign_stack_local_1): Use them. Look for opportunities to use
1981 space previously wasted on alignment.
1982 * function.h (struct frame_space): New.
1983 (struct rtl_data): Add FRAME_SPACE_LIST member.
1984 * reload1.c (something_was_spilled): New static variable.
1985 (alter_reg): Set it.
1986 (reload): Test it in addition to testing if the frame size changed.
1988 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
1990 * config/s390/s390.c: Define sane prefetch settings and activate
1991 flag_prefetch_loop_arrays on -O3.
1992 * config/s390/s390.h: Declare that read can use write prefetch.
1994 2010-05-17 Jakub Jelinek <jakub@redhat.com>
1996 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1999 2010-05-16 Jan Hubicka <jh@suse.cz>
2001 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2002 function body; do not check stdarg field of struct function.
2004 2010-05-16 Jan Hubicka <jh@suse.cz>
2006 * cgraph.c (dump_cgraph_node): Dump versionable flag.
2007 * cgraph.h (cgraph_local_info): Add versionable flag.
2008 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2009 (ipcp_versionable_function_p): Use it.
2010 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2013 2010-05-16 Jan Hubicka <jh@suse.cz>
2015 * cgraph.c (cgraph_clone_node): Take decl argument and insert
2016 clone into hash when it is different from orig.
2017 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2018 * cgraph.h (cgraph_clone_node): Update prototype.
2019 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2020 (lto_cgraph_encoder_delete): Delete body map.
2021 (lto_cgraph_encoder_size): Move to header.
2022 (lto_cgraph_encoder_encode_body_p,
2023 lto_set_cgraph_encoder_encode_body): New.
2024 (lto_output_node): Do not take written_decls argument; output clone_of
2026 (add_node_to): Add include_body_argument; call
2027 lto_set_cgraph_encoder_encode_body on master of the clone.
2028 (add_references): Update use of add_node_to.
2029 (compute_ltrans_boundary): Likewise.
2030 (output_cgraph): Do not create written_decls bitmap.
2031 (input_node): Take nodes argument; stream in clone_of correctly.
2032 (input_cgraph_1): Update use of input_node.
2033 * lto-streamer-out.c (lto_output): Use encoder info to decide
2034 what bodies to output.
2035 * ipa-inline.c (cgraph_clone_inlined_nodes,
2036 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2037 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2038 (lto_cgraph_encoder_size): Define here.
2039 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2042 2010-05-16 Richard Guenther <rguenther@suse.de>
2044 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2046 * ipa-type-escape.c (gate_type_escape_vars): Run when
2047 -fipa-struct-reorg runs.
2048 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2049 * common.opt (fipa-type-escape): Remove.
2051 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
2053 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2054 (decode_options): Likewise.
2055 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2057 2010-05-16 Jan Hubicka <jh@suse.cz>
2059 * ipa.c (function_and_variable_visibility): Also bring local all
2062 2010-05-16 Richard Guenther <rguenther@suse.de>
2064 * alias.c (nonoverlapping_memrefs_p): Remove use of
2065 IPA type-escape information.
2067 2010-05-16 Joseph Myers <joseph@codesourcery.com>
2069 * c-common.c (c_common_reswords): Add _Static_assert for C.
2070 * c-parser.c (c_token_starts_declaration,
2071 c_parser_next_token_starts_declaration,
2072 c_parser_static_assert_declaration_no_semi,
2073 c_parser_static_assert_declaration): New.
2074 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2075 Handle static assertions if static_assert_ok.
2076 (c_parser_external_declaration, c_parser_declaration_or_fndef,
2077 c_parser_compound_statement_nostart, c_parser_label,
2078 c_parser_for_statement, c_parser_objc_methodprotolist,
2079 c_parser_omp_for_loop): All callers of
2080 c_parser_declaration_or_fndef changed.
2081 (c_parser_struct_declaration): Handle static assertions.
2082 (c_parser_compound_statement_nostart): Use
2083 c_parser_next_token_starts_declaration and
2084 c_token_starts_declaration to detect start of declarations.
2085 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2088 2010-05-16 Anatoly Sokolov <aesok@post.ru>
2090 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2091 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2092 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2093 TARGET_FUNCTION_VALUE_REGNO_P): Define.
2094 (mmix_function_outgoing_value): Rename to...
2095 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2096 (mmix_function_value_regno_p): Make static.
2097 (mmix_libcall_value): New function.
2098 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2099 mmix_function_value_regno_p): Remove declaration.
2101 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
2103 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2104 BUILT_IN_ALLOCA if stack checking is enabled.
2106 2010-05-16 Richard Guenther <rguenther@suse.de>
2108 * var-tracking.c (vars_copy_1): Inline ...
2109 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
2110 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
2111 (variable_merge_over_cur): Adjust. Merge asserts.
2112 (variable_merge_over_src): Likewise.
2113 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2114 (variable_post_merge_new_vals): Merge asserts.
2115 (variable_post_merge_perm_vals): Likewise.
2116 (find_mem_expr_in_1pdv): Likewise.
2117 (dataflow_set_different_value): Remove.
2118 (onepart_variable_different_p): Merge asserts.
2119 (variable_different_p): Likewise.
2120 (dataflow_set_different_1): Inline ...
2121 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
2122 (emit_notes_for_differences_1): Merge asserts.
2124 2010-05-16 Richard Guenther <rguenther@suse.de>
2126 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2127 * optabs.c (libfunc_decl_hash): Likewise.
2128 * varasm.c (emutls_decl): Likewise.
2130 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
2132 * c-decl.c: Don't include gimple.h.
2133 (merge_decls): Do not copy gimple_body.
2135 2010-05-15 Jason Merrill <jason@redhat.com>
2137 * c.opt: Add -fnothrow-opt.
2139 2010-05-15 Jan Hubicka <jh@suse.cz>
2141 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2143 * passes.c (ipa_write_summaries): Write all analyzed nodes.
2145 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
2147 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2148 * Makefile.in: Add it.
2149 Fix all other Makefile dependencies for changes below.
2150 * tree.h: Include it instead of defining VEC primitives here.
2151 * gimple.h: Likewise.
2153 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2154 * except.h: Include vecir.h, break dependence on tree.h.
2156 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2158 * tree-iterator.c: ...to here.
2159 * tree-iterator.h: Fix file introduction comment. Add extern markers.
2161 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
2163 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2164 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2165 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2166 tree-mudflap.h, and target.h.
2167 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2168 predict.h, tree-inline.h, gimple.h, and langhooks.h.
2169 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2170 Add FIXME for why gimple.h is still included (should be unnecessary
2171 since GCC 4.5 gimplification unit-at-a-time).
2172 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2173 * c-pragma.c: Add FIXME for why function.h needs to be included just
2174 for cfun, at front-end level.
2175 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2176 Do not include ggc.h, but include vecprim.h for VEC(char).
2177 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2178 Explain why target.h is included.
2179 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2180 Explain why gimple.h is included.
2181 * c-ppoutput.c: Do not include tm.h.
2182 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
2183 * c-parses.c: Explain why rtl.h is included, and that this (and only
2184 this) is also why tm.h must be included.
2185 Do not include except.h.
2186 * c-lang.c: Do not include ggc.h.
2188 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
2190 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2192 2010-05-15 Joseph Myers <joseph@codesourcery.com>
2194 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2195 unions by default if those structs and unions have no tags. Do
2196 not condition anonymous struct and unions handling on flag_iso.
2197 Allow anonymous structs and unions for C1X.
2198 (finish_struct): Do not diagnose lack of named fields when
2199 anonymous structs and unions present for C1X. Accept flexible
2200 array members in structure with anonymous structs or unions but no
2201 directly named fields.
2202 * doc/extend.texi (Unnamed Fields): Update.
2204 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
2206 * gimple.h (compare_field_offset): Rename into...
2207 (gimple_compare_field_offset): ...this.
2208 * gimple.c (compare_field_offset): Rename into...
2209 (gimple_compare_field_offset): ...this. Compare the full access if
2210 the offset is self-referential.
2211 (gimple_types_compatible_p): Adjust for above renaming.
2212 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
2213 DECL_NONADDRESSABLE_P flag of fields before merging them.
2215 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
2217 * tree.h (ctor_to_list): Delete.
2218 * tree.c (ctor_to_list): Delete.
2220 2010-05-15 Jan Hubicka <jh@suse.cz>
2222 * ipa-reference.c: Include toplev.h
2223 (is_proper_for_analysis): Only add to all_module_statics
2225 (write_node_summary_p, stream_out_bitmap,
2226 ipa_reference_write_optimization_summary,
2227 ipa_reference_read_optimization_summary): New.
2228 (struct ipa_opt_pass_d pass_ipa_reference): Add
2229 optimization summary streaming.
2230 * lto-cgraph.c (referenced_from_this_partition_p,
2231 reachable_from_this_partition_p): New functions.
2232 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2233 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2234 * opts.c (decode_options): Enable ipa_reference.
2235 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2236 * lto-streamer.h (referenced_from_this_partition_p,
2237 reachable_from_this_partition_p): Declare.
2239 2010-05-15 Richard Guenther <rguenther@suse.de>
2241 PR tree-optimization/44038
2242 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2243 taking the address of a V_C_E of a constant.
2245 2010-05-14 Jan Hubicka <jh@suse.cz>
2247 * tree.h (memory_identifier_string): Remove.
2248 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2249 (ipa_reference_global_vars_info_d): Remove statics_not_read and
2250 statics_not_written.
2251 (ipa_reference_optimization_summary_d): New structure.
2252 (ipa_reference_optimization_summary_t): New type and vector.
2253 (ipa_reference_vars_info_d): Embedd structures instead of using
2255 (reference_vars_to_consider): Remove out of GGC space.
2256 (module_statics_escape): Remove.
2257 (global_info_obstack): Rename to ...
2258 (optimization_summary_obstack): ... this one.
2259 (initialization_status_t): Remove.
2260 (memory_identifier_string): Remove.
2261 (get_reference_vars_info): Fix indenting.
2262 (set_reference_vars_info): Likewise.
2263 (get_reference_optimization_summary): New.
2264 (set_reference_optimization_summary): New.
2265 (get_global_reference_vars_info): Remove.
2266 (ipa_reference_get_read_global): Remove.
2267 (ipa_reference_get_written_global): Remove.
2268 (ipa_reference_get_not_read_global): Update.
2269 (ipa_reference_get_not_written_global): Update.
2270 (is_proper_for_analysis): Outlaw addressable.
2271 (propagate_bits): Update for new datastructures.
2272 (analyze_variable): Remove.
2273 (init_function_info): Update for new datastructures.
2274 (clean_function_local_data): Remove.
2275 (clean_function): Remove.
2276 (copy_global_bitmap): Use optimizations_summary_obstack.
2277 (duplicate_node_data): Duplicate optimization summary only.
2278 (remove_node_data): Remove optimization summary only.
2279 (generate_summary): Do not analyze variables; do not compute
2280 module_statics_escape; do not prune solutions by it.
2281 (read_write_all_from_decl): Fix typos in comments.
2282 (propagate): Doscover readonly and nonaddressable first;
2283 update for new datastructures; share global bitmaps.
2284 * ipa-reference.h (ipa_reference_get_read_global,
2285 ipa_reference_get_written_global): Remove.
2286 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2287 * Makefile.in: Remove ipa-refereference from GT files.
2289 2010-05-14 Jakub Jelinek <jakub@redhat.com>
2292 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2293 for all SYMBOL_REF_DECLs.
2295 2010-05-14 Jan Hubicka <jh@suse.cz>
2297 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2298 (varpool_all_refs_explicit_p): New inline function.
2299 * ipa-reference.c: Update comment.
2300 (module_statics_written): Remove.
2301 (get_static_decl): Remove.
2302 (ipa_init): Do not initialize module_statics_written.
2303 (analyze_function): Likewise.
2304 (generate_summary): Likewise; do not compute module_statics_readonly
2305 and do not update variable flags.
2306 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2307 * ipa.c: Inlucde flags.h
2308 (cgraph_local_node_p): New.
2309 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2310 promote functions to local.
2311 (ipa_discover_readonly_nonaddressable_vars): New function.
2312 (function_and_variable_visibility): Use cgraph_local_node_p.
2313 * varpool.c (varpool_finalize_decl): Set force_output for
2314 DECL_PRESERVE_P vars.
2316 2010-05-14 Jan Hubicka <jh@suse.cz>
2318 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2320 2010-05-14 Richard Guenther <rguenther@suse.de>
2322 PR tree-optimization/44119
2323 * tree-ssa-pre.c (eliminate): Properly mark replacement of
2324 a PHI node necessary.
2326 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
2328 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2330 2010-05-14 Jason Merrill <jason@redhat.com>
2333 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2334 (gimple_call_set_nothrow): New.
2335 * gimple.c (gimple_build_call_from_tree): Call it.
2336 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2339 * gimplify.c (gimplify_seq_add_stmt): No longer static.
2340 * gimple.h: Declare it.
2341 * gimple.c (gimple_build_eh_filter): No ops.
2343 2010-05-14 Jan Hubicka <jh@suse.cz>
2345 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2346 nodes already in queue.
2347 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2350 2010-05-14 Jakub Jelinek <jakub@redhat.com>
2353 * cfgexpand.c (expand_debug_expr): If non-memory op0
2354 has BLKmode, return NULL.
2356 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
2358 * config.gcc: Add support for --with-cpu option for bdver1.
2359 * config/i386/i386.h (TARGET_BDVER1): New macro.
2360 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2361 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2362 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2363 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2364 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2365 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2366 (processor_type): Add PROCESSOR_BDVER1.
2367 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2368 processor_type in config/i386/i386.h.
2369 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2370 movaps <reg, reg> instead of movapd <reg, reg> when replacing
2371 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2372 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2373 to emit packed xor instead of packed double/packed integer
2374 xor for SSE and AVX when moving a zero value.
2375 * config/i386/sse.md: Add check for
2376 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2377 movapd/movdqa for SSE and AVX.
2378 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2379 single logical operations i.e and, or and xor instead of packed double
2380 logical operations for SSE and AVX.
2381 * config/i386/i386-c.c (ix86_target_macros_internal):
2382 Add PROCESSOR_BDVER1.
2383 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2384 (has_fma4, has_xop): New.
2385 * config/i386/i386.c (bdver1_cost): New variable.
2386 (m_BDVER1): New macro.
2387 (m_AMD_MULTIPLE): Add m_BDVER1.
2388 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2389 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2390 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2391 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2392 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2393 x86_tune_sse_partial_reg_dependency,
2394 x86_tune_sse_unaligned_load_optimal,
2395 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2396 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2397 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2398 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2399 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2400 Enable/disable for bdver1.
2401 (processor_target_table): Add bdver1_cost.
2402 (cpu_names): Add bdver1.
2403 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2404 processor_alias_table.
2405 (ix86_expand_vector_move_misalign): Change.
2406 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2407 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2408 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2409 of movupd/movdqu for SSE and AVX.
2410 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2411 (ix86_tune_adjust_cost): Add code for bdver1.
2412 (standard_sse_constant_opcode): Add check for
2413 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2414 of packed double xor for SSE and AVX.
2416 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
2418 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2421 2010-05-14 Tristan Gingold <gingold@adacore.com>
2423 * toplev.c (default_debug_hooks): Remove this variable.
2424 (process_options): Remove assignments to default_debug_hooks.
2426 2010-05-14 Martin Jambor <mjambor@suse.cz>
2428 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2429 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2430 * langhooks.h (struct lang_hooks_for_decls): Removed field
2432 * tree.c (free_lang_data): Remove assignment to
2433 lang_hooks.fold_obj_type_ref.
2434 * tree.def (OBJ_TYPE_REF): Update comment.
2436 2010-05-14 Richard Guenther <rguenther@suse.de>
2438 PR tree-optimization/44124
2439 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2441 2010-05-14 Alan Modra <amodra@gmail.com>
2444 * config/rs6000/rs6000.c (struct machine_function): Reorder
2445 fields for better packing. Add lr_save_state.
2446 (rs6000_ra_ever_killed): Return lr_save_state if set.
2447 (rs6000_emit_eh_reg_restore): Set lr_save_state.
2449 2010-05-13 Jan Hubicka <jh@suse.cz>
2451 * varpool.c (decide_is_variable_needed): Drop code checking
2452 TREE_SYMBOL_REFERENCED.
2454 2010-05-13 Jan Hubicka <jh@suse.cz>
2456 * final.c (output_addr_const): Do not call mark_decl_referenced.
2457 * cgraphunit.c (process_function_and_variable_attributes): Use
2458 mark_needed_node dirrectly.
2459 (assemble_thunk): Do not call mark_decl_referenced.
2461 2010-05-13 Anatoly Sokolov <aesok@post.ru>
2463 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2465 2010-05-13 Jeff Law <law@redhat.com>
2467 * ira-conflicts.c (print_allocno_conflicts): New function broken out
2469 (print_conflicts): Call print_allocno_conflicts.
2471 2010-05-13 Jakub Jelinek <jakub@redhat.com>
2474 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2477 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
2479 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2480 t-mingw-w64 or t-mingw-w32 for multilib configuration.
2481 * config/i386/t-mingw-w32: New.
2482 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2484 2010-05-13 Martin Jambor <mjambor@suse.cz>
2486 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2488 * gimple-fold.c (get_base_binfo_for_type): New function.
2489 (gimple_get_relevant_ref_binfo): Likewise.
2490 (gimple_fold_obj_type_ref_known_binfo): Likewise.
2491 (gimple_fold_obj_type_ref): Likewise.
2492 (fold_gimple_call): Simplify condition for folding virtual calls
2493 and call gimple_fold_obj_type_ref.
2494 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2495 (gimple_fold_obj_type_ref_known_binfo): Likewise.
2497 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
2499 * config/rs6000/rs6000-protos.h
2500 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2501 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2502 (rs6000_debug_mode_dependent_address)
2503 (rs6000_mode_dependent_address_ptr): Likewise.
2505 2010-05-13 Jakub Jelinek <jakub@redhat.com>
2508 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2510 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2511 * tree-sra.c (create_access_replacement): Call unshare_expr before
2512 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2513 * dwarf2out.c: Include tree-flow.h.
2514 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2515 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2516 Handle DW_OP_bit_piece.
2517 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2518 construct_piece_list, adjust_piece_list): New functions.
2519 (add_var_loc_to_decl): Handle SRA optimized variables.
2520 Adjust for var_loc_note to loc field renaming.
2521 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2522 in VAR_LOCATION note.
2523 (new_loc_descr_op_bit_piece): New function.
2524 (dw_sra_loc_expr): New function.
2525 (dw_loc_list): Use it. Don't handle the last range after the
2526 loop, handle it inside of the loop. Adjust for var_loc_note
2527 to loc field renaming.
2528 (add_location_or_const_value_attribute): Only special case
2529 single entry loc lists if loc is NOTE_P. Adjust for
2530 var_loc_note to loc field renaming.
2531 (dwarf2out_var_location): Don't set newloc->var_loc_note
2532 and newloc->next here.
2534 2010-05-12 Jan Hubicka <jh@suse.cz>
2536 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2538 * cgraph.h (cgraph_only_called_directly_p,
2539 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2540 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2541 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2543 * ipa.c (cgraph_remove_unreachable_nodes): Use
2544 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2546 * tree-inline.c (copy_bb): Check address_taken flag.
2547 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2548 externally_visible flag.
2550 2010-05-12 Jason Merrill <jason@redhat.com>
2554 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2555 * sdbout.c (plain_type_1): Likewise.
2556 * dwarf2out.c (is_base_type): Likewise.
2557 (gen_type_die_with_usage): Likewise. Generate
2558 DW_TAG_unspecified_type for any LANG_TYPE.
2560 2010-05-12 Jan Hubicka <jh@suse.cz>
2562 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2564 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2565 (cgraph_clone_edge): Update.
2566 (cgraph_node_remove_callees): Remove indirect calls too.
2567 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2568 (cgraph_create_indirect_edge): Update prototype.
2569 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2570 is_proper_for_analysis.
2571 (add_new_function, visited_nodes, function_insertion_hook_holder,
2572 get_local_reference_vars_info, mark_address_taken, mark_address,
2573 mark_load, mark_store, check_asm_memory_clobber, check_call,
2574 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2575 (ipa_init): Do not initialize visited_nodes;
2576 function_insertion_hook_holder.
2577 (analyze_variable): Rewrite.
2578 (analyze_function): Rewrite.
2579 (copy_local_bitmap): Remove.
2580 (duplicate_node_dat): Do not duplicate local info.
2581 (generate_summary): Simplify to only walk cgraph.
2582 (write_node_summary_p, ipa_reference_write_summary,
2583 ipa_reference_read_summary): Remove.
2584 (propagate): Do not remove function insertion;
2586 (pass_ipa_reference): NULLify summary handling fields.
2587 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2588 (input_edge): Input ecf_flags.
2589 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2590 (update_indirect_edges_after_inlining): Ignore edges with unknown
2593 2010-05-12 Sriraman Tallam <tmsriram@google.com>
2595 * implicit-zee.c: New file.
2596 * tree-pass.h (pass_implicit_zee): Declare.
2597 * passes.c (init_optimization_passes): Add zee pass.
2598 * common.opt (fzee): New flag.
2599 * timevar.def (TV_ZEE): Define.
2600 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2602 * Makefile.in (implicit-zee.o): Add new build file.
2604 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
2605 Nathan Froyd <froydnj@codesourcery.com>
2607 * c-common.c (sync_resolve_params): Remove write-only variable.
2609 2010-05-12 Anatoly Sokolov <aesok@post.ru>
2611 * target.h (struct gcc_target): Add mode_dependent_address_p field.
2612 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2613 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2614 * targhooks.c (default_mode_dependent_address_p): New function.
2615 * targhooks.h (default_mode_dependent_address_p): Declare function.
2616 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2617 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2618 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2619 target hook. Change return type to bool.
2620 * recog.h (mode_dependent_address_p): Change return type to bool.
2622 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
2623 Nathan Froyd <froydnj@codesourcery.com>
2625 * tree-mudflap.c (build_function_type_0, build_function_type_1,
2626 build_function_type_2, build_function_type_3): Remove.
2627 (mudflap_init): Use build_function_type_list.
2629 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
2630 Nathan Froyd <froydnj@codesourcery.com>
2632 * coverage.c (build_fn_info_value): Call build_constructor instead of
2633 build_constructor_from_list.
2634 (build_ctr_info_value): Likewise.
2635 (build_gcov_info): Likewise.
2637 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
2639 * tree.c (build_constructor): Compute TREE_CONSTANT for the
2640 resultant constructor.
2641 (build_constructor_single): Don't set TREE_CONSTANT.
2642 (build_constructor_from_list): Don't compute TREE_CONSTANT.
2644 2010-05-12 Jan Hubicka <jh@suse.cz>
2646 * cgraph.h (struct varpool_node): Add aux.
2647 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2648 * varpool.c (varpool_remove_node): Do not remove initializer.
2649 (varpool_reset_queue): Export.
2650 (varpool_finalize_decl): Volatile vars are forced to be output.
2651 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2653 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2654 process_references, varpool_can_remove_if_no_refs): New functions.
2655 (cgraph_remove_unreachable_nodes): Handle variables too.
2657 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
2660 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2662 2010-05-12 Jakub Jelinek <jakub@redhat.com>
2665 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2666 change value of ORT_TASK.
2667 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2668 (omp_notice_threadprivate_variable): New function.
2669 (omp_notice_variable): Call it for threadprivate variables.
2670 If enclosing ctx is a task, print enclosing task rather than
2671 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
2672 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2673 if task has untied clause.
2676 * dwarf2out.c (base_type_die): Don't add name attribute here.
2677 (modified_type_die): Instead of sizetype use
2678 its underlying original type. If a DW_TAG_base_type doesn't
2679 have name added, add __unknown__.
2680 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2681 always call force_type_die instead.
2683 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
2685 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2686 for __stack_chk_guard.
2688 2010-05-11 Jakub Jelinek <jakub@redhat.com>
2690 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2691 don't call start_source_file debug hook here...
2692 (finish_options): ... but here, after outputting predefined and
2693 command line defines and undefs.
2696 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2698 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2699 optimizing away empty bb with no successors, move over its
2700 footer chain to fallthru predecessor.
2701 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2702 (rtl_split_edge): For asm goto call patch_jump_insn even if
2703 splitting fallthru edge.
2706 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2707 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2708 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2709 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2713 * c-parser.c (c_parser_expression): Mark LHS of a comma
2714 expression as read if it is a decl, handled component or
2715 COMPOUND_EXPR with that on the RHS.
2716 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2717 if it is a decl or handled component.
2719 2010-05-11 Jan Hubicka <jh@suse.cz>
2721 * lto-symtab.c (lto_symtab_free): New function.
2722 * lto-streamer.h (lto_symtab_free): Declare.
2724 2010-05-11 Jan Hubicka <jh@suse.cz>
2726 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2727 that if function is needed it is reachable.
2728 (lto_output_node): See if it the function is reachable or referenced.
2729 (output_cgraph): Update call of lto_output_node.
2730 * lto-streamer.h (reachable_from_other_partition_p): Declare.
2732 2010-05-11 Jan Hubicka <jh@suse.cz>
2734 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2737 2010-05-11 Jan Hubicka <jh@suse.cz>
2739 PR tree-optimize/44063
2740 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2742 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2744 (estimate_function_body_sizes): Compute sizes even when disregarding.
2746 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
2748 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2750 2010-05-11 Jan Hubicka <jh@suse.cz>
2752 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2753 into every boundary.
2755 2010-05-11 Jan Hubicka <jh@suse.cz>
2757 * matrix-reorg.c (matrix_reorg): Rebuild edges.
2759 2010-05-11 Jan Hubicka <jh@suse.cz>
2761 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2762 lto_streamer_cache_delete): Put nodes into heap.
2763 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2766 2010-05-11 Jan Hubicka <jh@suse.cz>
2768 * cgraphbuild.c (cgraph_rebuild_references): New.
2769 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2771 * cgraph.h (cgraph_rebuild_references): Declare.
2772 * tree-inline.c (tree_function_versioning): Use it.
2773 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2775 2010-05-11 Jan Hubicka <jh@suse.cz>
2777 * cgraph.c: Include ipa-utils.h
2778 (cgraph_create_virtual_clone): Update references.
2779 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2781 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
2783 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2784 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2787 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
2789 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2791 2010-05-11 Jakub Jelinek <jakub@redhat.com>
2793 * gcc.c (execute): For -### don't quote arguments that
2794 contain just alphanumerics and _/-. characters.
2795 * doc/invoke.texi: Document that change for -###.
2798 * df-problems.c (struct dead_debug): Add to_rescan field.
2799 (dead_debug_init): Clear to_rescan field.
2800 (dead_debug_finish): Rescan all debug insns in to_rescan
2801 bitmap and free the bitmap.
2802 (dead_debug_insert_before): Instead of rescanning debug insns
2803 immediately queue their rescanning until dead_debug_finish.
2804 (df_note_bb_compute): After dead_debug_add do continue instead
2807 2010-05-10 Jakub Jelinek <jakub@redhat.com>
2810 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2811 clear also INSN_REG_USE_LIST.
2813 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2815 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2817 2010-05-10 Jan Hubicka <jh@suse.cz>
2819 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2822 2010-05-10 Jan Hubicka <jh@suse.cz>
2824 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2826 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2827 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2828 (lto_streamer_cache_create): Init alloc pool.
2829 (lto_streamer_cache_delete): Free alloc pool.
2830 * lto-streamer.h: Include alloc pool.
2831 (lto_streamer_cache_d): Use alloc pool.
2832 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2834 2010-05-10 Jan Hubicka <jh@suse.cz>
2836 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2837 * cgraphbuild.c: Include except.h
2838 (record_type_list, record_eh_tables): New function.
2839 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2841 2010-05-10 Jan Hubicka <jh@suse.cz>
2843 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2844 __frame_dummy_init_array_entry, force_to_data): Attribute as used
2847 2010-05-10 Michael Matz <matz@suse.de>
2849 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2850 (can_reassociate_p): Use FLOAT_TYPE_P.
2851 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2852 (vect_force_simple_reduction): ... this.
2853 * tree-parloops.c (gather_scalar_reductions): Use
2854 vect_force_simple_reduction.
2855 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2856 vect_is_simple_reduction, add modify argument, if true rewrite
2857 "a-b" into "a+(-b)".
2858 (vect_is_simple_reduction, vect_force_simple_reduction): New
2860 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2862 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
2863 Vladimir Makarov <vmakarov@redhat.com>
2865 PR rtl-optimization/44012
2866 * ira-build.c (remove_unnecessary_allocnos): Nullify
2867 regno_allocno_map of the removed allocno.
2869 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2871 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2873 * configure: Regenerate.
2875 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2877 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2879 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2880 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2882 * configure: Regenerate.
2884 2010-05-10 Richard Guenther <rguenther@suse.de>
2886 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2887 marked if the entry identifier is marked.
2889 2010-05-10 Richard Guenther <rguenther@suse.de>
2891 * c-common.c (struct c_common_attributes): Add fnspec attribute.
2892 (handle_fnspec_attribute): New function.
2893 * gimple.h (gimple_call_return_flags): Declare.
2894 (gimple_call_arg_flags): Likewise.
2895 * gimple.c (gimple_call_arg_flags): New function.
2896 (gimple_call_return_flags): Likewise.
2897 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2899 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2901 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2902 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2904 (make_heapvar_for): ... this new function.
2905 (handle_rhs_call): Handle fnspec attribute argument specifiers.
2906 (handle_lhs_call): Likewise.
2907 (find_func_aliases): Adjust.
2909 2010-05-10 Richard Guenther <rguenther@suse.de>
2911 PR tree-optimization/44050
2912 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2914 2010-05-10 Wei Guozhi <carrot@google.com>
2917 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2919 2010-05-09 Joseph Myers <joseph@codesourcery.com>
2922 * c-typeck.c (lookup_field): Take a type directly. Update
2924 (build_component_ref): Update call to lookup_field.
2925 (set_init_label): Use lookup_field to find initialized field.
2926 Handle returned list of fields like a sequence of designators.
2928 2010-05-09 Richard Guenther <rguenther@suse.de>
2931 * fold-const.c (tree_single_nonzero_warnv_p): Properly
2932 handle &FUNCTION_DECL.
2934 2010-05-09 Joseph Myers <joseph@codesourcery.com>
2937 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
2938 structures and unions recursively.
2939 (detect_field_duplicates): Move duplicate detection with a hash to
2940 detect_field_duplicates_hash. Always use a hash if anonymous
2941 structures or unions are present.
2942 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2945 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
2948 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2949 detect Atom, Core 2 and Core i7.
2951 2010-05-09 Richard Guenther <rguenther@suse.de>
2953 * gcc.c (store_arg): Handle temporary file deletion for
2956 2010-05-09 Richard Guenther <rguenther@suse.de>
2959 * ipa-inline.c (estimate_function_body_sizes): Return after
2960 disregarding inline limits.
2962 2010-05-09 Richard Guenther <rguenther@suse.de>
2964 * gcc.c (store_arg): Revert last change.
2966 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
2969 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2970 (optimize_ops_list): Call it.
2972 2010-05-08 Richard Guenther <rguenther@suse.de>
2974 PR tree-optimization/44030
2975 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
2976 NECESSARY flag if we propagate from a inserted expression.
2978 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
2980 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2981 domain types as equal if they are both PLACEHOLDER_EXPRs.
2983 2010-05-08 Richard Guenther <rguenther@suse.de>
2985 * lto-wrapper.c (run_gcc): Remove linker output from
2986 command line for LTRANS invocation.
2988 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2990 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2991 lto-macho as lto_binary_reader.
2992 * target.h (struct gcc_target): New hooks lto_start and lto_end.
2993 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2994 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2995 in lto_start and lto_end calls.
2996 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
2998 (scan_prog_file): Update is_elf_or_coff call.
2999 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3001 * collect2.c (main): Fix enum comparison.
3003 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3005 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3006 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
3007 and TARGET_ASM_LTO_END.
3008 * darwin.c: Include obstack.h and lto-streamer.h.
3009 (lto_section_names_offset, lto_section_names_obstack,
3010 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
3012 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
3013 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
3014 to a temporary file.
3015 (darwin_asm_lto_end): New function. Restore asm_out_file.
3016 (darwin_asm_named_section): For LTO sections, replace the name with
3017 the offset of the section name in a string table, and build this
3019 (darwin_file_start): Initialize global vars for LTO support.
3020 (darwin_file_end): If output to asm_out_file was redirected, append it
3021 to the proper asm_out_file here. Add the section names section.
3023 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
3025 * c-pragma.c (pending_weak_d, pending_weak): New.
3026 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
3027 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
3028 handle_pragma_weak): Update the uses of pending_weaks.
3030 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3032 PR documentation/44016
3033 * doc/standards.texi (Standards): Link to unversioned
3034 cxx0x_status.html page.
3036 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
3039 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
3040 in addition to TREE_USED, to avoid "set but unused" warnings.
3042 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
3044 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3045 (is_loop_prefetching_profitable): Do not insert prefetches
3046 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3047 times the prefetch ahead distance.
3049 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
3051 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3052 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3053 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3056 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
3058 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3059 a diagnostic info when the insn-to-mem ratio is too small.
3061 2010-05-07 Richard Guenther <rguenther@suse.de>
3063 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3065 (store_arg): Queue temp_filename for deletion instead of
3068 2010-05-07 Richard Guenther <rguenther@suse.de>
3070 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3071 (run_gcc): Handle LTRANS phase invocation.
3072 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3074 2010-05-07 Jakub Jelinek <jakub@redhat.com>
3076 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3077 this is also meaningful on PARM_DECLs and RESULT_DECLs.
3079 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3081 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3083 2010-05-07 Richard Guenther <rguenther@suse.de>
3085 PR tree-optimization/44020
3086 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3087 code when PRE is not yet initialized.
3089 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3091 * config/mips/dbxmdebug.h: Remove.
3092 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3094 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
3096 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3097 with null pointer and also warn about ordered comparison of zero with
3100 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
3102 * graphite-blocking.c
3103 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3104 * graphite-clast-to-gimple.c
3105 (clast_to_gcc_expression): Same.
3106 (precision_for_value): Same.
3107 (precision_for_interval): Same.
3108 (gcc_type_for_interval): Same.
3109 (graphite_create_new_guard): Same.
3110 (compute_bounds_for_level): Same.
3111 (graphite_create_new_loop_guard): Same.
3112 * graphite-interchange.c
3113 (build_linearized_memory_access): Same.
3114 (pdr_stride_in_loop): Same.
3115 (memory_strides_in_loop_1): Same.
3116 (memory_strides_in_loop): Same.
3117 (extend_scattering): Same.
3118 (psct_scattering_dim_for_loop_depth): Same.
3119 (pbb_number_of_iterations): Same.
3121 (debug_iteration_domains): Same.
3123 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3124 (ppl_set_inhomogeneous_gmp): Same.
3125 (ppl_strip_loop): Same.
3126 (ppl_lexico_compare_linear_expressions): Same.
3127 (ppl_read_polyhedron_matrix): Same.
3128 (ppl_max_for_le_pointset): Same.
3130 (ppl_read_polyhedron_matrix): Same.
3131 (tree_int_to_gmp): Same.
3132 (gmp_cst_to_tree): Same.
3133 (ppl_set_inhomogeneous): Same.
3134 (ppl_set_inhomogeneous_tree): Same.
3135 (ppl_set_coef): Same.
3136 (ppl_set_coef_tree): Same.
3137 * graphite-sese-to-poly.c
3138 (build_pbb_scattering_polyhedrons): Same.
3139 (build_scop_scattering): Same.
3140 (scan_tree_for_params_right_scev): Same.
3141 (scan_tree_for_params): Same.
3142 (find_params_in_bb): Same.
3143 (find_scop_parameters): Same.
3144 (add_upper_bounds_from_estimated_nit): Same.
3145 (build_loop_iteration_domains): Same.
3146 (add_condition_to_domain): Same.
3147 (pdr_add_memory_accesses): Same.
3149 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
3151 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3152 CLooG's value_* macros to their respective mpz_* counterparts.
3153 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3154 (graphite_create_new_loop_guard): Same.
3155 * graphite-interchange.c (build_linearized_memory_access): Same.
3156 (pdr_stride_in_loop): Same.
3157 (memory_strides_in_loop_1): Same.
3158 (1st_interchange_profitable_p): Same.
3159 * graphite-poly.c (extend_scattering): Same.
3160 (psct_scattering_dim_for_loop_depth): Same.
3161 (pbb_number_of_iterations): Same.
3162 (pbb_number_of_iterations_at_time): Same.
3163 * graphite-poly.h (new_1st_loop): Same.
3164 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3165 (oppose_constraint): Same.
3166 (insert_constraint_into_matrix): Same.
3167 (ppl_set_inhomogeneous_gmp): Same.
3168 (ppl_set_coef_gmp): Same.
3169 (ppl_strip_loop): Same.
3170 (ppl_lexico_compare_linear_expressions): Same.
3171 (ppl_max_for_le_pointset): Same.
3172 (ppl_min_for_le_pointset): Same.
3173 (ppl_build_realtion): Same.
3174 * graphite-ppl.h (gmp_cst_to_tree): Same.
3175 (ppl_set_inhomogeneous): Same.
3176 (ppl_set_inhomogeneous_tree): Same.
3177 (ppl_set_coef): Same.
3178 (ppl_set_coef_tree): Same.
3179 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3180 (build_scop_scattering): Same.
3181 (add_value_to_dim): Same.
3182 (scan_tree_for_params_right_scev): Same.
3183 (scan_tree_for_params_int): Same.
3184 (scan_tree_for_params): Same.
3185 (find_params_in_bb): Same.
3186 (find_scop_parameters): Same.
3187 (add_upper_bounds_from_estimated_nit): Same.
3188 (build_loop_iteration_domains): Same.
3189 (create_linear_expr_from_tree): Same.
3190 (add_condition_to_domain): Same.
3191 (pdr_add_memory_accesses): Same.
3193 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
3194 Jason Merrill <jason@redhat.com>
3196 * c-common.c (c_common_reswords): Add nullptr.
3197 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
3198 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3199 (gen_type_die_with_usage): Likewise.
3200 * dbxout.c (dbxout_type): Likewise.
3201 * sdbout.c (plain_type_1): Likewise.
3203 2010-05-06 Jason Merrill <jason@redhat.com>
3205 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3206 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
3208 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3210 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3211 stripping WITH_SIZE_EXPR.
3212 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3215 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3217 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3218 list of obsolete configurations.
3219 Disabled check for obsolete configurations.
3220 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3221 Removed support for previous versions.
3222 * config/mips/iris.h: Removed.
3223 * config/mips/iris5.h: Removed.
3224 * config/mips/iris6.h: Merged old iris.h contents.
3225 (TARGET_IRIX): Removed.
3226 (DRIVER_SELF_SPECS): Removed mabi=32.
3227 (IDENT_ASM_OP): Removed undef.
3228 (STARTFILE_SPEC): Removed mabi=32.
3229 (ENDFILE_SPEC): Likewise.
3230 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3231 (MACHINE_TYPE): Update for IRIX 6.5.
3232 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3233 TARGET_IRIX by TARGET_IRIX6.
3234 (mips_file_start): Likewise.
3235 (mips_output_external): Remove IRIX 5/6 O32 support.
3236 (mips_output_function_prologue): Likewise.
3237 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3239 (TARGET_CPU_CPP_BUILTINS): Likewise.
3240 (TARGET_IRIX): Removed.
3241 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3242 (MULTILIB_DIRNAMES): Removed 32.
3243 (MULTILIB_OSDIRNAMES): Removed ../lib.
3244 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3245 (Specific, mips-sgi-irix5): Document removal.
3246 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3247 Remove references to older IRIX 6 releases and the O32 ABI.
3249 2010-05-06 Jakub Jelinek <jakub@redhat.com>
3252 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3253 instead of DF_REF_REAL_REG.
3255 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
3258 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3259 handling to still return true for x64 targets.
3261 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3263 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3265 2010-05-06 Jan Hubicka <jh@suse.cz>
3267 PR tree-optimization/43791
3268 * ipa-inline.c (update_caller_keys): Remove bogus
3269 disregard_inline_limits check.
3271 2010-05-06 Michael Matz <matz@suse.de>
3273 PR tree-optimization/43984
3274 * tree-ssa-pre.c (inserted_phi_names): Remove.
3275 (inserted_exprs): Change to bitmap.
3276 (create_expression_by_pieces): Set bits, don't append to vector.
3277 (insert_into_preds_of_block): Don't handle inserted_phi_names.
3278 (eliminate): Don't look at inserted_phi_names, remove deleted
3279 insns from inserted_exprs.
3280 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3281 (init_pre, fini_pre): Allocate and free bitmaps.
3282 (execute_pre): Insert insns on edges before elimination.
3284 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3286 * tree.c (initializer_zerop): Handle STRING_CST.
3288 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
3291 * doc/invoke.texi (Wimplicit): Document as C only.
3292 * opts.c (common_handle_option): Add argument kind.
3293 (handle_option): Rename as read_cmdline_option. Factor out code to...
3294 (handle_option): ... here. New.
3295 (handle_options): Rename as read_cmdline_options.
3296 (decode_options): Update call.
3297 (set_option): Use option index instead of option pointer. Classify
3298 diagnostics correctly.
3299 (enable_warning_as_error): Call handle_option.
3300 * opts.h (set_option): Update declaration.
3301 (handle_option): Declare.
3302 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3303 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3304 * c-opts.c (set_Wimplicit): Delete.
3305 (c_family_lang_mask): New static constant.
3306 (c_common_handle_option): Add argument kind. Use handle_option
3307 instead of set_Wimplicit.
3308 (c_common_post_options): warn_implicit and warn_implicit_int
3309 are disabled by default.
3310 * c-common.c (warn_implicit): Do not define here.
3311 * c-common.h (warn_implicit): Do not declare here.
3312 (c_common_handle_option): Update declaration.
3313 * lto-opts.c (lto_reissue_options): Update call to set_option.
3315 2010-05-06 Richard Guenther <rguenther@suse.de>
3317 PR tree-optimization/43571
3318 * domwalk.c (walk_dominator_tree): Walk the dominator
3319 sons in more optimal order.
3321 2010-05-06 Richard Guenther <rguenther@suse.de>
3323 PR tree-optimization/43934
3324 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3325 (stmt_cost): Likewise.
3326 (extract_true_false_args_from_phi): New helper.
3327 (determine_max_movement): For PHI nodes verify we can hoist them
3328 and compute their cost.
3329 (determine_invariantness_stmt): Handle PHI nodes.
3330 (move_computations_stmt): Likewise. Hoist PHI nodes in
3331 if-converted form using COND_EXPRs.
3332 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3333 (tree_ssa_lim): Likewise.
3334 * tree-flow.h (tree_ssa_lim): Adjust prototype.
3335 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3337 2010-05-06 Richard Guenther <rguenther@suse.de>
3339 PR tree-optimization/43987
3340 * tree-ssa-structalias.c (could_have_pointers): For possibly
3341 address-taken variables force pointers to be recorded.
3342 (create_variable_info_for_1): Likewise.
3343 (push_fields_onto_fieldstack): Pass in wheter all fields
3345 (find_func_aliases): Query types instead of vars whether
3346 they contain pointers where appropriate.
3348 2010-05-06 Jan Hubicka <jh@suse.cz>
3350 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3351 (record_reference, mark_address, mark_load, mark_store): Record
3353 (record_references_in_initializer): Update call of record_references.
3354 (rebuild_cgraph_edges): Remove all references before rebuiding.
3355 * cgraph.c (cgraph_create_node): Clear ref list.
3356 (cgraph_remove_node): Remove references.
3357 (dump_cgraph_node): Dump references.
3358 (cgraph_clone_node): Clone references.
3359 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3360 (struct cgraph_node, varpool_node): Add ref_lst.
3361 * ipa-ref.c: New file.
3362 * ipa-ref.h: New file.
3363 * ipa-ref-inline.h: New file.
3364 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3365 (referenced_from_other_partition_p): New function.
3366 (lto_output_varpool_node): Take set arugment; call
3367 referenced_from_other_partition.
3368 (lto_output_ref): New.
3369 (add_references): New.
3371 (output_cgraph): Compute boundary based on references; output refs.
3372 (output_varpool): Accept cgraph_node_set argument.
3375 (input_cgraph): Call input_refs.
3376 * lto-section-in.c (lto_section_name): Add refs.
3377 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3378 (ipa-ref.o): New file.
3379 * varpool.c (varpool_node): Clear ipa ref list.
3380 (varpool_remove_node): Remove references.
3381 (dump_varpool_node): Dump references.
3382 (varpool_assemble_decl): Only compile finalized ones.
3383 (varpool_extra_name_alias): Initialize ref list.
3384 * lto-streamer.c (lto-get_section_name): Add .refs section.
3385 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3386 (referenced_from_other_partition_p): Declared.
3388 2010-05-06 Ira Rosen <irar@il.ibm.com>
3390 PR tree-optimization/43901
3391 * tree-vect-stmts.c (vectorizable_call): Assert that vector
3392 type is not NULL if it's transformation phase, and return
3393 FALSE if it's analysis.
3394 (vectorizable_conversion, vectorizable_operation,
3395 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3397 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
3399 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3401 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3403 * config/mips/mips-protos.h
3404 (mips_small_register_classes_for_mode_p): Delete prototype.
3406 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
3408 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.