OSDN Git Service

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