OSDN Git Service

* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-18  Jan Hubicka  <jh@suse.cz>
2
3         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
4         function_and_variable_visibility): Revert accidental commit.
5
6 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7
8         Merge from 'apple/trunk' branch on FSF servers.
9         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
10         the following Objective-C change:
11
12         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
13
14         Radar 4204796
15         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
16         'volatilized' type used in a typeof operator.
17
18 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
19
20         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
21         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
22         rewrite modelled on gimple_purge_dead_eh_edges.
23         (gimple_purge_all_dead_abnormal_call_edges): New function.
24         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
25         directly instead of through gimple_purge_dead_abnormal_call_edges.
26         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
27         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
28         removed AB side-effects from one of its statements.
29         (init_pre): Initialize need_ab_cleanup.
30         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
31         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
32
33 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
34
35         PR c/46015
36         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
37         on computed goto argument.
38
39 2010-10-18  Richard Guenther  <rguenther@suse.de>
40
41         PR tree-optimization/45967
42         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
43         (could_have_pointers): Likewise.
44         (handle_rhs_call, handle_const_call, handle_pure_call,
45         find_func_aliases, intra_create_variable_infos): Remove calls to them.
46         (struct fieldoff): Add must_have_pointers field.
47         (type_must_have_pointers): New function.
48         (field_must_have_pointers): Likewise.
49         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
50         Adjust field merging.
51         (create_function_info_for): May-have-pointers of varinfo is
52         almost always true.
53         (create_variable_info_for_1): Likewise.
54
55 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
56
57         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
58         of operands to vec_concat.
59
60 2010-10-18  Richard Guenther  <rguenther@suse.de>
61
62         PR lto/44950
63         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
64         also clear references to entries of it.
65
66 2010-10-18  Andi Kleen  <ak@linux.intel.com>
67
68         PR other/43448
69         * gccbug.in: Remove.
70         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
71         (doc, distclean, install-common): Remove reference to gccbug.
72         * configure: Regenerate.
73         * configure.ac (all_outputs): Remove gccbug.
74         * doc/configfiles.texi: Remove references to gccbug.
75         * doc/sourcebuild.texi: Dito.
76
77 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
78
79         PR middle-end/46019
80         * fold-const.c (fold_binary_loc): If integer_pow2p has
81         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
82
83 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
84             Jeremie Salvucci  <jeremie.salvucci@free.fr>
85
86         * gengtype.c (verbosity_level): Add variable.
87         (set_gc_used): Count variables for verbosity.
88         (close_output_files): Backing up files, counting written ones
89         verbosily.
90         (write_types): Count emitted functions for verbosity. Added
91         debug messages.
92         (write_enum_defn): Count structures for verbosity. Added debug
93         messages.
94         (gengtype_long_options): Add "verbose" & "backupdir".
95         (print_usage): Ditto.
96         (main): Verbose display of parsed files.
97
98         * gengtype.h (verbosity_level): Add declaration.
99
100 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
101
102         * gengtype.c (parse_program_options): Add allocation of
103         plugin_files, and correct test on nb_plugin_files.
104
105 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
106
107         Merge from 'apple/trunk' branch on FSF servers.
108         
109         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
110
111         Radar 4133425
112         * c-decl.c (undeclared_variable): Issue diagnostic on
113         private 'ivar' access.
114         
115 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
116
117         PR target/46051
118         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
119         generated sequence to match *avx_vperm2f128<mode>_nozero.
120         (vec_interleave_lowv4df): Ditto.
121         (vec_interleave_highv8sf): Ditto.
122         (vec_interleave_lowv8sf): Ditto.
123
124 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
125
126         * libgcov.c (create_file_directory): Enable it for win32 case.
127         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
128         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
129         (GCOV_PREFIX_SKIP): Likewise.
130
131 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
132
133         * doc/objc.texi (GNU Objective-C runtime API): New section.
134         (Modern GNU Objective-C runtime API): New section.
135         (Traditional GNU Objective-C runtime API): New section.
136         (Executing code before main): Mention that this section is
137         specific to the GNU Objective-C runtime.
138         (Garbage Collection): Same.
139
140 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
141
142         * c-parser.c (c_parser_for_statement): Move initialization of
143         cond and incr before if.
144
145 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
146
147         * target.def (preferred_output_reload_class): New hook.
148         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
149         * doc/tm.texi: Regenerate.
150         * targhooks.c (default_preferred_output_reload_class): New function.
151         * targhooks.h (default_preferred_output_reload_class): Declare.
152         * reload.c (find_dummy_reload): Change rclass argument type from
153         enum reg_class to reg_class_t. Change this_alternative array type
154         from enum reg_class to reg_class_t.
155         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
156         (push_reload): Change preferred_class variable type to reg_class_t.
157         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
158         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
159         argument type from enum reg_class to reg_class_t. Use
160         HARD_REGISTER_NUM_P predicate.
161         * recog.h (reg_fits_class_p): Update prototype.
162
163         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
164         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
165         Remove.
166         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
167         static. Change regclass argument and result types from enum reg_class
168         to reg_class_t.
169         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
170
171 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
172
173         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
174         visibility enum, and handle @package.
175
176 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
177
178         * doc/objc.texi (What you can and what you cannot do in +load):
179         Document that sending messages to constant string objects in +load
180         is not guaranteed to work.
181
182 2010-10-16  Jan Hubicka  <jh@suse.cz>
183
184         PR middle-end/44206
185         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
186         existence of refrences before removing the function.
187
188 2010-10-16  Jan Hubicka  <jh@suse.cz>
189
190         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
191         only_called_at_startup and only_called_at_exit.
192         (cgraph_propagate_frequency): Compute only_called_at_startup and
193         only_called_at_exit.
194         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
195         only_called_at_exit.
196         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
197         flags.
198         * predict.c (compute_function_frequency): Initialize the new flags.
199
200 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
201
202         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
203         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
204         on the bounds of its domain.
205         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
206
207 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
208
209         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
210         * config/avr/avr-protos.h (preferred_reload_class): Remove.
211         * config/avr/avr.c (preferred_reload_class): Remove.
212         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
213         * config/pa/pa.c (emit_move_sequence): Update comment
214         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
215         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
216         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
217         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
218         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
219         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
220         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
221         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
222         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
223         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
224         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
225         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
226         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
227
228 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
229
230         * opts.c (set_fast_math_flags,
231         set_unsafe_math_optimizations_flags): Make static.
232         * toplev.h (set_fast_math_flags,
233         set_unsafe_math_optimizations_flags): Remove prototypes.
234
235 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
236
237         * config/arm/arm.c (arm_option_optimization): Set
238         flag_section_anchors to 1 not 2.
239         * config/i386/i386.c (ix86_option_override_internal): Check
240         global_options_set.x_flag_zee and
241         global_options_set.x_flag_omit_frame_pointer.
242         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
243         flag_zee to 2.
244         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
245         global_options_set.x_flag_omit_frame_pointer.
246         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
247         opts->x_flag_section_anchors to 1 not 2.
248         * config/sh/sh.c (sh_option_optimization): Don't set
249         flag_schedule_insns to 2.
250         (sh_option_override): Check
251         global_options_set.x_flag_schedule_insns.
252         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
253
254 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
255
256         * configure.ac: Make sure inhibit_libc remains false for mingw targets
257         as cross.
258         * configure: Regenerated.
259
260 2010-10-15  Xinliang David Li  <davidxl@google.com>
261
262         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
263         function.
264         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
265         into a recursive function.
266
267 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
268
269         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
270         (*movdfcc_1): ditto.
271
272 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
273
274         * target.def (target_option.init_struct): New hook.
275         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
276         * doc/tm.texi: Regenerate.
277         * hooks.c (hook_void_gcc_optionsp): New.
278         * hooks.h (hook_void_gcc_optionsp): Declare.
279         * langhooks-def.h (lhd_init_options_struct): Remove.
280         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
281         * langhooks.c (lhd_init_options_struct): Remove.
282         * opts.c (init_options_struct): Also call
283         targetm.target_option.init_struct.
284         * config/i386/i386.c (ix86_option_init_struct,
285         TARGET_OPTION_INIT_STRUCT): New.
286         (ix86_option_optimization): Move some settings to
287         ix86_option_init_struct.
288         * config/pdp11/pdp11.c (pdp11_option_init_struct,
289         TARGET_OPTION_INIT_STRUCT): New.
290         (pdp11_option_optimization): Move some settings to
291         pdp11_option_init_struct.
292         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
293         rs6000_option_init_struct.  Use options structure pointer.
294         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
295         * config/s390/s390.c (s390_option_init_struct,
296         TARGET_OPTION_INIT_STRUCT): New.
297         (s390_option_optimization): Don't set
298         flag_asynchronous_unwind_tables here.
299         * config/sh/sh.c (sh_option_init_struct,
300         TARGET_OPTION_INIT_STRUCT): New.
301         (sh_option_optimization): Don't set flag_finite_math_only here.
302         * config/spu/spu.c (spu_option_optimization): Replace by
303         spu_option_optimization.  Use options structure pointer.
304         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
305
306 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
307
308         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
309
310         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
311         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
312         (Standard names): Document fma.
313
314         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
315         __FP_FAST_FMAF, __FP_FAST_FMAL.
316
317         * builitns.c (expand_builtin_mathfn_ternary): New function for
318         expanding ternary math functions, like fma.
319         (expand_builtin): Call it for the fma builtins.
320
321         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
322         ops at present.
323
324         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
325         vectorizable functions to support vectorizing fma.
326
327         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
328         Handle fma builtins.
329
330         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
331         (UNSPEC_VSX_MSUB): Ditto.
332         (UNSPEC_VSX_NMADD): Ditto.
333         (UNSPEC_VSX_NMSUB): Ditto.
334         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
335         of UNSPEC. Renumber combiner patterns.
336         (vsx_fmsub<mode>4*): Ditto.
337         (vsx_fnmadd<mode>4*): Ditto.
338         (vsx_fnmsub<mode>4*): Ditto.
339
340         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
341         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
342         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
343         (altivec_vmaddfp_1): Ditto.
344         (altivec_vmaddfp_2): Ditto.
345         (atlivec_mulv4sf3): Ditto.
346         (altivec_vnmsubfp): Ditto.
347         (altivec_vnmsubfp_1): Ditto.
348         (altivec_vnmsubfp_2): Ditto.
349         (altivec_vnmsubfp_3): Delete.
350
351         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
352         (fmasf4_fpr): Ditto.
353         (fmssf4_fpr): Ditto.
354         (fnmasf4_fpr): Ditto.
355         (fnmssf4_fpr): Ditto.
356         (fmadf4): Ditto.
357         (fmadf4_fpr): Ditto.
358         (fmsdf4_fpr): Ditto.
359         (fnmadf4_fpr): Ditto.
360         (fnmsdf4_fpr): Ditto.
361
362         * optabs.h (OTI_fma): Add fma optab.
363         (fma_optab): Ditto.
364
365         * genopinit.c (optabs): Set fma optab.
366
367         * rtl.def (FMA): Add FMA rtl.
368
369         * tree.h (mode_has_fma): New function to return if MODE supports a
370         fast multiply and add instruction.
371         * builtins.c (mode_has_fma): Ditto.
372
373 2010-10-15  Jan Hubicka  <jh@suse.cz>
374
375         * lto-streamer-out.c (write_symbol): Use pointer set of seen
376         objects instead of bitmap.
377         (produce_symtab): Likewise; output defined symbols first.
378
379 2010-10-15  Jie Zhang  <jie@codesourcery.com>
380
381         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
382         Option Summary and Index.
383
384 2010-10-15  Richard Guenther  <rguenther@suse.de>
385
386         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
387         for automatic variables again.
388
389 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
390
391         * doc/extend.texi (Variable Length): Don't refer to VLAs not
392         conforming to C99.
393
394 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
395
396         * config/rx/rx.c (rx_option_optimization): Change to
397         rx_override_options_after_change.  Don't change
398         flag_lto_compression_level.  Don't check for changes to whether
399         FPU instructions can be used.  Check and set only
400         flag_finite_math_only, not other fast-math flags.
401         (rx_option_override): Call rx_override_options_after_change.
402         (TARGET_OPTION_OPTIMIZATION): Remove.
403         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
404
405 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
406
407         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
408         disable section anchors for lang_hooks.name[4] != 'O'.
409
410 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
411
412         * config/frv/frv.c (frv_option_optimization,
413         TARGET_OPTION_OPTIMIZATION): Remove.
414         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
415
416 2010-10-15  Michael Matz  <matz@suse.de>
417
418         * cgraphunit.c (clone_of_p): Define unconditionally.
419
420 2010-10-15  Richard Guenther  <rguenther@suse.de>
421
422         PR lto/45957
423         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
424
425 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
426
427         * ifcvt.c (find_active_insn_before): New function.
428         (find_active_insn_after): New function.
429         (cond_exec_process_if_block): Use new functions to replace
430         prev_active_insn() and next_active_insn().
431
432 2010-10-14  Yao Qi  <yao@codesourcery.com>
433
434         PR target/45447
435         * config/arm/arm.c (arm_build_builtin_va_list): Assign
436         va_list_name to TYPE_STUB_DECL (va_list_type).
437
438 2010-10-14  Jan Hubicka  <jh@suse.cz>
439
440         PR middle-end/45621
441         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
442         redirected to clone, be happy.
443         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
444         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
445         former_clone_of unconditionally.
446
447 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
448
449         Merge from FSF apple 'trunk' branch.
450         2006 Fariborz Jahanian <fjahanian@apple.com>
451
452         Radars 4436866, 4505126, 4506903, 4517826
453         * c-parser.c (c_parser, objc_property_attr_context) New flag.
454         (c_lex_one_token): Handle property attributes.
455         (c_parser_external_declaration): Handle @property.
456         (c_parser_declaration_or_fndef): Warn on invalid attributes before
457         @alias, @class, @end and @property objc keywords.
458         (c_parser_objc_methodprotolist): Handle @property.
459         (c_parser_objc_property_attrlist): New.
460         (c_parser_objc_at_property): New.
461         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
462         (build_modify_expr): Likewise.
463
464 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
465
466         PR tree-optimization/46008
467         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
468
469 2010-10-14  Richard Guenther  <rguenther@suse.de>
470
471         PR tree-optimization/44913
472         * tree-data-ref.c (disjoint_objects_p): Remove.
473         (dr_may_alias_p): Simplify.  Only hand the base object to
474         the alias-oracle.
475         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
476         some more trees, bail out instead of asserting.
477         (ptr_derefs_may_alias_p): Likewise.  Export.
478         (refs_may_alias_p_1): Handle STRING_CSTs.
479         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
480
481 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
482
483         PR c/45969
484         * c-typeck.c (build_binary_op): Don't try to compute a semantic
485         type with excess precision for boolean operations.
486
487 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
488             Basile Starynkevitch  <basile@starynkevitch.net>
489
490         * gengtype.c:  Include getopt.h and version.h.
491
492         (lang_bitmap, struct outf, outf_p)
493         (get_output_file_with_visibility, oprintf): Definitions moved to
494         gengtype.h
495         (output_files, header_file, srcdir, srcdir_len, this_file)
496         (do_dump): No more static variables.
497         (do_debug): New.
498         (dbgprint_count_type_at): Added new function.
499         (gengtype_long_options): New.
500         (print_usage, print_version, parse_program_options): New.
501         (main): Call parse_program_options, and removed old option
502         handling code.  Added some debug output.
503
504         * gengtype.h:  Updated copyright year.
505         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
506         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
507         Moved from gengtype.c to here.
508         (do_debug, read_state_filename, write_state_filename): New variables.
509         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
510
511         * Makefile.in:
512         (REVISION): Always defined.
513         (version.o): Removed ifdef REVISION_c.
514         (s-gtype): Pass arguments to build/gengtype program.
515         (build/version.o): Added building rule.
516         (build/gengtype$(build_exeext)): Added build/version.o.
517
518 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
519
520         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
521         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
522         __strong macros.
523
524 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
525
526         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
527         may_trap_or_fault_p instead of may_trap_p predicate.
528         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
529         (substitute_placeholder_in_expr): Likewise.
530         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
531         flag on MEM_REF nodes.
532         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
533         flags on INDIRECT_REF nodes.
534
535 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
536
537         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
538         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
539         (arm*-*-eabi*) <tm_file>: Likewise.
540         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
541         (frv-*-*linux*) <tm_file>: Likewise.
542         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
543         and associated helper macros.
544         * config/frv/frv-abi.h: Delete.
545
546 2010-10-14  Richard Guenther  <rguenther@suse.de>
547
548         PR lto/44561
549         * tree.def (NULLPTR_TYPE): New tree code.
550         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
551         * dwarf2out.c (is_base_type): Likewise.
552         (gen_type_die_with_usage): Likewise.
553         * sdbout.c (plain_type_1): Likewise.
554         * tree.c (build_int_cst_wide): Likewise.
555         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
556
557 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
558
559         * params.c (params_finished): New.
560         (add_params): Assert !params_finished.
561         (finish_params): New.
562         (set_param_value_internal): Take params and params_set
563         parameters.  Assert params_finished.
564         (set_param_value, maybe_set_param_value): Take params and
565         params_set parameters.  Update calls to set_param_value_internal.
566         (set_default_param_value): Assert !params_finished.  Don't use
567         set_param_value_internal.
568         (default_param_value, init_param_values): New.
569         * params.h (struct param_info): Change value to default_value.
570         Remove set.
571         (set_param_value, maybe_set_param_value): Add params and
572         params_set parameters.
573         (PARAM_VALUE): Get parameters from global_options.
574         (PARAM_SET_P): Remove.
575         (finish_params, default_param_value, init_param_values): New.
576         * common.opt (param_values): New Variable.
577         * config/arm/arm.c (arm_option_override): Pass extra arguments to
578         maybe_set_param_value.
579         * config/i386/i386.c (ix86_option_override_internal): Pass extra
580         arguments to maybe_set_param_value.
581         * config/picochip/picochip.c (picochip_option_override): Pass
582         extra arguments to maybe_set_param_value.
583         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
584         extra arguments to maybe_set_param_value.
585         * config/s390/s390.c (s390_option_override): Use
586         maybe_set_param_value instead of set_param_value.  Pass extra
587         arguments to maybe_set_param_value.
588         * config/sparc/sparc.c (sparc_option_override): Pass extra
589         arguments to maybe_set_param_value.
590         * config/spu/spu.c (spu_option_override): Pass extra arguments to
591         maybe_set_param_value.
592         * opts.c (handle_param): Take opts and opts_set parameters.
593         Update call to set_param_value.
594         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
595         initial_loop_invariant_max_bbs_in_loop): Remove.
596         (init_options_once): Don't set them.
597         (init_options_struct): Initialize parameters structures.
598         (default_options_optimization): Use default_param_value when
599         restoring defaults.  Update calls to maybe_set_param_value.
600         (finish_options): Update calls to maybe_set_param_value.
601         (common_handle_option): Update calls to handle_param and
602         set_param_value.
603         * toplev.c (DEFPARAM): Update definition for changes to param_info.
604         (general_init): Call finish_params.
605
606 2010-10-14  Nick Clifton  <nickc@redhat.com>
607
608         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
609         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
610         (FIRST_PSEUDO_REGISTER): Increase by one.
611         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
612         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
613         (MODES_TIEABLE): Call mn10300_modes_tieable.
614         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
615         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
616         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
617         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
618         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
619         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
620         (mn10300_cc_status_mdep): Delete.
621         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
622         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
623         the combine-stack-adjust pass.
624         (print_operand): Use the mode of the comparison operation to
625         select the comparison suffix.
626         (notice_update_cc): Delete.
627         (mn10300_secondary_reload_class): Remove test for stack pointer
628         based arithmetic.
629         (output_tst): Rename to mn10300_output_cmp.
630         (impossible_plus_operand): Move into predicates.md.
631         (mn10300_legitimize_address): Make static.
632         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
633         constant pic operands.
634         (mn10300_legitimate_constant_p): New function.
635         (mn10300_case_values_threshold): Make static.
636         (mn10300_hard_regno_mode_ok): New function.
637         (mn10300_modes_tieable): New function.
638         (mn10300_select_cc_mode): New function.
639         * config/mn10300/predicates.md (impossible_plus_operand): Define.
640         * config/mn10300/mn10300-protos.h: Tidy.
641         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
642         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
643         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
644         with clobbers or sets of CC_REG.
645         (CC_REG): Define.
646         (mov*): Remove use of CLR instruction.
647         (cbranch_si4_<code>): New pattern/split.
648         (integer_conditional_branch): New pattern.
649         (cbranch_sf4_<code>): New pattern/split.
650         (float_conditional_branch): New pattern.
651         (casesi): Use addsi3 pattern instead of movsi pattern to add and
652         move a value at the same time.
653         (cc0 peepholes): Remove.
654
655 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
656
657         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
658         on RTX_FRAME_RELATED_P insns and the insn to which
659         NOTE_INSN_EPILOGUE_BEG is attached.
660         * sched-vis.c (print_value): Allow NULL value.
661
662 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
663
664         PR rtl-optimization/45570
665         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
666         assert that we are pipelining outer loops.  Allow returning
667         zero predecessors.
668
669 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
670
671         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
672         (tidy_control_flow): Tidy vertical space.
673         (sel_remove_bb): New variable idx.  Use it to remember the basic
674         block index before deleting the block.
675         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
676         (sel_merge_blocks): ... here.
677         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
678
679 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
680
681         * cse.c (is_dead_reg): Change into inline function that is not
682         called through for_each_rtx.
683         (set_live_p): Adjust caller.
684         (insn_live_p): Don't reset DEBUG_INSNs here.
685         (struct dead_debug_insn_data): New data.
686         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
687         (delete_trivially_dead_insns): If there is just one setter for the
688         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
689         and add DEBUG_INSN for it right before the removed setter and
690         use the DEBUG_EXPR instead of the dead pseudo.
691
692 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
693
694         * et-forest.c (et_nca): Return NULL immediately when
695         the dominance forest has disjoint components.
696
697 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
698
699         * ira.c (setup_class_hard_regs): Fix typo in indexing
700         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
701
702 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
703
704         * graph.c (inbb): New variable.
705         (start_bb): Set inbb to 1 if output is inside of a building block.
706         (end_bb): Check if output is inside of a building block.
707
708 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
709
710         PR rtl-optimization/45912
711         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
712         regno of registers instead of their index to compute the alignment.
713
714 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
715
716         * config/i386/i386.c (ix86_build_const_vector): Check vector
717         mode instead of scalar mode.
718         (ix86_build_signbit_mask): Likewise.
719         (ix86_expand_fp_absneg_operator): Updated.
720         (ix86_expand_copysign): Likewise.
721         (ix86_expand_int_vcond): Likewise.
722         (ix86_emit_swdivsf): Likewise.
723         (ix86_sse_copysign_to_positive): Likewise.
724         (ix86_expand_sse_fabs): Likewise.
725         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
726         * config/i386/sse.md (copysign<mode>3): Likewise.
727         (sse2_cvtudq2ps): Likewise.
728         (vec_unpacku_float_hi_v4si): Likewise.
729         (vec_unpacku_float_lo_v4si): Likewise.
730
731         * config/i386/i386.c (ix86_builtins): Add
732         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
733         (bdesc_args): Likewise.
734         (ix86_builtin_vectorized_function): Support
735         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
736         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
737         and IX86_BUILTIN_CVTPS2DQ256.
738         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
739
740         * config/i386/sse.md (STORENT_MODE): New.
741         (VEC_FLOAT_MODE): Likewise.
742         (VEC_EXTRACT_MODE): Likewise.
743         (*avx_cvtdq2pd256_2): Likewise.
744         (vec_pack_trunc_v4df): Likewise.
745         (vec_interleave_highv8sf): Likewise.
746         (vec_interleave_lowv8sf): Likewise.
747         (storent<mode>): Macroized.
748         (<code><mode>2: absneg): Likewise.
749         (copysign<mode>3): Likewise.
750         (vec_extract<mode>): Likewise.
751
752         PR target/44180
753         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
754         for V8SFmode.
755
756 2010-10-13  Richard Guenther  <rguenther@suse.de>
757             H.J. Lu  <hongjiu.lu@intel.com>
758
759         * config/i386/sse.md (reduc_splus_v8sf): Add.
760         (reduc_splus_v4df): Likewise.
761         (vec_unpacks_hi_v8sf): Likewise.
762         (vec_unpacks_lo_v8sf): Likewise.
763         (*avx_cvtps2pd256_2): Likewise.
764         (vec_unpacks_float_hi_v8si): Likewise.
765         (vec_unpacks_float_lo_v8si): Likewise.
766         (vec_interleave_highv4df): Likewise.
767         (vec_interleave_lowv4df): Likewise.
768
769 2010-10-13  Richard Guenther  <rguenther@suse.de>
770
771         PR objc/45878
772         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
773         alone if there are no virtual methods.
774
775 2010-10-13  Richard Henderson  <rth@redhat.com>
776
777         * expr.c (build_personality_function): Take parameter LANG instead
778         of parameter NAME.  Build the name based on the lang prefix and the
779         unwind method in use.
780         * tree.c (lhd_gcc_personality): Update call to
781         build_personality_function.
782
783 2010-10-13  Richard Guenther  <rguenther@suse.de>
784
785         PR objc/45878
786         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
787
788 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
789
790         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
791         Canonicalize input operands of ASM_OPERANDS insns.
792
793 2010-10-13  Richard Guenther  <rguenther@suse.de>
794
795         PR tree-optimization/45788
796         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
797         EH update until fixup-cfg.
798
799 2010-10-13  Julian Brown  <julian@codesourcery.com>
800
801         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
802         from CORE_REGS and GENERAL_REGS classes.
803         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
804         final constraint for register preferencing.
805
806 2010-10-13  Richard Guenther  <rguenther@suse.de>
807
808         PR tree-optimization/45970
809         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
810         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
811         (stmt_kills_ref_p): Likewise.
812         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
813
814 2010-10-13  Richard Guenther  <rguenther@suse.de>
815
816         PR tree-optimization/45982
817         * tree-ssa-structalias.c (make_constraints_to): New function.
818         (make_constraint_to): Implement in terms of make_constraints_to.
819         (find_func_aliases): Properly make return values of pure/const
820         functions escape if they assign to sth that is not a pointer.
821
822 2010-10-13  Richard Guenther  <rguenther@suse.de>
823
824         PR middle-end/45874
825         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
826         Fixup the CFG when EH was fixed up.
827
828 2010-10-13  Ira Rosen  <irar@il.ibm.com>
829
830         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
831         Use operand's type for POINTER_PLUS_EXPR.
832
833 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
834
835         * c-parser.c (c_parser_for_statement): Initialize incr.
836
837 2010-10-12  Xinliang David Li  <davidxl@google.com>
838
839         PR tree-optimization/45972
840         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
841         with too many arguments.
842
843 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
844
845         PR fortran/45636
846         * tree-ssa-forwprop.c: Include expr.h.
847         (constant_pointer_difference, simplify_builtin_call): New functions.
848         (tree_ssa_forward_propagate_single_use_vars): Call
849         simplify_builtin_call on builtin calls.
850
851 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
852
853         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
854         (*adddi3_extend_sp32): Likewise.
855         (*subdi3_insn_sp32): Likewise.
856         (*subdi3_extend_sp32): Likewise.
857         (*negdi2_sp32): Use negative test for consistency.
858
859 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
860
861         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
862         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
863         * config/fixed-bit.h: Likewise.
864         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
865         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
866         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
867         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
868         (DF_SIZE): Likewise.
869         * doc/tm.texi: Regenerate.
870
871 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
872
873         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
874         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
875         (*isel_reversed_unsigned_<mode>): New.
876         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
877         as valid comparisons and adjust operands and output appropriately.
878         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
879
880 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
881
882         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
883         DATA_ALIGNMENT and add COND parameter. Update comments above.
884         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
885         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
886
887 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
888
889         PR bootstrap/45958
890         * exec-tool.in: Support '-plugin' as the second option to the linker.
891
892 2010-10-12  Richard Henderson  <rth@redhat.com>
893
894         PR middle-end/45962
895         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
896         (expand_stack_vars): Assert large base allocated when used.
897
898 2010-10-12  Richard Guenther  <rguenther@suse.de>
899
900         * tree-ssa-structalias.c (get_constraint_for_1): Constants
901         only point to nonlocal, not anything.
902
903 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
904
905         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
906         unwind info for exceptions.
907
908 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
909
910         PR testsuite/45851
911         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
912         Document optional target selector.
913
914 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
915
916         * flag-types.h: New.
917         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
918         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
919         options.h.
920         (OPTIONS_H): Define.
921         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
922         of options.h.
923         * configure.ac (tm_include_list): Include options.h not flags.h.
924         * configure: Regenerate.
925         * flags.h: Include flag-types.h.  Include options.h at top of file
926         again.
927         (enum debug_info_type, enum debug_info_level, enum
928         debug_info_usage, enum symbol_visibility, struct visibility_flags,
929         enum ira_algorithm, enum ira_region, enum excess_precision, enum
930         graph_dump_types, enum stack_check_type,
931         enum warn_strict_overflow_code): Move to flag-types.h
932         * opth-gen.awk: Include flag-types.h in options.h.
933
934 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
935
936         * expr.c (store_expr): Share code for STRING_CST and
937         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
938         check if target is a MEM.
939
940         * rtl.h: Include hashtab.h.
941         (iterative_hash_rtx): New prototype.
942         * rtl.c (iterative_hash_rtx): New function.
943         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
944         (output_loc_list): Return immediately if emitted is set, set it.
945         (hash_loc_operands, hash_locs, hash_loc_list,
946         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
947         optimize_location_lists_1, optimize_location_lists): New function.
948         (dwarf2out_finish): Call optimize_location_lists.
949         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
950
951 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
952
953         PR testsuite/45974
954         Revert:
955         * Makefile.in ($(lang_checks_parallel))
956         ($(lang_checks_parallelized)): Use single quotes for
957         $(RUNTESTFLAGS), to allow passing quoted content.
958
959 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
960
961         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
962         actual_oldval.  Use __builtin_expect.
963         (SUBWORD_VAL_CAS): Likewise.
964
965 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
966
967         * recog.c (nonmemory_operand): Call immediate_operand for
968         CONSTANT_P operands.
969
970 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
971
972         * config/i386/i386.md (movmem<mode>): Macroize expander from
973         movmem{si,di} using SWI48 mode iterator.
974         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
975         *strmovsi_rex_1 using P mode iterator.
976         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
977         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
978         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
979         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
980         (setmem<mode>): Macroize expander from setmem{si,di} using
981         SWI48 mode iterator.
982         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
983         *strsetsi_rex_1 using P mode iterator.
984         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
985         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
986         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
987         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
988         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
989         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
990         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
991         mode iterator.
992         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
993         *strlenqi_rex_1 using P mode iterator.
994
995 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
996
997         PR bootstrap/45445
998         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
999         static functions.
1000         (mark_ref_live, mark_ref_dead): Use them.
1001         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
1002         Save the original reg, and use the new functions.
1003         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
1004         changed.
1005         (check_and_make_def_conflict): Save the original reg.
1006
1007 2010-10-11  Martin Jambor  <mjambor@suse.cz>
1008
1009         PR middle-end/45699
1010         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
1011         thunks.
1012
1013 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1014
1015         * Makefile.in ($(lang_checks_parallel))
1016         ($(lang_checks_parallelized)): Use single quotes for
1017         $(RUNTESTFLAGS), to allow passing quoted content.
1018
1019         PR bootstrap/35855
1020         * opt-functions.awk (BEGIN): New section.
1021         (lower, upper, digit, alnum): New variables.
1022         (static_var, opt_sanitized_name): Use alnum instead of character
1023         classes, for non-C locale.
1024         * optc-gen.awk: Likewise.
1025         * opth-gen.awk: Likewise.
1026
1027 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
1028
1029         * target.def (preferred_reload_class): New hook.
1030         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
1031         * doc/tm.texi: Regenerate.
1032         * targhooks.c (default_preferred_reload_class): New function.
1033         * targhooks.h (default_preferred_reload_class): Declare.
1034         * reload.c (find_dummy_reload): Change preferred_class variable type
1035         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
1036         target hook.
1037         (find_reloads): Change goal_alternative array type from int to
1038         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
1039         (push_reload, find_reloads_address_part): Use
1040         TARGET_PREFERRED_RELOAD_CLASS target hook.
1041         * reload1.c (emit_input_reload_insns): Ditto.
1042         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
1043         hook. Change rclass argument and secondary_class variable types from
1044         'enum reg_class' to reg_class_t.
1045
1046         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
1047         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
1048         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
1049         Change regclass argument and result types from enum reg_class to
1050         reg_class_t.
1051         (TARGET_PREFERRED_RELOAD_CLASS): Define.
1052
1053 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1054
1055         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
1056         in masking operations.
1057         (simplify_const_unary_operation): Likewise.
1058         (simplify_binary_operation_1): Likewise.
1059         (simplify_const_binary_operation): Likewise.
1060         (simplify_const_relational_operation): Likewise.
1061         (simplify_ternary_operation): Likewise.
1062         (simplify_immed_subreg): Likewise.
1063
1064 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1065
1066         PR middle-end/45862
1067         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
1068         (TARGET_SUPPORTS_WEAK): New.
1069         * doc/tm.texi: Regenerate.
1070         * defaults.h (SUPPORTS_WEAK): Update comment.
1071         (TARGET_SUPPORTS_WEAK): New.
1072         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
1073         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
1074         SUPPORTS_WEAK.
1075         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
1076         make_decl_one_only): Likewise.
1077         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
1078         TARGET_SUPPORTS_WEAK.
1079         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
1080         instead of SUPPORTS_WEAK.
1081
1082 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1083
1084         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
1085
1086 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
1087
1088         * vec.h (VEC_qsort): Define.
1089         * dbxout.c (output_used_types): Use it.
1090         * df-scan.c (df_sort_and_compress_refs): Likewise.
1091         (df_sort_and_compress_mws): Likewise.
1092         * genautomata.c (uniq_sort_alt_states): Likewise.
1093         (evaluate_equiv_classes): Likewise.
1094         (output_trans_table): Likewise.
1095         (output_state): Likewise.
1096         * gimplify.c (compare_case_labels): Likewise.
1097         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
1098         * ipa.c (build_cdtor_fns): Likewise.
1099         * lto.c (lto_wpa_write_files): Likewise.
1100         * sel-sched.c (fill_vec_av_set): Likewise.
1101         * tree-predcom.c (determine_roots_comp): Likewise.
1102         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
1103         (splice_param_accesses): Likewise.
1104         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
1105         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
1106         (reassociate_bb): Likewise.
1107         * tree-ssa-sccvn.c (sort_scc): Likewise.
1108         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
1109
1110 2010-10-11  Ian Lance Taylor  <iant@google.com>
1111
1112         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
1113         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
1114         TREE_THIS_NOTRAP when appropriate.
1115         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
1116         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
1117         newly created MEM_REF.
1118
1119 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
1120
1121         Nathan Froyds patch to hooks FUNCTION_ARG etc.
1122         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
1123         (picochip_incoming_function_arg): Delete.
1124         (picochip_arg_advance): Delete.
1125         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
1126         (FUNCTION_INCOMING_ARG): Delete.
1127         (FUNCTION_ARG_ADVANCE): Delete.
1128         * config/picochip/picochip.c (picochip_function_arg): Take a
1129         const_tree and a bool.
1130         (picochip_incoming_function_arg): Likewise.
1131         (picochip_arg_advance): Likewise.
1132         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1133         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1134
1135 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1136
1137         PR middle-end/45955
1138         * ipa.c (build_cdtor): Delete endless loop.
1139
1140 2010-10-07  Andi Kleen  <ak@linux.intel.com>
1141
1142         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
1143         checksum-options.
1144         (checksum-options): Add.
1145         (cc1-dummy): Remove.
1146         (cc1-checksum): Change to run checksum over object files
1147         and options only.
1148         * dummy-checksum.c: Remove.
1149         * genchecksum.c: Update copyright.
1150         (usage): Allow multiple arguments.
1151         (BLOCKSIZE): Add.
1152         (dosum): Change for incremental checksum. Remove C output.
1153         (main): Iterate over all argument files. Add C output.
1154
1155 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
1156
1157         * params.c (set_param_value_internal): New.
1158         (set_param_value): Use set_param_value_internal.
1159         (maybe_set_param_value, set_default_param_value): New.
1160         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
1161         (maybe_set_param_value, set_default_param_value): Declare.
1162         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
1163         * config/i386/i386.c (ix86_option_override_internal): Use
1164         maybe_set_param_value.
1165         * config/ia64/ia64.c (ia64_option_default_params,
1166         TARGET_OPTION_DEFAULT_PARAMS): New.
1167         (ia64_option_optimization): Move some code to
1168         ia64_option_default_params.
1169         * config/picochip/picochip.c (picochip_option_override): Use
1170         maybe_set_param_value.
1171         * config/rs6000/rs6000.c (rs6000_option_default_params,
1172         TARGET_OPTION_DEFAULT_PARAMS): New.
1173         (rs6000_option_override_internal): Use maybe_set_param_value.
1174         (rs6000_option_optimization): Move some code to
1175         rs6000_option_default_params.
1176         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
1177         * config/sh/sh.c (sh_option_default_params,
1178         TARGET_OPTION_DEFAULT_PARAMS): New.
1179         (sh_option_optimization): Move some code to sh_option_default_params.
1180         * config/sparc/sparc.c (sparc_option_override): Use
1181         maybe_set_param_value.
1182         * config/spu/spu.c (spu_option_default_params,
1183         TARGET_OPTION_DEFAULT_PARAMS): New.
1184         (spu_option_optimization): Move some code to spu_option_default_params.
1185         (spu_option_override): Use maybe_set_param_value.
1186         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
1187         * doc/tm.texi: Regenerate.
1188         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
1189         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
1190         compiler_params.
1191         (default_options_optimization): Use maybe_set_param_value.
1192         (finish_options): Use maybe_set_param_value.
1193         * target.def (target_option.default_params): New hook.
1194         * toplev.c (general_init): Call targetm.target_option.default_params.
1195
1196 2010-10-11  Ira Rosen  <irar@il.ibm.com>
1197
1198         PR tree-optimization/45902
1199         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
1200         vector type for constants, unless it's a pointer.
1201
1202 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1203
1204         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
1205
1206 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR target/45870
1209         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
1210         (ix86_delegitimize_address): Use it.
1211
1212 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
1213
1214         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
1215
1216 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
1217
1218         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
1219         to cum struct in the call to function_arg_advance.
1220         (alpha_function_arg_advance): Mark named as unused.
1221
1222 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
1223
1224         * config/mips/mips.c (mips_handle_option): Make "value" with
1225         ATTRIBUTE_UNUSED.
1226
1227 2010-10-09  Richard Henderson  <rth@redhat.com>
1228
1229         PR rtl-opt/33721
1230         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
1231         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
1232         required_align, tidy the code a bit.  Emit split_stack code in the
1233         right place.  Mark the return value with the alignment properly.
1234         * expr.h (allocate_dynamic_stack_space): Update decl.
1235         * builtins.c (expand_builtin_apply): Update call to
1236         allocate_dynamic_stack_space.
1237         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
1238         * calls.c (initialize_argument_information): Update call to
1239         allocate_dynamic_stack_space.
1240         (expand_call): Likewise.
1241
1242         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
1243         Don't update_stack_alignment here.
1244         (alloc_stack_frame_space): Make ALIGN unsigned.
1245         (stack_var_cmp): Sort by alignment too.
1246         (partition_stack_vars): Don't merge large and small alignment vars.
1247         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
1248         Take care when BASE is not virtual_stack_vars_rtx.
1249         (expand_stack_vars): Allocate dynamic stack space for large
1250         alignment variables.
1251         (expand_one_stack_var): Update all to expand_one_stack_var_at.
1252         (defer_stack_allocation): True for large alignment vars.
1253         (update_stack_alignment): Merge into ...
1254         (expand_one_var): ... here.
1255         (gimple_expand_cfg): Place code from expand_stack_vars.
1256
1257 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1258
1259         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1260         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
1261         (pdp11_function_arg_advance): New function.
1262         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1263
1264 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1265
1266         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
1267         * libgcc2.c: Likewise.
1268
1269 2010-10-09  Richard Guenther  <rguenther@suse.de>
1270
1271         PR lto/45956
1272         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
1273         Properly check if a decl is an automatic var.
1274
1275 2010-10-09  Richard Guenther  <rguenther@suse.de>
1276
1277         PR lto/45947
1278         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
1279
1280 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1281
1282         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
1283         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1284         * config/mmix/mmix.c (mmix_function_arg): Rename to...
1285         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
1286         bool arguments.
1287         (mmix_function_arg): New function.
1288         (mmix_function_incoming_arg): New function.
1289         (mmix_function_arg_advance): New function.
1290         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1291         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1292
1293 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1294
1295         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1296         * config/vax/vax.c (vax_function_arg): New function.
1297         (vax_function_arg_advance): New function.
1298         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1299
1300 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1301
1302         * config/pa/pa-protos.h (function_arg): Delete.
1303         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1304         * config/pa/pa.c (function_arg): Rename to...
1305         (pa_function_arg): ...this.  Make static.  Take a const_tree and
1306         a bool.
1307         (pa_function_arg_advance): New function.
1308         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1309
1310 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1311
1312         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1313         * config/m68k/m68k.c (m68k_function_arg): New function.
1314         (m68k_function_arg_advance): New function.
1315         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1316
1317 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1318
1319         * config/avr/avr-protos.h (function_arg): Delete.
1320         (function_arg_advance): Delete.
1321         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1322         * config/avr/avr.c (function_arg): Rename to...
1323         (avr_function_arg): ...this.  Make static.  Take a const_tree and
1324         a bool.
1325         (function_arg_advance): Rename to...
1326         (avr_function_arg_advance): ...this.  Make static.  Take a
1327         const_tree and a bool.
1328         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1329
1330 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1331
1332         * config/alpha/alpha-protos.h (function_arg): Delete.
1333         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1334         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
1335         * config/alpha/alpha.c (function_arg): Rename to...
1336         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
1337         a bool.  Delete TARGET_ABI_UNICOSMK code.
1338         (alpha_function_arg_advance): New function.
1339         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1340
1341 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1342
1343         * config/mep/mep-protos.h (mep_function_arg): Delete.
1344         (mep_function_arg_advance): Delete.
1345         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1346         * config/mep/mep.c (mep_function_arg): Make static.  Take a
1347         const_tree and a bool.
1348         (mep_function_arg_advance): Likewise.
1349         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1350
1351 2010-10-09  Richard Guenther  <rguenther@suse.de>
1352
1353         PR tree-optimization/45945
1354         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
1355
1356 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
1357
1358         PR tree-optimization/45612
1359         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
1360         Test LABEL_DECLs as well.  Fix formatting issues.
1361         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
1362         whose label is present in NON_SSA_VARS.
1363         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
1364         as well.  Fix formatting issues.
1365         (visit_bb): Fix typos and formatting issue.
1366
1367 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
1368
1369         PR tree-optimization/45950
1370         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
1371         before initializing vno->op.
1372
1373 2010-10-09  Ralf Cors├ępius <ralf.corsepius@rtems.org>
1374
1375         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
1376         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
1377
1378 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1379
1380         PR target/45913
1381         * config/i386/i386.c (ix86_binary_operator_ok): Support
1382         "andhi/andsi/anddi" as a zero-extending move.
1383
1384 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1385
1386         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
1387         into a temporary array.
1388
1389 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
1390
1391         PR tree-optimization/45903
1392         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
1393         of {A,L}SHIFTRT of MEM.
1394
1395 2010-10-08  Richard Guenther  <rguenther@suse.de>
1396
1397         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
1398         Re-construct BLOCK_VARS.
1399         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
1400         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
1401         * tree.c (free_lang_data_in_block): Remove.
1402         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
1403         Do not touch the BLOCK tree.
1404         * expr.c (expand_expr_real_1): Allow externals.
1405
1406 2010-10-08  Richard Guenther  <rguenther@suse.de>
1407
1408         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
1409         Do not output BLOCK_SUBBLOCKS.
1410         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
1411         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
1412         Re-construct BLOCK_SUBBLOCKS of parent block.
1413         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
1414         for BINFO_BASE_ACCESSES.
1415
1416 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
1417
1418         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
1419         (TREE_H): Include $(FLAGS_H) instead of options.h.
1420         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
1421         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1422         * common.opt (flag_complex_method, flag_evaluation_order,
1423         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
1424         Variable declarations.
1425         * configure.ac (tm_include_list): Include flags.h instead of options.h.
1426         * configure: Regenerate.
1427         * flags.h: Condition out contents for target libraries.  Include
1428         options.h at end of file.
1429         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
1430         flag_evaluation_order, flag_warn_unused_result): Remove.
1431         * gcc.c (main): Intialize global_options with global_options_init.
1432         * langhooks-def.h (lhd_init_options_struct): Declare.
1433         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1434         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
1435         * langhooks.c (lhd_init_options_struct): New.
1436         * langhooks.h (struct lang_hooks): Add init_options_struct.
1437         Update comment on init_options.
1438         * optc-gen.awk: Generate initializer for global_options_init, not
1439         global_options.
1440         * opth-gen.awk: Condition out structure declarations for target
1441         libraries.  Declare global_options_init.
1442         * opts-common.c: Include flags.h instead of options.h.
1443         * opts.c (flag_warn_unused_result): Remove.
1444         (read_cmdline_options): Take gcc_options parameters.  Pass them to
1445         read_cmdline_option.
1446         (initial_lang_mask, initial_min_crossjump_insns,
1447         initial_max_fields_for_field_sensitive,
1448         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
1449         (init_options_once): New.  Split out of decode_options.
1450         (init_options_struct): New.  Split out of decode_options.
1451         (decode_cmdline_options_to_array_default_mask): New.
1452         (default_options_optimization): New.  Split out of decode_options.
1453         (decode_options): Move most code to other functions.  Update call
1454         to read_cmdline_options.
1455         (finish_options): New.  Split out of decode_options.
1456         * opts.h (decode_options): Add gcc_options parameters.
1457         (init_options_once, init_options_struct,
1458         decode_cmdline_options_to_array_default_mask): New.
1459         * toplev.c (flag_complex_method, flag_ira_algorithm,
1460         flag_ira_region, flag_evaluation_order): Remove.
1461         (general_init): Use global_options_init for initial flag values
1462         for global_dc.
1463         (toplev_main): Call init_options_once, init_options_struct,
1464         lang_hooks.init_options_struct,
1465         decode_cmdline_options_to_array_default_mask and
1466         lang_hooks.init_option before decode_options.  Update arguments to
1467         decode_options.
1468         * tree.h: Include flags.h instead of options.h.
1469
1470 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1471
1472         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1473
1474 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1475
1476         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
1477         Delete.
1478         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1479         (FUNCTION_INCOMING_ARG): Delete.
1480         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
1481         (function_arg_slotno): Likewise.  Take bool arguments.
1482         (sparc_arg_partial_bytes): Update call to it.
1483         (function_arg): Rename to...
1484         (sparc_function_arg_1): ...this.  Take bool arguments.
1485         (sparc_function_arg, sparc_function_incoming_arg): New functions.
1486         (function_arg_advance): Rename to...
1487         (sparc_function_arg_advance): ...this.  Take bool argument.
1488         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
1489         (TARGET_FUNCTION_INCOMING_ARG): Define.
1490
1491 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1492
1493         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
1494         Delete.
1495         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1496         * config/bfin/bfin.c (function_arg_advance): Rename to...
1497         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
1498         and bool arguments.
1499         (function_arg): Rename to...
1500         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
1501         arguments.
1502         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1503
1504 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1505
1506         * config/score/score-protos.h (score_function_arg): Delete.
1507         (score_function_arg_advance): Delete.
1508         * config/score/score3.h (score3_function_arg_advance): Take a
1509         const_tree and a bool.
1510         (score3_function_arg): Likewise.
1511         * config/score/score7.h (score7_function_arg_advance): Likewise.
1512         (score7_function_arg): Likewise.
1513         * config/score/score3.c (score3_classify_arg): Likewise.
1514         (score3_function_arg_advance, score3_function_arg): Likewise.
1515         * config/score/score7.c (score7_classify_arg): Likewise.
1516         (score7_function_arg_advance, score7_function_arg): Likewise.
1517         * config/score/score.c (score_function_arg_advance): Likewise.
1518         (score_function_arg): Likewise.  De-const-ify `cum' argument.
1519         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1520
1521 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1522
1523         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
1524         (s390_function_arg): Delete.
1525         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1526         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
1527         (s390_function_arg_integer): Likewise.
1528         (s390_function_arg_advance): Make static.  Take a const_tree and
1529         a bool.
1530         (s390_function_arg): Likewise.
1531         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1532
1533 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1534
1535         * config/spu/spu-protos.h (spu_function_arg): Delete.
1536         * config/spu/spu.h (FUNCTION_ARG): Delete.
1537         (FUNCTION_ARG_ADVANCE): Move code to ...
1538         * config/spu/spu.c (spu_function_arg_advance): New function.
1539         (spu_function_arg): Make static.  Take a const_tree and a bool.
1540         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
1541         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1542
1543 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1544
1545         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1546
1547 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1548
1549         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
1550         (init_vn_nary_op_from_op): New function.
1551         (init_vn_nary_op_from_stmt): New function.
1552         (vn_nary_op_lookup_1): New function.
1553         (sizeof_vn_nary_op): New function.
1554         (alloc_vn_nary_op_noinit): New function.
1555         (alloc_vn_nary_op): New function.
1556         (vn_nary_op_insert_into): New function.
1557         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
1558         (vn_nary_op_lookup): Likewise.
1559         (vn_nary_op_lookup_stmt): Likewise.
1560         (vn_nary_op_insert_pieces): Likewise.
1561         (vn_nary_op_insert): Likewise.
1562         (vn_nary_op_insert_stmt): Likewise.
1563         (copy_nary): Likewise.
1564         (set_value_id_for_result): New function.
1565         (set_hashtable_value_ids): Call it.
1566
1567 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1568
1569         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1570         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
1571
1572 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
1573
1574         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
1575         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1576
1577 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
1578
1579         PR debug/45656
1580         * cse.c (cse_extended_basic_block): Preserve cc0 info across
1581         debug isnsn.  Skip them when searching for cc0 setter.
1582         (set_live_p): Skip debug insns when searching for cc0 user.
1583
1584 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
1585
1586         PR debug/45673
1587         PR debug/45604
1588         PR debug/45419
1589         PR debug/45408
1590         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
1591         type of MEM_REFs to INTEGER_CSTs.
1592
1593 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
1594
1595         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
1596         m68hc11_print_operand_address.
1597
1598 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
1599
1600         * builtins.c (rewrite_call_expr): Move code to...
1601         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
1602         (rewrite_call_expr_array): New function.
1603         (fold_builtin_sprintf_chk_1): New function.
1604         (fold_builtin_sprintf_chk): Call it.
1605         (gimple_fold_builtin_sprintf_chk): Likewise.
1606         (fold_builtin_snprintf_chk_1): New function.
1607         (fold_builtin_snprintf_chk): Call it.
1608         (gimple_fold_builtin_snprintf_chk): Likewise.
1609         (gimple_rewrite_call_expr): Delete.
1610
1611 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
1612
1613         * config.host: Update copyright year.
1614
1615 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
1616
1617         * config.host (host_lto_plugin_soname): New shell variable.
1618         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
1619         * config.in: Regenerate.
1620         * configure: Regenerate.
1621         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
1622         LTO plugin shared library.
1623
1624 2010-10-07  Richard Henderson  <rth@redhat.com>
1625
1626         * target.h (enum unwind_info_type): Move ...
1627         * coretypes.h: ... here.
1628
1629 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1630
1631         * doc/objc.texi (Fast enumeration protocol): Mention that
1632         'unsigned int' can also be used instead of 'unsigned long' in
1633         countByEnumeratingWithState:objects:count:.
1634
1635 2010-10-07  Martin Jambor  <mjambor@suse.cz>
1636
1637         * tree-sra.c (struct access): New field grp_assignment_write.
1638         (dump_access): Dump grp_assignment_write.
1639         (build_accesses_from_assign): Set grp_assignment_write.
1640         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
1641         (mark_read_status): Renamed to mark_rw_status, individual values
1642         renamed too.
1643         (analyze_access_subtree): Changed type of mark_write to
1644         mark_read_status.  Fixed propagating of mark_read and
1645         mark_write.  Changed benefit estimate.  Updated comment.
1646
1647 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
1648
1649         PR Tree-Vect/45847
1650         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
1651         check for vectype_out returned by get_vectype_for_scalar_type().
1652
1653 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
1654
1655         PR target/45805
1656         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
1657         constraint, add register specifier in instruction template.
1658         (neon_vec_pack_trunc_<mode>): Likewise.
1659         (neon_vec_<US>mult_<mode>): Add register specifier to
1660         instruction template.
1661
1662 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
1663
1664         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
1665         cygwin2.o.
1666         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
1667         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
1668         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
1669         (cygwin2.o): Likewise.
1670         * config/i386/cygwin1.c: Delete file.
1671         * config/i386/cygwin2.c: Likewise.
1672         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
1673         make all {%!mno-cygwin} ones unconditional.
1674         (STARTFILE_SPEC): Likewise.
1675         (REAL_LIBGCC_SPEC): Likewise.
1676         (LIB_SPEC): Likewise.
1677         (CXX_WRAP_SPEC): Likewise.
1678         (LINK_SPEC): Likewise.
1679         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
1680         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
1681         (cygwin_gplusplus_include_dir): Delete now-unused array.
1682         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
1683         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
1684         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
1685         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
1686         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
1687         (cygwin_local_include_dir): Delete now-unused array.
1688         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
1689         (cygwin_cross_include_dir): Delete now-unused array.
1690         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
1691         (cygwin_tool_include_dir): Delete now-unused array.
1692         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
1693         (cygwin_standard_include_dir): Delete now-unused array.
1694         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
1695         (GEN_CVT_ARRAY): Delete now-unused macro definition.
1696         (cvt_to_mingw): Delete now-unused array.
1697         (mingw_scan): Remove prototype of deleted function.
1698         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
1699         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
1700         * doc/invoke.texi (-mcygwin): Don't document removed option.
1701         (-mno-cygwin): Likewise.
1702
1703 2010-10-07  Richard Guenther  <rguenther@suse.de>
1704
1705         * machmode.h (mode_for_vector): Declare.
1706         * stor-layout.c (mode_for_vector): New function, split out from ...
1707         (layout_type): ... here.
1708         * tree-vectorizer.h (current_vector_size): Declare.
1709         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
1710         mask vector type is available.
1711         (get_vectype_for_scalar_type): Rename to ...
1712         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
1713         size argument.
1714         (get_vectype_for_scalar_type): New wrapper around
1715         get_vectype_for_scalar_type_and_size using current_vector_size.
1716         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
1717         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
1718         of vect_analyze_loop here.
1719         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
1720         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
1721         to autodetect.
1722         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
1723         V8SF to V8SI conversion builtin.
1724
1725 2010-10-07  Richard Guenther  <rguenther@suse.de>
1726
1727         * target.def (autovectorize_vector_sizes): New target hook.
1728         * targhooks.c (default_autovectorize_vector_sizes): New function.
1729         * targhooks.h (default_autovectorize_vector_sizes): Declare.
1730         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
1731         Document.
1732         * doc/tm.texi: Update.
1733         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
1734         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1735
1736 2010-10-07  Richard Guenther  <rguenther@suse.de>
1737
1738         * target.def (units_per_simd_word): Rename to ...
1739         (preferred_simd_mode): ... this.  Return mode instead of size.
1740         * targhooks.c (default_units_per_simd_word): Rename to ...
1741         (default_preferred_simd_mode): ... this.  Return word_mode.
1742         * targhooks.h (default_preferred_simd_mode): Declare.
1743         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
1744         (arm_preferred_simd_mode): ... this.  Re-implement.
1745         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
1746         (ix86_preferred_simd_mode): ... this.  Re-implement.
1747         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
1748         (sparc_preferred_simd_mode): ... this.  Re-implement.
1749         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
1750         (mips_preferred_simd_mode): ... this.  Re-implement.
1751         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
1752         (rs6000_preferred_simd_mode): ... this.  Re-implement.
1753         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
1754         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
1755         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
1756         * doc/tm.texi: Update.
1757
1758 2010-10-07  Richard Guenther  <rguenther@suse.de>
1759
1760         PR middle-end/45869
1761         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
1762         of pointers.
1763
1764 2010-10-07  Alan Modra  <amodra@gmail.com>
1765
1766         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
1767         rather than sign extension by hand.
1768
1769 2010-10-07  Jan Hubicka  <jh@suse.cz>
1770
1771         PR middle-end/45926
1772         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
1773
1774 2010-10-07  Richard Guenther  <rguenther@suse.de>
1775
1776         PR bootstrap/45914
1777         * configure.ac: Fix typo.
1778         * configure: Regenerated.
1779
1780 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1781
1782         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
1783         define_builtin_std where it's unnecessary.
1784         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
1785
1786 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
1787
1788         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
1789         * doc/tm.texi.in: Regenerate.
1790         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
1791         * targhooks.c (default_class_likely_spilled_p): Don't use the
1792         CLASS_LIKELY_SPILLED_P macro.
1793
1794         * config/arm/arm.md: Update comment.
1795
1796 2010-10-06  Jan Hubicka  <jh@suse.cz>
1797
1798         * ipa.c (cgraph_remove_unreachable_nodes): External references can
1799         always be removed.
1800         (cgraph_externally_visible_p): We can not bring local comdats that
1801         are known to linker; fix handling of internal visibility.
1802         (function_and_variable_visibility): Likewise.
1803
1804 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
1805
1806         PR rtl-optimization/45394
1807         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
1808         (struct rtx_subst_pair): Remove AFTER field.
1809         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
1810         (propagate_for_debug): Remove MOVE parameter and adjust.
1811         (try_combine): In the special case where I2 is a PARALLEL, combine only
1812         destinations of SETs and set I2SRC to the I2 source.
1813         Adjust calls to propagate_for_debug throughout.
1814         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
1815         insns.
1816
1817 2010-10-06  Olivier Hainque  <hainque@adacore.com>
1818
1819         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
1820         switch on insn codes as sequence of ifs.
1821
1822 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
1823
1824         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
1825         be UI_NONE for picochip.
1826         (picochip_option_override): Do not disable exception flags.
1827         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1828         Declare.
1829
1830 2010-10-06  Richard Guenther  <rguenther@suse.de>
1831
1832         * Makefile.in (regmove.o): Depend on $(TARGET_H).
1833
1834 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1835
1836         Implemented fast enumeration for Objective-C.
1837         * c-parser.c (objc_could_be_foreach_context): New.
1838         (c_lex_one_token): Recognize RID_IN keyword in a potential
1839         Objective-C foreach context.
1840         (c_parser_declaration_or_fndef): Added parameter.  Accept
1841         Objective-C RID_IN keyword as terminating a declaration; in that
1842         case, return the declaration in the new parameter.
1843         (c_parser_extenral_declaration): Updated calls to
1844         c_parser_declaration_or_fndef.
1845         (c_parser_declaration_or_fndef): Same change.
1846         (c_parser_compound_statement_nostart): Same change.
1847         (c_parser_label): Same change.
1848         (c_parser_objc_methodprotolist): Same change.
1849         (c_parser_omp_for_loop): Same change.
1850         (c_parser_for_statement): Detect and parse Objective-C foreach
1851         statements.
1852         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
1853         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
1854         fast enumeration parsing code to turn off the c99 error but still
1855         perform checks on the loop declarations.
1856         * c-tree.h (check_for_loop_decls): Updated declaration.
1857         * doc/objc.texi: Document fast enumeration.
1858
1859 2010-10-06  Nick Clifton  <nickc@redhat.com>
1860
1861         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
1862         (MDR_REGNUM): Define.
1863         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
1864         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
1865         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
1866         (REGISTER_NAMES): Add MDR.
1867         (DWARF2_DEBUGGING_INFO): Define to 1.
1868         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1869         (F): New function.  Sets RTX_FRAME_RELATED_P.
1870         (mn10300_gen_multiple_store): Use F.
1871         (expand_prologue): Use F.  Use gen_movsf() to push floating
1872         point registers.
1873         (expand_epilogue): Use gen_movsf() to pop floating point registers.
1874         (mn10300_option_override): Disable combine stack adjust pass.
1875
1876 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
1877
1878         PR target/45901
1879         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
1880         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
1881
1882 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
1883
1884         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
1885         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
1886         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
1887         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
1888         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
1889         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
1890         BUILT_IN_TOUPPER): Mark as leaf.
1891
1892         PR middle-end/45838
1893         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1894         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1895         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1896         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1897         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
1898         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
1899         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
1900
1901 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
1902
1903         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
1904         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1905         (m68hc11_class_likely_spilled_p): New function.
1906
1907 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
1908
1909         * c-parser.c (c_parser_objc_method_definition): Updated comment.
1910
1911 2010-10-05  Jan Hubicka  <jh@suse.cz>
1912
1913         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
1914         Document.
1915         * opts.c (decode_options): Handle lto partitions.
1916         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
1917         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
1918
1919 2010-10-05  Jan Hubicka  <jh@suse.cz>
1920
1921         * cgraphunit.c (assemble_function): Output thunks and aliases before
1922         the function itself.
1923
1924 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
1925
1926         * config/picochip/picochip.c (picochip_option_override): Disable
1927         exception flags for picochip.
1928
1929 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
1930
1931         * opts-common.c (handle_option, handle_generated_option,
1932         read_cmdline_option, set_option): Add diagnostic_context
1933         parameter.  Update calls among these functions.
1934         (set_option): Don't use global_dc.
1935         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
1936         (decode_options): Pass global_dc to enable_warning_as_error.
1937         (common_handle_option): Pass global_dc to enable_warning_as_error.
1938         (enable_warning_as_error): Add diagnostic_context parameter.
1939         Document parameters.  Don't use global_dc.  Pass
1940         diagnostic_context parameter to handle_generated_option.
1941         * opts.h (set_option, handle_option, handle_generated_option,
1942         read_cmdline_option, enable_warning_as_error): Add
1943         diagnostic_context parameter.
1944         * Makefile.in (lto-opts.o): Update dependencies.
1945         * coretypes.h (struct diagnostic_context, diagnostic_context):
1946         Declare here.
1947         * diagnostic.h (diagnostic_context): Don't declare typedef here.
1948         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
1949         * langhooks-def.h (struct diagnostic_context): Don't declare here.
1950         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
1951         using diagnostic_context typedef.
1952         * langhooks.c (lhd_initialize_diagnostics): Declare using
1953         diagnostic_context typedef.
1954         * langhooks.h (struct diagnostic_context): Don't declare here.
1955         (initialize_diagnostics, print_error_function): Declare using
1956         diagnostic_context typedef.
1957         * lto-opts.c: Include diagnostic.h.
1958         (lto_reissue_options): Pass global_dc to set_option.  Pass
1959         DK_UNSPECIFIED not 0.
1960         * plugin.c (plugins_internal_error_function): Declare using
1961         diagnostic_context typedef.
1962         * plugin.h (struct diagnostic_context): Don't declare here.
1963         (plugins_internal_error_function): Declare using
1964         diagnostic_context typedef.
1965
1966 2010-10-05  Olivier Hainque  <hainque@adacore.com>
1967             Nicolas Roche  <roche@adacore.com>
1968
1969         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
1970         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
1971
1972 2010-10-05  Ira Rosen  <irar@il.ibm.com>
1973
1974         PR tree-optimization/45752
1975         * tree-vect-slp.c (vect_get_mask_element): Remove static
1976         variables, make them function arguments.
1977         (vect_transform_slp_perm_load): Pass new arguments to
1978         vect_get_mask_element.
1979
1980 2010-10-05  Richard Guenther  <rguenther@suse.de>
1981
1982         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
1983         (gimple_mod_pow2): Likewise.
1984         (gimple_mod_subtract): Likewise.
1985         (gimple_ic): Likewise.
1986         (gimple_stringop_fixed_value): Likewise.
1987         * tree-profile.c (tree_init_edge_profiler): Mark profile
1988         functions nothrow and leaf.
1989         (add_abnormal_goto_call_edges): Remove.
1990         (tree_gen_edge_profiler): Work on SSA form.
1991         (tree_gen_ic_profiler): Likewise.  Simplify.
1992         (do_tree_profiling): Update SSA form.
1993         (pass_tree_profile): Remove.
1994         (do_tree_profiling): Likewise.
1995         (gate_tree_profile_ipa): New function.
1996         (pass_ipa_tree_profile): New.
1997         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
1998         state of instrumented functions.
1999         * passes.c (init_optimization_passes): Remove early non-SSA
2000         inlining.  Move profiling after early optimizations.
2001         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
2002         (pass_ipa_early_inline): Likewise.
2003         * tree-pass.h (pass_ipa_early_inline): Remove.
2004         (pass_tree_profile): Likewise.
2005         (pass_ipa_tree_profile): Declare.
2006
2007 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2008             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
2009
2010         * gcc/config/s390/s390.c (z196_cost): New.
2011         (s390_handle_arch_option): Add -march=z196.
2012         (s390_option_override): Use the new cost function and use the z10
2013         defaults also for z196.
2014         (legitimate_reload_constant_p): Adjust comment.
2015         (legitimate_reload_fp_constant_p): New function.
2016         (s390_preferred_reload_class): Distingiush between FP and Int constants.
2017         (preferred_la_operand_p): Avoid la with index on z196.
2018         (s390_adjust_priority): Trigger also for z196.
2019         (s390_issue_rate): Issue rate for z196 is 3.
2020         (s390_z10_fix_long_loop_prediction): Rename to ...
2021         (s390_fix_long_loop_prediction): ... this.
2022         (s390_reorg): Apply the z10 adjustments also for z196.
2023         (s390_loop_unroll_adjust): Do this also for z196.
2024         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
2025         (enum processor_flags): Add PF_Z196.
2026         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
2027         (TARGET_CPU_Z196, TARGET_Z196): New macros.
2028         * gcc/config.gcc: Enable z196 for --with-arch.
2029         * gcc/config/s390/2817.md: New file.
2030         * gcc/config/s390/2084.md: New type for multiply and add.
2031         * gcc/config/s390/2097.md: Likewise.
2032         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
2033         (UNSPECV_ATOMIC_OP): New constants.
2034         (fmadddf, fmaddsf): New values for type attribute.
2035         (z196prop): New insn attribute.
2036         (cpu, cpu_facility): Add z196.
2037         (ATOMIC_Z196): New code iterator.
2038         (noxa): New code attribute.
2039         (gk): New mode attribute.
2040         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
2041         Support load zero for fp constants.
2042         (fixuns_truncdddi2, fixuns_trunctddi2)
2043         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
2044         for z196.
2045         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
2046         (popcounthi2, popcountqi2): New expander.
2047         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
2048         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
2049         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
2050         insn definition.
2051         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
2052         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
2053         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
2054         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
2055         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
2056         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
2057         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
2058         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
2059         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
2060         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
2061         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
2062         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
2063         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
2064         Support new z196 instructions.
2065
2066 2010-10-05  Richard Guenther  <rguenther@suse.de>
2067
2068         PR middle-end/45877
2069         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
2070         case where gimplification optimizes away the stmt.
2071
2072 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
2073
2074         PR debug/45849
2075         * var-tracking.c (strip_pointer_flags): New function.
2076         (emit_note_insn_var_location): If rtx_equal_p check failed,
2077         retry on locations simplified with simplify_replace_fn_rtx
2078         and strip_pointer_flags as its callback.
2079
2080 2010-10-04  Jan Hubicka  <jh@suse.cz>
2081
2082         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
2083         (can_refer_decl_in_current_unit_p): ... this one; reverse return
2084         value; handle comdats too.
2085         (canonicalize_constructor_val): Use it; handle function_decls
2086         correctly.
2087         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2088         * gimple.c (get_base_address): Accept all kinds of decls.
2089
2090 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
2091
2092         * flags.h (g_switch_value, g_switch_set): Remove.
2093         * opts.c (g_switch_value, g_switch_set): Remove.
2094         * config/g.opt (G): Add Var(g_switch_value).
2095         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
2096         (alpha_option_override): Check global_options_set.x_g_switch_value
2097         instead of g_switch_set.
2098         (alpha_in_small_data_p): Remove cast in comparison with
2099         g_switch_value.
2100         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
2101         g_switch_value to unsigned HOST_WIDE_INT.
2102         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
2103         with g_switch_value.
2104         (frv_handle_option): Don't handle -G here.
2105         (frv_option_override): Check global_options_set.x_g_switch_value
2106         instead of g_switch_set.  Don't modify g_switch_set.
2107         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
2108         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
2109         g_switch_value to unsigned HOST_WIDE_INT.
2110         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
2111         (ia64_option_override): Check global_options_set.x_g_switch_value
2112         instead of g_switch_set.
2113         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
2114         Remove.
2115         (lm32_in_small_data_p): Remove cast in comparison with
2116         g_switch_value.
2117         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
2118         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
2119         HOST_WIDE_INT.
2120         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
2121         (m32r_init): Check global_options_set.x_g_switch_value instead of
2122         g_switch_set.
2123         (m32r_in_small_data_p): Remove cast in comparison with
2124         g_switch_value.
2125         (m32r_file_start): Format g_switch_value with %d.
2126         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
2127         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
2128         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
2129         handle -G here.
2130         (microblaze_option_override): Check
2131         global_options_set.x_g_switch_value instead of g_switch_set.
2132         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
2133         (mips_option_override): Check global_options_set.x_g_switch_value
2134         instead of g_switch_set.
2135         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
2136         (rs6000_file_start): Format g_switch_value with %d.
2137         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
2138         comparisons with g_switch_value.
2139         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2140         global_options_set.x_g_switch_value instead of g_switch_set.
2141         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2142         global_options_set.x_g_switch_value instead of g_switch_set.
2143         * config/score/score.c (score_handle_option): Don't handle -G here.
2144         * config/score/score3.c (score3_option_override): Check
2145         global_options_set.x_g_switch_value instead of g_switch_set.
2146         * config/score/score7.c (score7_option_override): Check
2147         global_options_set.x_g_switch_value instead of g_switch_set.
2148
2149 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
2150
2151         * common.opt (fira-coalesce): Remove.
2152
2153         * doc/invoke.texi (flag_ira_coalesce): Remove.
2154
2155         * ira-color.c (allocno_coalesced_p): Move before
2156         copy_freq_compare_func.
2157         processed_coalesced_allocno_bitmap): Ditto.
2158         (update_conflict_hard_regno_costs): Don't use
2159         ALLOCNO_FIRST_COALESCED_ALLOCNO.
2160         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
2161         (assign_hard_reg): Assume no coalesced allocnos.
2162         (get_coalesced_allocnos_attributes): Remove.
2163         (bucket_allocno_compare_func): Assume no coalesced allocnos.
2164         (push_allocno_to_stack): Ditto.
2165         (remove_allocno_from_bucket_and_push): Use
2166         ira_print_expanded_allocno instead of print_coalesced_allocno.
2167         (push_allocnos_to_stack): Assume uncoalesced allocnos.
2168         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
2169         all_conflicting_hard_regs.
2170         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
2171         (setup_allocno_left_conflicts_size): Ditto.
2172         (put_allocno_into_bucket): Ditto.
2173         (copy_freq_compare_func): Remove.
2174         (copy_freq_compare_func, merge_allocnos): Move before
2175         coalesced_pseudo_reg_freq_compare.
2176         coalesced_allocno_conflict_p): Ditto.
2177         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
2178         parameter.  Assume it true.
2179         (color_allocnos): Assume uncoalesced allocnos.  Use
2180         ira_print_expanded_allocno instead of print_coalesced_allocno.
2181         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
2182         parameter.
2183
2184         * ira.c: Remove comment about coalescing.
2185
2186 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
2187
2188         * config/mips/mips.h (target_flags_explicit): Declare for
2189         GENERATOR_FILE.
2190
2191 2010-10-04  Andi Kleen <ak@linux.intel.com>
2192
2193         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
2194         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
2195
2196 2010-10-04  Matthias Klose  <doko@ubuntu.com>
2197
2198         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2199         multilib osdirname if it exists.
2200         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2201
2202 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
2203
2204         PR middle-end/45876
2205         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
2206         arg0's type or its unsigned counterpart as utype.  Convert
2207         arg1 to utype unconditionally.
2208
2209 2010-10-04  Julian Brown  <julian@codesourcery.com>
2210
2211         * expr.c (expand_assignment): Add assertion to prevent emitting
2212         null rtx for movmisalign pattern.
2213         (expand_expr_real_1): Likewise.
2214         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
2215         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
2216         (arm_vector_alignment_reachable): New.
2217         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
2218         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
2219         (arm_print_operand): Include alignment qualifier in %A.
2220         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
2221         (movmisalign<mode>): New expander.
2222         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
2223         insn patterns.
2224
2225 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
2226
2227         * optc-gen.awk: Define global_options_set.  Don't define
2228         target_flags_explicit.
2229         * opth-gen.awk: Declare global_options_set.  Define
2230         target_flags_explicit as macro.
2231         * opts-common.c (handle_option): Take opts_set and generated_p
2232         parameters.
2233         (handle_generated_option, read_cmdline_option, set_option): Take
2234         opts_set parameter.
2235         (set_option): Use opts_set instead of hardcoding target_flags and
2236         target_flags_explicit.
2237         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
2238         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
2239         flag_value_profile_transformations_set, flag_peel_loops_set,
2240         flag_branch_probabilities_set, flag_inline_functions_set,
2241         flag_ipa_cp_set, flag_ipa_cp_clone_set,
2242         flag_predictive_commoning_set, flag_unswitch_loops_set,
2243         flag_gcse_after_reload_set): Remove.
2244         (common_handle_option, lang_handle_option, target_handle_option):
2245         Take opts_set parameter.  Assert that it is &global_options_set.
2246         (common_handle_option): Don't set _set variables.  Check opts_set
2247         instead of such variables.
2248         (enable_warning_as_error): Pass &global_options_set to
2249         handle_generated_option.
2250         * opts.h (cl_option_handler_func.handler, set_option,
2251         handle_option, handle_generated_option, read_cmdline_option): Add
2252         opts_set parameters.
2253         (handle_option): Add generated_p parameter.
2254         * config/i386/i386.c (ix86_function_specific_save,
2255         ix86_function_specific_restore): Updat for renaming of
2256         target_flags_explicit field.
2257         * config/i386/i386.opt (target_flags_explicit): Rename to
2258         ix86_target_flags_explicit.
2259         * config/ia64/ia64.c (ia64_override_options_after_change): Check
2260         global_options_set.x_flag_selective_scheduling and
2261         global_options_set.x_flag_selective_scheduling2, not
2262         sel_sched_switch_set.
2263         * flags.h (sel_sched_switch_set,
2264         flag_speculative_prefetching_set): Remove.
2265         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
2266         that it is &global_options_set.
2267         (process_command): Pass &global_options_set to read_cmdline_option.
2268         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
2269         set_option.
2270         * toplev.c (target_flags_explicit): Remove.
2271
2272 2010-10-04  Jan Hubicka  <jh@suse.cz>
2273
2274         PR middle-end/45871
2275         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
2276         use get_ref_base_and_offset to handle references.
2277         (fold_const_aggregate_ref): Update.
2278
2279 2010-10-04  Martin Jambor  <mjambor@suse.cz>
2280
2281         PR tree-optimization/45572
2282         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
2283         ipa_check_create_node_params.
2284         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
2285
2286 2010-10-04  Yao Qi  <yao@codesourcery.com>
2287
2288         * doc/passes.texi: Clean up.
2289
2290 2010-10-03  Ian Lance Taylor  <iant@google.com>
2291
2292         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
2293         referring to a field using a typedef name.
2294         (find_anonymous_field_with_type): New static function.
2295         (convert_to_anonymous_field): New static function.
2296         (convert_for_assignment): If -fplan9-extensions, permit converting
2297         pointer to struct to pointer to anonymous field.
2298         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
2299         (is_duplicate_field): New static function.
2300         (detect_field_duplicates_hash): If -fplan9-extensions, check for
2301         typedef names duplicating field names.
2302         (detect_field_duplicates): Likewise.
2303         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
2304         (C Dialect Options): Document -fplan9-extensions.
2305         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
2306
2307 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
2308
2309         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
2310         revision 164914.
2311         (vect_create_data_ref_ptr): Likewise.
2312         * tree-vect-stmts.c (vectorizable_store): Likewise.
2313         (perm_mask_for_reverse): Likewise.
2314         (reverse_vec_elements): Likewise.
2315         (vectorizable_load): Likewise.
2316
2317 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2318
2319         * cppbuiltin.c: New file.
2320         * cppbuiltin.h: New file.
2321         * Makefile.in: Take into account cppbuiltin.{h,c}.
2322
2323 2010-10-03  Andi Kleen <ak@linux.intel.com>
2324
2325         * lto-cgraph.c (input_cgraph): Check for missing sections.
2326
2327 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
2328
2329         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
2330         to nonimmediate_operand.  Force operand 2 to register when allowed.
2331         (*<shiftrt_insn><mode>3_mask): Ditto.
2332         (*<rotate_insn><mode>3_mask): Ditto.
2333
2334 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
2335
2336         PR tree-optimization/45720
2337         PR tree-optimization/45764
2338         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2339         Don't accept backwards consecutive accesses.
2340         (vect_create_data_ref_ptr): Disallow negative steps.
2341
2342         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
2343         (perm_mask_for_reverse): Removed.
2344         (reverse_vec_elements): Likewise.
2345         (vectorizable_load): Don't handle negative steps.
2346
2347 2010-10-02  Jan Hubicka  <jh@suse.cz>
2348
2349         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
2350         call destination is known.
2351
2352 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2353
2354         PR target/45820
2355         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
2356         earlier.
2357
2358 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2359
2360         * doc/install.texi (Configuration): Document build_configargs,
2361         host_configargs, target_configargs.
2362
2363 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
2364
2365         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
2366         (*<shiftrt_insn><mode>3_mask): Ditto.
2367         (*<rotate_insn><mode>3_mask): Ditto.
2368
2369 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
2370
2371         PR tree-optimization/44716
2372         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2373         (HOT_TEXT_SECTION_NAME): Define.
2374
2375 2010-10-01  Nick Clifton  <nickc@redhat.com>
2376
2377         * common.opt: Add -fcombine-stack-adjustments.
2378         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
2379         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
2380         flag_combine_stack_adjustments.
2381         * doc/invoke.texi: Document the new option.
2382
2383 2010-10-01  Richard Guenther  <rguenther@suse.de>
2384
2385         PR tree-optimization/45854
2386         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
2387
2388 2010-10-01  Anthony Green  <green@moxielogic.com>
2389
2390         * config.gcc: Fix moxie-*-rtems* configuration.
2391
2392 2010-10-01  Richard Guenther  <rguenther@suse.de>
2393
2394         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
2395         (gen_decl_die): Likewise.
2396
2397 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2398
2399         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
2400         to the function code for SPU MD builtins.
2401         (spu_expand_builtin): Update.
2402         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
2403
2404 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2405
2406         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
2407         sjlj_except_unwind_info.
2408
2409 2010-10-01  Tristan Gingold  <gingold@adacore.com>
2410
2411         * configure.ac: Define the nop insn for avr*-*-*
2412         * configure: Regenerate.
2413
2414 2010-10-01  Alan Modra  <amodra@gmail.com>
2415
2416         PR target/45807
2417         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
2418         extend toc_restore_insn.
2419
2420 2010-09-30  Richard Guenther  <rguenther@suse.de>
2421
2422         PR tree-optimization/43959
2423         * function.c (gimplify_parameters): Use create_tmp_reg instead of
2424         create_tmp_var.
2425
2426 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
2427
2428         * config/sh/sh.c (sh_expand_prologue): Set
2429         current_function_static_stack_size.
2430
2431 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2432
2433         * configure.ac: Check for Solaris 8 ld with .hidden support.
2434         * configure: Regenerate.
2435
2436 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2437
2438         PR middle-end/45758
2439         * graphite.c (graphite_initialize): Call scev_reset.
2440
2441 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2442
2443         * sese.h (scev_analyzable_p): Return false for real or floating
2444         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
2445
2446 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2447
2448         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
2449         and ps.
2450         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
2451         domain.
2452         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
2453         Do not allocate ub_expr, it is passed in initialized.
2454
2455 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2456
2457         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
2458         (build_cloog_prog): Dump CLooG input file when
2459         flag_graphite_dump_cloog is set.  This is disabled on trunk.
2460         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
2461
2462 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2463
2464         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
2465         verify_dominators for CDI_POST_DOMINATORS.
2466         * sese.h: Remove comment about CDI_POST_DOMINATORS.
2467         (recompute_all_dominators): Remove call to free_dominance_info
2468         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
2469         for CDI_POST_DOMINATORS.
2470
2471 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2472
2473         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
2474         over pbb_dim_iter_domain.
2475
2476 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2477
2478         * graphite-flattening.c: Fix comments.
2479
2480 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2481
2482         * Makefile.in (OBJS-common): Add graphite-flattening.o.
2483         (graphite-flattening.o): New rule.
2484         * common.opt (floop-flatten): New flag.
2485         * doc/invoke.texi (-floop-flatten): Documented.
2486         * graphite-flattening.c: New.
2487         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
2488         * graphite-poly.h (flatten_all_loops): Declared.
2489         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
2490         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
2491         is set, also set flag_graphite.
2492
2493 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2494
2495         * graphite-poly.c (cloog_checksum): New.
2496         * graphite-poly.h (cloog_checksum): Declared.
2497
2498 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2499
2500         * graphite-poly.c (pbb_number_of_iterations): Removed.
2501         (pbb_number_of_iterations_at_time): Correctly compute the number
2502         of iterations in the transformed loop.
2503         * graphite-poly.h (pbb_number_of_iterations): Removed.
2504
2505 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2506
2507         * graphite-poly.h (lst_update_scattering_seq): Removed.
2508         (lst_update_scattering): Correctly handle outermost loop dewey
2509         renumbering.
2510
2511 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2512
2513         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
2514         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
2515         * graphite-poly.h (lst_niter_for_loop): New.
2516
2517 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2518
2519         * graphite-poly.c (apply_poly_transforms): Do not abort when the
2520         transform read from disk is not legal.  Call fatal_error instead.
2521
2522 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2523
2524         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
2525         (print_scop_header): Removed.  Inlined in the only call place...
2526         (print_scop): ... here.
2527
2528 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2529
2530         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
2531
2532 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2533
2534         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
2535
2536 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2537
2538         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
2539         (dot_deps_stmt): Same.
2540         * graphite-poly.c (dot_lst): Same.
2541
2542 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2543
2544         * graphite-blocking.c (scop_do_strip_mine): Do not call
2545         graphite_legal_transform.
2546         (scop_do_block): Same.
2547
2548 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
2549
2550         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
2551         description.
2552
2553 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2554
2555         * tree-scalar-evolution.c (instantiate_array_ref): New.
2556         (instantiate_scev_r): Also handle ARRAY_REFs.
2557
2558 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2559
2560         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2561         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
2562         RESULT_DECL, and FIELD_DECL.  Return false for an
2563         SSA_NAME_IS_DEFAULT_DEF.
2564         (compute_scalar_evolution_in_loop): Do not further analyze the
2565         scalar evolution when no_evolution_in_loop_p returns true.
2566
2567 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2568
2569         * tree-chrec.h (evolution_function_is_affine_p): Do not check
2570         whether CHREC_LEFT is invariant.  A function is affine when
2571         CHREC_RIGHT is invariant.
2572
2573 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2574
2575         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
2576         is_gimple_reg.
2577         (rewrite_degenerate_phi): Same.
2578         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
2579
2580 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
2581
2582         * graphite-scop-detection.c (graphite_can_represent_scev,
2583         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
2584         graphite_can_represent_loop): Remove outermost_loop.
2585
2586 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2587
2588         PR middle-end/45229
2589         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
2590         handle GIMPLE_CALLs with no LHS.
2591
2592 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
2593
2594         * graphite-poly.c (init_graphite_out_file): New.
2595         (init_graphite_in_file): New.
2596         (apply_poly_transforms): Updated to enable reading and writing of
2597         multiple scop files.
2598
2599 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
2600
2601         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
2602         redundant checks.
2603
2604 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2605
2606         * graphite-clast-to-gimple.c (precision_for_value): Adjust
2607         computation of precision by 1.
2608
2609 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
2610
2611         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
2612         (openscop_read_polyhedron_matrix): New.
2613         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
2614         (openscop_read_N_int): Same.
2615         * graphite-poly.c (openscop_read_N_int): New.
2616         (openscop_read_one_int): New.
2617         (openscop_read_N_string): New.
2618         (openscop_read_one_string): New.
2619         (openscop_read_powerset_matrix): New.
2620         (graphite_read_transforms): Remove.
2621         (graphite_read_scatt): New.
2622         (graphite_read_scop_file): New.
2623         (apply_poly_transforms): Updated to call graphite_read_scop_file.
2624
2625 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2626
2627         * graphite-poly.c: Change include order.
2628
2629 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2630
2631         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
2632         (cloog_matrix_nrows): New.
2633
2634 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
2635
2636         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
2637         from matrix lines.
2638         * graphite-poly.c (openscop_print_scattering_function_1): Same.
2639         (print_scattering_function_1): Same.
2640         (openscop_print_pbb_domain): Same.
2641         (openscop_print_scop_context): Same.
2642         (print_scop_context): Same.
2643
2644 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
2645
2646         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
2647         (openscop_print_pdr_polyhedron): Print pph.
2648
2649 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2650
2651         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
2652         priority signed types.
2653
2654 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2655
2656         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
2657         the call to lang_hooks.types.type_for_size.  Call
2658         build_nonstandard_integer_type.
2659
2660 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
2661
2662         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
2663         (openscop_print_polyhedron_matrix): New.
2664         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
2665         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
2666         (openscop_print_pdr_powerset): New.
2667         (openscop_print_powerset_matrix): New.
2668         (openscop_print_scattering_function_1): New.
2669         (print_scattering_function): Add support for scattering names and
2670         OpenScop format.
2671         (graphite_write_transforms): Remove.
2672         (print_pdr_access_layout): Updated to support OpenScop format.
2673         (print_pdr): Same.
2674         (openscop_print_pbb_domain): New.
2675         (print_pbb_body): Added a parameter to allow indicating that pbb_body
2676         is not provided.
2677         (print_pbb): Updated to call the new print_pbb_body.
2678         (openscop_print_scop_context): New.
2679         (print_scop_header): New.
2680         (print_scop): Updated to call print_scop_header.
2681         * graphite-poly.h: Document OpenScop format.
2682
2683 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
2684
2685         * config/cris/m32c.c (cris_memory_move_cost): New.
2686         (cris_register_move_cost): Make static. Change arguments type from
2687         enum reg_class to reg_class_t.
2688         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2689         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2690         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
2691
2692 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
2693
2694         PR target/45843
2695         * config/i386/i386.c (ix86_gimplify_va_arg): Use
2696         INTVAL (XEXP (slot, 1)) as prev_size.
2697
2698 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
2699
2700         PR target/45837
2701         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
2702         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
2703         defined.
2704         * config/rs6000/option-defaults.h (toplevel): Change #if
2705         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
2706         global option changes.
2707
2708 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
2709
2710         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
2711
2712         PR tree-optimization/31261
2713         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
2714         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
2715
2716 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2717
2718         PR bootstrap/45796
2719         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
2720         special-casing for generators and turn into ...
2721         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
2722         rule, for better error messages in case of toplevel dependency errors.
2723         (genprog): Add hooks, rename to ...
2724         (genprogerr): ... this, and let genprog also contain check,
2725         checksum, condmd.
2726         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
2727         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
2728         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
2729
2730 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
2731             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2732
2733         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
2734         for GMP, MPFR and MPC.
2735
2736 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2737
2738         * config/sparc/sparc.opt (mimpure-text): Move ...
2739         * config/sol2.opt: ... here.  Correct description.
2740         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
2741         * doc/invoke.texi (Option Summary, SPARC Options): Move
2742         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
2743         (Option Summary, Solaris 2 Options): ... here.
2744         (Submodel Options, Solaris 2 Options): New menu entry.
2745         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
2746         (Solaris 2 Options): ... here.
2747
2748 2010-09-30  Michael Eager  <eager@eagercon.com>
2749
2750         * extend.texi (interrupt_handler): Add MicroBlaze to list.
2751         (save_volatiles): Describe option for MicroBlaze.
2752         * invoke.texi: Add MicroBlaze Options.
2753         * contrib.texi: Add acknowledgment.
2754         * md.texi: Add MicroBlaze d and z constraints.
2755         * install.texi: Add microblaze-*-elf.
2756         * configure.ac: Add microblaze-*-* to target list.
2757         * configure: Regenerate.
2758         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
2759         * config/microblaze/microblaze-protos.h: New.
2760         * config/microblaze/crti.s: New.
2761         * config/microblaze/predicates.md: New.
2762         * config/microblaze/linux.h: New.
2763         * config/microblaze/microblaze.md: New.
2764         * config/microblaze/constraints.md: New.
2765         * config/microblaze/crtn.s: New.
2766         * config/microblaze/microblaze.opt: New.
2767         * config/microblaze/microblaze-c.c: New.
2768         * config/microblaze/t-microblaze: New.
2769         * config/microblaze/microblaze.c: New.
2770         * config/microblaze/microblaze.h: New.
2771
2772 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
2773
2774         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
2775         parse @optional/@required and set the flags as appropriate.
2776
2777 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
2778
2779         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
2780
2781 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
2782
2783         * opt-functions.awk (static_var): Update comment.
2784         (var_ref): Return offsetof expression or -1, not variable address.
2785         * optc-gen.awk: Generate structure field initializers instead of
2786         static variables.  Expect -1 for missing variables instead of null
2787         pointer.  Add gcc_options parameters to generated functions.
2788         * opth-gen.awk: Generate structure fields for static variables.
2789         Add gcc_options parameters to generated functions.
2790         * common.opt (optimize, optimize_size): Add variables.
2791         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
2792         &global_options to cl_target_option_restore.
2793         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
2794         &global_options to cl_optimization_restore, cl_target_option_save
2795         and cl_target_option_restore.
2796         (ix86_set_current_function): Pass &global_options to
2797         cl_target_option_restore.
2798         * config/pdp11/pdp11.h (optimize): Remove.
2799         * config/rs6000/rs6000.h (optimize): Remove.
2800         * config/sh/sh.h (optimize): Remove.
2801         * config/xtensa/xtensa.h (optimize): Remove.
2802         * coretypes.h (struct gcc_options): Declare.
2803         * diagnostic.c (diagnostic_initialize): Initialize
2804         context->option_state.
2805         (diagnostic_report_diagnostic): Pass option_state to
2806         option_enabled hook.
2807         * diagnostic.h (diagnostic_context.option_enabled): Add void *
2808         parameter.
2809         (diagnostic_context.option_state): New field.
2810         * final.c (final_start_function, final, final_scan_insn): Rename
2811         optimize parameter to optimize_p.
2812         * flags.h (optimize, optimize_size): Remove.
2813         * function.c (invoke_set_current_function_hook): Pass
2814         &global_options to cl_optimization_restore.
2815         * gcc.c (driver_handle_option): Take gcc_options parameter.
2816         Assert that it is &global_options.
2817         (process_command): Pass &global_options to read_cmdline_option.
2818         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
2819         option_enabled.
2820         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
2821         &global_options to set_option.
2822         * opts-common.c (handle_option, handle_generated_option,
2823         read_cmdline_option, set_option): Take explicit gcc_options
2824         parameters.  Use option_flag_var.
2825         (option_flag_var): New.
2826         * opts.c (common_handle_option, lang_handle_option,
2827         target_handle_option): Take gcc_options parameter.  Assert that it
2828         is &global_options.
2829         (read_cmdline_options): Pass &global_options to read_cmdline_option.
2830         (print_filtered_help): Use option_flag_var.  Pass &global_options
2831         to option_enabled.
2832         (common_handle_option): Use option_flag_var.
2833         (option_enabled): Take opts parameter.  Use option_flag_var.
2834         (get_option_state): Take gcc_options parameter.  Use
2835         option_flag_var.  Pass gcc_options parameter to option_enabled.
2836         (enable_warning_as_error): Pass &global_options to
2837         handle_generated_option.
2838         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
2839         (cl_option_handler_func.handler): Take gcc_options parameter.
2840         (option_enabled, get_option_state, set_option, handle_option,
2841         handle_generated_option, read_cmdline_option): Take gcc_options
2842         parameters.
2843         * toplev.c (optimize, optimize_size): Remove.
2844         (print_switch_values): Pass &global_options to option_enabled.
2845         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
2846         to get_option_state.
2847         (general_init): Initialize global_dc->option_state.
2848         * tree.c (build_optimization_node): Pass &global_options to
2849         cl_optimization_save.
2850         (build_target_option_node): Pass &global_options to
2851         cl_target_option_save.
2852
2853 2010-09-30  Martin Jambor  <mjambor@suse.cz>
2854
2855         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
2856         zero sized bit-fields.
2857
2858 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2859
2860         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
2861         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
2862         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
2863         (c_parser_objc_class_declaration): Same change.
2864         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
2865         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
2866         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
2867         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
2868         and RID_AT_PUBLIC instead of RID_PUBLIC.
2869         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
2870         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
2871
2872 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
2873
2874         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
2875         Add links to current providers of packages for Solaris and IRIX.
2876
2877 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2878
2879         Merge from 'apple/trunk' branch on FSF servers.
2880         * c-parser.c: Applied change originally in c-parse.in.
2881
2882         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
2883
2884         Radar 4281748
2885         * c-decl.c (start_decl): Check for redeclaration of class name.
2886         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
2887
2888 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
2889
2890         * config/ia64/ia64.c (ia64_builtin_decl): New.
2891         (TARGET_BUILTIN_DECL): Define.
2892         (ia64_builtins): New.
2893         (ia64_init_builtins): Save decls in ia64_builtins.
2894
2895 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
2896
2897         PR target/40457
2898         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
2899         (move2add_use_add3_insn): Likewise.
2900         (reload_cse_move2add): Likewise.
2901         * rtlanal.c (get_full_rtx_cost): New function.
2902         * rtl.h (struct full_rtx_costs): New.
2903         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
2904         costs_add_n_insns): New inline functions.
2905         (get_full_rtx_cost): Declare.
2906
2907         PR c/45054
2908         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
2909         invariants.  Check for reg_equiv_invariant.
2910         (reload): Assert that spilled_pseudos is empty when returning.
2911
2912 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
2913
2914         * config/i386/mingw32.h (TARGET_64BIT): replaced by
2915         TARGET_64BIT_DEFAULT in #if check.
2916
2917 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
2918
2919         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
2920
2921 2010-09-29  Mike Stump  <mikestump@comcast.net>
2922
2923         * config/darwin.h (flag_mkernel): Remove.
2924         (flag_apple_kext): Likewise.
2925
2926 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
2927             Jack Howarth <howarth@bromo.med.uc.edu>
2928
2929         * config/darwin.opt (undefined): Add.
2930
2931 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2932
2933         PR testsuite/45664
2934         * configure.ac: Add --enable-indirect-function option.
2935         * config.gcc: Add default_gnu_indirect_function.
2936         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
2937         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
2938         * varasm.c (do_assemble_alias): Adjust for macro name change.
2939         * configure: Rebuilt.
2940         * doc/install.texi: Document --enable-indirect-function.
2941
2942 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
2943
2944         * doc/options.texi (Variable, Var, Init): Update documentation
2945         without reference to VarExists.
2946         (VarExists): Remove.
2947         * common.opt, config/i386/i386.opt, config/linux.opt,
2948         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
2949         Don't use VarExists.
2950
2951 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
2952
2953         * optc-gen.awk: Generate global_options initializer instead of
2954         individual variables.  Add x_ prefix to names of structure members.
2955         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
2956         names of structure members.
2957         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2958         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
2959         * doc/tm.texi: Regenerate.
2960         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
2961         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
2962         * c-parser.c (disable_extension_diagnostics,
2963         restore_extension_diagnostics): Update names of cpp_options members.
2964         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
2965         * common.opt (fcompare-debug-second): Don't use Var.
2966         * config/alpha/alpha.h (target_flags): Remove.
2967         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2968         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
2969         * config/bfin/bfin.h (target_flags): Remove.
2970         * config/cris/cris.h (target_flags): Remove.
2971         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
2972         cl_target_option members.
2973         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
2974         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
2975         ix86_can_inline_p): Update names of cl_target_option members.
2976         * config/i386/i386.h (ix86_isa_flags): Remove.
2977         * config/lm32/lm32.h (target_flags): Remove.
2978         * config/mcore/mcore.h (mcore_stack_increment): Remove.
2979         * config/mcore/mcore.md (addsi3): Remove extern declaration of
2980         flag_omit_frame_pointer.
2981         * config/mep/mep.h (target_flags): Remove.
2982         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2983         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
2984         * config/mmix/mmix.h (target_flags): Remove.
2985         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
2986         flag_expensive_optimizations): Remove.
2987         * config/s390/s390.h (flag_pic): Remove.
2988         * config/score/score-conv.h (target_flags): Remove.
2989         * config/sh/sh.h (sh_fixed_range_str): Remove.
2990         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
2991         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
2992         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2993         * diagnostic.c (diagnostic_initialize): Update names of
2994         diagnostic_context members.
2995         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
2996         warn_system_headers.
2997         (diagnostic_report_warnings_p): Update for new names.
2998         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
2999         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
3000         HARD_FRAME_POINTER_IS_ARG_POINTER.
3001         * flags.h (flag_compare_debug): Declare.
3002         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3003         * opts.c (flag_compare_debug): Define.
3004         (common_handle_option): Update names of diagnostic_context
3005         members.  Handle -fcompare-debug-second.
3006         (fast_math_flags_struct_set_p): Update names of cl_optimization
3007         members.
3008         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3009         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3010         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3011         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3012         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3013         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3014         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
3015         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3016         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
3017
3018 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
3019
3020         * config/picochip/picochip.c (picochip_output_internal_label):
3021         This function can now be called for debug CFI labels, which can come
3022         in the middle of a vliw instruction.  Postpone until end of vliw.
3023
3024 2010-09-29  Richard Guenther  <rguenther@suse.de>
3025
3026         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
3027         (DECL_FILE_SCOPE_P): Use it.
3028         (TYPE_FILE_SCOPE_P): New macro.
3029
3030 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3031
3032         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
3033         a CPP_NAME which is a reserved word, clearly separate cases for
3034         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
3035
3036 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3037
3038         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
3039         token->value with the canonical spelling.  Do exactly like C and
3040         C++ and leave it as it is.
3041
3042 2010-09-28  Richard Henderson  <rth@redhat.com>
3043
3044         * config/alpha/alpha.c (alpha_builtins): New.
3045         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
3046         (alpha_builtin_function): New.
3047         (alpha_add_builtins, alpha_init_builtins): Use it.
3048
3049 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
3050
3051         * doc/standards.texi (Standards): Expanded the section on
3052         Objective-C and Objective-C++.
3053
3054 2010-09-28  DJ Delorie  <dj@redhat.com>
3055
3056         PR target/45800
3057         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
3058         volatile MEMs.
3059
3060 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
3061
3062         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
3063         attributes on methods.
3064          (c_parser_objc_method_definition): Handle attributes.
3065         (c_parser_objc_methodproto): Likewise.
3066         (c_parser_objc_maybe_method_attributes): New.
3067         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
3068         missing definition, similar to that in ObjC++.
3069
3070 2010-09-28  Richard Henderson  <rth@redhat.com>
3071
3072         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
3073         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
3074         (CONFIG_SJLJ_EXCEPTIONS): Remove.
3075         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
3076         (STACK_CHECK_PROTECT): Likewise.
3077         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
3078         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
3079         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
3080         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
3081         (dwarf2out_assembly_start): Likewise.
3082         * except.c (init_eh): Use targetm.except_unwind_info.
3083         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
3084         (output_one_function_exception_table): Likewise.
3085         * final.c: Unconditionally include dwarf2out.h.
3086         (final_start_function): Unconditionally call dwarf2out routines.
3087         (final_end_function, final_scan_insn): Likewise.
3088         * function.c (expand_function_end): Use targetm.except_unwind_info.
3089         * opts.c (decode_options): Use targetm.except_unwind_info.
3090         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
3091         * target.def (debug_unwind_info, except_unwind_info): New.
3092         * target.h (enum unwind_info_type): New.
3093         * targhooks.c (default_debug_unwind_info): New.
3094         (default_except_unwind_info): New.
3095         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
3096         * targhooks.h: Declare them.
3097         * tree-tailcall.c: Include "target.h"
3098         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
3099         * Makefile.in (tree-tailcall.o): Update.
3100         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
3101         (lhd_gcc_personality): Likewise.
3102
3103         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
3104         (TARGET_EXCEPT_UNWIND_INFO): New.
3105         (DWARF2_UNWIND_INFO): Update.
3106         (TARGET_DEBUG_UNWIND_INFO): New.
3107         * doc/tm.texi: Rebuild.
3108
3109         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
3110         targetm.except_unwind_info.
3111
3112         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
3113         (arm_except_unwind_info): New.
3114         (arm_compute_func_type): Use it.
3115         (arm_expand_prologue, thumb_pushpop): Likewise.
3116         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
3117         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
3118         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
3119         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
3120         (DWARF2_UNWIND_INFO): Remove.
3121         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
3122         (ARM_EABI_UNWIND_TABLES): Remove.
3123
3124         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
3125         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
3126         (ia64_except_unwind_info): New.
3127         (ia64_output_function_prologue): Use it.
3128         (ia64_add_bundle_selector_before): Likewise.
3129         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
3130         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
3131         (TARGET_UNWIND_INFO): Remove.
3132
3133         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
3134
3135 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
3136
3137         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
3138         (c_parser_objc_protocol_definition): Likewise.
3139         (c_parser_external_declaration): Provide dummy attribute arguments.
3140         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
3141         (c_parser_objc_class_definition): Handle attributes.
3142         (c_parser_objc_protocol_definition): Likewise.
3143
3144 2010-09-28  Tobias Burnus  <burnus@net-b.de>
3145
3146         PR fortran/40569
3147         PR fortran/40568
3148         * toplev.h (save_decoded_options, save_decoded_options_count):
3149         New global variables.
3150         * toplev.c (save_decoded_options, save_decoded_options_count):
3151         Export variables.
3152
3153 2010-09-28  Ian Lance Taylor  <iant@google.com>
3154
3155         * config/i386/i386.c (ix86_supports_split_stack): Test
3156         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
3157
3158 2010-09-28  Ian Lance Taylor  <iant@google.com>
3159
3160         PR target/45815
3161         * opts.c (decode_options): Don't test whether the target supports
3162         split stack if flag_split_stack == 0.
3163
3164 2010-09-28  Jan Hubicka  <jh@suse.cz>
3165
3166         * builtin-attrs.def (ATTR_LEAF): New attribute.
3167         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
3168         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
3169         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
3170         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
3171         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
3172         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
3173         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
3174         * sync-builtins.def: Annotate all builtins by leaf.
3175         * omp-builtins.def: Annotate all builtins by leaf.
3176         * builtins.def: Annotate relevant builtins with leaf attribute.
3177         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
3178         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
3179         leaf.
3180
3181 2010-09-28  Jan Hubicka  <jh@suse.cz>
3182
3183         * tree-ssa-ccp.c (fold_ctor_reference): New function.
3184         (fold_const_aggregate_ref): Use it.
3185         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
3186         into external static.
3187
3188 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3189
3190         PR target/44452
3191         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
3192         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
3193         (ix86_solaris_return_in_memory): Remove.
3194         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
3195         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3196         (TARGET_SUBTARGET_DEFAULT): Redefine.
3197         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
3198         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3199         (TARGET_SUBTARGET_DEFAULT): Redefine.
3200         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
3201         -mvect8-ret-in-mem.
3202         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
3203
3204 2010-09-29  Alan Modra  <amodra@gmail.com>
3205
3206         PR target/45807
3207         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
3208         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
3209         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
3210         Delete.
3211         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
3212         (rs6000_emit_prologue): Don't just create frame save info for r2,
3213         actually save r2.
3214
3215 2010-09-28  Richard Henderson  <rth@redhat.com>
3216
3217         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
3218         when 8 bytes are requested.
3219
3220 2010-09-28  Tristan Gingold  <gingold@adacore.com>
3221
3222         * config/avr/avr.c (expand_prologue): Set
3223         current_function_static_stack_size.
3224
3225 2010-09-28  Tristan Gingold  <gingold@adacore.com>
3226
3227         * config/alpha/alpha.md: Change the initial condition of the
3228         probing loop.
3229
3230 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
3231
3232         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
3233         Split from *avx_<maxmin:code><mode>3.
3234         (*avx_<smaxmin:code><mode>3): Ditto.
3235         * config/i386/i386.md (maxmin): Remove code iterator.
3236
3237 2010-09-27  Ian Lance Taylor  <iant@google.com>
3238
3239         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
3240         requires assembler support for CFI directives.
3241
3242 2010-09-27  Richard Henderson  <rth@redhat.com>
3243
3244         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
3245
3246 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
3247
3248         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
3249         that AFTER is not in the range FROM..TO, inclusive.
3250
3251 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
3252             Bernd Schmidt  <bernds@codesourcery.com>
3253
3254         PR rtl-optimization/45792
3255         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
3256         If not all insns are to be merged, for each edge, stash the
3257         next candidate after the to-be-merged insns before doing the
3258         merge, and use them for the retry at the new insertion point.
3259         Handle CC0 targets when retrying.
3260
3261 2010-09-27  Ian Lance Taylor  <iant@google.com>
3262
3263         * common.opt (fsplit-stack): New option.
3264         * opts.c (decode_options): Set flag_split_stack to final value.
3265         * target.def (supports_split_stack): New hook.
3266         * gcc.c (STACK_SPLIT_SPEC): Define.
3267         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
3268         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
3269         (Code Gen Options): Document -fsplit-stack.
3270         * doc/extend.texi (Function Attributes): Mention no_split_stack.
3271         (Function Attributes): Document no_split_stack.
3272         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
3273         TARGET_SUPPORTS_SPLIT_STACK.
3274         * doc/tm.texi: Rebuild.
3275         * function.c (thread_prologue_and_epilogue_insns): If
3276         flag_split_stack, add split stack prologue.
3277         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
3278         * varasm.c (saw_no_split_stack): New static variable.
3279         (assemble_start_function): Set saw_no_split_stack if the function
3280         has the no_split_stack attribute.
3281         (file_end_indicate_split_stack): New function.
3282         * output.h (file_end_indicate_split_stack): Declare.
3283         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
3284         and function.
3285         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
3286         routines.
3287         * config/i386/i386.c (ix86_option_override_internal): Don't set
3288         expand_builtin_va_start to NULL if -fsplit-stack.
3289         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
3290         -fsplit-stack.
3291         (ix86_va_start): If -fsplit-stack, get overflow pointer from
3292         scratch register set by prologue.
3293         (ix86_code_end): If -fsplit-stack, call
3294         file_end_indicate_split_stack.
3295         (ix86_supports_split_stack): New static function.
3296         (SPLIT_STACK_AVAILABLE): Define.
3297         (split_stack_prologue_scratch_regno): New static function.
3298         (split_stack_fn): New static variable.
3299         (ix86_expand_split_stack_prologue): New function.
3300         (ix86_live_on_entry): New static function.
3301         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
3302         (output_pic_addr_const): Likewise.
3303         (i386_asm_output_addr_const_extra): Likewise.
3304         (ix86_expand_call): Change return type to rtx.  Return the new
3305         call instruction.
3306         (TARGET_SUPPORTS_SPLIT_STACK): Define.
3307         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3308         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
3309         (split_stack_prologue, split_stack_return): New insns.
3310         (split_stack_space_check): New insn.
3311         * config/i386/i386.h (struct machine_function): Add
3312         split_stack_varargs_pointer field.
3313         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
3314         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
3315         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
3316         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
3317         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
3318         Declare.
3319         (ix86_expand_call): Update declaration.
3320
3321 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3322
3323         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
3324         code.  Added byref, which was missing in the list of codes.
3325         Explain that enumeration values are encoded as the integer type
3326         that the compiler uses to store them.  Explain and make examples
3327         of how 'const' interacts with pointers, and the complication of
3328         the encoding of 'const char *'.
3329         (Legacy type encoding): New subsection, explaining that GCC emits
3330         incorrect type encodings for the NeXT runtime for compatibility
3331         reasons.
3332         (@@encode): New subsection, explaining @encode and particularly
3333         that protocol qualifiers are not recognized inside an @encode()
3334         expression.
3335         (Method signatures): New subsection, explaining how method
3336         signatures are encoded.
3337
3338 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3339
3340         Merge from 'apple/trunk' branch on FSF servers.  Removed small
3341         change in build_conditional_expr that had been added when fixing
3342         PR objc/27377 and which did the same check in a less complete way.
3343
3344         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
3345
3346         Radar 4229905
3347         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
3348         looking for objective-c common pointer types.
3349
3350         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
3351
3352         Radar 4154928
3353         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
3354         use their ObjC common type.
3355
3356 2010-09-27  Richard Guenther  <rguenther@suse.de>
3357
3358         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
3359
3360 2010-09-27  Jie Zhang  <jie@codesourcery.com>
3361
3362         * print-tree.c (print_node): Print in-constant-pool.
3363
3364 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
3365
3366         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
3367         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
3368         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
3369         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
3370
3371 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
3372
3373         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
3374         from pro_epilogue_adjust_stack_<mode>_{1,2}.
3375         (pro_epilogue_adjust_stack_<mode>_add): Rename from
3376         pro_epilogue_adjust_stack_<mode>_3.
3377         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
3378         renamed pro_epilogue_adjust_stack_{si,di}_add.
3379         (ix86_expand_prologue): Use indirect functions.  Update for renamed
3380         pro_epilogue_adjust_stack_{si,di}_sub.
3381
3382 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
3383
3384         * config/i386/i386.md (movmsk_df): New insn.
3385         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
3386         sequence for TARGET_SSE_MATH.
3387
3388 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
3389
3390         * config/mips/mips.c (mips_builtin_decls): Declare.
3391         (mips_init_builtins): Store function declarations in
3392         mips_builtin_decls.
3393         (mips_builtin_decl): New function.
3394         (TARGET_BUILTIN_DECL): Define.
3395
3396 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
3397             Richard Henderson  <rth@redhat.com>
3398
3399         * config/i386/cygwin.asm: Include auto-host.h.
3400         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
3401         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
3402         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
3403         alignment code from the 64-bit path.  Use gas local labels.
3404         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
3405         from _di_2.  Remove the useless constant integer argument.
3406         (pro_epilogue_adjust_stack_<mode>_3): New.
3407         (allocate_stack_worker_probe_<mode>): Macroize from
3408         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
3409         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
3410         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
3411         (__chkstk_ms): New function.
3412         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
3413         * gcc/config/i386/t-interix: Likewise.
3414         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
3415         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
3416         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
3417         * configure, config.in: Rebuild.
3418
3419 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3420
3421         * tree-inline.c (c