OSDN Git Service

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