1 2010-10-20 Dmitry Melnik <dm@ispras.ru>
3 * fold-const.c (fold_binary_loc): New transformation.
5 2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
8 * config/i386/sse.md (reduc_splus_v8sf): Updated.
9 (reduc_splus_v4df): Likewise.
11 2010-10-20 Richard Guenther <rguenther@suse.de>
13 PR tree-optimization/45860
14 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
15 conditional store replacement for non-register type stores.
17 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
19 * stor-layout.c (skip_simple_constant_arithmetic): New function.
20 (self_referential_size): Use it instead of skip_simple_arithmetic.
22 2010-10-20 Olivier Hainque <hainque@adacore.com>
24 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
25 If the current function calls eh_return, claim live all registers
26 that we need to check for liveness otherwise.
28 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
30 * c-decl.c (c_write_global_declarations): Call
31 objc_write_global_declarations when compiling Objective-C.
32 * c-lang.c (finish_file): Removed.
34 2010-10-19 DJ Delorie <dj@redhat.com>
36 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
37 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
38 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
39 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
40 * doc/tm.texi: Regenerate.
41 * targhooks.h (default_label_align_after_barrier_max_skip,
42 default_loop_align_max_skip, default_label_align_max_skip,
43 default_jump_align_max_skip): Declare.
44 * target.def (label_align_after_barrier_max_skip): New.
45 (loop_align_max_skip): New.
46 (label_align_max_skip): New.
47 (jump_align_max_skip): New.
48 * system.h (poison): Add those macros to the list.
49 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
50 (LOOP_ALIGN_MAX_SKIP): Remove.
51 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
52 (JUMP_ALIGN_MAX_SKIP): Remove.
53 (default_label_align_after_barrier_max_skip): New.
54 (default_loop_align_max_skip): New.
55 (default_label_align_max_skip): New.
56 (default_jump_align_max_skip): New.
57 (compute_alignments): Use the new hooks.
58 (shorten_branches): Likewise.
60 2010-10-19 Richard Henderson <rth@redhat.com>
62 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
63 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
64 (fma4i_fmadd_<mode>): New.
65 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
66 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
67 standard fma patterns.
68 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
70 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
71 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
72 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
74 2010-10-19 Paul Koning <pkoning@equallogic.com>
76 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
77 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
79 2010-10-19 Richard Henderson <rth@redhat.com>
81 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
82 (fmadf4, *fmsdf4, *nfmadf4): New.
83 (fmaxf4, *fmsxf4, *nfmaxf4): New.
85 2010-10-19 Michael Eager <eager@eagercon.com>
87 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
88 Use sjlj unwind info for exceptions.
90 2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
93 * dwarf2out.c (add_calling_convention_attribute): Flag main
94 Fortran subroutine with DW_AT_main_subprogram.
96 2010-10-19 Nick Clifton <nickc@redhat.com>
98 * config/rx/rx.c (rx_function_value): Small integer types are
100 (rx_promote_function_mode): New function.
101 (TARGET_PROMOTE_FUNCTION_MODE): Define.
103 2010-10-19 Nick Clifton <nickc@redhat.com>
105 * config/mep/mep.c (mep_print_operand): Use
106 targetm.strip_name_encoding.
107 (mep_output_aligned_common): Likewise.
109 2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
110 * gengtype.c (new_structure): Remove ad-hoc "location_s"
113 2010-10-18 Richard Henderson <rth@redhat.com>
115 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
116 (fma (neg a) (neg b) c) and (fma a (neg b) c).
118 2010-10-18 Richard Henderson <rth@redhat.com>
120 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
121 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
122 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
123 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
124 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
125 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
126 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
127 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
128 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
129 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
130 (bdesc_multi_arg): Remove the corresponding builtins.
131 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
132 (UNSPEC_FMA4_FMSUBADD): Remove.
133 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
134 * config/i386/sse.md (FMA4MODEF4): Remove.
136 (fma<mode>4): New expander.
137 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
138 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
139 (*fma4i_fmsub_<mode>): Similarly.
140 (*fma4i_fnmadd_<mode>): Similarly.
141 (*fma4i_fnmsub_<mode>): Similarly.
142 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
143 with the first operand.
144 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
145 of explicit arithmetic. Macroize with AVXMODEF2P.
146 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
147 (xop_frcz<mode>2): Macroize with FMAMODE.
148 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
150 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
152 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
153 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
154 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
155 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
156 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
157 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
158 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
159 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
161 2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
163 PR rtl-optimization/45966
164 * combine.c (try_combine): If added_sets_2, deal with the case
165 where i0 feeds i1 and i1 feeds i2.
167 2010-10-18 Jan Hubicka <jh@suse.cz>
169 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
170 preserve flags before trying to guess on visibility.
171 (varpool_externally_visible_p): New function.
172 (function_and_variable_visibility): Use it.
174 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
176 Implemented parsing @synthesize and @dynamic for Objective-C.
177 * c-parser.c (c_parser_external_declaration): Recognize
178 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
179 (c_parser_objc_at_synthesize_declaration): New.
180 (c_parser_objc_at_dynamic_declaration): New.
182 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
184 * c-parser.c (c_parser_objc_class_declaration): After finding an
185 error, parse the whole declaration then reset parser->error.
187 2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
190 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
191 * builtins.c (mode_has_fma): Ditto.
193 2010-10-18 Steve Ellcey <sje@cup.hp.com>
197 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
199 2010-10-18 Joseph Myers <joseph@codesourcery.com>
201 * config/i386/i386.c (ix86_option_override_internal): Define and
202 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
204 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
205 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
207 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
209 Merge from 'apple/trunk' branch on FSF servers.
210 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
211 following Objective-C change:
213 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
216 * c-parse.in (objc_quals): Build objc qualifier list same way
219 2010-10-18 Jan Hubicka <jh@suse.cz>
221 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
222 function_and_variable_visibility): Revert accidental commit.
224 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
226 Merge from 'apple/trunk' branch on FSF servers.
227 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
228 the following Objective-C change:
230 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
233 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
234 'volatilized' type used in a typeof operator.
236 2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
238 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
239 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
240 rewrite modelled on gimple_purge_dead_eh_edges.
241 (gimple_purge_all_dead_abnormal_call_edges): New function.
242 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
243 directly instead of through gimple_purge_dead_abnormal_call_edges.
244 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
245 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
246 removed AB side-effects from one of its statements.
247 (init_pre): Initialize need_ab_cleanup.
248 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
249 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
251 2010-10-18 Jakub Jelinek <jakub@redhat.com>
254 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
255 on computed goto argument.
257 2010-10-18 Richard Guenther <rguenther@suse.de>
259 PR tree-optimization/45967
260 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
261 (could_have_pointers): Likewise.
262 (handle_rhs_call, handle_const_call, handle_pure_call,
263 find_func_aliases, intra_create_variable_infos): Remove calls to them.
264 (struct fieldoff): Add must_have_pointers field.
265 (type_must_have_pointers): New function.
266 (field_must_have_pointers): Likewise.
267 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
268 Adjust field merging.
269 (create_function_info_for): May-have-pointers of varinfo is
271 (create_variable_info_for_1): Likewise.
273 2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
275 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
276 of operands to vec_concat.
278 2010-10-18 Richard Guenther <rguenther@suse.de>
281 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
282 also clear references to entries of it.
284 2010-10-18 Andi Kleen <ak@linux.intel.com>
288 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
289 (doc, distclean, install-common): Remove reference to gccbug.
290 * configure: Regenerate.
291 * configure.ac (all_outputs): Remove gccbug.
292 * doc/configfiles.texi: Remove references to gccbug.
293 * doc/sourcebuild.texi: Dito.
295 2010-10-18 Jakub Jelinek <jakub@redhat.com>
298 * fold-const.c (fold_binary_loc): If integer_pow2p has
299 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
301 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
302 Jeremie Salvucci <jeremie.salvucci@free.fr>
304 * gengtype.c (verbosity_level): Add variable.
305 (set_gc_used): Count variables for verbosity.
306 (close_output_files): Backing up files, counting written ones
308 (write_types): Count emitted functions for verbosity. Added
310 (write_enum_defn): Count structures for verbosity. Added debug
312 (gengtype_long_options): Add "verbose" & "backupdir".
313 (print_usage): Ditto.
314 (main): Verbose display of parsed files.
316 * gengtype.h (verbosity_level): Add declaration.
318 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
320 * gengtype.c (parse_program_options): Add allocation of
321 plugin_files, and correct test on nb_plugin_files.
323 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
325 Merge from 'apple/trunk' branch on FSF servers.
327 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
330 * c-decl.c (undeclared_variable): Issue diagnostic on
331 private 'ivar' access.
333 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
336 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
337 generated sequence to match *avx_vperm2f128<mode>_nozero.
338 (vec_interleave_lowv4df): Ditto.
339 (vec_interleave_highv8sf): Ditto.
340 (vec_interleave_lowv8sf): Ditto.
342 2010-10-17 Kai Tietz <kai.tietz@onevision.com>
344 * libgcov.c (create_file_directory): Enable it for win32 case.
345 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
346 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
347 (GCOV_PREFIX_SKIP): Likewise.
349 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
351 * doc/objc.texi (GNU Objective-C runtime API): New section.
352 (Modern GNU Objective-C runtime API): New section.
353 (Traditional GNU Objective-C runtime API): New section.
354 (Executing code before main): Mention that this section is
355 specific to the GNU Objective-C runtime.
356 (Garbage Collection): Same.
358 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
360 * c-parser.c (c_parser_for_statement): Move initialization of
361 cond and incr before if.
363 2010-10-17 Anatoly Sokolov <aesok@post.ru>
365 * target.def (preferred_output_reload_class): New hook.
366 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
367 * doc/tm.texi: Regenerate.
368 * targhooks.c (default_preferred_output_reload_class): New function.
369 * targhooks.h (default_preferred_output_reload_class): Declare.
370 * reload.c (find_dummy_reload): Change rclass argument type from
371 enum reg_class to reg_class_t. Change this_alternative array type
372 from enum reg_class to reg_class_t.
373 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
374 (push_reload): Change preferred_class variable type to reg_class_t.
375 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
376 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
377 argument type from enum reg_class to reg_class_t. Use
378 HARD_REGISTER_NUM_P predicate.
379 * recog.h (reg_fits_class_p): Update prototype.
381 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
382 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
384 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
385 static. Change regclass argument and result types from enum reg_class
387 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
389 2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
391 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
392 visibility enum, and handle @package.
394 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
396 * doc/objc.texi (What you can and what you cannot do in +load):
397 Document that sending messages to constant string objects in +load
398 is not guaranteed to work.
400 2010-10-16 Jan Hubicka <jh@suse.cz>
403 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
404 existence of refrences before removing the function.
406 2010-10-16 Jan Hubicka <jh@suse.cz>
408 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
409 only_called_at_startup and only_called_at_exit.
410 (cgraph_propagate_frequency): Compute only_called_at_startup and
412 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
414 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
416 * predict.c (compute_function_frequency): Initialize the new flags.
418 2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
420 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
421 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
422 on the bounds of its domain.
423 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
425 2010-10-16 Anatoly Sokolov <aesok@post.ru>
427 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
428 * config/avr/avr-protos.h (preferred_reload_class): Remove.
429 * config/avr/avr.c (preferred_reload_class): Remove.
430 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
431 * config/pa/pa.c (emit_move_sequence): Update comment
432 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
433 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
434 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
435 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
436 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
437 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
438 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
439 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
440 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
441 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
442 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
443 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
444 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
446 2010-10-16 Joseph Myers <joseph@codesourcery.com>
448 * opts.c (set_fast_math_flags,
449 set_unsafe_math_optimizations_flags): Make static.
450 * toplev.h (set_fast_math_flags,
451 set_unsafe_math_optimizations_flags): Remove prototypes.
453 2010-10-16 Joseph Myers <joseph@codesourcery.com>
455 * config/arm/arm.c (arm_option_optimization): Set
456 flag_section_anchors to 1 not 2.
457 * config/i386/i386.c (ix86_option_override_internal): Check
458 global_options_set.x_flag_zee and
459 global_options_set.x_flag_omit_frame_pointer.
460 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
462 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
463 global_options_set.x_flag_omit_frame_pointer.
464 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
465 opts->x_flag_section_anchors to 1 not 2.
466 * config/sh/sh.c (sh_option_optimization): Don't set
467 flag_schedule_insns to 2.
468 (sh_option_override): Check
469 global_options_set.x_flag_schedule_insns.
470 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
472 2010-10-16 Kai Tietz <kai.tietz@onevision.com>
474 * configure.ac: Make sure inhibit_libc remains false for mingw targets
476 * configure: Regenerated.
478 2010-10-15 Xinliang David Li <davidxl@google.com>
480 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
482 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
483 into a recursive function.
485 2010-10-15 Uros Bizjak <ubizjak@gmail.com>
487 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
490 2010-10-15 Joseph Myers <joseph@codesourcery.com>
492 * target.def (target_option.init_struct): New hook.
493 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
494 * doc/tm.texi: Regenerate.
495 * hooks.c (hook_void_gcc_optionsp): New.
496 * hooks.h (hook_void_gcc_optionsp): Declare.
497 * langhooks-def.h (lhd_init_options_struct): Remove.
498 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
499 * langhooks.c (lhd_init_options_struct): Remove.
500 * opts.c (init_options_struct): Also call
501 targetm.target_option.init_struct.
502 * config/i386/i386.c (ix86_option_init_struct,
503 TARGET_OPTION_INIT_STRUCT): New.
504 (ix86_option_optimization): Move some settings to
505 ix86_option_init_struct.
506 * config/pdp11/pdp11.c (pdp11_option_init_struct,
507 TARGET_OPTION_INIT_STRUCT): New.
508 (pdp11_option_optimization): Move some settings to
509 pdp11_option_init_struct.
510 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
511 rs6000_option_init_struct. Use options structure pointer.
512 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
513 * config/s390/s390.c (s390_option_init_struct,
514 TARGET_OPTION_INIT_STRUCT): New.
515 (s390_option_optimization): Don't set
516 flag_asynchronous_unwind_tables here.
517 * config/sh/sh.c (sh_option_init_struct,
518 TARGET_OPTION_INIT_STRUCT): New.
519 (sh_option_optimization): Don't set flag_finite_math_only here.
520 * config/spu/spu.c (spu_option_optimization): Replace by
521 spu_option_optimization. Use options structure pointer.
522 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
524 2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
526 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
528 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
529 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
530 (Standard names): Document fma.
532 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
533 __FP_FAST_FMAF, __FP_FAST_FMAL.
535 * builitns.c (expand_builtin_mathfn_ternary): New function for
536 expanding ternary math functions, like fma.
537 (expand_builtin): Call it for the fma builtins.
539 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
542 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
543 vectorizable functions to support vectorizing fma.
545 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
548 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
549 (UNSPEC_VSX_MSUB): Ditto.
550 (UNSPEC_VSX_NMADD): Ditto.
551 (UNSPEC_VSX_NMSUB): Ditto.
552 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
553 of UNSPEC. Renumber combiner patterns.
554 (vsx_fmsub<mode>4*): Ditto.
555 (vsx_fnmadd<mode>4*): Ditto.
556 (vsx_fnmsub<mode>4*): Ditto.
558 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
559 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
560 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
561 (altivec_vmaddfp_1): Ditto.
562 (altivec_vmaddfp_2): Ditto.
563 (atlivec_mulv4sf3): Ditto.
564 (altivec_vnmsubfp): Ditto.
565 (altivec_vnmsubfp_1): Ditto.
566 (altivec_vnmsubfp_2): Ditto.
567 (altivec_vnmsubfp_3): Delete.
569 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
572 (fnmasf4_fpr): Ditto.
573 (fnmssf4_fpr): Ditto.
577 (fnmadf4_fpr): Ditto.
578 (fnmsdf4_fpr): Ditto.
580 * optabs.h (OTI_fma): Add fma optab.
583 * genopinit.c (optabs): Set fma optab.
585 * rtl.def (FMA): Add FMA rtl.
587 * tree.h (mode_has_fma): New function to return if MODE supports a
588 fast multiply and add instruction.
589 * builtins.c (mode_has_fma): Ditto.
591 2010-10-15 Jan Hubicka <jh@suse.cz>
593 * lto-streamer-out.c (write_symbol): Use pointer set of seen
594 objects instead of bitmap.
595 (produce_symtab): Likewise; output defined symbols first.
597 2010-10-15 Jie Zhang <jie@codesourcery.com>
599 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
600 Option Summary and Index.
602 2010-10-15 Richard Guenther <rguenther@suse.de>
604 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
605 for automatic variables again.
607 2010-10-15 Joseph Myers <joseph@codesourcery.com>
609 * doc/extend.texi (Variable Length): Don't refer to VLAs not
612 2010-10-15 Joseph Myers <joseph@codesourcery.com>
614 * config/rx/rx.c (rx_option_optimization): Change to
615 rx_override_options_after_change. Don't change
616 flag_lto_compression_level. Don't check for changes to whether
617 FPU instructions can be used. Check and set only
618 flag_finite_math_only, not other fast-math flags.
619 (rx_option_override): Call rx_override_options_after_change.
620 (TARGET_OPTION_OPTIMIZATION): Remove.
621 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
623 2010-10-15 Joseph Myers <joseph@codesourcery.com>
625 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
626 disable section anchors for lang_hooks.name[4] != 'O'.
628 2010-10-15 Joseph Myers <joseph@codesourcery.com>
630 * config/frv/frv.c (frv_option_optimization,
631 TARGET_OPTION_OPTIMIZATION): Remove.
632 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
634 2010-10-15 Michael Matz <matz@suse.de>
636 * cgraphunit.c (clone_of_p): Define unconditionally.
638 2010-10-15 Richard Guenther <rguenther@suse.de>
641 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
643 2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
645 * ifcvt.c (find_active_insn_before): New function.
646 (find_active_insn_after): New function.
647 (cond_exec_process_if_block): Use new functions to replace
648 prev_active_insn() and next_active_insn().
650 2010-10-14 Yao Qi <yao@codesourcery.com>
653 * config/arm/arm.c (arm_build_builtin_va_list): Assign
654 va_list_name to TYPE_STUB_DECL (va_list_type).
656 2010-10-14 Jan Hubicka <jh@suse.cz>
659 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
660 redirected to clone, be happy.
661 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
662 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
663 former_clone_of unconditionally.
665 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
667 Merge from FSF apple 'trunk' branch.
668 2006 Fariborz Jahanian <fjahanian@apple.com>
670 Radars 4436866, 4505126, 4506903, 4517826
671 * c-parser.c (c_parser, objc_property_attr_context) New flag.
672 (c_lex_one_token): Handle property attributes.
673 (c_parser_external_declaration): Handle @property.
674 (c_parser_declaration_or_fndef): Warn on invalid attributes before
675 @alias, @class, @end and @property objc keywords.
676 (c_parser_objc_methodprotolist): Handle @property.
677 (c_parser_objc_property_attrlist): New.
678 (c_parser_objc_at_property): New.
679 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
680 (build_modify_expr): Likewise.
682 2010-10-14 Jakub Jelinek <jakub@redhat.com>
684 PR tree-optimization/46008
685 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
687 2010-10-14 Richard Guenther <rguenther@suse.de>
689 PR tree-optimization/44913
690 * tree-data-ref.c (disjoint_objects_p): Remove.
691 (dr_may_alias_p): Simplify. Only hand the base object to
693 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
694 some more trees, bail out instead of asserting.
695 (ptr_derefs_may_alias_p): Likewise. Export.
696 (refs_may_alias_p_1): Handle STRING_CSTs.
697 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
699 2010-10-14 Joseph Myers <joseph@codesourcery.com>
702 * c-typeck.c (build_binary_op): Don't try to compute a semantic
703 type with excess precision for boolean operations.
705 2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
706 Basile Starynkevitch <basile@starynkevitch.net>
708 * gengtype.c: Include getopt.h and version.h.
710 (lang_bitmap, struct outf, outf_p)
711 (get_output_file_with_visibility, oprintf): Definitions moved to
713 (output_files, header_file, srcdir, srcdir_len, this_file)
714 (do_dump): No more static variables.
716 (dbgprint_count_type_at): Added new function.
717 (gengtype_long_options): New.
718 (print_usage, print_version, parse_program_options): New.
719 (main): Call parse_program_options, and removed old option
720 handling code. Added some debug output.
722 * gengtype.h: Updated copyright year.
723 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
724 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
725 Moved from gengtype.c to here.
726 (do_debug, read_state_filename, write_state_filename): New variables.
727 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
730 (REVISION): Always defined.
731 (version.o): Removed ifdef REVISION_c.
732 (s-gtype): Pass arguments to build/gengtype program.
733 (build/version.o): Added building rule.
734 (build/gengtype$(build_exeext)): Added build/version.o.
736 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
738 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
739 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
742 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
744 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
745 may_trap_or_fault_p instead of may_trap_p predicate.
746 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
747 (substitute_placeholder_in_expr): Likewise.
748 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
749 flag on MEM_REF nodes.
750 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
751 flags on INDIRECT_REF nodes.
753 2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
755 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
756 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
757 (arm*-*-eabi*) <tm_file>: Likewise.
758 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
759 (frv-*-*linux*) <tm_file>: Likewise.
760 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
761 and associated helper macros.
762 * config/frv/frv-abi.h: Delete.
764 2010-10-14 Richard Guenther <rguenther@suse.de>
767 * tree.def (NULLPTR_TYPE): New tree code.
768 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
769 * dwarf2out.c (is_base_type): Likewise.
770 (gen_type_die_with_usage): Likewise.
771 * sdbout.c (plain_type_1): Likewise.
772 * tree.c (build_int_cst_wide): Likewise.
773 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
775 2010-10-14 Joseph Myers <joseph@codesourcery.com>
777 * params.c (params_finished): New.
778 (add_params): Assert !params_finished.
779 (finish_params): New.
780 (set_param_value_internal): Take params and params_set
781 parameters. Assert params_finished.
782 (set_param_value, maybe_set_param_value): Take params and
783 params_set parameters. Update calls to set_param_value_internal.
784 (set_default_param_value): Assert !params_finished. Don't use
785 set_param_value_internal.
786 (default_param_value, init_param_values): New.
787 * params.h (struct param_info): Change value to default_value.
789 (set_param_value, maybe_set_param_value): Add params and
790 params_set parameters.
791 (PARAM_VALUE): Get parameters from global_options.
792 (PARAM_SET_P): Remove.
793 (finish_params, default_param_value, init_param_values): New.
794 * common.opt (param_values): New Variable.
795 * config/arm/arm.c (arm_option_override): Pass extra arguments to
796 maybe_set_param_value.
797 * config/i386/i386.c (ix86_option_override_internal): Pass extra
798 arguments to maybe_set_param_value.
799 * config/picochip/picochip.c (picochip_option_override): Pass
800 extra arguments to maybe_set_param_value.
801 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
802 extra arguments to maybe_set_param_value.
803 * config/s390/s390.c (s390_option_override): Use
804 maybe_set_param_value instead of set_param_value. Pass extra
805 arguments to maybe_set_param_value.
806 * config/sparc/sparc.c (sparc_option_override): Pass extra
807 arguments to maybe_set_param_value.
808 * config/spu/spu.c (spu_option_override): Pass extra arguments to
809 maybe_set_param_value.
810 * opts.c (handle_param): Take opts and opts_set parameters.
811 Update call to set_param_value.
812 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
813 initial_loop_invariant_max_bbs_in_loop): Remove.
814 (init_options_once): Don't set them.
815 (init_options_struct): Initialize parameters structures.
816 (default_options_optimization): Use default_param_value when
817 restoring defaults. Update calls to maybe_set_param_value.
818 (finish_options): Update calls to maybe_set_param_value.
819 (common_handle_option): Update calls to handle_param and
821 * toplev.c (DEFPARAM): Update definition for changes to param_info.
822 (general_init): Call finish_params.
824 2010-10-14 Nick Clifton <nickc@redhat.com>
826 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
827 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
828 (FIRST_PSEUDO_REGISTER): Increase by one.
829 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
830 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
831 (MODES_TIEABLE): Call mn10300_modes_tieable.
832 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
833 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
834 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
835 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
836 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
837 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
838 (mn10300_cc_status_mdep): Delete.
839 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
840 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
841 the combine-stack-adjust pass.
842 (print_operand): Use the mode of the comparison operation to
843 select the comparison suffix.
844 (notice_update_cc): Delete.
845 (mn10300_secondary_reload_class): Remove test for stack pointer
847 (output_tst): Rename to mn10300_output_cmp.
848 (impossible_plus_operand): Move into predicates.md.
849 (mn10300_legitimize_address): Make static.
850 (mn10300_legitimate_address_p): Make static. Only allow SI sized
851 constant pic operands.
852 (mn10300_legitimate_constant_p): New function.
853 (mn10300_case_values_threshold): Make static.
854 (mn10300_hard_regno_mode_ok): New function.
855 (mn10300_modes_tieable): New function.
856 (mn10300_select_cc_mode): New function.
857 * config/mn10300/predicates.md (impossible_plus_operand): Define.
858 * config/mn10300/mn10300-protos.h: Tidy.
859 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
860 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
861 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
862 with clobbers or sets of CC_REG.
864 (mov*): Remove use of CLR instruction.
865 (cbranch_si4_<code>): New pattern/split.
866 (integer_conditional_branch): New pattern.
867 (cbranch_sf4_<code>): New pattern/split.
868 (float_conditional_branch): New pattern.
869 (casesi): Use addsi3 pattern instead of movsi pattern to add and
870 move a value at the same time.
871 (cc0 peepholes): Remove.
873 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
875 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
876 on RTX_FRAME_RELATED_P insns and the insn to which
877 NOTE_INSN_EPILOGUE_BEG is attached.
878 * sched-vis.c (print_value): Allow NULL value.
880 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
882 PR rtl-optimization/45570
883 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
884 assert that we are pipelining outer loops. Allow returning
887 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
889 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
890 (tidy_control_flow): Tidy vertical space.
891 (sel_remove_bb): New variable idx. Use it to remember the basic
892 block index before deleting the block.
893 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
894 (sel_merge_blocks): ... here.
895 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
897 2010-10-14 Jakub Jelinek <jakub@redhat.com>
899 * cse.c (is_dead_reg): Change into inline function that is not
900 called through for_each_rtx.
901 (set_live_p): Adjust caller.
902 (insn_live_p): Don't reset DEBUG_INSNs here.
903 (struct dead_debug_insn_data): New data.
904 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
905 (delete_trivially_dead_insns): If there is just one setter for the
906 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
907 and add DEBUG_INSN for it right before the removed setter and
908 use the DEBUG_EXPR instead of the dead pseudo.
910 2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
912 * et-forest.c (et_nca): Return NULL immediately when
913 the dominance forest has disjoint components.
915 2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
917 * ira.c (setup_class_hard_regs): Fix typo in indexing
918 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
920 2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
922 * graph.c (inbb): New variable.
923 (start_bb): Set inbb to 1 if output is inside of a building block.
924 (end_bb): Check if output is inside of a building block.
926 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
928 PR rtl-optimization/45912
929 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
930 regno of registers instead of their index to compute the alignment.
932 2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
934 * config/i386/i386.c (ix86_build_const_vector): Check vector
935 mode instead of scalar mode.
936 (ix86_build_signbit_mask): Likewise.
937 (ix86_expand_fp_absneg_operator): Updated.
938 (ix86_expand_copysign): Likewise.
939 (ix86_expand_int_vcond): Likewise.
940 (ix86_emit_swdivsf): Likewise.
941 (ix86_sse_copysign_to_positive): Likewise.
942 (ix86_expand_sse_fabs): Likewise.
943 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
944 * config/i386/sse.md (copysign<mode>3): Likewise.
945 (sse2_cvtudq2ps): Likewise.
946 (vec_unpacku_float_hi_v4si): Likewise.
947 (vec_unpacku_float_lo_v4si): Likewise.
949 * config/i386/i386.c (ix86_builtins): Add
950 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
951 (bdesc_args): Likewise.
952 (ix86_builtin_vectorized_function): Support
953 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
954 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
955 and IX86_BUILTIN_CVTPS2DQ256.
956 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
958 * config/i386/sse.md (STORENT_MODE): New.
959 (VEC_FLOAT_MODE): Likewise.
960 (VEC_EXTRACT_MODE): Likewise.
961 (*avx_cvtdq2pd256_2): Likewise.
962 (vec_pack_trunc_v4df): Likewise.
963 (vec_interleave_highv8sf): Likewise.
964 (vec_interleave_lowv8sf): Likewise.
965 (storent<mode>): Macroized.
966 (<code><mode>2: absneg): Likewise.
967 (copysign<mode>3): Likewise.
968 (vec_extract<mode>): Likewise.
971 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
974 2010-10-13 Richard Guenther <rguenther@suse.de>
975 H.J. Lu <hongjiu.lu@intel.com>
977 * config/i386/sse.md (reduc_splus_v8sf): Add.
978 (reduc_splus_v4df): Likewise.
979 (vec_unpacks_hi_v8sf): Likewise.
980 (vec_unpacks_lo_v8sf): Likewise.
981 (*avx_cvtps2pd256_2): Likewise.
982 (vec_unpacks_float_hi_v8si): Likewise.
983 (vec_unpacks_float_lo_v8si): Likewise.
984 (vec_interleave_highv4df): Likewise.
985 (vec_interleave_lowv4df): Likewise.
987 2010-10-13 Richard Guenther <rguenther@suse.de>
990 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
991 alone if there are no virtual methods.
993 2010-10-13 Richard Henderson <rth@redhat.com>
995 * expr.c (build_personality_function): Take parameter LANG instead
996 of parameter NAME. Build the name based on the lang prefix and the
997 unwind method in use.
998 * tree.c (lhd_gcc_personality): Update call to
999 build_personality_function.
1001 2010-10-13 Richard Guenther <rguenther@suse.de>
1004 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
1006 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
1008 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
1009 Canonicalize input operands of ASM_OPERANDS insns.
1011 2010-10-13 Richard Guenther <rguenther@suse.de>
1013 PR tree-optimization/45788
1014 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
1015 EH update until fixup-cfg.
1017 2010-10-13 Julian Brown <julian@codesourcery.com>
1019 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
1020 from CORE_REGS and GENERAL_REGS classes.
1021 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
1022 final constraint for register preferencing.
1024 2010-10-13 Richard Guenther <rguenther@suse.de>
1026 PR tree-optimization/45970
1027 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
1028 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
1029 (stmt_kills_ref_p): Likewise.
1030 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
1032 2010-10-13 Richard Guenther <rguenther@suse.de>
1034 PR tree-optimization/45982
1035 * tree-ssa-structalias.c (make_constraints_to): New function.
1036 (make_constraint_to): Implement in terms of make_constraints_to.
1037 (find_func_aliases): Properly make return values of pure/const
1038 functions escape if they assign to sth that is not a pointer.
1040 2010-10-13 Richard Guenther <rguenther@suse.de>
1043 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1044 Fixup the CFG when EH was fixed up.
1046 2010-10-13 Ira Rosen <irar@il.ibm.com>
1048 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
1049 Use operand's type for POINTER_PLUS_EXPR.
1051 2010-10-13 Alexandre Oliva <aoliva@redhat.com>
1053 * c-parser.c (c_parser_for_statement): Initialize incr.
1055 2010-10-12 Xinliang David Li <davidxl@google.com>
1057 PR tree-optimization/45972
1058 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
1059 with too many arguments.
1061 2010-10-12 Jakub Jelinek <jakub@redhat.com>
1064 * tree-ssa-forwprop.c: Include expr.h.
1065 (constant_pointer_difference, simplify_builtin_call): New functions.
1066 (tree_ssa_forward_propagate_single_use_vars): Call
1067 simplify_builtin_call on builtin calls.
1069 2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
1071 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
1072 (*adddi3_extend_sp32): Likewise.
1073 (*subdi3_insn_sp32): Likewise.
1074 (*subdi3_extend_sp32): Likewise.
1075 (*negdi2_sp32): Use negative test for consistency.
1077 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
1079 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
1080 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1081 * config/fixed-bit.h: Likewise.
1082 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1083 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1084 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
1085 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
1086 (DF_SIZE): Likewise.
1087 * doc/tm.texi: Regenerate.
1089 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
1091 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
1092 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
1093 (*isel_reversed_unsigned_<mode>): New.
1094 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
1095 as valid comparisons and adjust operands and output appropriately.
1096 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
1098 2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
1100 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
1101 DATA_ALIGNMENT and add COND parameter. Update comments above.
1102 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
1103 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
1105 2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
1108 * exec-tool.in: Support '-plugin' as the second option to the linker.
1110 2010-10-12 Richard Henderson <rth@redhat.com>
1113 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
1114 (expand_stack_vars): Assert large base allocated when used.
1116 2010-10-12 Richard Guenther <rguenther@suse.de>
1118 * tree-ssa-structalias.c (get_constraint_for_1): Constants
1119 only point to nonlocal, not anything.
1121 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
1123 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
1124 unwind info for exceptions.
1126 2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1129 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
1130 Document optional target selector.
1132 2010-10-12 Joseph Myers <joseph@codesourcery.com>
1134 * flag-types.h: New.
1135 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
1136 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
1138 (OPTIONS_H): Define.
1139 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
1141 * configure.ac (tm_include_list): Include options.h not flags.h.
1142 * configure: Regenerate.
1143 * flags.h: Include flag-types.h. Include options.h at top of file
1145 (enum debug_info_type, enum debug_info_level, enum
1146 debug_info_usage, enum symbol_visibility, struct visibility_flags,
1147 enum ira_algorithm, enum ira_region, enum excess_precision, enum
1148 graph_dump_types, enum stack_check_type,
1149 enum warn_strict_overflow_code): Move to flag-types.h
1150 * opth-gen.awk: Include flag-types.h in options.h.
1152 2010-10-12 Jakub Jelinek <jakub@redhat.com>
1154 * expr.c (store_expr): Share code for STRING_CST and
1155 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
1156 check if target is a MEM.
1158 * rtl.h: Include hashtab.h.
1159 (iterative_hash_rtx): New prototype.
1160 * rtl.c (iterative_hash_rtx): New function.
1161 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
1162 (output_loc_list): Return immediately if emitted is set, set it.
1163 (hash_loc_operands, hash_locs, hash_loc_list,
1164 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
1165 optimize_location_lists_1, optimize_location_lists): New function.
1166 (dwarf2out_finish): Call optimize_location_lists.
1167 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
1169 2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1173 * Makefile.in ($(lang_checks_parallel))
1174 ($(lang_checks_parallelized)): Use single quotes for
1175 $(RUNTESTFLAGS), to allow passing quoted content.
1177 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1179 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
1180 actual_oldval. Use __builtin_expect.
1181 (SUBWORD_VAL_CAS): Likewise.
1183 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
1185 * recog.c (nonmemory_operand): Call immediate_operand for
1186 CONSTANT_P operands.
1188 2010-10-11 Uros Bizjak <ubizjak@gmail.com>
1190 * config/i386/i386.md (movmem<mode>): Macroize expander from
1191 movmem{si,di} using SWI48 mode iterator.
1192 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
1193 *strmovsi_rex_1 using P mode iterator.
1194 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
1195 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
1196 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
1197 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
1198 (setmem<mode>): Macroize expander from setmem{si,di} using
1199 SWI48 mode iterator.
1200 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
1201 *strsetsi_rex_1 using P mode iterator.
1202 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
1203 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
1204 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
1205 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
1206 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
1207 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
1208 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
1210 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
1211 *strlenqi_rex_1 using P mode iterator.
1213 2010-10-11 Bernd Schmidt <bernds@codesourcery.com>
1216 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
1218 (mark_ref_live, mark_ref_dead): Use them.
1219 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
1220 Save the original reg, and use the new functions.
1221 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
1223 (check_and_make_def_conflict): Save the original reg.
1225 2010-10-11 Martin Jambor <mjambor@suse.cz>
1228 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
1231 2010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1233 * Makefile.in ($(lang_checks_parallel))
1234 ($(lang_checks_parallelized)): Use single quotes for
1235 $(RUNTESTFLAGS), to allow passing quoted content.
1238 * opt-functions.awk (BEGIN): New section.
1239 (lower, upper, digit, alnum): New variables.
1240 (static_var, opt_sanitized_name): Use alnum instead of character
1241 classes, for non-C locale.
1242 * optc-gen.awk: Likewise.
1243 * opth-gen.awk: Likewise.
1245 2010-10-11 Anatoly Sokolov <aesok@post.ru>
1247 * target.def (preferred_reload_class): New hook.
1248 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
1249 * doc/tm.texi: Regenerate.
1250 * targhooks.c (default_preferred_reload_class): New function.
1251 * targhooks.h (default_preferred_reload_class): Declare.
1252 * reload.c (find_dummy_reload): Change preferred_class variable type
1253 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
1255 (find_reloads): Change goal_alternative array type from int to
1256 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
1257 (push_reload, find_reloads_address_part): Use
1258 TARGET_PREFERRED_RELOAD_CLASS target hook.
1259 * reload1.c (emit_input_reload_insns): Ditto.
1260 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
1261 hook. Change rclass argument and secondary_class variable types from
1262 'enum reg_class' to reg_class_t.
1264 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
1265 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
1266 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
1267 Change regclass argument and result types from enum reg_class to
1269 (TARGET_PREFERRED_RELOAD_CLASS): Define.
1271 2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
1273 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
1274 in masking operations.
1275 (simplify_const_unary_operation): Likewise.
1276 (simplify_binary_operation_1): Likewise.
1277 (simplify_const_binary_operation): Likewise.
1278 (simplify_const_relational_operation): Likewise.
1279 (simplify_ternary_operation): Likewise.
1280 (simplify_immed_subreg): Likewise.
1282 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1285 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
1286 (TARGET_SUPPORTS_WEAK): New.
1287 * doc/tm.texi: Regenerate.
1288 * defaults.h (SUPPORTS_WEAK): Update comment.
1289 (TARGET_SUPPORTS_WEAK): New.
1290 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
1291 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
1293 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
1294 make_decl_one_only): Likewise.
1295 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
1296 TARGET_SUPPORTS_WEAK.
1297 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
1298 instead of SUPPORTS_WEAK.
1300 2010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1302 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
1304 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
1306 * vec.h (VEC_qsort): Define.
1307 * dbxout.c (output_used_types): Use it.
1308 * df-scan.c (df_sort_and_compress_refs): Likewise.
1309 (df_sort_and_compress_mws): Likewise.
1310 * genautomata.c (uniq_sort_alt_states): Likewise.
1311 (evaluate_equiv_classes): Likewise.
1312 (output_trans_table): Likewise.
1313 (output_state): Likewise.
1314 * gimplify.c (compare_case_labels): Likewise.
1315 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
1316 * ipa.c (build_cdtor_fns): Likewise.
1317 * lto.c (lto_wpa_write_files): Likewise.
1318 * sel-sched.c (fill_vec_av_set): Likewise.
1319 * tree-predcom.c (determine_roots_comp): Likewise.
1320 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
1321 (splice_param_accesses): Likewise.
1322 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
1323 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
1324 (reassociate_bb): Likewise.
1325 * tree-ssa-sccvn.c (sort_scc): Likewise.
1326 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
1328 2010-10-11 Ian Lance Taylor <iant@google.com>
1330 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
1331 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
1332 TREE_THIS_NOTRAP when appropriate.
1333 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
1334 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
1335 newly created MEM_REF.
1337 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
1339 Nathan Froyds patch to hooks FUNCTION_ARG etc.
1340 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
1341 (picochip_incoming_function_arg): Delete.
1342 (picochip_arg_advance): Delete.
1343 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
1344 (FUNCTION_INCOMING_ARG): Delete.
1345 (FUNCTION_ARG_ADVANCE): Delete.
1346 * config/picochip/picochip.c (picochip_function_arg): Take a
1347 const_tree and a bool.
1348 (picochip_incoming_function_arg): Likewise.
1349 (picochip_arg_advance): Likewise.
1350 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1351 (TARGET_FUNCTION_ARG_ADVANCE): Define.
1353 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1356 * ipa.c (build_cdtor): Delete endless loop.
1358 2010-10-07 Andi Kleen <ak@linux.intel.com>
1360 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
1362 (checksum-options): Add.
1363 (cc1-dummy): Remove.
1364 (cc1-checksum): Change to run checksum over object files
1366 * dummy-checksum.c: Remove.
1367 * genchecksum.c: Update copyright.
1368 (usage): Allow multiple arguments.
1370 (dosum): Change for incremental checksum. Remove C output.
1371 (main): Iterate over all argument files. Add C output.
1373 2010-10-11 Joseph Myers <joseph@codesourcery.com>
1375 * params.c (set_param_value_internal): New.
1376 (set_param_value): Use set_param_value_internal.
1377 (maybe_set_param_value, set_default_param_value): New.
1378 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
1379 (maybe_set_param_value, set_default_param_value): Declare.
1380 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
1381 * config/i386/i386.c (ix86_option_override_internal): Use
1382 maybe_set_param_value.
1383 * config/ia64/ia64.c (ia64_option_default_params,
1384 TARGET_OPTION_DEFAULT_PARAMS): New.
1385 (ia64_option_optimization): Move some code to
1386 ia64_option_default_params.
1387 * config/picochip/picochip.c (picochip_option_override): Use
1388 maybe_set_param_value.
1389 * config/rs6000/rs6000.c (rs6000_option_default_params,
1390 TARGET_OPTION_DEFAULT_PARAMS): New.
1391 (rs6000_option_override_internal): Use maybe_set_param_value.
1392 (rs6000_option_optimization): Move some code to
1393 rs6000_option_default_params.
1394 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
1395 * config/sh/sh.c (sh_option_default_params,
1396 TARGET_OPTION_DEFAULT_PARAMS): New.
1397 (sh_option_optimization): Move some code to sh_option_default_params.
1398 * config/sparc/sparc.c (sparc_option_override): Use
1399 maybe_set_param_value.
1400 * config/spu/spu.c (spu_option_default_params,
1401 TARGET_OPTION_DEFAULT_PARAMS): New.
1402 (spu_option_optimization): Move some code to spu_option_default_params.
1403 (spu_option_override): Use maybe_set_param_value.
1404 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
1405 * doc/tm.texi: Regenerate.
1406 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
1407 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
1409 (default_options_optimization): Use maybe_set_param_value.
1410 (finish_options): Use maybe_set_param_value.
1411 * target.def (target_option.default_params): New hook.
1412 * toplev.c (general_init): Call targetm.target_option.default_params.
1414 2010-10-11 Ira Rosen <irar@il.ibm.com>
1416 PR tree-optimization/45902
1417 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
1418 vector type for constants, unless it's a pointer.
1420 2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1422 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
1424 2010-10-11 Jakub Jelinek <jakub@redhat.com>
1427 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
1428 (ix86_delegitimize_address): Use it.
1430 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
1432 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
1434 2010-10-10 Uros Bizjak <ubizjak@gmail.com>
1436 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
1437 to cum struct in the call to function_arg_advance.
1438 (alpha_function_arg_advance): Mark named as unused.
1440 2010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1442 * config/mips/mips.c (mips_handle_option): Make "value" with
1445 2010-10-09 Richard Henderson <rth@redhat.com>
1448 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
1449 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
1450 required_align, tidy the code a bit. Emit split_stack code in the
1451 right place. Mark the return value with the alignment properly.
1452 * expr.h (allocate_dynamic_stack_space): Update decl.
1453 * builtins.c (expand_builtin_apply): Update call to
1454 allocate_dynamic_stack_space.
1455 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
1456 * calls.c (initialize_argument_information): Update call to
1457 allocate_dynamic_stack_space.
1458 (expand_call): Likewise.
1460 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
1461 Don't update_stack_alignment here.
1462 (alloc_stack_frame_space): Make ALIGN unsigned.
1463 (stack_var_cmp): Sort by alignment too.
1464 (partition_stack_vars): Don't merge large and small alignment vars.
1465 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
1466 Take care when BASE is not virtual_stack_vars_rtx.
1467 (expand_stack_vars): Allocate dynamic stack space for large
1468 alignment variables.
1469 (expand_one_stack_var): Update all to expand_one_stack_var_at.
1470 (defer_stack_allocation): True for large alignment vars.
1471 (update_stack_alignment): Merge into ...
1472 (expand_one_var): ... here.
1473 (gimple_expand_cfg): Place code from expand_stack_vars.
1475 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1477 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1478 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
1479 (pdp11_function_arg_advance): New function.
1480 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1482 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1484 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
1485 * libgcc2.c: Likewise.
1487 2010-10-09 Richard Guenther <rguenther@suse.de>
1490 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
1491 Properly check if a decl is an automatic var.
1493 2010-10-09 Richard Guenther <rguenther@suse.de>
1496 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
1498 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1500 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
1501 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1502 * config/mmix/mmix.c (mmix_function_arg): Rename to...
1503 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
1505 (mmix_function_arg): New function.
1506 (mmix_function_incoming_arg): New function.
1507 (mmix_function_arg_advance): New function.
1508 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1509 (TARGET_FUNCTION_ARG_ADVANCE): Define.
1511 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1513 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1514 * config/vax/vax.c (vax_function_arg): New function.
1515 (vax_function_arg_advance): New function.
1516 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1518 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1520 * config/pa/pa-protos.h (function_arg): Delete.
1521 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1522 * config/pa/pa.c (function_arg): Rename to...
1523 (pa_function_arg): ...this. Make static. Take a const_tree and
1525 (pa_function_arg_advance): New function.
1526 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1528 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1530 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1531 * config/m68k/m68k.c (m68k_function_arg): New function.
1532 (m68k_function_arg_advance): New function.
1533 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1535 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1537 * config/avr/avr-protos.h (function_arg): Delete.
1538 (function_arg_advance): Delete.
1539 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1540 * config/avr/avr.c (function_arg): Rename to...
1541 (avr_function_arg): ...this. Make static. Take a const_tree and
1543 (function_arg_advance): Rename to...
1544 (avr_function_arg_advance): ...this. Make static. Take a
1545 const_tree and a bool.
1546 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1548 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1550 * config/alpha/alpha-protos.h (function_arg): Delete.
1551 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1552 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
1553 * config/alpha/alpha.c (function_arg): Rename to...
1554 (alpha_function_arg): ...this. Make static. Take a const_tree and
1555 a bool. Delete TARGET_ABI_UNICOSMK code.
1556 (alpha_function_arg_advance): New function.
1557 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1559 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1561 * config/mep/mep-protos.h (mep_function_arg): Delete.
1562 (mep_function_arg_advance): Delete.
1563 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1564 * config/mep/mep.c (mep_function_arg): Make static. Take a
1565 const_tree and a bool.
1566 (mep_function_arg_advance): Likewise.
1567 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1569 2010-10-09 Richard Guenther <rguenther@suse.de>
1571 PR tree-optimization/45945
1572 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
1574 2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
1576 PR tree-optimization/45612
1577 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
1578 Test LABEL_DECLs as well. Fix formatting issues.
1579 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
1580 whose label is present in NON_SSA_VARS.
1581 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
1582 as well. Fix formatting issues.
1583 (visit_bb): Fix typos and formatting issue.
1585 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1587 PR tree-optimization/45950
1588 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
1589 before initializing vno->op.
1591 2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
1593 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
1594 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
1596 2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
1599 * config/i386/i386.c (ix86_binary_operator_ok): Support
1600 "andhi/andsi/anddi" as a zero-extending move.
1602 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1604 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
1605 into a temporary array.
1607 2010-10-08 Jakub Jelinek <jakub@redhat.com>
1609 PR tree-optimization/45903
1610 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
1611 of {A,L}SHIFTRT of MEM.
1613 2010-10-08 Richard Guenther <rguenther@suse.de>
1615 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
1616 Re-construct BLOCK_VARS.
1617 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
1618 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
1619 * tree.c (free_lang_data_in_block): Remove.
1620 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
1621 Do not touch the BLOCK tree.
1622 * expr.c (expand_expr_real_1): Allow externals.
1624 2010-10-08 Richard Guenther <rguenther@suse.de>
1626 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
1627 Do not output BLOCK_SUBBLOCKS.
1628 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
1629 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
1630 Re-construct BLOCK_SUBBLOCKS of parent block.
1631 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
1632 for BINFO_BASE_ACCESSES.
1634 2010-10-08 Joseph Myers <joseph@codesourcery.com>
1636 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
1637 (TREE_H): Include $(FLAGS_H) instead of options.h.
1638 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
1639 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1640 * common.opt (flag_complex_method, flag_evaluation_order,
1641 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
1642 Variable declarations.
1643 * configure.ac (tm_include_list): Include flags.h instead of options.h.
1644 * configure: Regenerate.
1645 * flags.h: Condition out contents for target libraries. Include
1646 options.h at end of file.
1647 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
1648 flag_evaluation_order, flag_warn_unused_result): Remove.
1649 * gcc.c (main): Intialize global_options with global_options_init.
1650 * langhooks-def.h (lhd_init_options_struct): Declare.
1651 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1652 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
1653 * langhooks.c (lhd_init_options_struct): New.
1654 * langhooks.h (struct lang_hooks): Add init_options_struct.
1655 Update comment on init_options.
1656 * optc-gen.awk: Generate initializer for global_options_init, not
1658 * opth-gen.awk: Condition out structure declarations for target
1659 libraries. Declare global_options_init.
1660 * opts-common.c: Include flags.h instead of options.h.
1661 * opts.c (flag_warn_unused_result): Remove.
1662 (read_cmdline_options): Take gcc_options parameters. Pass them to
1663 read_cmdline_option.
1664 (initial_lang_mask, initial_min_crossjump_insns,
1665 initial_max_fields_for_field_sensitive,
1666 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
1667 (init_options_once): New. Split out of decode_options.
1668 (init_options_struct): New. Split out of decode_options.
1669 (decode_cmdline_options_to_array_default_mask): New.
1670 (default_options_optimization): New. Split out of decode_options.
1671 (decode_options): Move most code to other functions. Update call
1672 to read_cmdline_options.
1673 (finish_options): New. Split out of decode_options.
1674 * opts.h (decode_options): Add gcc_options parameters.
1675 (init_options_once, init_options_struct,
1676 decode_cmdline_options_to_array_default_mask): New.
1677 * toplev.c (flag_complex_method, flag_ira_algorithm,
1678 flag_ira_region, flag_evaluation_order): Remove.
1679 (general_init): Use global_options_init for initial flag values
1681 (toplev_main): Call init_options_once, init_options_struct,
1682 lang_hooks.init_options_struct,
1683 decode_cmdline_options_to_array_default_mask and
1684 lang_hooks.init_option before decode_options. Update arguments to
1686 * tree.h: Include flags.h instead of options.h.
1688 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1690 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1692 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1694 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
1696 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1697 (FUNCTION_INCOMING_ARG): Delete.
1698 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
1699 (function_arg_slotno): Likewise. Take bool arguments.
1700 (sparc_arg_partial_bytes): Update call to it.
1701 (function_arg): Rename to...
1702 (sparc_function_arg_1): ...this. Take bool arguments.
1703 (sparc_function_arg, sparc_function_incoming_arg): New functions.
1704 (function_arg_advance): Rename to...
1705 (sparc_function_arg_advance): ...this. Take bool argument.
1706 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
1707 (TARGET_FUNCTION_INCOMING_ARG): Define.
1709 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1711 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
1713 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1714 * config/bfin/bfin.c (function_arg_advance): Rename to...
1715 (bfin_function_arg_advance): ...this. Make static. Take const_tree
1717 (function_arg): Rename to...
1718 (bfin_function_arg): ...this. Make static. Take const_tree and bool
1720 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1722 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1724 * config/score/score-protos.h (score_function_arg): Delete.
1725 (score_function_arg_advance): Delete.
1726 * config/score/score3.h (score3_function_arg_advance): Take a
1727 const_tree and a bool.
1728 (score3_function_arg): Likewise.
1729 * config/score/score7.h (score7_function_arg_advance): Likewise.
1730 (score7_function_arg): Likewise.
1731 * config/score/score3.c (score3_classify_arg): Likewise.
1732 (score3_function_arg_advance, score3_function_arg): Likewise.
1733 * config/score/score7.c (score7_classify_arg): Likewise.
1734 (score7_function_arg_advance, score7_function_arg): Likewise.
1735 * config/score/score.c (score_function_arg_advance): Likewise.
1736 (score_function_arg): Likewise. De-const-ify `cum' argument.
1737 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1739 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1741 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
1742 (s390_function_arg): Delete.
1743 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1744 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
1745 (s390_function_arg_integer): Likewise.
1746 (s390_function_arg_advance): Make static. Take a const_tree and
1748 (s390_function_arg): Likewise.
1749 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1751 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1753 * config/spu/spu-protos.h (spu_function_arg): Delete.
1754 * config/spu/spu.h (FUNCTION_ARG): Delete.
1755 (FUNCTION_ARG_ADVANCE): Move code to ...
1756 * config/spu/spu.c (spu_function_arg_advance): New function.
1757 (spu_function_arg): Make static. Take a const_tree and a bool.
1758 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
1759 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1761 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1763 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1765 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1767 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
1768 (init_vn_nary_op_from_op): New function.
1769 (init_vn_nary_op_from_stmt): New function.
1770 (vn_nary_op_lookup_1): New function.
1771 (sizeof_vn_nary_op): New function.
1772 (alloc_vn_nary_op_noinit): New function.
1773 (alloc_vn_nary_op): New function.
1774 (vn_nary_op_insert_into): New function.
1775 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
1776 (vn_nary_op_lookup): Likewise.
1777 (vn_nary_op_lookup_stmt): Likewise.
1778 (vn_nary_op_insert_pieces): Likewise.
1779 (vn_nary_op_insert): Likewise.
1780 (vn_nary_op_insert_stmt): Likewise.
1781 (copy_nary): Likewise.
1782 (set_value_id_for_result): New function.
1783 (set_hashtable_value_ids): Call it.
1785 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1787 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1788 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
1790 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1792 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
1793 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1795 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
1798 * cse.c (cse_extended_basic_block): Preserve cc0 info across
1799 debug isnsn. Skip them when searching for cc0 setter.
1800 (set_live_p): Skip debug insns when searching for cc0 user.
1802 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
1808 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
1809 type of MEM_REFs to INTEGER_CSTs.
1811 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
1813 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
1814 m68hc11_print_operand_address.
1816 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
1818 * builtins.c (rewrite_call_expr): Move code to...
1819 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
1820 (rewrite_call_expr_array): New function.
1821 (fold_builtin_sprintf_chk_1): New function.
1822 (fold_builtin_sprintf_chk): Call it.
1823 (gimple_fold_builtin_sprintf_chk): Likewise.
1824 (fold_builtin_snprintf_chk_1): New function.
1825 (fold_builtin_snprintf_chk): Call it.
1826 (gimple_fold_builtin_snprintf_chk): Likewise.
1827 (gimple_rewrite_call_expr): Delete.
1829 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
1831 * config.host: Update copyright year.
1833 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
1835 * config.host (host_lto_plugin_soname): New shell variable.
1836 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
1837 * config.in: Regenerate.
1838 * configure: Regenerate.
1839 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
1840 LTO plugin shared library.
1842 2010-10-07 Richard Henderson <rth@redhat.com>
1844 * target.h (enum unwind_info_type): Move ...
1845 * coretypes.h: ... here.
1847 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
1849 * doc/objc.texi (Fast enumeration protocol): Mention that
1850 'unsigned int' can also be used instead of 'unsigned long' in
1851 countByEnumeratingWithState:objects:count:.
1853 2010-10-07 Martin Jambor <mjambor@suse.cz>
1855 * tree-sra.c (struct access): New field grp_assignment_write.
1856 (dump_access): Dump grp_assignment_write.
1857 (build_accesses_from_assign): Set grp_assignment_write.
1858 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
1859 (mark_read_status): Renamed to mark_rw_status, individual values
1861 (analyze_access_subtree): Changed type of mark_write to
1862 mark_read_status. Fixed propagating of mark_read and
1863 mark_write. Changed benefit estimate. Updated comment.
1865 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
1868 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
1869 check for vectype_out returned by get_vectype_for_scalar_type().
1871 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
1874 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
1875 constraint, add register specifier in instruction template.
1876 (neon_vec_pack_trunc_<mode>): Likewise.
1877 (neon_vec_<US>mult_<mode>): Add register specifier to
1878 instruction template.
1880 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
1882 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
1884 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
1885 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
1886 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
1887 (cygwin2.o): Likewise.
1888 * config/i386/cygwin1.c: Delete file.
1889 * config/i386/cygwin2.c: Likewise.
1890 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
1891 make all {%!mno-cygwin} ones unconditional.
1892 (STARTFILE_SPEC): Likewise.
1893 (REAL_LIBGCC_SPEC): Likewise.
1894 (LIB_SPEC): Likewise.
1895 (CXX_WRAP_SPEC): Likewise.
1896 (LINK_SPEC): Likewise.
1897 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
1898 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
1899 (cygwin_gplusplus_include_dir): Delete now-unused array.
1900 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
1901 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
1902 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
1903 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
1904 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
1905 (cygwin_local_include_dir): Delete now-unused array.
1906 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
1907 (cygwin_cross_include_dir): Delete now-unused array.
1908 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
1909 (cygwin_tool_include_dir): Delete now-unused array.
1910 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
1911 (cygwin_standard_include_dir): Delete now-unused array.
1912 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
1913 (GEN_CVT_ARRAY): Delete now-unused macro definition.
1914 (cvt_to_mingw): Delete now-unused array.
1915 (mingw_scan): Remove prototype of deleted function.
1916 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
1917 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
1918 * doc/invoke.texi (-mcygwin): Don't document removed option.
1919 (-mno-cygwin): Likewise.
1921 2010-10-07 Richard Guenther <rguenther@suse.de>
1923 * machmode.h (mode_for_vector): Declare.
1924 * stor-layout.c (mode_for_vector): New function, split out from ...
1925 (layout_type): ... here.
1926 * tree-vectorizer.h (current_vector_size): Declare.
1927 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
1928 mask vector type is available.
1929 (get_vectype_for_scalar_type): Rename to ...
1930 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
1932 (get_vectype_for_scalar_type): New wrapper around
1933 get_vectype_for_scalar_type_and_size using current_vector_size.
1934 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
1935 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
1936 of vect_analyze_loop here.
1937 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
1938 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
1940 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
1941 V8SF to V8SI conversion builtin.
1943 2010-10-07 Richard Guenther <rguenther@suse.de>
1945 * target.def (autovectorize_vector_sizes): New target hook.
1946 * targhooks.c (default_autovectorize_vector_sizes): New function.
1947 * targhooks.h (default_autovectorize_vector_sizes): Declare.
1948 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
1950 * doc/tm.texi: Update.
1951 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
1952 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1954 2010-10-07 Richard Guenther <rguenther@suse.de>
1956 * target.def (units_per_simd_word): Rename to ...
1957 (preferred_simd_mode): ... this. Return mode instead of size.
1958 * targhooks.c (default_units_per_simd_word): Rename to ...
1959 (default_preferred_simd_mode): ... this. Return word_mode.
1960 * targhooks.h (default_preferred_simd_mode): Declare.
1961 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
1962 (arm_preferred_simd_mode): ... this. Re-implement.
1963 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
1964 (ix86_preferred_simd_mode): ... this. Re-implement.
1965 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
1966 (sparc_preferred_simd_mode): ... this. Re-implement.
1967 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
1968 (mips_preferred_simd_mode): ... this. Re-implement.
1969 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
1970 (rs6000_preferred_simd_mode): ... this. Re-implement.
1971 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
1972 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
1973 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
1974 * doc/tm.texi: Update.
1976 2010-10-07 Richard Guenther <rguenther@suse.de>
1979 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
1982 2010-10-07 Alan Modra <amodra@gmail.com>
1984 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
1985 rather than sign extension by hand.
1987 2010-10-07 Jan Hubicka <jh@suse.cz>
1990 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
1992 2010-10-07 Richard Guenther <rguenther@suse.de>
1995 * configure.ac: Fix typo.
1996 * configure: Regenerated.
1998 2010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2000 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
2001 define_builtin_std where it's unnecessary.
2002 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
2004 2010-10-06 Anatoly Sokolov <aesok@post.ru>
2006 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
2007 * doc/tm.texi.in: Regenerate.
2008 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
2009 * targhooks.c (default_class_likely_spilled_p): Don't use the
2010 CLASS_LIKELY_SPILLED_P macro.
2012 * config/arm/arm.md: Update comment.
2014 2010-10-06 Jan Hubicka <jh@suse.cz>
2016 * ipa.c (cgraph_remove_unreachable_nodes): External references can
2018 (cgraph_externally_visible_p): We can not bring local comdats that
2019 are known to linker; fix handling of internal visibility.
2020 (function_and_variable_visibility): Likewise.
2022 2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
2024 PR rtl-optimization/45394
2025 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
2026 (struct rtx_subst_pair): Remove AFTER field.
2027 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
2028 (propagate_for_debug): Remove MOVE parameter and adjust.
2029 (try_combine): In the special case where I2 is a PARALLEL, combine only
2030 destinations of SETs and set I2SRC to the I2 source.
2031 Adjust calls to propagate_for_debug throughout.
2032 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
2035 2010-10-06 Olivier Hainque <hainque@adacore.com>
2037 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
2038 switch on insn codes as sequence of ifs.
2040 2010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
2042 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
2043 be UI_NONE for picochip.
2044 (picochip_option_override): Do not disable exception flags.
2045 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2048 2010-10-06 Richard Guenther <rguenther@suse.de>
2050 * Makefile.in (regmove.o): Depend on $(TARGET_H).
2052 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
2054 Implemented fast enumeration for Objective-C.
2055 * c-parser.c (objc_could_be_foreach_context): New.
2056 (c_lex_one_token): Recognize RID_IN keyword in a potential
2057 Objective-C foreach context.
2058 (c_parser_declaration_or_fndef): Added parameter. Accept
2059 Objective-C RID_IN keyword as terminating a declaration; in that
2060 case, return the declaration in the new parameter.
2061 (c_parser_extenral_declaration): Updated calls to
2062 c_parser_declaration_or_fndef.
2063 (c_parser_declaration_or_fndef): Same change.
2064 (c_parser_compound_statement_nostart): Same change.
2065 (c_parser_label): Same change.
2066 (c_parser_objc_methodprotolist): Same change.
2067 (c_parser_omp_for_loop): Same change.
2068 (c_parser_for_statement): Detect and parse Objective-C foreach
2070 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
2071 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
2072 fast enumeration parsing code to turn off the c99 error but still
2073 perform checks on the loop declarations.
2074 * c-tree.h (check_for_loop_decls): Updated declaration.
2075 * doc/objc.texi: Document fast enumeration.
2077 2010-10-06 Nick Clifton <nickc@redhat.com>
2079 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
2080 (MDR_REGNUM): Define.
2081 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
2082 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
2083 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
2084 (REGISTER_NAMES): Add MDR.
2085 (DWARF2_DEBUGGING_INFO): Define to 1.
2086 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2087 (F): New function. Sets RTX_FRAME_RELATED_P.
2088 (mn10300_gen_multiple_store): Use F.
2089 (expand_prologue): Use F. Use gen_movsf() to push floating
2091 (expand_epilogue): Use gen_movsf() to pop floating point registers.
2092 (mn10300_option_override): Disable combine stack adjust pass.
2094 2010-10-06 Thomas Schwinge <thomas@schwinge.name>
2097 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
2098 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
2100 2010-10-06 Jakub Jelinek <jakub@redhat.com>
2102 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
2103 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
2104 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
2105 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
2106 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
2107 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
2108 BUILT_IN_TOUPPER): Mark as leaf.
2111 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2112 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2113 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2114 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2115 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
2116 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
2117 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
2119 2010-10-05 Anatoly Sokolov <aesok@post.ru>
2121 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
2122 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2123 (m68hc11_class_likely_spilled_p): New function.
2125 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
2127 * c-parser.c (c_parser_objc_method_definition): Updated comment.
2129 2010-10-05 Jan Hubicka <jh@suse.cz>
2131 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
2133 * opts.c (decode_options): Handle lto partitions.
2134 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
2135 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
2137 2010-10-05 Jan Hubicka <jh@suse.cz>
2139 * cgraphunit.c (assemble_function): Output thunks and aliases before
2140 the function itself.
2142 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
2144 * config/picochip/picochip.c (picochip_option_override): Disable
2145 exception flags for picochip.
2147 2010-10-05 Joseph Myers <joseph@codesourcery.com>
2149 * opts-common.c (handle_option, handle_generated_option,
2150 read_cmdline_option, set_option): Add diagnostic_context
2151 parameter. Update calls among these functions.
2152 (set_option): Don't use global_dc.
2153 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
2154 (decode_options): Pass global_dc to enable_warning_as_error.
2155 (common_handle_option): Pass global_dc to enable_warning_as_error.
2156 (enable_warning_as_error): Add diagnostic_context parameter.
2157 Document parameters. Don't use global_dc. Pass
2158 diagnostic_context parameter to handle_generated_option.
2159 * opts.h (set_option, handle_option, handle_generated_option,
2160 read_cmdline_option, enable_warning_as_error): Add
2161 diagnostic_context parameter.
2162 * Makefile.in (lto-opts.o): Update dependencies.
2163 * coretypes.h (struct diagnostic_context, diagnostic_context):
2165 * diagnostic.h (diagnostic_context): Don't declare typedef here.
2166 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
2167 * langhooks-def.h (struct diagnostic_context): Don't declare here.
2168 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
2169 using diagnostic_context typedef.
2170 * langhooks.c (lhd_initialize_diagnostics): Declare using
2171 diagnostic_context typedef.
2172 * langhooks.h (struct diagnostic_context): Don't declare here.
2173 (initialize_diagnostics, print_error_function): Declare using
2174 diagnostic_context typedef.
2175 * lto-opts.c: Include diagnostic.h.
2176 (lto_reissue_options): Pass global_dc to set_option. Pass
2177 DK_UNSPECIFIED not 0.
2178 * plugin.c (plugins_internal_error_function): Declare using
2179 diagnostic_context typedef.
2180 * plugin.h (struct diagnostic_context): Don't declare here.
2181 (plugins_internal_error_function): Declare using
2182 diagnostic_context typedef.
2184 2010-10-05 Olivier Hainque <hainque@adacore.com>
2185 Nicolas Roche <roche@adacore.com>
2187 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
2188 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
2190 2010-10-05 Ira Rosen <irar@il.ibm.com>
2192 PR tree-optimization/45752
2193 * tree-vect-slp.c (vect_get_mask_element): Remove static
2194 variables, make them function arguments.
2195 (vect_transform_slp_perm_load): Pass new arguments to
2196 vect_get_mask_element.
2198 2010-10-05 Richard Guenther <rguenther@suse.de>
2200 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
2201 (gimple_mod_pow2): Likewise.
2202 (gimple_mod_subtract): Likewise.
2203 (gimple_ic): Likewise.
2204 (gimple_stringop_fixed_value): Likewise.
2205 * tree-profile.c (tree_init_edge_profiler): Mark profile
2206 functions nothrow and leaf.
2207 (add_abnormal_goto_call_edges): Remove.
2208 (tree_gen_edge_profiler): Work on SSA form.
2209 (tree_gen_ic_profiler): Likewise. Simplify.
2210 (do_tree_profiling): Update SSA form.
2211 (pass_tree_profile): Remove.
2212 (do_tree_profiling): Likewise.
2213 (gate_tree_profile_ipa): New function.
2214 (pass_ipa_tree_profile): New.
2215 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
2216 state of instrumented functions.
2217 * passes.c (init_optimization_passes): Remove early non-SSA
2218 inlining. Move profiling after early optimizations.
2219 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
2220 (pass_ipa_early_inline): Likewise.
2221 * tree-pass.h (pass_ipa_early_inline): Remove.
2222 (pass_tree_profile): Likewise.
2223 (pass_ipa_tree_profile): Declare.
2225 2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2226 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
2228 * gcc/config/s390/s390.c (z196_cost): New.
2229 (s390_handle_arch_option): Add -march=z196.
2230 (s390_option_override): Use the new cost function and use the z10
2231 defaults also for z196.
2232 (legitimate_reload_constant_p): Adjust comment.
2233 (legitimate_reload_fp_constant_p): New function.
2234 (s390_preferred_reload_class): Distingiush between FP and Int constants.
2235 (preferred_la_operand_p): Avoid la with index on z196.
2236 (s390_adjust_priority): Trigger also for z196.
2237 (s390_issue_rate): Issue rate for z196 is 3.
2238 (s390_z10_fix_long_loop_prediction): Rename to ...
2239 (s390_fix_long_loop_prediction): ... this.
2240 (s390_reorg): Apply the z10 adjustments also for z196.
2241 (s390_loop_unroll_adjust): Do this also for z196.
2242 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
2243 (enum processor_flags): Add PF_Z196.
2244 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
2245 (TARGET_CPU_Z196, TARGET_Z196): New macros.
2246 * gcc/config.gcc: Enable z196 for --with-arch.
2247 * gcc/config/s390/2817.md: New file.
2248 * gcc/config/s390/2084.md: New type for multiply and add.
2249 * gcc/config/s390/2097.md: Likewise.
2250 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
2251 (UNSPECV_ATOMIC_OP): New constants.
2252 (fmadddf, fmaddsf): New values for type attribute.
2253 (z196prop): New insn attribute.
2254 (cpu, cpu_facility): Add z196.
2255 (ATOMIC_Z196): New code iterator.
2256 (noxa): New code attribute.
2257 (gk): New mode attribute.
2258 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
2259 Support load zero for fp constants.
2260 (fixuns_truncdddi2, fixuns_trunctddi2)
2261 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
2263 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
2264 (popcounthi2, popcountqi2): New expander.
2265 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
2266 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
2267 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
2269 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
2270 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
2271 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
2272 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
2273 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
2274 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
2275 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
2276 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
2277 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
2278 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
2279 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
2280 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
2281 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
2282 Support new z196 instructions.
2284 2010-10-05 Richard Guenther <rguenther@suse.de>
2287 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
2288 case where gimplification optimizes away the stmt.
2290 2010-10-04 Jakub Jelinek <jakub@redhat.com>
2293 * var-tracking.c (strip_pointer_flags): New function.
2294 (emit_note_insn_var_location): If rtx_equal_p check failed,
2295 retry on locations simplified with simplify_replace_fn_rtx
2296 and strip_pointer_flags as its callback.
2298 2010-10-04 Jan Hubicka <jh@suse.cz>
2300 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
2301 (can_refer_decl_in_current_unit_p): ... this one; reverse return
2302 value; handle comdats too.
2303 (canonicalize_constructor_val): Use it; handle function_decls
2305 (gimple_fold_obj_type_ref_known_binfo): Likewise.
2306 * gimple.c (get_base_address): Accept all kinds of decls.
2308 2010-10-04 Joseph Myers <joseph@codesourcery.com>
2310 * flags.h (g_switch_value, g_switch_set): Remove.
2311 * opts.c (g_switch_value, g_switch_set): Remove.
2312 * config/g.opt (G): Add Var(g_switch_value).
2313 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
2314 (alpha_option_override): Check global_options_set.x_g_switch_value
2315 instead of g_switch_set.
2316 (alpha_in_small_data_p): Remove cast in comparison with
2318 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
2319 g_switch_value to unsigned HOST_WIDE_INT.
2320 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
2321 with g_switch_value.
2322 (frv_handle_option): Don't handle -G here.
2323 (frv_option_override): Check global_options_set.x_g_switch_value
2324 instead of g_switch_set. Don't modify g_switch_set.
2325 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
2326 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
2327 g_switch_value to unsigned HOST_WIDE_INT.
2328 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
2329 (ia64_option_override): Check global_options_set.x_g_switch_value
2330 instead of g_switch_set.
2331 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
2333 (lm32_in_small_data_p): Remove cast in comparison with
2335 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
2336 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
2338 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
2339 (m32r_init): Check global_options_set.x_g_switch_value instead of
2341 (m32r_in_small_data_p): Remove cast in comparison with
2343 (m32r_file_start): Format g_switch_value with %d.
2344 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
2345 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
2346 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
2348 (microblaze_option_override): Check
2349 global_options_set.x_g_switch_value instead of g_switch_set.
2350 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
2351 (mips_option_override): Check global_options_set.x_g_switch_value
2352 instead of g_switch_set.
2353 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
2354 (rs6000_file_start): Format g_switch_value with %d.
2355 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
2356 comparisons with g_switch_value.
2357 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2358 global_options_set.x_g_switch_value instead of g_switch_set.
2359 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2360 global_options_set.x_g_switch_value instead of g_switch_set.
2361 * config/score/score.c (score_handle_option): Don't handle -G here.
2362 * config/score/score3.c (score3_option_override): Check
2363 global_options_set.x_g_switch_value instead of g_switch_set.
2364 * config/score/score7.c (score7_option_override): Check
2365 global_options_set.x_g_switch_value instead of g_switch_set.
2367 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
2369 * common.opt (fira-coalesce): Remove.
2371 * doc/invoke.texi (flag_ira_coalesce): Remove.
2373 * ira-color.c (allocno_coalesced_p): Move before
2374 copy_freq_compare_func.
2375 processed_coalesced_allocno_bitmap): Ditto.
2376 (update_conflict_hard_regno_costs): Don't use
2377 ALLOCNO_FIRST_COALESCED_ALLOCNO.
2378 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
2379 (assign_hard_reg): Assume no coalesced allocnos.
2380 (get_coalesced_allocnos_attributes): Remove.
2381 (bucket_allocno_compare_func): Assume no coalesced allocnos.
2382 (push_allocno_to_stack): Ditto.
2383 (remove_allocno_from_bucket_and_push): Use
2384 ira_print_expanded_allocno instead of print_coalesced_allocno.
2385 (push_allocnos_to_stack): Assume uncoalesced allocnos.
2386 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
2387 all_conflicting_hard_regs.
2388 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
2389 (setup_allocno_left_conflicts_size): Ditto.
2390 (put_allocno_into_bucket): Ditto.
2391 (copy_freq_compare_func): Remove.
2392 (copy_freq_compare_func, merge_allocnos): Move before
2393 coalesced_pseudo_reg_freq_compare.
2394 coalesced_allocno_conflict_p): Ditto.
2395 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
2396 parameter. Assume it true.
2397 (color_allocnos): Assume uncoalesced allocnos. Use
2398 ira_print_expanded_allocno instead of print_coalesced_allocno.
2399 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
2402 * ira.c: Remove comment about coalescing.
2404 2010-10-04 Joseph Myers <joseph@codesourcery.com>
2406 * config/mips/mips.h (target_flags_explicit): Declare for
2409 2010-10-04 Andi Kleen <ak@linux.intel.com>
2411 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
2412 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
2414 2010-10-04 Matthias Klose <doko@ubuntu.com>
2416 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2417 multilib osdirname if it exists.
2418 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2420 2010-10-04 Jakub Jelinek <jakub@redhat.com>
2423 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
2424 arg0's type or its unsigned counterpart as utype. Convert
2425 arg1 to utype unconditionally.
2427 2010-10-04 Julian Brown <julian@codesourcery.com>
2429 * expr.c (expand_assignment): Add assertion to prevent emitting
2430 null rtx for movmisalign pattern.
2431 (expand_expr_real_1): Likewise.
2432 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
2433 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
2434 (arm_vector_alignment_reachable): New.
2435 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
2436 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
2437 (arm_print_operand): Include alignment qualifier in %A.
2438 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
2439 (movmisalign<mode>): New expander.
2440 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
2443 2010-10-04 Joseph Myers <joseph@codesourcery.com>
2445 * optc-gen.awk: Define global_options_set. Don't define
2446 target_flags_explicit.
2447 * opth-gen.awk: Declare global_options_set. Define
2448 target_flags_explicit as macro.
2449 * opts-common.c (handle_option): Take opts_set and generated_p
2451 (handle_generated_option, read_cmdline_option, set_option): Take
2453 (set_option): Use opts_set instead of hardcoding target_flags and
2454 target_flags_explicit.
2455 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
2456 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
2457 flag_value_profile_transformations_set, flag_peel_loops_set,
2458 flag_branch_probabilities_set, flag_inline_functions_set,
2459 flag_ipa_cp_set, flag_ipa_cp_clone_set,
2460 flag_predictive_commoning_set, flag_unswitch_loops_set,
2461 flag_gcse_after_reload_set): Remove.
2462 (common_handle_option, lang_handle_option, target_handle_option):
2463 Take opts_set parameter. Assert that it is &global_options_set.
2464 (common_handle_option): Don't set _set variables. Check opts_set
2465 instead of such variables.
2466 (enable_warning_as_error): Pass &global_options_set to
2467 handle_generated_option.
2468 * opts.h (cl_option_handler_func.handler, set_option,
2469 handle_option, handle_generated_option, read_cmdline_option): Add
2470 opts_set parameters.
2471 (handle_option): Add generated_p parameter.
2472 * config/i386/i386.c (ix86_function_specific_save,
2473 ix86_function_specific_restore): Updat for renaming of
2474 target_flags_explicit field.
2475 * config/i386/i386.opt (target_flags_explicit): Rename to
2476 ix86_target_flags_explicit.
2477 * config/ia64/ia64.c (ia64_override_options_after_change): Check
2478 global_options_set.x_flag_selective_scheduling and
2479 global_options_set.x_flag_selective_scheduling2, not
2480 sel_sched_switch_set.
2481 * flags.h (sel_sched_switch_set,
2482 flag_speculative_prefetching_set): Remove.
2483 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
2484 that it is &global_options_set.
2485 (process_command): Pass &global_options_set to read_cmdline_option.
2486 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
2488 * toplev.c (target_flags_explicit): Remove.
2490 2010-10-04 Jan Hubicka <jh@suse.cz>
2493 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
2494 use get_ref_base_and_offset to handle references.
2495 (fold_const_aggregate_ref): Update.
2497 2010-10-04 Martin Jambor <mjambor@suse.cz>
2499 PR tree-optimization/45572
2500 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
2501 ipa_check_create_node_params.
2502 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
2504 2010-10-04 Yao Qi <yao@codesourcery.com>
2506 * doc/passes.texi: Clean up.
2508 2010-10-03 Ian Lance Taylor <iant@google.com>
2510 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
2511 referring to a field using a typedef name.
2512 (find_anonymous_field_with_type): New static function.
2513 (convert_to_anonymous_field): New static function.
2514 (convert_for_assignment): If -fplan9-extensions, permit converting
2515 pointer to struct to pointer to anonymous field.
2516 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
2517 (is_duplicate_field): New static function.
2518 (detect_field_duplicates_hash): If -fplan9-extensions, check for
2519 typedef names duplicating field names.
2520 (detect_field_duplicates): Likewise.
2521 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
2522 (C Dialect Options): Document -fplan9-extensions.
2523 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
2525 2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
2527 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
2529 (vect_create_data_ref_ptr): Likewise.
2530 * tree-vect-stmts.c (vectorizable_store): Likewise.
2531 (perm_mask_for_reverse): Likewise.
2532 (reverse_vec_elements): Likewise.
2533 (vectorizable_load): Likewise.
2535 2010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2537 * cppbuiltin.c: New file.
2538 * cppbuiltin.h: New file.
2539 * Makefile.in: Take into account cppbuiltin.{h,c}.
2541 2010-10-03 Andi Kleen <ak@linux.intel.com>
2543 * lto-cgraph.c (input_cgraph): Check for missing sections.
2545 2010-10-03 Uros Bizjak <ubizjak@gmail.com>
2547 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
2548 to nonimmediate_operand. Force operand 2 to register when allowed.
2549 (*<shiftrt_insn><mode>3_mask): Ditto.
2550 (*<rotate_insn><mode>3_mask): Ditto.
2552 2010-10-02 H.J. Lu <hongjiu.lu@intel.com>
2554 PR tree-optimization/45720
2555 PR tree-optimization/45764
2556 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2557 Don't accept backwards consecutive accesses.
2558 (vect_create_data_ref_ptr): Disallow negative steps.
2560 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
2561 (perm_mask_for_reverse): Removed.
2562 (reverse_vec_elements): Likewise.
2563 (vectorizable_load): Don't handle negative steps.
2565 2010-10-02 Jan Hubicka <jh@suse.cz>
2567 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
2568 call destination is known.
2570 2010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2573 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
2576 2010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2578 * doc/install.texi (Configuration): Document build_configargs,
2579 host_configargs, target_configargs.
2581 2010-10-01 Uros Bizjak <ubizjak@gmail.com>
2583 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
2584 (*<shiftrt_insn><mode>3_mask): Ditto.
2585 (*<rotate_insn><mode>3_mask): Ditto.
2587 2010-10-01 Steve Ellcey <sje@cup.hp.com>
2589 PR tree-optimization/44716
2590 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2591 (HOT_TEXT_SECTION_NAME): Define.
2593 2010-10-01 Nick Clifton <nickc@redhat.com>
2595 * common.opt: Add -fcombine-stack-adjustments.
2596 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
2597 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
2598 flag_combine_stack_adjustments.
2599 * doc/invoke.texi: Document the new option.
2601 2010-10-01 Richard Guenther <rguenther@suse.de>
2603 PR tree-optimization/45854
2604 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
2606 2010-10-01 Anthony Green <green@moxielogic.com>
2608 * config.gcc: Fix moxie-*-rtems* configuration.
2610 2010-10-01 Richard Guenther <rguenther@suse.de>
2612 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
2613 (gen_decl_die): Likewise.
2615 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2617 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
2618 to the function code for SPU MD builtins.
2619 (spu_expand_builtin): Update.
2620 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
2622 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2624 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
2625 sjlj_except_unwind_info.
2627 2010-10-01 Tristan Gingold <gingold@adacore.com>
2629 * configure.ac: Define the nop insn for avr*-*-*
2630 * configure: Regenerate.
2632 2010-10-01 Alan Modra <amodra@gmail.com>
2635 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
2636 extend toc_restore_insn.
2638 2010-09-30 Richard Guenther <rguenther@suse.de>
2640 PR tree-optimization/43959
2641 * function.c (gimplify_parameters): Use create_tmp_reg instead of
2644 2010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
2646 * config/sh/sh.c (sh_expand_prologue): Set
2647 current_function_static_stack_size.
2649 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2651 * configure.ac: Check for Solaris 8 ld with .hidden support.
2652 * configure: Regenerate.
2654 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2657 * graphite.c (graphite_initialize): Call scev_reset.
2659 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2661 * sese.h (scev_analyzable_p): Return false for real or floating
2662 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
2664 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2666 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
2668 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
2670 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
2671 Do not allocate ub_expr, it is passed in initialized.
2673 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2675 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
2676 (build_cloog_prog): Dump CLooG input file when
2677 flag_graphite_dump_cloog is set. This is disabled on trunk.
2678 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
2680 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2682 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
2683 verify_dominators for CDI_POST_DOMINATORS.
2684 * sese.h: Remove comment about CDI_POST_DOMINATORS.
2685 (recompute_all_dominators): Remove call to free_dominance_info
2686 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
2687 for CDI_POST_DOMINATORS.
2689 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2691 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
2692 over pbb_dim_iter_domain.
2694 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2696 * graphite-flattening.c: Fix comments.
2698 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2700 * Makefile.in (OBJS-common): Add graphite-flattening.o.
2701 (graphite-flattening.o): New rule.
2702 * common.opt (floop-flatten): New flag.
2703 * doc/invoke.texi (-floop-flatten): Documented.
2704 * graphite-flattening.c: New.
2705 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
2706 * graphite-poly.h (flatten_all_loops): Declared.
2707 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
2708 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
2709 is set, also set flag_graphite.
2711 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2713 * graphite-poly.c (cloog_checksum): New.
2714 * graphite-poly.h (cloog_checksum): Declared.
2716 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2718 * graphite-poly.c (pbb_number_of_iterations): Removed.
2719 (pbb_number_of_iterations_at_time): Correctly compute the number
2720 of iterations in the transformed loop.
2721 * graphite-poly.h (pbb_number_of_iterations): Removed.
2723 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2725 * graphite-poly.h (lst_update_scattering_seq): Removed.
2726 (lst_update_scattering): Correctly handle outermost loop dewey
2729 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2731 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
2732 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
2733 * graphite-poly.h (lst_niter_for_loop): New.
2735 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2737 * graphite-poly.c (apply_poly_transforms): Do not abort when the
2738 transform read from disk is not legal. Call fatal_error instead.
2740 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2742 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
2743 (print_scop_header): Removed. Inlined in the only call place...
2744 (print_scop): ... here.
2746 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2748 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
2750 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2752 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
2754 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2756 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
2757 (dot_deps_stmt): Same.
2758 * graphite-poly.c (dot_lst): Same.
2760 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2762 * graphite-blocking.c (scop_do_strip_mine): Do not call
2763 graphite_legal_transform.
2764 (scop_do_block): Same.
2766 2010-09-30 Vladimir Kargov <kargov@gmail.com>
2768 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
2771 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2773 * tree-scalar-evolution.c (instantiate_array_ref): New.
2774 (instantiate_scev_r): Also handle ARRAY_REFs.
2776 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2778 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2779 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
2780 RESULT_DECL, and FIELD_DECL. Return false for an
2781 SSA_NAME_IS_DEFAULT_DEF.
2782 (compute_scalar_evolution_in_loop): Do not further analyze the
2783 scalar evolution when no_evolution_in_loop_p returns true.
2785 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2787 * tree-chrec.h (evolution_function_is_affine_p): Do not check
2788 whether CHREC_LEFT is invariant. A function is affine when
2789 CHREC_RIGHT is invariant.
2791 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2793 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
2795 (rewrite_degenerate_phi): Same.
2796 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
2798 2010-09-30 Vladimir Kargov <kargov@gmail.com>
2800 * graphite-scop-detection.c (graphite_can_represent_scev,
2801 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
2802 graphite_can_represent_loop): Remove outermost_loop.
2804 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2807 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
2808 handle GIMPLE_CALLs with no LHS.
2810 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2812 * graphite-poly.c (init_graphite_out_file): New.
2813 (init_graphite_in_file): New.
2814 (apply_poly_transforms): Updated to enable reading and writing of
2815 multiple scop files.
2817 2010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
2819 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
2822 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2824 * graphite-clast-to-gimple.c (precision_for_value): Adjust
2825 computation of precision by 1.
2827 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2829 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
2830 (openscop_read_polyhedron_matrix): New.
2831 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
2832 (openscop_read_N_int): Same.
2833 * graphite-poly.c (openscop_read_N_int): New.
2834 (openscop_read_one_int): New.
2835 (openscop_read_N_string): New.
2836 (openscop_read_one_string): New.
2837 (openscop_read_powerset_matrix): New.
2838 (graphite_read_transforms): Remove.
2839 (graphite_read_scatt): New.
2840 (graphite_read_scop_file): New.
2841 (apply_poly_transforms): Updated to call graphite_read_scop_file.
2843 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2845 * graphite-poly.c: Change include order.
2847 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2849 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
2850 (cloog_matrix_nrows): New.
2852 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2854 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
2856 * graphite-poly.c (openscop_print_scattering_function_1): Same.
2857 (print_scattering_function_1): Same.
2858 (openscop_print_pbb_domain): Same.
2859 (openscop_print_scop_context): Same.
2860 (print_scop_context): Same.
2862 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2864 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
2865 (openscop_print_pdr_polyhedron): Print pph.
2867 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2869 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
2870 priority signed types.
2872 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2874 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
2875 the call to lang_hooks.types.type_for_size. Call
2876 build_nonstandard_integer_type.
2878 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2880 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
2881 (openscop_print_polyhedron_matrix): New.
2882 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
2883 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
2884 (openscop_print_pdr_powerset): New.
2885 (openscop_print_powerset_matrix): New.
2886 (openscop_print_scattering_function_1): New.
2887 (print_scattering_function): Add support for scattering names and
2889 (graphite_write_transforms): Remove.
2890 (print_pdr_access_layout): Updated to support OpenScop format.
2892 (openscop_print_pbb_domain): New.
2893 (print_pbb_body): Added a parameter to allow indicating that pbb_body
2895 (print_pbb): Updated to call the new print_pbb_body.
2896 (openscop_print_scop_context): New.
2897 (print_scop_header): New.
2898 (print_scop): Updated to call print_scop_header.
2899 * graphite-poly.h: Document OpenScop format.
2901 2010-09-30 Anatoly Sokolov <aesok@post.ru>
2903 * config/cris/m32c.c (cris_memory_move_cost): New.
2904 (cris_register_move_cost): Make static. Change arguments type from
2905 enum reg_class to reg_class_t.
2906 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2907 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2908 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
2910 2010-09-30 Jakub Jelinek <jakub@redhat.com>
2913 * config/i386/i386.c (ix86_gimplify_va_arg): Use
2914 INTVAL (XEXP (slot, 1)) as prev_size.
2916 2010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2919 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
2920 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
2922 * config/rs6000/option-defaults.h (toplevel): Change #if
2923 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
2924 global option changes.
2926 2010-09-30 Jakub Jelinek <jakub@redhat.com>
2928 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
2930 PR tree-optimization/31261
2931 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
2932 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
2934 2010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2937 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
2938 special-casing for generators and turn into ...
2939 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
2940 rule, for better error messages in case of toplevel dependency errors.
2941 (genprog): Add hooks, rename to ...
2942 (genprogerr): ... this, and let genprog also contain check,
2944 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
2945 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
2946 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
2948 2010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
2949 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2951 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
2952 for GMP, MPFR and MPC.
2954 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2956 * config/sparc/sparc.opt (mimpure-text): Move ...
2957 * config/sol2.opt: ... here. Correct description.
2958 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
2959 * doc/invoke.texi (Option Summary, SPARC Options): Move
2960 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
2961 (Option Summary, Solaris 2 Options): ... here.
2962 (Submodel Options, Solaris 2 Options): New menu entry.
2963 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
2964 (Solaris 2 Options): ... here.
2966 2010-09-30 Michael Eager <eager@eagercon.com>
2968 * extend.texi (interrupt_handler): Add MicroBlaze to list.
2969 (save_volatiles): Describe option for MicroBlaze.
2970 * invoke.texi: Add MicroBlaze Options.
2971 * contrib.texi: Add acknowledgment.
2972 * md.texi: Add MicroBlaze d and z constraints.
2973 * install.texi: Add microblaze-*-elf.
2974 * configure.ac: Add microblaze-*-* to target list.
2975 * configure: Regenerate.
2976 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
2977 * config/microblaze/microblaze-protos.h: New.
2978 * config/microblaze/crti.s: New.
2979 * config/microblaze/predicates.md: New.
2980 * config/microblaze/linux.h: New.
2981 * config/microblaze/microblaze.md: New.
2982 * config/microblaze/constraints.md: New.
2983 * config/microblaze/crtn.s: New.
2984 * config/microblaze/microblaze.opt: New.
2985 * config/microblaze/microblaze-c.c: New.
2986 * config/microblaze/t-microblaze: New.
2987 * config/microblaze/microblaze.c: New.
2988 * config/microblaze/microblaze.h: New.
2990 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
2992 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
2993 parse @optional/@required and set the flags as appropriate.
2995 2010-09-30 Nathan Froyd <froydnj@codesourcery.com>
2997 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
2999 2010-09-30 Joseph Myers <joseph@codesourcery.com>
3001 * opt-functions.awk (static_var): Update comment.
3002 (var_ref): Return offsetof expression or -1, not variable address.
3003 * optc-gen.awk: Generate structure field initializers instead of
3004 static variables. Expect -1 for missing variables instead of null
3005 pointer. Add gcc_options parameters to generated functions.
3006 * opth-gen.awk: Generate structure fields for static variables.
3007 Add gcc_options parameters to generated functions.
3008 * common.opt (optimize, optimize_size): Add variables.
3009 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
3010 &global_options to cl_target_option_restore.
3011 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
3012 &global_options to cl_optimization_restore, cl_target_option_save
3013 and cl_target_option_restore.
3014 (ix86_set_current_function): Pass &global_options to
3015 cl_target_option_restore.
3016 * config/pdp11/pdp11.h (optimize): Remove.
3017 * config/rs6000/rs6000.h (optimize): Remove.
3018 * config/sh/sh.h (optimize): Remove.
3019 * config/xtensa/xtensa.h (optimize): Remove.
3020 * coretypes.h (struct gcc_options): Declare.
3021 * diagnostic.c (diagnostic_initialize): Initialize
3022 context->option_state.
3023 (diagnostic_report_diagnostic): Pass option_state to
3024 option_enabled hook.
3025 * diagnostic.h (diagnostic_context.option_enabled): Add void *
3027 (diagnostic_context.option_state): New field.
3028 * final.c (final_start_function, final, final_scan_insn): Rename
3029 optimize parameter to optimize_p.
3030 * flags.h (optimize, optimize_size): Remove.
3031 * function.c (invoke_set_current_function_hook): Pass
3032 &global_options to cl_optimization_restore.
3033 * gcc.c (driver_handle_option): Take gcc_options parameter.
3034 Assert that it is &global_options.
3035 (process_command): Pass &global_options to read_cmdline_option.
3036 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
3038 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
3039 &global_options to set_option.
3040 * opts-common.c (handle_option, handle_generated_option,
3041 read_cmdline_option, set_option): Take explicit gcc_options
3042 parameters. Use option_flag_var.
3043 (option_flag_var): New.
3044 * opts.c (common_handle_option, lang_handle_option,
3045 target_handle_option): Take gcc_options parameter. Assert that it
3047 (read_cmdline_options): Pass &global_options to read_cmdline_option.
3048 (print_filtered_help): Use option_flag_var. Pass &global_options
3050 (common_handle_option): Use option_flag_var.
3051 (option_enabled): Take opts parameter. Use option_flag_var.
3052 (get_option_state): Take gcc_options parameter. Use
3053 option_flag_var. Pass gcc_options parameter to option_enabled.
3054 (enable_warning_as_error): Pass &global_options to
3055 handle_generated_option.
3056 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
3057 (cl_option_handler_func.handler): Take gcc_options parameter.
3058 (option_enabled, get_option_state, set_option, handle_option,
3059 handle_generated_option, read_cmdline_option): Take gcc_options
3061 * toplev.c (optimize, optimize_size): Remove.
3062 (print_switch_values): Pass &global_options to option_enabled.
3063 (option_affects_pch_p): Use option_flag_var. Pass &global_options
3064 to get_option_state.
3065 (general_init): Initialize global_dc->option_state.
3066 * tree.c (build_optimization_node): Pass &global_options to
3067 cl_optimization_save.
3068 (build_target_option_node): Pass &global_options to
3069 cl_target_option_save.
3071 2010-09-30 Martin Jambor <mjambor@suse.cz>
3073 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
3074 zero sized bit-fields.
3076 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
3078 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
3079 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
3080 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
3081 (c_parser_objc_class_declaration): Same change.
3082 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
3083 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
3084 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
3085 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
3086 and RID_AT_PUBLIC instead of RID_PUBLIC.
3087 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
3088 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
3090 2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
3092 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
3093 Add links to current providers of packages for Solaris and IRIX.
3095 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3097 Merge from 'apple/trunk' branch on FSF servers.
3098 * c-parser.c: Applied change originally in c-parse.in.
3100 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
3103 * c-decl.c (start_decl): Check for redeclaration of class name.
3104 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
3106 2010-09-29 Steve Ellcey <sje@cup.hp.com>
3108 * config/ia64/ia64.c (ia64_builtin_decl): New.
3109 (TARGET_BUILTIN_DECL): Define.
3110 (ia64_builtins): New.
3111 (ia64_init_builtins): Save decls in ia64_builtins.
3113 2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
3116 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
3117 (move2add_use_add3_insn): Likewise.
3118 (reload_cse_move2add): Likewise.
3119 * rtlanal.c (get_full_rtx_cost): New function.
3120 * rtl.h (struct full_rtx_costs): New.
3121 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
3122 costs_add_n_insns): New inline functions.
3123 (get_full_rtx_cost): Declare.
3126 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
3127 invariants. Check for reg_equiv_invariant.
3128 (reload): Assert that spilled_pseudos is empty when returning.
3130 2010-09-29 Kai Tietz <kai.tietz@onevision.com>
3132 * config/i386/mingw32.h (TARGET_64BIT): replaced by
3133 TARGET_64BIT_DEFAULT in #if check.
3135 2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
3137 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
3139 2010-09-29 Mike Stump <mikestump@comcast.net>
3141 * config/darwin.h (flag_mkernel): Remove.
3142 (flag_apple_kext): Likewise.
3144 2010-09-29 Joseph Myers <joseph@codesourcery.com>
3145 Jack Howarth <howarth@bromo.med.uc.edu>
3147 * config/darwin.opt (undefined): Add.
3149 2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
3152 * configure.ac: Add --enable-indirect-function option.
3153 * config.gcc: Add default_gnu_indirect_function.
3154 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
3155 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
3156 * varasm.c (do_assemble_alias): Adjust for macro name change.
3157 * configure: Rebuilt.
3158 * doc/install.texi: Document --enable-indirect-function.
3160 2010-09-29 Joseph Myers <joseph@codesourcery.com>
3162 * doc/options.texi (Variable, Var, Init): Update documentation
3163 without reference to VarExists.
3164 (VarExists): Remove.
3165 * common.opt, config/i386/i386.opt, config/linux.opt,
3166 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
3167 Don't use VarExists.
3169 2010-09-29 Joseph Myers <joseph@codesourcery.com>
3171 * optc-gen.awk: Generate global_options initializer instead of
3172 individual variables. Add x_ prefix to names of structure members.
3173 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
3174 names of structure members.
3175 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3176 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
3177 * doc/tm.texi: Regenerate.
3178 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3179 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
3180 * c-parser.c (disable_extension_diagnostics,
3181 restore_extension_diagnostics): Update names of cpp_options members.
3182 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3183 * common.opt (fcompare-debug-second): Don't use Var.
3184 * config/alpha/alpha.h (target_flags): Remove.
3185 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3186 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
3187 * config/bfin/bfin.h (target_flags): Remove.
3188 * config/cris/cris.h (target_flags): Remove.
3189 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
3190 cl_target_option members.
3191 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
3192 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
3193 ix86_can_inline_p): Update names of cl_target_option members.
3194 * config/i386/i386.h (ix86_isa_flags): Remove.
3195 * config/lm32/lm32.h (target_flags): Remove.
3196 * config/mcore/mcore.h (mcore_stack_increment): Remove.
3197 * config/mcore/mcore.md (addsi3): Remove extern declaration of
3198 flag_omit_frame_pointer.
3199 * config/mep/mep.h (target_flags): Remove.
3200 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3201 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
3202 * config/mmix/mmix.h (target_flags): Remove.
3203 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
3204 flag_expensive_optimizations): Remove.
3205 * config/s390/s390.h (flag_pic): Remove.
3206 * config/score/score-conv.h (target_flags): Remove.
3207 * config/sh/sh.h (sh_fixed_range_str): Remove.
3208 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
3209 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
3210 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3211 * diagnostic.c (diagnostic_initialize): Update names of
3212 diagnostic_context members.
3213 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
3214 warn_system_headers.
3215 (diagnostic_report_warnings_p): Update for new names.
3216 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
3217 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
3218 HARD_FRAME_POINTER_IS_ARG_POINTER.
3219 * flags.h (flag_compare_debug): Declare.
3220 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3221 * opts.c (flag_compare_debug): Define.
3222 (common_handle_option): Update names of diagnostic_context
3223 members. Handle -fcompare-debug-second.
3224 (fast_math_flags_struct_set_p): Update names of cl_optimization
3226 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3227 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3228 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3229 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3230 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3231 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3232 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
3233 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3234 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
3236 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
3238 * config/picochip/picochip.c (picochip_output_internal_label):
3239 This function can now be called for debug CFI labels, which can come
3240 in the middle of a vliw instruction. Postpone until end of vliw.
3242 2010-09-29 Richard Guenther <rguenther@suse.de>
3244 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
3245 (DECL_FILE_SCOPE_P): Use it.
3246 (TYPE_FILE_SCOPE_P): New macro.
3248 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3250 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
3251 a CPP_NAME which is a reserved word, clearly separate cases for
3252 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
3254 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3256 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
3257 token->value with the canonical spelling. Do exactly like C and
3258 C++ and leave it as it is.
3260 2010-09-28 Richard Henderson <rth@redhat.com>
3262 * config/alpha/alpha.c (alpha_builtins): New.
3263 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
3264 (alpha_builtin_function): New.
3265 (alpha_add_builtins, alpha_init_builtins): Use it.
3267 2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
3269 * doc/standards.texi (Standards): Expanded the section on
3270 Objective-C and Objective-C++.
3272 2010-09-28 DJ Delorie <dj@redhat.com>
3275 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
3278 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
3280 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
3281 attributes on methods.
3282 (c_parser_objc_method_definition): Handle attributes.
3283 (c_parser_objc_methodproto): Likewise.
3284 (c_parser_objc_maybe_method_attributes): New.
3285 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
3286 missing definition, similar to that in ObjC++.
3288 2010-09-28 Richard Henderson <rth@redhat.com>
3290 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
3291 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
3292 (CONFIG_SJLJ_EXCEPTIONS): Remove.
3293 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
3294 (STACK_CHECK_PROTECT): Likewise.
3295 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
3296 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
3297 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
3298 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
3299 (dwarf2out_assembly_start): Likewise.
3300 * except.c (init_eh): Use targetm.except_unwind_info.
3301 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
3302 (output_one_function_exception_table): Likewise.
3303 * final.c: Unconditionally include dwarf2out.h.
3304 (final_start_function): Unconditionally call dwarf2out routines.
3305 (final_end_function, final_scan_insn): Likewise.
3306 * function.c (expand_function_end): Use targetm.except_unwind_info.
3307 * opts.c (decode_options): Use targetm.except_unwind_info.
3308 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
3309 * target.def (debug_unwind_info, except_unwind_info): New.
3310 * target.h (enum unwind_info_type): New.
3311 * targhooks.c (default_debug_unwind_info): New.
3312 (default_except_unwind_info): New.
3313 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
3314 * targhooks.h: Declare them.
3315 * tree-tailcall.c: Include "target.h"
3316 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
3317 * Makefile.in (tree-tailcall.o): Update.
3318 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
3319 (lhd_gcc_personality): Likewise.
3321 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
3322 (TARGET_EXCEPT_UNWIND_INFO): New.
3323 (DWARF2_UNWIND_INFO): Update.
3324 (TARGET_DEBUG_UNWIND_INFO): New.
3325 * doc/tm.texi: Rebuild.
3327 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
3328 targetm.except_unwind_info.
3330 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
3331 (arm_except_unwind_info): New.
3332 (arm_compute_func_type): Use it.
3333 (arm_expand_prologue, thumb_pushpop): Likewise.
3334 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
3335 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
3336 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
3337 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
3338 (DWARF2_UNWIND_INFO): Remove.
3339 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
3340 (ARM_EABI_UNWIND_TABLES): Remove.
3342 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
3343 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
3344 (ia64_except_unwind_info): New.
3345 (ia64_output_function_prologue): Use it.
3346 (ia64_add_bundle_selector_before): Likewise.
3347 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
3348 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
3349 (TARGET_UNWIND_INFO): Remove.
3351 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
3353 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
3355 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
3356 (c_parser_objc_protocol_definition): Likewise.
3357 (c_parser_external_declaration): Provide dummy attribute arguments.
3358 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
3359 (c_parser_objc_class_definition): Handle attributes.
3360 (c_parser_objc_protocol_definition): Likewise.
3362 2010-09-28 Tobias Burnus <burnus@net-b.de>
3366 * toplev.h (save_decoded_options, save_decoded_options_count):
3367 New global variables.
3368 * toplev.c (save_decoded_options, save_decoded_options_count):
3371 2010-09-28 Ian Lance Taylor <iant@google.com>
3373 * config/i386/i386.c (ix86_supports_split_stack): Test
3374 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
3376 2010-09-28 Ian Lance Taylor <iant@google.com>
3379 * opts.c (decode_options): Don't test whether the target supports
3380 split stack if flag_split_stack == 0.
3382 2010-09-28 Jan Hubicka <jh@suse.cz>
3384 * builtin-attrs.def (ATTR_LEAF): New attribute.
3385 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
3386 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
3387 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
3388 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
3389 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
3390 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
3391 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
3392 * sync-builtins.def: Annotate all builtins by leaf.
3393 * omp-builtins.def: Annotate all builtins by leaf.
3394 * builtins.def: Annotate relevant builtins with leaf attribute.
3395 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
3396 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
3399 2010-09-28 Jan Hubicka <jh@suse.cz>
3401 * tree-ssa-ccp.c (fold_ctor_reference): New function.
3402 (fold_const_aggregate_ref): Use it.
3403 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
3404 into external static.
3406 2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3409 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
3410 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
3411 (ix86_solaris_return_in_memory): Remove.
3412 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
3413 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3414 (TARGET_SUBTARGET_DEFAULT): Redefine.
3415 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
3416 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3417 (TARGET_SUBTARGET_DEFAULT): Redefine.
3418 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
3420 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
3422 2010-09-29 Alan Modra <amodra@gmail.com>
3425 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
3426 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
3427 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
3429 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
3430 (rs6000_emit_prologue): Don't just create frame save info for r2,
3433 2010-09-28 Richard Henderson <rth@redhat.com>
3435 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
3436 when 8 bytes are requested.
3438 2010-09-28 Tristan Gingold <gingold@adacore.com>
3440 * config/avr/avr.c (expand_prologue): Set
3441 current_function_static_stack_size.
3443 2010-09-28 Tristan Gingold <gingold@adacore.com>
3445 * config/alpha/alpha.md: Change the initial condition of the
3448 2010-09-28 Uros Bizjak <ubizjak@gmail.com>
3450 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
3451 Split from *avx_<maxmin:code><mode>3.
3452 (*avx_<smaxmin:code><mode>3): Ditto.
3453 * config/i386/i386.md (maxmin): Remove code iterator.
3455 2010-09-27 Ian Lance Taylor <iant@google.com>
3457 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
3458 requires assembler support for CFI directives.
3460 2010-09-27 Richard Henderson <rth@redhat.com>
3462 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
3464 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
3466 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
3467 that AFTER is not in the range FROM..TO, inclusive.
3469 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
3470 Bernd Schmidt <bernds@codesourcery.com>
3472 PR rtl-optimization/45792
3473 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
3474 If not all insns are to be merged, for each edge, stash the
3475 next candidate after the to-be-merged insns before doing the
3476 merge, and use them for the retry at the new insertion point.
3477 Handle CC0 targets when retrying.
3479 2010-09-27 Ian Lance Taylor <iant@google.com>
3481 * common.opt (fsplit-stack): New option.
3482 * opts.c (decode_options): Set flag_split_stack to final value.
3483 * target.def (supports_split_stack): New hook.
3484 * gcc.c (STACK_SPLIT_SPEC): Define.
3485 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
3486 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
3487 (Code Gen Options): Document -fsplit-stack.
3488 * doc/extend.texi (Function Attributes): Mention no_split_stack.
3489 (Function Attributes): Document no_split_stack.
3490 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
3491 TARGET_SUPPORTS_SPLIT_STACK.
3492 * doc/tm.texi: Rebuild.
3493 * function.c (thread_prologue_and_epilogue_insns): If
3494 flag_split_stack, add split stack prologue.
3495 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
3496 * varasm.c (saw_no_split_stack): New static variable.
3497 (assemble_start_function): Set saw_no_split_stack if the function
3498 has the no_split_stack attribute.
3499 (file_end_indicate_split_stack): New function.
3500 * output.h (file_end_indicate_split_stack): Declare.
3501 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
3503 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
3505 * config/i386/i386.c (ix86_option_override_internal): Don't set
3506 expand_builtin_va_start to NULL if -fsplit-stack.
3507 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
3509 (ix86_va_start): If -fsplit-stack, get overflow pointer from
3510 scratch register set by prologue.
3511 (ix86_code_end): If -fsplit-stack, call
3512 file_end_indicate_split_stack.
3513 (ix86_supports_split_stack): New static function.
3514 (SPLIT_STACK_AVAILABLE): Define.
3515 (split_stack_prologue_scratch_regno): New static function.
3516 (split_stack_fn): New static variable.
3517 (ix86_expand_split_stack_prologue): New function.
3518 (ix86_live_on_entry): New static function.
3519 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
3520 (output_pic_addr_const): Likewise.
3521 (i386_asm_output_addr_const_extra): Likewise.
3522 (ix86_expand_call): Change return type to rtx. Return the new
3524 (TARGET_SUPPORTS_SPLIT_STACK): Define.
3525 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3526 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
3527 (split_stack_prologue, split_stack_return): New insns.
3528 (split_stack_space_check): New insn.
3529 * config/i386/i386.h (struct machine_function): Add
3530 split_stack_varargs_pointer field.
3531 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
3532 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
3533 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
3534 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
3535 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
3537 (ix86_expand_call): Update declaration.
3539 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
3541 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
3542 code. Added byref, which was missing in the list of codes.
3543 Explain that enumeration values are encoded as the integer type
3544 that the compiler uses to store them. Explain and make examples
3545 of how 'const' interacts with pointers, and the complication of
3546 the encoding of 'const char *'.
3547 (Legacy type encoding): New subsection, explaining that GCC emits
3548 incorrect type encodings for the NeXT runtime for compatibility
3550 (@@encode): New subsection, explaining @encode and particularly
3551 that protocol qualifiers are not recognized inside an @encode()
3553 (Method signatures): New subsection, explaining how method
3554 signatures are encoded.
3556 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
3558 Merge from 'apple/trunk' branch on FSF servers. Removed small
3559 change in build_conditional_expr that had been added when fixing
3560 PR objc/27377 and which did the same check in a less complete way.
3562 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
3565 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
3566 looking for objective-c common pointer types.
3568 2005-06-22 Ziemowit Laski <zlaski@apple.com>
3571 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
3572 use their ObjC common type.
3574 2010-09-27 Richard Guenther <rguenther@suse.de>
3576 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
3578 2010-09-27 Jie Zhang <jie@codesourcery.com>
3580 * print-tree.c (print_node): Print in-constant-pool.
3582 2010-09-27 Uros Bizjak <ubizjak@gmail.com>
3584 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
3585 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
3586 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
3587 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
3589 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
3591 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
3592 from pro_epilogue_adjust_stack_<mode>_{1,2}.
3593 (pro_epilogue_adjust_stack_<mode>_add): Rename from
3594 pro_epilogue_adjust_stack_<mode>_3.
3595 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
3596 renamed pro_epilogue_adjust_stack_{si,di}_add.
3597 (ix86_expand_prologue): Use indirect functions. Update for renamed
3598 pro_epilogue_adjust_stack_{si,di}_sub.
3600 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
3602 * config/i386/i386.md (movmsk_df): New insn.
3603 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
3604 sequence for TARGET_SSE_MATH.
3606 2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
3608 * config/mips/mips.c (mips_builtin_decls): Declare.
3609 (mips_init_builtins): Store function declarations in
3611 (mips_builtin_decl): New function.
3612 (TARGET_BUILTIN_DECL): Define.
3614 2010-09-25 Kai Tietz <kai.tietz@onevision.com>
3615 Richard Henderson <rth@redhat.com>
3617 * config/i386/cygwin.asm: Include auto-host.h.
3618 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
3619 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
3620 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
3621 alignment code from the 64-bit path. Use gas local labels.
3622 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
3623 from _di_2. Remove the useless constant integer argument.
3624 (pro_epilogue_adjust_stack_<mode>_3): New.
3625 (allocate_stack_worker_probe_<mode>): Macroize from
3626 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
3627 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
3628 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
3629 (__chkstk_ms): New function.
3630 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
3631 * gcc/config/i386/t-interix: Likewise.
3632 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
3633 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
3634 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
3635 * configure, config.in: Rebuild.
3637 2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
3639 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
3640 statements because of the return slot optimization.
3642 2010-09-25 Anatoly Sokolov <aesok@post.ru>
3644 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
3645 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
3646 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3647 (class_likely_spilled_p): Rename to...
3648 (avr_class_likely_spilled_p): ...this. Make static. Change argument
3649 type to reg_class_t.
3651 2010-09-24 Jan Hubicka <jh@suse.cz>
3653 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
3654 (lto_symtab_resolve_symbols): Set it.
3655 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
3656 store resolution field in cgraph/varpool.
3657 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
3658 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
3659 (cgraph_dump_node): Drop used_from_object_file.
3660 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
3661 (cgraph_function_body_availability): Use decl_replaceable_p.
3662 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
3663 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
3664 cgraph_used_from_object_file_p.
3665 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
3666 cgraph_used_from_object_file_p.
3667 (resolution_used_from_other_file_p): New functoin.
3668 (cgraph_used_from_object_file_p): New predicate.
3669 * cgraph.h: Include plugin-api.h
3670 (struct cgraph_local_info): Remove used_from_object_file.
3671 (struct cgraph_node): Add resolution field.
3672 (struct varpool_node): Likewise; remove used_from_object_file;
3673 reove const_value_known.
3674 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
3675 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
3676 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
3677 varpool_used_from_object_file_p): Declare.
3678 (varpool_get_node, varpool_extra_name_alias): Update prototype.
3679 * tree.h (DECL_REPLACEABLE_P): Remove.
3680 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
3681 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
3682 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3683 input_overwrite_node, input_node, input_varpool_node): Stream
3685 * expr.c (expand_expr_real_1): Use const_value_known_p
3686 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
3688 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
3689 (function_and_variable_visibility): Set resolution for local vars
3690 and functions; use varpool_used_from_object_file_p.
3691 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
3693 (default_binds_local_p_1): Use resolutoin info.
3694 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
3695 * varpool.c (varpool_get_node): Constify.
3696 (const_value_known_p): Do not use vnode->const_value_known;
3697 use decl_replaceable_p.
3698 (varpool_finalize_decl): Do not set const_value_known.
3699 (cgraph_variable_initializer_availability): Use decl_replaceable_p
3700 (varpool_extra_name_alias): Return new node.
3701 (varpool_used_from_object_file_p): New function.
3703 2010-09-24 Richard Henderson <rth@redhat.com>
3705 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
3706 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
3707 (do_spill): Use REG_CFA_OFFSET.
3708 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
3710 (ia64_expand_epilogue): Likewise.
3711 (process_set): Split into ...
3712 (process_cfa_adjust_cfa): this,
3713 (process_cfa_register): this,
3714 (process_cfa_offset): and this new function.
3715 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
3716 instead of REG_FRAME_RELATED_EXPR.
3718 2010-09-24 Olivier Hainque <hainque@adacore.com>
3720 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
3722 2010-09-24 Jan Hubicka <jh@suse.cz>
3724 * doc/extend.texi: (attribute leaf): Document.
3725 * tree.c (local_define_builtin): Handle ECF_LEAF.
3726 (build_common_builtin_nodes): Set ECF_LEAF where needed.
3727 * tree.h (ECF_LEAF): New.
3728 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
3729 overwrittable and unavailable functions.
3730 (ipa_init): Put all_module_statics into optimization_summary_obstack.
3731 (copy_global_bitmap): Do not copy all_module_statics.
3732 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
3733 (propagate): Handle overwritable and unavailable leaf functions;
3734 initialize global info for overwritable and unavailable leaf functions;
3735 do not free all module statics.
3736 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
3738 * calls.c (flags_from_decl_or_type): Handle leaf.
3739 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
3742 2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
3744 * gengtype.c: Reindented.
3745 * gengtype.h: Reindented.
3746 * gengtype-parse.c: Reindented.
3748 2010-09-24 Jan Hubicka <jh@suse.cz>
3750 PR tree-optimization/45738
3751 PR tree-optimization/45741
3752 * expr.c (string_constant): Allow CONST_DECL too;
3753 check that DECL_INITIAL is set.
3754 * varpool.c (const_value_known_p): Only look into VAR_DECL
3757 2010-09-24 Joseph Myers <joseph@codesourcery.com>
3759 * common.opt (undef): New.
3761 2010-09-24 Jakub Jelinek <jakub@redhat.com>
3764 * rtl.h (enum global_rtl_index): Add
3765 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
3766 (LAST_VIRTUAL_POINTER_REGISTER): Define.
3767 (virtual_preferred_stack_boundary_rtx,
3768 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
3769 (LAST_VIRTUAL_REGISTER): Increase by one.
3770 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
3771 instead of LAST_VIRTUAL_REGISTER.
3772 * function.c (instantiate_new_reg): Handle
3773 virtual_preferred_stack_boundary_rtx.
3774 * emit-rtl.c (init_virtual_regs): Handle
3775 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
3776 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
3777 * explow.c (round_push): If crtl->preferred_stack_boundary
3778 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
3779 virtual_preferred_stack_boundary_rtx alignment instead of
3780 crtl->preferred_stack_boundary alignment.
3781 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
3782 macros. Never decrease crtl->preferred_stack_boundary,
3783 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
3784 instead of PREFERRED_STACK_BOUNDARY. Don't modify
3785 stack_pointer_delta in dynamic allocation, even when size
3787 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
3789 * print-rtl.c (print_rtx): Handle
3790 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
3791 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
3792 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
3793 * config/frv/frv.c (frv_emit_movsi): Likewise.
3794 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
3795 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
3799 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
3802 * calls.c (expand_call): Make sure that all variable sized
3803 adjustments are multiple of preferred stack boundary after
3806 2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
3807 Dominique Dhumieres <dominiq@lps.ens.fr>
3810 * gcc/config/darwin-driver.c (darwin_default_min_version):
3811 Adjust size passed to memcpy in two places.
3813 2010-09-24 Richard Guenther <rguenther@suse.de>
3815 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
3816 Make sure to not call set_type_context with error_mark_node.
3817 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
3819 2010-09-24 Richard Guenther <rguenther@suse.de>
3821 * Makefile.in (OBJS-onestep): Remove.
3822 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
3823 (libbackend.a): Remove onestep support.
3824 (libbackend.o): Remove.
3825 * configure.ac (--enable-intermodule): Remove.
3826 * configure: Regenerate.
3828 2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
3830 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
3831 reaching the end of a block if it occurs at a DEBUG_INSN.
3833 2010-09-09 Tristan Gingold <gingold@adacore.com>
3836 * config/vms/vms-crt0-64.c: Removed.
3837 * config/vms/vms-crt0.c: Removed.
3838 * config/vms/vms-psxcrt0-64.c: Removed.
3839 * config/vms/vms-psxcrt0.c: Removed.
3840 * config/vms/vms-ucrt0.c: New file.
3841 * config/vms/t-vms64: Removed.
3842 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
3843 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
3844 * config.gcc (alpha-dec-vms): Use t-vms.
3846 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
3848 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
3849 underfull hbox in DVI output.
3850 (-fobjc-class-cxx-cdtors): Same change.
3851 (-fobjc-exceptions): Tidied up documentation. Explain what the
3852 option does, but moved the (lenghty) description of the exception
3853 syntax into objc.texi.
3854 (-fobjc-gc): Explain that the option is not useful with the GNU
3856 (-fzero-link): Explain that the GNU runtime always works in
3858 * doc/objc.texi: All sections: simplified @node declarations
3859 removing specification of next, previous, up node.
3860 (Objective-C): Updated introduction.
3861 (Garbage Collection): Updated. The bohem-gc library is now
3862 included in gcc itself. Mention that this section only applies to
3863 the GNU Objective-C runtime.
3864 (compatibility_alias): Small tidy up.
3865 (Exceptions): New section mostly containing text previously in the
3866 description of the -fobjc-exception command-line option.
3867 (Synchronization): Same.
3869 2010-09-24 Uros Bizjak <ubizjak@gmail.com>
3871 * config/i386/i386.md (ix86_code_end): Move the initialization of
3872 xops array near the consumer. Use AX_REG and SP_REG instead of
3873 numerical constants.
3875 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
3877 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
3878 method [methodname]' for an Objective-C method instead of the less
3879 satisfactory 'too many arguments to function' (with no method name).
3881 2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
3883 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
3884 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
3885 (execute_update_addresses_taken): Remove parameter. Execute the
3886 optimization unconditionally.
3887 * passes.c (execute_function_todo): Call execute_update_addresses_taken
3888 unconditionally if TODO_rebuild_alias is set, else only when optimizing
3889 if TODO_update_address_taken is set.
3891 2010-09-23 Anatoly Sokolov <aesok@post.ru>
3893 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3894 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
3895 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3896 (arm_output_addr_const_extra): Make static.
3898 2010-09-23 Uros Bizjak <ubizjak@gmail.com>
3900 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
3901 define as unspec_volatile.
3902 ("nops"): Define as unspec_volatile. Use fputs to write to
3903 asm_out_file directly. Output NOPs on separate lines using while loop.
3904 * config/i386/i386.c (ix86_code_end): Use fputs to write to
3905 asm_out_file directly. Output NOPs on separate lines using while loop.
3907 2010-09-23 Richard Guenther <rguenther@suse.de>
3909 PR tree-optimization/45565
3910 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
3911 Make sure to adjust the fndecl before replacing the stmt.
3913 2010-09-23 Richard Guenther <rguenther@suse.de>
3916 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
3917 gimplifying MEM_REF.
3919 2010-09-23 Alan Modra <amodra@gmail.com>
3921 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
3922 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
3924 2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
3926 PR rtl-optimization/44374
3927 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
3928 * df-core.c (df_set_bb_dirty): Set it.
3929 * ifcvt.c (find_memory): Remove function.
3930 (dead_or_predicable): Use can_move_insns_across.
3931 * df.h (can_move_insns_across): Declare function.
3932 * cfgcleanup.c (block_was_dirty): New static variable.
3933 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
3934 than df_get_bb_dirty.
3935 (try_head_merge_bb): New static function.
3936 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
3938 * df-problems.c: Include "target.h"
3939 (df_simulate_find_uses): New static function.
3940 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
3941 (find_memory, find_memory_store): New static functions.
3942 (can_move_insns_across): New function.
3943 * Makefile.in (df-problems.o): Update dependencies.
3945 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
3948 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
3949 is specified and the suffix of the file isn't ".c".
3950 * config/sparc/linux64.h (ASM_SPEC): Likewise.
3952 2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3954 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
3955 * doc/cppopts.texi: Fix markup of index entry.
3956 * doc/extend.texi (Constructing Calls): Fix markup of
3957 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
3958 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
3959 (Vague Linkage, C++ Attributes): Fix markup of index entries and
3961 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
3963 (C Dialect Options, C++ Dialect Options, Warning Options)
3964 (Debugging Options, Spec Files, Darwin Options)
3965 (i386 and x86-64 Options, MIPS Options)
3966 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
3967 index entries, avoid abbreviations, allow URLs to wrap, avoid
3968 long lines, avoid overlong pages from long @itemx lists.
3969 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
3970 * doc/standards.texi (Standards): Likewise.
3971 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
3973 2010-09-22 Joseph Myers <joseph@codesourcery.com>
3975 * opts-common.c (prune_options): Make static. Work with decoded
3977 (decode_cmdline_options_to_array): Call prune_options. Don't
3978 resize option array here.
3979 * opts.h (prune_options): Remove prototype.
3980 * gcc.c (process_command): Take decoded options; don't call
3981 decode_cmdline_options_to_array here. Use decoded options for argv[0].
3982 (main): Call decode_cmdline_options_to_array here instead of
3983 prune_options. Update call to process_command.
3984 * config/darwin-driver.c: Include opts.h.
3985 (darwin_default_min_version): Work with decoded options. Don't
3986 handle -b or -V here.
3987 * config/darwin.h (darwin_default_min_version): Update prototype.
3988 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
3989 darwin_default_min_version.
3990 * config/i386/cygwin.h (mingw_scan): Update prototype.
3991 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
3992 * config/i386/cygwin1.c: Include opts.h.
3993 (mingw_scan): Work with decoded options.
3994 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
3995 * config/t-darwin (darwin-driver.o): Update dependencies.