OSDN Git Service

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