OSDN Git Service

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