OSDN Git Service

c65a0545f9a9c8d5728a01caa84c375bc04e0045
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2
3         * doc/options.texi (Warning, Optimization): Document.
4
5 2010-11-23  Jan Hubicka  <jh@suse.cz>
6
7         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
8         (tree_decl_with_vis): Add implicit_section_name_p.
9         * targhooks.h (default_function_section): Declare.
10         * target.def (function_section): New hook.
11         * defaults.h (HOT_TEXT_SECTION_NAME,
12         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
13         * predict.c (choose_function_section): Remove.
14         (estimate_bb_frequencies): Do not use choose_function_section.
15         * coretypes.h (enum node_frequency): Move here from cgraph.h
16         * cgraph.h (enum node_frequency): Remove.
17         * varasm.c (initialize_cold_section_name, unlikely_text_section,
18         unlikely_text_section_p): Remove.
19         (named_subsection_entry): New structure.
20         (get_text_section): New function.
21         (default_function_section): New function.
22         (function_section_1): Break out from ...; handle profile info.
23         (function_section): ... here.
24         (unlikely_text_section): Remove.
25         (unlikely_text_section_p): Use function_section_1.
26         (assemble_start_function): Do not initialize cold section.
27         (default_section_type_flags): Do not special case cold subsection.
28         (switch_to_section): Likewise.
29         * output.h (get_text_section): Define.
30         * config/i386/winnt.c: Do not special case cold section.
31         * config/darwin-protos.h (darwin_function_section): Declare.
32         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
33         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
34         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
35         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
36         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
37         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
38         * config/darwin.c (machopic_select_section): Use
39         darwin_function_section.
40         (darwin_function_section): New function.
41         * config/darwin.h (HOT_TEXT_SECTION_NAME,
42         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
43         (TARGET_ASM_FUNCTION_SECTION): Define.
44         * system.h (HOT_TEXT_SECTION_NAME,
45         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
46
47 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
48
49         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
50         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
51
52 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
53
54         PR middle-end/46499
55         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
56         following unconditional jumps.
57
58 2010-11-23  Richard Guenther  <rguenther@suse.de>
59
60         * doc/md.texi (386 constraints): Clarify A constraint documentation.
61
62 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
63             Jeremie Salvucci  <jeremie.salvucci@free.fr>
64
65         * gengtype.c (enum typekind, struct options)
66         (struct nested_ptr_data, struct pair, NUM_PARAM)
67         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
68         Move to gengtype.h.
69         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
70         Remove static, add zero state_number.
71         (typedefs, structures, param_structs, variables): Remove static.
72         (create_option): Remove.
73         (create_string_option, create_type_option, create_nested_option):
74         New functions.
75         (create_nested_ptr_option): Use create_nested_option.
76         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
77         new create*option functions.
78         (process_gc_options): Adjust for discriminated option.
79         (output_mangled_typename): Handle TYPE_NONE.
80         (walk_type): Test option kinds.
81         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
82         (write_func_for_structure, write_type, write_local, write_root)
83         (write_roots, note_def_vec, dump_options): Adjust for
84         discriminated option.
85
86         * gengtype.h
87         (typedefs, structures, param_structs, variables, enum typekind):
88         Move from gengtype.c
89         (enum option_kind): New discriminating enumeration.
90         (struct options): Becomes discriminated.
91         (struct nested_ptr_data): Nove from gengtype.c
92         (create_string_option, create_type_option, create_nested_option)
93         (create_nested_ptr_option): New functions
94         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
95         (UNION_OR_STRUCT_P): Move from gengtype.c
96
97         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
98         discriminated options.
99
100 2010-11-23  Richard Guenther  <rguenther@suse.de>
101
102         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
103         twice.  Avoid re-allocating the ops vector all the time.
104
105 2010-11-23  Richard Guenther  <rguenther@suse.de>
106
107         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
108         is_gimple_min_invariant, group tree code checks to allow
109         combining them.
110         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
111         of is_gimple_reg.
112
113 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
114
115         * config.gcc (sparc*-*-*): Reorder.
116
117 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
118
119         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
120         Remove ENABLE_CHECKING around DBGPRINTF.
121
122 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
123
124         * common.opt (exit_after_options, write_symbols, debug_info_level,
125         use_gnu_debug_info_extensions): New Variable entries.
126         (fprofile-dir=): Use Var.
127         * flag-types.h (enum debug_info_level): Rename to enum
128         debug_info_levels.
129         * flags.h (write_symbols, debug_info_level,
130         use_gnu_debug_info_extensions): Remove declarations.
131         * opts.c (exit_after_options, write_symbols, debug_info_level):
132         Remove.
133         (set_struct_debug_option): Make static variables const.
134         (use_gnu_debug_info_extensions): Remove.
135         (set_debug_level, print_filtered_help, print_specific_help,
136         fast_math_flags_set_p): Take gcc_options parameters and use them
137         in place of global variables.
138         (print_filtered_help): Make new_help non-static.
139         (print_specific_help): Update call to print_filtered_help.
140         (common_handle_option): Update calls to print_specific_help.  Use
141         gcc_options structure for more settings.  Make --help table
142         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
143         set_debug_level.
144         * toplev.c (profile_data_prefix): Remove.
145         * toplev.h (profile_data_prefix, exit_after_options): Remove
146         declarations.
147         (fast_math_flags_set_p): Update prototype.
148         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
149         Update call to fast_math_flags_set_p.
150
151 2010-11-22  Richard Henderson  <rth@redhat.com>
152
153         PR target/46434
154         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
155         return the address register extracted.
156         (crx_decompose_address): Update the extracted address register.
157
158 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
159
160         PR driver/43335
161         * gcc.c (main): Don't crash when lto-wrapper program is not found.
162
163 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
164
165         PR target/46608
166         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
167         * config/picochip/picochip-protos.h: Don't include "target.h" .
168         (picochip_secondary_reload): Don't declare.
169
170         PR target/46613
171         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
172         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
173         static.
174
175 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
176
177         PR bootstrap/46609
178         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
179         (source_dot_c_frul): Likewise.
180
181 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
182
183         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
184
185 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
186
187         PR bootstrap/44970
188         * Makefile.in (fwprop.o) Add sparseset.h.
189         * fwprop.c: Include sparseset.h
190         (struct find_occurrence_data, find_occurrence_callback,
191         find_occurrence): Remove.
192         (active_defs, active_defs_check, register_active_defs,
193         update_df_init, update_uses): New.
194         (update_df): Rewrite.
195         (try_fwprop_subst, forward_propagate_asm): Add calls to
196         update_df_init and update_df.
197         (fwprop_init): Allocate active_defs and active_defs_check.
198         (fwprop_done): Free them.
199         (fwprop, fwprop_addr): Adjust comments.
200         * df.h (df_uses_create): Declare.
201         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
202         (df_ref_create): Return result of df_ref_create_structure directly.
203         (df_ref_create_structure): Call df_install_ref_incremental when
204         no collection_rec is passed.
205         (df_ref_record): Do not create multiword hard reg info when no
206         collection_rec is passed.
207         (df_uses_create): New. 
208
209 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
210
211         PR middle-end/43057
212         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
213         setting location.
214
215 2010-11-22  Richard Guenther  <rguenther@suse.de>
216
217         * gimple-fold.c (maybe_fold_reference): When canonicalizing
218         MEM_REFs, preserve volatileness.
219         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
220         addresses.
221
222 2010-11-22  Richard Guenther  <rguenther@suse.de>
223
224         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
225
226 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
227
228         PR rtl-optimization/45652
229         * alias.c (get_reg_base_value): New.
230         * rtl.h (get_reg_base_value): Add prototype.
231         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
232         non-null REG_BASE_VALUE for renaming.
233
234 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
235             Basile Starynkevitch  <basile@starynkevitch.net>
236
237         * gengtype.c: Include xregex.h and obstack.h
238         Added comments about role of get_output_file_with_visibility and
239         our regexpr machinery.
240         (frul_actionrout_t, struct file_rule_st): New.
241         (hader_dot_h_frul, source_dot_c_frul): New functions.
242         (NULL_REGEX,  NULL_FRULACT): New.
243         (files_rules): New.
244         (matching_file_name_substitute): New function.
245         (get_output_file_with_visibility): Updated comments and rewritten
246         to use the new files_rules machinery.
247
248         * Makefile.in (XREGEX_H): Added variable.
249         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
250
251 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
252
253         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
254
255 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
256
257         * target.def (conditional_register_usage): Define.
258         * reginfo.c (init_reg_sets_1): Call
259         targetm.conditional_register_usage.
260         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
261         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
262         for making it a hook.
263         * doc/tm.texi: Regenerate.
264         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
265         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
266         New function.
267         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
268         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
269         * config/arc/arc.c (arc_conditional_register_usage): ...here.
270         New function.
271         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
272         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
273         * config/arm/arm.c (arm_conditional_register_usage): ...here.
274         New function.
275         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
276         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
277         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
278         * config/bfin/bfin.c (conditional_register_usage): Move code into...
279         (bfin_conditional_register_usage): ...here.  New function.
280         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
281         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
282         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
283         * config/cris/cris.c (cris_conditional_register_usage): Make static.
284         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
285         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
286         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
287         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
288         * config/frv/frv.c (frv_conditional_register_usage): Make static.
289         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
290         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
291         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
292         New function.
293         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
294         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
295         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
296         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
297         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
298         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
299         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
300         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
301         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
302         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
303         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
304         New function.
305         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
306         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
307         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
308         Delete.
309         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
310         static.
311         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
312         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
313         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
314         * config/mep/mep.c (mep_conditional_register_usage): Make static.
315         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
316         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
317         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
318         * config/mips/mips.c (mips_conditional_register_usage): Make static.
319         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
320         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
321         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
322         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
323         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
324         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
325         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
326         ...here.  New function.
327         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
328         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
329         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
330         * config/pa/pa.c (pa_conditional_register_usage): ...here.
331         New function.
332         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
333         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
334         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
335         New function.
336         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
337         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
338         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
339         Delete.
340         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
341         static.
342         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
343         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
344         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
345         * config/rx/rx.c (rx_conditional_register_usage): Make static.
346         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
347         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
348         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
349         * config/s390/s390.c (s390_conditional_register_usage): Make static.
350         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
351         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
352         * config/score/score.c (score_conditional_register_usage): ...here.
353         New function.
354         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
355         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
356         * config/sh/sh.c (sh_conditional_register_usage): ...here.
357         New function.
358         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
359         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
360         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
361         New function.
362         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
363         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
364         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
365         * config/spu/spu.c (spu_conditional_register_usage): Make static.
366         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
367         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
368         * config/v850/v850.c (v850_conditional_register_usage): ...here.
369         New function.
370         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
371
372 2010-11-21  Jan Hubicka  <jh@suse.cz>
373             Dominique d'Humieres <dominiq@lps.ens.ft>
374
375         PR target/46510
376         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
377         finalize external decls.
378
379 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
380
381         * system.h (strerror): Poison.
382
383 2010-11-21  Richard Henderson  <rth@redhat.com>
384
385         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
386         for infq/huge_valq.
387
388 2010-11-21  Richard Henderson  <rth@redhat.com>
389
390         PR rtl-optimization/46571
391         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
392         (compute_hash_table_work): Use NONDEBUG_INSN_P.
393
394 2010-11-21  Paul Koning  <ni1d@arrl.net>
395
396         * config/mips/pdp11.md (negsi2): Fix wrong code.
397
398 2010-11-21  Paul Koning  <ni1d@arrl.net>
399
400         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
401         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
402
403 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
404
405         * config/mips/mips.c (machine_function): Rename load_label_length to
406         load_label_num_insns.
407         (mips_load_label_length): Rename to...
408         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
409         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
410
411 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
412
413         PR target/46533
414         * config/alpha/predicates.md (direct_call_operand): Return false
415         for !TARGET_SMALL_TEXT targets.
416
417 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
418
419         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
420         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
421         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
422         * doc/tm.texi: Regenerate.
423         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
424         HANDLE_PRAGMA_WEAK): Poison.
425         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
426         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
427         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
428         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
429         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
430         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
431         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
432         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
433         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
434         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
435         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
436         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
437         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
438         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
439         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
440         (HANDLE_PRAGMA_WEAK): Don't undefine.
441         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
442         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
443         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
444         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
445         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
446         (HANDLE_PRAGMA_WEAK): Don't undefine.
447         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
448         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
449         (HANDLE_PRAGMA_PACK): Don't undefine.
450         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
451         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
452         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
453         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
454         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
455         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
456         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
457         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
458         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
459         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
460         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
461         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
462         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
463         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
464         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
465         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
466         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
467
468 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
469
470         PR target/31100
471         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
472         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
473         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
474
475 2010-11-20  Jan Hubicka  <jh@suse.cz>
476
477         * cgraph.c (ld_plugin_symbol_resolution_names): New.
478         (dump_cgraph_node): Dump resolution.
479         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
480         (cgraph_comdat_can_be_unshared_p): Dclare.
481         * lto-streamer-out.c (produce_symtab): Use
482         cgraph_comdat_can_be_unshared_p.
483         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
484         (cgraph_comdat_can_be_unshared_p): New function based on logic
485         in cgraph_externally_visible_p.
486         (cgraph_externally_visible_p): Use it.
487         (varpool_externally_visible_p): Virtual tables can be unshared.
488         * varpool.c (dump_varpool_node): Dump resolution.
489
490 2010-11-20  Jan Hubicka  <jh@suse.cz>
491
492         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
493
494 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
495
496         PR other/46202
497         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
498         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
499         shell quoting.
500         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
501         (install-strip): New target.
502         (STRIPPROG): New variable, exported if STRIP is set.
503         * doc/install.texi (Final install): Minor markup and code style
504         fixes.  Document install-strip target.
505
506 2010-11-20  Paul Koning  <ni1d@arrl.net>
507
508         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
509         pdp11_regno_reg_class): New functions.
510         * config/pdp11/pdp11.md (define_constants): Add register numbers.
511         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
512         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
513         functions.
514         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
515         frame pointer and argument pointer pseudo-registers.
516         (ARG_POINTER_REGNUM): Define.
517         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
518         argument pointer.
519         (FIRST_PARM_OFFSET): Update for argument pointer.
520         (INITIAL_FRAME_POINTER_OFFSET): Delete.
521         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
522         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
523         frame pointer and argument pointer.
524
525 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
526
527         PR debug/46561
528         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
529         when looking for immediate uses.
530
531         PR tree-optimization/45830
532         * stmt.c (expand_switch_using_bit_tests_p): New function.
533         (expand_case): Use it.
534         * tree.h (expand_switch_using_bit_tests_p): New prototype.
535         * tree-switch-conversion.c (struct switch_conv_info): Add
536         bit_test_uniq, bit_test_count and bit_test_bb fields.
537         (check_range): Fix a comment.
538         (check_process_case): Compute bit_test_uniq and bit_test_count.
539         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
540         allocation.
541         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
542         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
543         (array_value_type): New function.
544         (build_one_array): Use it, if it returned different type,
545         fold_convert all constructor fields and convert back to the
546         wider type in the generated code.
547         (process_switch): Initialize bit_test_uniq, bit_test_count and
548         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
549         returned true.
550
551 2010-11-19  Michael Matz  <matz@suse.de>
552
553         PR tree-optimization/46077
554         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
555
556 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
557
558         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
559         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
560         function.
561         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
562
563 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
564
565         * mode-switching.c (optimize_mode_switching): Use
566         FOR_BB_INSNS instead of open-coded loop.
567         * cfgrtl.c (redirect_branch_edge): Ditto.
568
569 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
570
571         PR target/46436
572         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
573         to accomodate 32 bit HOST_WIDE_INT.
574         (m68hc11_emit_logical): Remove unused variable insn.
575         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
576         this_insn_uses_iy before use.
577
578         PR target/46434
579         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
580
581 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
582
583         PR c/46547
584         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
585         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
586
587 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
588
589         * doc/extend.texi (Function attributes): Document PowerPC target
590         attributes that are supported.
591         (Pragmas): Document that PowerPC now supports target pragmas.
592
593         * doc/options.texi (TargetVariable): Document TargetVariable,
594         HeaderInclude, and SourceInclude.
595
596         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
597         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
598         -ffp-contract=off.
599
600         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
601         SourceInclude directives.  Fix a cut+paste error with target save
602         enum variables.  Sort enums in the structures after ints and
603         before shorts.
604         * opth-gen.awk: Ditto.
605
606         * configure.ac: Add support for HeaderInclude and SourceInclude option
607         directives to add the appropriate files to the dependency lists.
608         * configure: Regenerate.
609         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
610         (OPTIONS_C_EXTRA): New variable for SourceInclude.
611         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
612         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
613         (gcc-options.o): Ditto.
614         * opt-include.awk: New awk script to handle HeaderInclude and
615         TargetInclude.
616
617         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
618         gets saved in the target options.
619         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
620         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
621         (-mprototype): Ditto.
622         (-mbit-word): ditto.
623         (-mregnames): Ditto.
624         (-msecure-plt): Ditto.
625         (-mbss-plt): Ditto.
626         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
627         (-mpowerpc-gfxopt): Ditto.
628         (-mmfcrf): Ditto.
629         (-mpopcntb): Ditto.
630         (-mfprnd): Ditto.
631         (-mcmpb): Ditto.
632         (-mmmfpgpr): Ditto.
633         (-maltivec): Ditto.
634         (-mhard-dfp): Ditto.
635         (-mmulhw): Ditto.
636         (-mdlmzb): Ditto.
637         (-mmultiple): Ditto.
638         (-mstring): Ditto.
639         (-mpopcntd): Ditto.
640         (-mfriz): Ditto.
641         (-mvsx): Ditto.
642         (-mno-update): Ditto.
643         (-mavoid-indexed-addresses): Ditto.
644         (-mtls-markers): Ditto.
645         (-msched-epilog): Ditto.
646         (-msched-prolog): Ditto.
647         (-maix-struct-return): Ditto.
648         (-msvr4-struct-return): Ditto.
649         (-mxl-compat): Ditto.
650         (-mrecip-precision): Ditto.
651         (-mfp-in-toc): Ditto.
652         (-msum-in-toc): Ditto.
653         (-mvrsave): Ditto.
654         (-mblock-move-inline-limit=): Ditto.
655         (-misel): Ditto.
656         (-mpaired): Ditto.
657         (-mlongcall): Ditto.
658         (-mgen-cell-microcode): Ditto.
659         (-mwarn-cell-microcode): Ditto.
660         (-mwarn-altivec-long): Ditto.
661         (-mprioritize-restricted-insns=): Ditto.
662         (-msingle-float): Ditto.
663         (-mdouble-float): Ditto.
664         (-msimple-fpu): Ditto.
665         (-mxilinx-fpu): Ditto.
666         * config/rs6000/aix64.opt (-mpe): Ditto.
667
668         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
669         (rs6000_cpu): Move variable to be a target variable.  Rename
670         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
671         -mdebug=<xxx> variables into a single int.
672         (rs6000_always_hint): Ditto.
673         (rs6000_sched_groups): Ditto.
674         (rs6000_align_branch_targets): Ditto.
675         (rs6000_sched_costly_dep): Ditto.
676         (rs6000_sched_insert_nops): Ditto.
677         (rs6000_long_double_type_size): Ditto.
678         (rs6000_ieeequad): Ditto.
679         (rs6000_altivec_abi): Ditto.
680         (rs6000_spe): Ditto.
681         (rs6000_spe_abi): Ditto.
682         (rs6000_float_gprs): Ditto.
683         (rs6000_darwin64_abi): Ditto.
684         (can_override_loop_align): Ditto.
685         (rs6000_sdata): Ditto.
686         (rs6000_tls_size): Ditto.
687         (rs6000_current_abi): Ditto.
688         (rs6000_traceback): Ditto.
689         (rs6000_alignment_flags): Ditto.
690         (rs6000_current_cmodel): Ditto.
691         (rs6000_recip_control): Ditto.
692         (rs6000_cpu_index): Ditto.
693         (rs6000_tune_index): Ditto.
694         (rs6000_debug): Ditto.
695         (rs6000_target_flags_explict): Ditto.
696
697         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
698         declaration.
699
700         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
701         cmodel.  Change all uses.
702
703         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
704         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
705         Rename cmodel to rs6000_current_cmodel.
706         (rs6000_sched_groups): Ditto.
707         (rs6000_align_branch_targets): Ditto.
708         (rs6000_sched_costly_dep): Ditto.
709         (rs6000_sched_insert_nops): Ditto.
710         (rs6000_long_double_type_size): Ditto.
711         (rs6000_ieeequad): Ditto.
712         (rs6000_altivec_abi): Ditto.
713         (rs6000_spe): Ditto.
714         (rs6000_spe_abi): Ditto.
715         (rs6000_float_gprs): Ditto.
716         (rs6000_darwin64_abi): Ditto.
717         (can_override_loop_align): Ditto.
718         (rs6000_sdata): Ditto.
719         (rs6000_tls_size): Ditto.
720         (rs6000_current_abi): Ditto.
721         (rs6000_traceback): Ditto.
722         (rs6000_alignment_flags): Ditto.
723         (rs6000_current_cmodel): Ditto.
724         (rs6000_recip_control): Ditto.
725         (rs6000_cpu_index): Ditto.
726         (rs6000_tune_index): Ditto.
727         (rs6000_debug): Ditto.
728         (rs6000_target_flags_explict): Ditto.
729         (rs6000_sched_insert_nops_str): Make static.
730         (rs6000_sched_costly_dep_str): Ditto.
731         (rs6000_recip_name): Ditto.
732         (rs6000_abi_name): Ditto.
733         (rs6000_sdata_name): Ditto.
734         (enum rs6000_traceback_name): Move to rs6000-opts.h.
735         (rs6000_parse_tls_size_option): Delete.
736         (rs6000_valid_attribute_p): New function for target attributes and
737         pragmas.
738         (rs6000_function_specific_save): Ditto.
739         (rs6000_function_specific_restore): Ditto.
740         (rs6000_function_specific_print): Ditto.
741         (rs6000_can_inline_p): Ditto.
742         (rs6000_set_current_function): Ditto.
743         (rs6000_inner_target_options): Ditto.
744         (rs6000_debug_target_options): Ditto.
745         (rs6000_pragma_target_parse): Ditto.
746         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
747         attributes and pragmas.
748         (TARGET_OPTION_SAVE): Ditto.
749         (TARGET_OPTION_RESTORE): Ditto.
750         (TARGET_OPTION_PRINT): Ditto.
751         (TARGET_CAN_INLINE_P): Ditto.
752         (TARGET_SET_CURRENT_FUNCTION): Ditto.
753         (POWER_MASKS): Move to file level scope from the
754         rs6000_option_override_internal function.
755         (POWERPC_MASKS): Ditto.
756         (ISA_*_MASKS): Ditto.
757         (struct rs6000_ptt): Ditto.
758         (processor_target_table): Ditto.
759         (rs6000_cpu_name_lookup): Map cpu name to an index in
760         processor_target_table.
761         (rs6000_debug_reg_global): Print more information on processor
762         options for -mdebug=reg.
763         (rs6000_init_hard_regno_mode_ok): Add support for target
764         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
765         Allow -mdebug=val1,val2.  Rename cmodel variable.
766         (rs6000_option_override_internal): Ditto.
767         (rs6000_option_override): Ditto.
768         (rs6000_handle_option): Ditto.
769         (rs6000_conditional_register_usage): Add debug trace message.
770         (struct rs6000_opt_mask): New for target attribute/pragma support.
771         (rs6000_opt_masks): Ditto.
772         (struct rs6000_opt_var): Ditto.
773         (rs6000_opt_vars): Ditto.
774         (rs6000_previous_function): Ditto.
775
776         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
777         wasn't already included.
778         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
779         (enum processor_type): Ditto.
780         (rs6000_cpu): Ditto.
781         (enum fpu_type_t): Ditto.
782         (fpu_type): Ditto.
783         (enum rs6000_dependence_cost): Ditto.
784         (enum rs6000_nop_insertion): Ditto.
785         (enum group_termination): Ditto.
786         (rs6000_long_double_type_size): Ditto.
787         (rs6000_ieeequad): Ditto.
788         (rs6000_altivec_abi): Ditto.
789         (rs6000_spe_abi): Ditto.
790         (rs6000_spe): Ditto.
791         (rs6000_float_gprs): Ditto.
792         (rs6000_alignment_flags): Ditto.
793         (rs6000_sched_insert_nops): Ditto.
794         (enum rs6000_vector): Ditto.
795         (enum rs6000_abi): Ditto.
796         (rs6000_current_opt): Ditto.
797         (rs6000_debug_*): Delete.
798         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
799         (TARGET_DEBUG*): Ditto.
800
801         * config/rs6000/rs6000-opts.h: New header file to define the enums
802         that are used in target variables that are now defined in rs6000.opt.
803
804         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
805         rs6000-opts.h.
806         (rs6000_sdata): Ditto.
807         (rs6000_abi_name): Delete.
808         (rs6000_sdata_name): Ditto.
809         (rs6000_tls_size_string): Ditto.
810
811 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
812
813         * common.opt (debug_struct_ordinary, debug_struct_generic): New
814         Variable entries.
815         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
816         should_emit_struct_debug): Move from opts.c.
817         * flag-types.h (enum debug_struct_file): Move from opts.c.
818         * flags.h (should_emit_struct_debug): Remove.
819         (base_of_path): Declare.
820         (set_struct_debug_option): Add gcc_options parameter.
821         * optc-gen.awk, opth-gen.awk: Handle array variables.
822         * opts.c (enum debug_struct_file, debug_struct_ordinary,
823         debug_struct_generic): Remove.
824         (set_struct_debug_option): Add gcc_options parameter.
825         (base_of_path): Remove static.
826         (main_input_basename, main_input_baselength, matches_main_base,
827         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
828         Remove.
829         * toplev.c (main_input_basename, main_input_baselength): Define
830         here.
831         * toplev.h (main_input_basename, main_input_baselength): Declare
832         here.
833
834 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
835
836         * common.opt (flag_instrument_functions_exclude_functions,
837         flag_instrument_functions_exclude_files): New Variable definitions.
838         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
839         * gimplify.c (char_p): Declare type and vectors.
840         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
841         * opts.c (flag_instrument_functions_exclude_functions,
842         flag_instrument_functions_exclude_files): Remove.
843         (add_comma_separated_to_vector): Take void **.
844         (flag_instrument_functions_exclude_p): Move to gimplify.c.
845         (common_handle_option): Use options structure for
846         -finstrument-functions-exclude- options.
847
848 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
849
850         * doc/options.texi (Var): Document effects of Defer.
851         (Defer): Document.
852         * opt-functions.awk (var_type, var_set): Handle deferred options.
853         * opts-common.c (set_option): Handle CLVC_DEFER.
854         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
855         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
856         fstack-limit-symbol=): Mark as deferred.
857         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
858         plugin.h.
859         (print_filtered_help): Don't report state of CLVC_DEFER options.
860         (common_handle_option): Move code for OPT_fcall_used_,
861         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
862         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
863         OPT_fstack_limit_symbol_ to opts-global.c.
864         (option_enabled, get_option_state): Handle CLVC_DEFER.
865         * opts.h: Include vec.h.
866         (enum cl_var_type): Add CLVC_DEFER.
867         (cl_deferred_option): Define type and vectors.
868         (handle_common_deferred_options): Declare.
869         * opts-global.c: New.
870         * toplev.c (toplev_main): Call handle_common_deferred_options
871         * Makefile.in (OPTS_H): Include $(VEC_H).
872         (OBJS-common): Include opts-global.o.
873         (opts.o): Update dependencies.
874         (opts-global.o): Add dependencies.
875
876 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
877
878         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
879         to objc_declare_protocols.
880
881 2010-11-19  Richard Guenther  <rguenther@suse.de>
882
883         PR lto/45789
884         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
885         IDENTIFIERs do not stream TREE_TYPE.
886         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
887
888 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
889
890         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
891
892 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
893
894         PR target/45870
895         * dwarf2out.c (const_ok_for_output_1): Don't complain about
896         non-delegitimized TLS UNSPECs.
897
898 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
899             Ian Lance Taylor  <iant@google.com>
900
901         * config/darwin-c.c (darwin_additional_format_types): Export.
902
903 2010-11-18  Paul Koning  <ni1d@arrl.net>
904
905         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
906         pointer.
907
908 2010-11-18  Paul Koning  <ni1d@arrl.net>
909
910         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
911         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
912         * config/pdp11/pdp11.opt (-mabshi): Delete.
913
914 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
915
916         * resource.h (struct resources): Fix typo in the comment.
917
918 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
919
920         PR target/46546
921         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
922
923 2010-11-18  Richard Henderson  <rth@redhat.com>
924
925         PR middle-end/46515
926         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
927         maybe_copy_epilogue_insn; handle prologue insns as well.
928         * rtl.h, cfglayout.c: Update for rename.
929         * recog.c (peep2_attempt): Copy prologue/epilogue data for
930         RTX_FRAME_RELATED_P insns.
931
932 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
933
934         PR middle-end/46534
935         * builtins.c (fold_builtin_printf): Don't copy and modify string
936         before build_string_literal, instead modify what
937         build_string_literal returned.
938
939 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
940
941         PR c/33193
942         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
943         REALPART_EXPR and IMAGPART_EXPR.
944
945 2010-11-18  Richard Guenther  <rguenther@suse.de>
946
947         PR tree-optimization/46172
948         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
949         function.
950         (slpeel_tree_peel_loop_to_edge): Call it.
951
952 2010-11-18  Jeff Law  <law@redhat.com>
953
954         PR middle-end-optimization/46297
955         * postreload.c (reload_combine_note_store): Deal with embedded
956         side effects in MEM expressions.
957
958 2010-11-18  Richard Guenther  <rguenther@suse.de>
959
960         PR lto/45089
961         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
962         when checking is not enabled.
963
964 2010-11-18  Richard Guenther  <rguenther@suse.de>
965
966         PR lto/46525
967         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
968         type leaders.
969         (gimple_register_canonical_type): Also cache the canoncial type
970         for non type leaders.
971
972 2010-11-18  Richard Guenther  <rguenther@suse.de>
973
974         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
975
976 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
977
978         PR middle-end/46518
979         * sel-sched-ir.c (init_expr): Use the correct type for
980         target_available.
981         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
982
983 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
984
985         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
986         as well as -mrelocatable at the same time.
987
988 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
989
990         PR target/46422
991         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
992         Call the clz builtin.
993
994 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
995             Steve Ellcey  <sje@cup.hp.com>
996
997         PR middle-end/31490
998         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
999         if section attribute used.
1000
1001 2010-11-17  Jan Hubicka  <jh@suse.cz>
1002
1003         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1004         expand errno setting variant when optimizing for size.
1005
1006 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1007
1008         * postreload.c (reload_combine): Call control_flow_insn_p only once.
1009         Reverse backward loop.  Fix formatting issues.
1010
1011 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
1012
1013         * c-parser.c (c_token_is_qualifier,
1014         c_parser_next_token_is_qualifier): New.
1015         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1016         Improve error message on specs->tagdef_seen_p.
1017         (c_parser_struct_or_union_specifier): Improve error recovery.
1018         (c_parser_declspecs): Move exit condition on C_ID_ID early.
1019         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1020         using c_parser_next_token_is_qualifier; extend it to cover
1021         a ctsk_tagdef typespec and !typespec_ok in general.
1022
1023 2010-11-17  Richard Guenther  <rguenther@suse.de>
1024
1025         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1026         (gimple_mod_pow2_value_transform): Likewise.
1027         (gimple_mod_subtract_transform): Likewise.
1028
1029 2010-11-17  Richard Guenther  <rguenther@suse.de>
1030
1031         PR lto/46504
1032         * gimple.c (gimple_register_canonical_type): Make sure to only
1033         make type leaders canonical types.
1034
1035 2010-11-17  Michael Matz  <matz@suse.de>
1036
1037         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1038         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1039         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1040         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1041         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1042         (pass_build_ssa): ... but here.
1043         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1044         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1045         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1046         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1047         * predict.c (rebuild_frequencies): Ditto.
1048         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1049         * emit-rtl.c (verify_rtl_sharing): Ditto.
1050         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1051         * tree-ssa-live.c (remove_unused_locals): Ditto.
1052         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1053         * tree-ssa.c (pass_early_warn_uninitialized,
1054         execute_update_addresses_taken, pass_update_address_taken): Ditto.
1055         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1056         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1057         * passes.c (pass_postreload, execute_todo): Ditto.
1058         * tree-ssanames.c (pass_release_ssa_names): Ditto.
1059
1060 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1061
1062         * doc/invoke.texi (-dy): Remove.
1063         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1064         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1065         * langhooks.c (lhd_do_nothing_i): Remove.
1066         * langhooks.h (lang_hooks.parse_file): Take no arguments.
1067         * toplev.c (set_yydebug): Remove.
1068         (compile_file): Update call to lang_hooks.parse_file.
1069         (decode_d_option): Don't handle -dy.
1070
1071 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1072
1073         PR rtl-optimization/46440
1074         * combine.c (update_cfg_for_uncondjump): When changing
1075         an indirect jump into unconditional jump, remove BARRIERs
1076         from bb's footer.
1077
1078 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1079
1080         * opts.c (target_handle_option): Do not assert that loc ==
1081         UNKNOWN_LOCATION.
1082
1083 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1084             Richard Guenther  <rguenther@suse.de>
1085
1086         PR middle-end/45838
1087         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1088         call_may_clobber_ref_p_1): Return true for __sync_* and some
1089         OpenMP builtins that act as threading barriers.
1090
1091 2010-11-17  Richard Guenther  <rguenther@suse.de>
1092
1093         PR tree-optimization/46498
1094         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1095
1096 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1097
1098         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1099         (xtensa_function_arg_boundary): ...this.
1100         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1101         thinko in declaration.
1102         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1103         number of parameters to picochip_function_arg_boundary.
1104         (picochip_arg_advance): Likewise.
1105
1106 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1107
1108         PR target/46512
1109         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1110         under check for type.
1111
1112 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1113
1114         * ifcvt.c (dead_or_predicable): Fix typo.
1115
1116 2010-11-16  Richard Henderson  <rth@redhat.com>
1117
1118         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1119         * config/s390/s390.opt (mfused-madd): Remove.
1120         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1121         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1122         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1123         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1124
1125 2010-11-16  Richard Henderson  <rth@redhat.com>
1126
1127         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1128         * config/rs6000/rs6000.opt (mfused-madd): Remove.
1129         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1130         (*altivec_vmaddfp_1): Remove.
1131         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1132         (altivec_mulv4sf3): Expand to FMA directly.
1133         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1134         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1135         * config/rs6000/paired.md (paired_madds0): Use FMA.
1136         (paired_madds1): Likewise.
1137         (*paired_madd): Rename from paired_madd; use FMA.
1138         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1139         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1140         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1141         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1142         (rs6000_emit_madd): Use fma_optab.
1143         (rs6000_emit_msub): Use fms_optab.
1144         (rs6000_emit_nmsub): Expand the FMA pattern directly.
1145         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1146         (*fmasf4_fpr): Rename from fmasf4_fpr.
1147         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1148         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1149         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1150         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1151         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1152         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1153         (*fmadf4_fpr): Rename from fmadf4_fpr.
1154         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1155         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1156         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1157         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1158         (fmasf4, fmadf4): Macroize into...
1159         (fma<FMA_F>4): ... here.
1160         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1161         (nfma<FMA_F>4, nfms<FMA_F>4): New.
1162         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1163         TARGET_FUSED_MADD.
1164         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1165         (*vsx_fmadd<mode>4_1): Remove.
1166         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1167         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1168         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1169         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1170         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1171         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1172         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1173
1174 2010-11-16  Richard Henderson  <rth@redhat.com>
1175
1176         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1177         (fmasf4, fnmadf4, fnmasf4): Likewise.
1178         (unnamed plus+mult insns and splitters): Delete.
1179
1180 2010-11-16  Richard Henderson  <rth@redhat.com>
1181
1182         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1183         (fnma<VSF>4): Rename from fnms_<VSF>.
1184         (fms<VSF>4): Rename from fms_<VSF>.
1185         (fma<VDF>4): Rename from fma_<VDF>.
1186         (fms<VDF>4): Rename from fms_<VDF>.
1187         (nfma<VDF>4): Rename from fnma_<VDF>.
1188         (nfms<VDF>4): Rename from fnms_<VDF>.
1189         (fnma<VDF>4, fnms<VDF>4): New expanders.
1190         (floatunsdisf2): Update for the renames.
1191         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1192         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1193
1194 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1195
1196         PR rtl-optimization/46490
1197         * combine.c (expand_compound_operation): Fix thinko.
1198
1199 2010-11-16  Richard Henderson  <rth@redhat.com>
1200
1201         PR target/46470
1202         * recog.c (peep2_attempt): Convert frame-related info when possible.
1203         (peep2_fill_buffer): Allow frame-related insns into the buffer.
1204         (peephole2_optimize): Allow peep2_attempt to fail.
1205
1206 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1207
1208         PR rtl-optimization/46315
1209         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1210         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1211         extracted from...
1212         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
1213         (remove_reg_equal_equiv_notes_for_defs): ...this.
1214         (delete_unmarked_insns): Adjust to above renaming.
1215         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1216         referring to registers set in the insns being moved, if any.
1217
1218         * df-core.c (df_ref_dump): New function extracted from...
1219         (df_refs_chain_dump): ...here.  Call it.
1220         (df_regs_chain_dump): Likewise.
1221         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1222         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
1223
1224 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
1225
1226         PR rtl-optimization/46395
1227         * postreload.c (reload_combine): Invalidate register use
1228         information on all control flow insns.
1229
1230         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1231         LABEL_REF in UNSPEC operand.
1232
1233 2010-11-16  Jan Hubicka  <jh@suse.cz>
1234
1235         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1236         when !flag_toplevel_reorder do not remove unless variable is
1237         COMDAT or ARTIFICIAL.
1238         * ipa.c (varpool_can_remove_if_no_refs): ... here.
1239         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1240         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1241         * varpool.c (decide_is_variable_needed): Do not handle visibility
1242         issues.
1243         (varpool_finalize_decl): Likewise.
1244         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1245         update outdated comment on DECL_RTL_SET_P check.
1246
1247 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1248
1249         * config/sol2.h (NM_FLAGS): Define.
1250         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1251         * doc/tm.texi: Update.
1252
1253 2010-11-16  Nick Clifton  <nickc@redhat.com>
1254
1255         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1256         (msubsf4): Rename to fmssf4, and use fma.
1257         (nmaddsf4): Rename to fnmasf4 and use fma.
1258         (nmsubsf4): Rename to fnmssf4 and use fma.
1259
1260 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
1261
1262         PR target/44762
1263         * config/score/score3.c (score3_return_in_memory): Constify arguments.
1264         (score3_in_small_data_p, score3_function_value): Likewise.
1265         (score3_trampoline_init): Use LCT_NORMAL.
1266         (score3_print_operand): Initialize code as UNKNOWN.
1267         * config/score/predicates.md (score_load_multiple_operation):
1268         Remove unused variable.
1269         (score_store_multiple_operation): Likewise.
1270         * config/score/score7.c (score7_return_in_memory): Constify arguments.
1271         (score7_in_small_data_p, score7_function_value): Likewise.
1272         (score7_trampoline_init): Use LCT_NORMAL.
1273         (score7_print_operand): Initialize code as UNKNOWN.
1274         * config/score/score3.h (score3_return_in_memory): Update prototype.
1275         (score3_in_small_data_p, score3_function_value): Likewise.
1276         * config/score/score-protos.h (score_function_value): Likewise.
1277         * config/score/score7.h (score7_return_in_memory): Update prototype.
1278         (score7_in_small_data_p, score7_function_value): Likewise.
1279         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1280         (score_return_in_memory, score_pass_by_reference): Constify arguments.
1281         (score_output_mi_thunk, score_function_prologue): Don't return a value.
1282         (score_function_epilogue, score_in_small_data_p): Likewise.
1283         (score_option_override, score_asm_trampoline_template): Likewise.
1284         (score_trampoline_init, score_print_operand): Likewise.
1285         (score_print_operand_address, score_prologue): Likewise.
1286         (score_epilogue, score_call, score_call_value): Likewise.
1287         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1288         (score_function_arg_advance): Likewise. Make static.
1289         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1290         (score_function_arg, score_legitimate_address_p): Make static.
1291         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1292         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1293         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1294         Allow (W) == HOST_BITS_PER_WIDE_INT.
1295
1296         PR java/46386
1297         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1298         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1299
1300 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1301
1302         * config/arc/arc.c: Delete pasto.
1303         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1304
1305 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
1306
1307         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1308         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1309         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1310         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1311         (mn10300_preferred_reload_class,
1312         mn10300_preferred_output_reload_class): New functions.
1313
1314 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1315
1316         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1317         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1318         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1319         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1320
1321 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1322
1323         * builtins.c (std_gimplify_va_arg_expr): Use
1324         targetm.calls.function_arg_boundary.
1325         * function.c (assign_parms, locate_and_pad_parm): Likewise.
1326         * calls.c (struct arg_data): Update comment.
1327         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1328         * target.def (function_arg_boundary): Define.
1329         * targhooks.h (default_function_arg_boundary): Declare.
1330         * targhooks.c (default_function_arg_boundary): Define.
1331         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1332         TARGET_FUNCTION_ARG_BOUNDARY.
1333         (FUNCTION_ARG_BOUNDARY): Delete.
1334         (TARGET_FUNCTION_ARG_BOUNDARY): New.
1335         * doc/tm.texi: Regenerate.
1336         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1337         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1338         * config/arc/arc.c (arc_function_arg_boundary): Define.
1339         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1340         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1341         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1342         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1343         (arm_function_arg_boundary): Define.
1344         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1345         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1346         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1347         * config/frv/frv.c (frv_function_arg_boundary): Make static.
1348         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1349         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1350         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1351         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1352         (ix86_compat_function_arg_boundary): Take and return unsigned int.
1353         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1354         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1355         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1356         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1357         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1358         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1359         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1360         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1361         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1362         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1363         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1364         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1365         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1366         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1367         * config/mips/mips.c (mips_function_arg_boundary): Make static.
1368         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1369         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1370         * config/pa/pa.c (pa_function_arg_boundary): Define.
1371         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1372         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1373         * config/picochip/picochip-protos.h
1374         (picochip_get_function_arg_boundary): Delete.
1375         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1376         Rename to...
1377         (picochip_function_arg_boundary): ...this.  Make static.
1378         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1379         (picochip_arg_advance): Adjust.
1380         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1381         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1382         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1383         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1384         (rs6000_function_arg_boundary): ...this.  Make static.
1385         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1386         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1387         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1388         * config/rx/rx.c (rx_function_arg_boundary): Define.
1389         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1390         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1391         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1392         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1393         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1394         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1395         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1396         (xtensa_function_arg_boundary): ...this.  Make static.
1397         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1398
1399 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1400
1401         * expr.c (alignment_for_piecewise_move): New function.
1402         (widest_int_mode_for_size): New function.
1403         (move_by_pieces, move_by_pieces_ninsns): Call them.
1404         (can_store_by_pieces, store_by_pieces_1): Likewise.
1405
1406 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1407
1408         * gcc.c (char_p): Define.  Define a VEC of it.
1409         (n_linker_options, n_assembler_options, n_preprocessor_options):
1410         Delete.
1411         (linker_options, assembler_options, preprocessor_options): Convert
1412         to a VEC.
1413         (add_preprocessor_option): Adjust.
1414         (add_assembler_option): Adjust.
1415         (add_linker_option): Adjust.
1416         (do_specs_vec): New function.
1417         (do_spec_1): Call it.  Adjust for new types.
1418
1419 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1420
1421         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1422         (sreal.o, statistics.o, stringpool.o): Likewise.
1423
1424 2010-11-16  Richard Guenther  <rguenther@suse.de>
1425
1426         PR tree-optimization/44545
1427         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1428         statements are not reassociatable.
1429         (reassociate_bb): Likewise.
1430
1431 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1432
1433         * bitmap.c: Delete unnecessary includes.
1434         * ebitmap.c: Likewise.
1435         * et-forest.c: Likewise.
1436         * sreal.c: Likewise.
1437         * statistics.c: Likewise.
1438         * stringpool.c: Likewise.
1439         * double-int.c: Add comment for inclusion of tm.h.
1440
1441 2010-11-16  Richard Guenther  <rguenther@suse.de>
1442
1443         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1444         (visit_nary_op): ... this.
1445         (visit_binary_op): Remove.
1446         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1447
1448 2010-11-16  Richard Guenther  <rguenther@suse.de>
1449
1450         PR middle-end/45172
1451         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1452
1453 2010-11-16  Nick Clifton  <nickc@redhat.com>
1454
1455         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1456         record is packed.
1457
1458 2010-11-15  Richard Henderson  <rth@redhat.com>
1459
1460         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1461         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1462         DOT_PROD_EXPR.
1463
1464 2010-11-15  Richard Henderson  <rth@redhat.com>
1465
1466         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1467         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
1468         fma rtx_code.
1469
1470 2010-11-15  Richard Henderson  <rth@redhat.com>
1471
1472         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1473         and *mulsubsf4 respectively.  Use fma rtx_code.
1474
1475 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
1476
1477         * gcc.c: Include "vec.h".
1478         (argbuf): Make into a VEC.
1479         (argbuf_length, argbuf_index): Remove.
1480         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1481         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1482         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1483         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1484         (gcc.o): Depend on $(VEC_H).
1485
1486 2010-11-15  Richard Henderson  <rth@redhat.com>
1487
1488         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1489         via FMA if unsafe math.
1490         (insert_var_expansion_initialization): Handle FMA.
1491         (combine_var_copies_in_loop_exit): Likewise.
1492
1493 2010-11-15  Richard Henderson  <rth@redhat.com>
1494
1495         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1496         * config/ia64/ia64.opt: Remove mfused-madd.
1497         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1498         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1499         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1500         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1501         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1502         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1503         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1504         (fmav2sf4): Rename from fpma; use FMA code.
1505         (fmsv2sf4): Rename from fpms; use FMA code.
1506         (fnmav2sf4): Rename from *fpnma; use FMA code.
1507         * config/ia64/ia64.md (MODE_SDF): New iterator.
1508         (suffix): New mode attribute.
1509         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1510         (fmssf4): Rename from *fmssf4.
1511         (fnmasf4): Rename from *nfmasf4.
1512         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1513         (*nmadddf4, *nmadddf4_truncsf): Remove.
1514         (fmsdf4): Rename from *fmsdf4.
1515         (fnmadf4): Rename from *nfmadf4.
1516         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1517         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1518         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1519         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1520         (fmsxf4): Rename from *fmsxf4.
1521         (fnmaxf4): Rename from *nfmaxf4.
1522         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1523         (*fnmaxf_trunc_<MODE_SDF>): New.
1524
1525 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1526
1527         PR tree-optimization/46461
1528         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1529         a gimple val.
1530
1531 2010-11-15  Ian Lance Taylor  <iant@google.com>
1532
1533         * godump.c: New file.
1534         * common.opt (fdump-go-spec=): New option.
1535         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1536         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1537         (TYPE_SYMTAB_IS_DIE): Define.
1538         (struct tree_type): Change GTY for symtab field to use
1539         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1540         to pick the union field.
1541         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1542         (dump_go_spec_init): Declare.
1543         * toplev.c (process_options): Handle flag_dump_go_spec.
1544         * debug.c: Include "tree.h".
1545         (do_nothing_debug_hooks): Set tree_type_symtab_field.
1546         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1547         * dbxout.c (dbx_debug_hooks): Likewise.
1548         (xcoff_debug_hooks): Likewise.
1549         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1550         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
1551         SDB_DEBUGGING_INFO is not defined.
1552         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1553         (Overall Options): Document -fdump-go-spec.
1554         * Makefile.in (OBJS-common): Add godump.o.
1555         (debug.o): Add dependency on $(TREE_H).
1556         (godump.o): New target.
1557         (GTFILES): Add $(srcdir)/godump.c.
1558
1559 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1560
1561         PR debug/46095
1562         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1563         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1564         style < 0, add REG_FRAME_RELATED_EXPR.
1565
1566         PR debug/46387
1567         * rtl.h (vt_equate_reg_base_value): New prototype.
1568         * alias.c (vt_equate_reg_base_value): New function.
1569         * var-tracking.c (vt_init_cfa_base): Use it.
1570
1571 2010-11-15  Jan Hubicka  <jh@suse.cz>
1572             Diego Novillo  <dnovillo@google.com>
1573
1574         PR lto/41528
1575         * doc/lto.texi: Add.
1576         * doc/gccint.texi: Add reference to lto.texi.
1577         * doc/invoke.texi: Update user documentation for LTO.
1578         Move internal flags to lto.texi
1579
1580 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1581
1582         * c-typeck.c (build_unary_op): Use
1583         objc_build_incr_expr_for_property_ref to build the pre/post
1584         increment/decrement of an Objective-C property ref, and skip the
1585         lvalue_or_else check in that case.
1586
1587 2010-11-15  Martin Jambor  <mjambor@suse.cz>
1588
1589         PR tree-optimization/46349
1590         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1591         (contains_vce_or_bfcref_p): Likewise.
1592         (sra_modify_assign): Use them.
1593
1594 2010-11-15  Richard Guenther  <rguenther@suse.de>
1595
1596         PR tree-optimization/46467
1597         * tree-ssa-structalias.c (do_structure_copy): Properly treat
1598         variables without subvars.
1599
1600 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
1601
1602         * config/picochip/picochip.c (file header): Picochip name change.
1603         * config/picochip/picochip.md (file header): Likewise.
1604         * config/picochip/predicates.md (file header): Likewise.
1605         * config/picochip/dfa_space.md (file header): Likewise.
1606         * config/picochip/dfa_speed.md (file header): Likewise.
1607         * config/picochip/picochip.h(file header): Likewise.
1608         * config/picochip/constraints.md (file header): Likewise.
1609         * config/picochip/picochip-protos.h (file header): Likewise.
1610         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1611         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1612         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1613         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1614         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1615         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1616         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1617         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1618         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1619         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1620         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1621         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1622         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1623         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1624
1625 2010-11-15  Richard Guenther  <rguenther@suse.de>
1626
1627         PR bootstrap/46474
1628         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1629
1630 2010-11-15  Nick Clifton  <nickc@redhat.com>
1631
1632         * config/stormy16/stormy16.c (direct_return): Do not generate a
1633         direct return for interrupt handlers.
1634
1635 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
1636
1637         * Makefile.in (tm.texi): Replace with rule for:
1638         ($(srcdir)/doc/tm.texi).
1639         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1640         $(srcdir)/doc/tm.texi .
1641         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1642         tm.texi .
1643
1644         PR target/46427
1645         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1646
1647         PR bootstrap/45444
1648         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1649         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1650
1651         PR target/46432
1652         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1653
1654 2010-11-15  Richard Guenther  <rguenther@suse.de>
1655
1656         PR lto/44150
1657         * lto-opts.c (lto_write_options): Write -fexceptions even if
1658         not set by the user.
1659
1660 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1661
1662         PR c/46462
1663         * c-decl.c (declspecs_add_type): Make variables with error types
1664         integers.
1665         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1666         do not start a declaration before an Objective-C foreach.
1667         (c_parser_declaration_or_fndef): Improve recovery after unknown
1668         type name.
1669         (c_parser_for_statement): Hoist entrance of "foreach context"
1670         before ifs, add corresponding reset where it was missing.  Do
1671         not set objc_could_be_foreach_context for C.
1672
1673 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1674
1675         PR tree-optimization/45722
1676         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1677         this is a reference to a component.
1678         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1679         (ipa_note_param_call): Adjust comment.
1680
1681 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
1682
1683         * config/mips/mips.c (machine_function): Remove
1684         initialized_mips16_gp_pseudo_p.
1685         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1686         detect whether a pseudo has already been created.  Unconditionally
1687         create a new one if not.
1688         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1689         expanding to rtl.  Create a new pseudo otherwise, if allowed.
1690
1691 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
1692
1693         PR target/43440
1694         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1695         * tm.texi: Regenerated.
1696         * output.h (decode_reg_name_and_count): Declare.
1697         * varasm.c (decode_reg_name_and_count): New function.
1698         (decode_reg_name): Reimplement using decode_reg_name_and_count.
1699         * reginfo.c (fix_register): Use decode_reg_name_and_count and
1700         iterate over all regs used.
1701         * stmt.c (expand_asm_operands): Likewise.
1702         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1703         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1704         multiple machine registers.
1705
1706 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1707
1708         * stor-layout.c (place_union_field): Do not put location information
1709         on offset expressions.
1710         (place_field): Likewise.
1711         (finalize_record_size): Likewise on size expressions.
1712         (finalize_type_size): Likewise.
1713         (layout_type): Likewise.
1714
1715 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
1716
1717         PR debug/42889
1718         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1719         * df-core.c (df_set_bb_dirty_nonrl): Remove.
1720         * df.h (df_set_bb_dirty_nonlr): Likewise.
1721
1722 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
1723
1724         * config/mips/mips.md (call_internal): Pass curr_insn to
1725         mips_split_call.
1726         (call_internal_direct): Ditto.
1727         (call_value_internal): Ditto.
1728         (call_value_internal_direct): Ditto.
1729         (call_value_multiple_internal): Ditto.
1730         * config/mips/mips.c (mips_split_call): Do not copy
1731         CALL_INSN_FUNCTION_USAGE here.
1732
1733 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
1734
1735         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1736         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1737         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1738         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1739         (TUNE_LOONGSON_3A): Define.
1740         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1741         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1742         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1743         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1744         (mips_rtx_cost_data): Add Loongson-3A.
1745
1746 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1747
1748         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1749         switches.
1750
1751 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1752
1753         * dwarf2out.c (macinfo_entry): New struct.
1754         (output_comp_unit): Emit the section start label here and flag that we
1755         will emit an info section.
1756         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1757         emitting directly.
1758         (dwarf2out_end_source_file): Likewise.
1759         (dwarf2out_define): Likewise.
1760         (dwarf2out_undef): Likewise.
1761         (output_macinfo): New.
1762         (dwarf2out_init): Do not emit debug section switches here, allocate a
1763         vec for macinfo, when required.
1764         (dwarf2out_finish): First switch to debug_abbrev_section here.
1765         debug_line_section,  debug_macinfo_section, Likewise.
1766         Check that the pubtypes table has at least one unpruned entry before
1767         trying to emit it.
1768
1769 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1770
1771         PR c/20385
1772         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1773         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
1774         token lookahead.
1775         (c_parser_compound_statement_nostart, c_parser_label,
1776         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1777         (c_parser_declaration_or_fndef): Detect the case now matched by
1778         c_parser_next_tokens_start_declaration, give error and correct it.
1779
1780 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1781
1782         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1783         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1784         with typespec_kind.
1785         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1786         (shadow_tag_warned, check_compound_literal_type): Adjust
1787         uses of tag_defined_p.
1788         (declspecs_add_type): Set typespec_kind.
1789         * c-parser.c (c_parser_declaration_or_fndef,
1790         c_parser_declspecs, c_parser_struct_declaration,
1791         c_parser_parameter_declaration, c_parser_type_name,
1792         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1793         of type_seen_p.
1794         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1795         tag_defined_p, pass ctsk_firstref through.
1796
1797 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1798
1799         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1800         (struct format_wanted_type): Replace field "name" with "kind", add
1801         "format_start" and "format_length".
1802         (check_format_info_main): Fill in new fields.  Fill in
1803         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
1804         after the final NUL outside the while loop.  Do not include
1805         width and precision modifiers in the format_start/format_length
1806         of the main format.
1807         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1808         arguments.  Compute WANTED_TYPE first so that format_type_warning
1809         can be called for missing arguments.  Adjust calls to
1810         format_type_warning.
1811         (format_type_warning): Fetch as much information as possible
1812         from format_wanted_type.  Adjust printing now that every
1813         warning has a "descr", as well as for missing argument warnings
1814         and to include % sign for format specifiers.
1815
1816 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
1817
1818         PR rtl-optimization/46204
1819         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1820         Update all callers.  Do not recompute topological order.  Adjust
1821         fallthrough edges following a degenerate conditional jump.
1822
1823 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1824
1825         * opts-common.c (control_warning_option): New.
1826         * opts.c (set_default_handlers): New.
1827         (decode_options): Use set_default_handlers and
1828         control_warning_option.
1829         (common_handle_option): Update call to enable_warning_as_error.
1830         (enable_warning_as_error): Take gcc_options parameters.  Use
1831         control_warning_option.
1832         * opts.h (set_default_handlers, control_warning_option): Declare.
1833
1834 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1835
1836         * Makefile.in (OPTS_H): Define.
1837         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1838         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1839         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1840         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1841         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1842         * gcc.c (driver_handle_option): Take location_t parameter.
1843         (process_command, do_self_spec): Update calls to
1844         read_cmdline_option.
1845         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1846         * langhooks.c (lhd_handle_option): Take location_t parameter.
1847         * langhooks.h (handle_option): Take location_t parameter.
1848         * lto-opts.c (lto_reissue_options): Update call to set_option.
1849         * opts-common.c (handle_option): Make static.  Take location_t
1850         parameter and pass it to other functions.
1851         (handle_generated_option): Take location_t parameter and pass it
1852         to other functions.
1853         (read_cmdline_option): Take location_t parameter and pass it to
1854         other functions.  Use warning_at and error_at.
1855         (set_option): Take location_t parameter and pass it to other
1856         functions.
1857         * opts.c (common_handle_option): Take location_t parameter and
1858         pass it to other functions.
1859         (enable_warning_as_error): Make static.  Take location_t parameter
1860         and pass it to other functions.
1861         (lang_handle_option): Take location_t parameter and pass it to
1862         other functions.
1863         (target_handle_option): Take location_t parameter.
1864         (read_cmdline_options, maybe_default_option,
1865         maybe_default_options, default_options_optimization,
1866         decode_options): Take location_t parameter and pass it to other
1867         functions.
1868         * opts.h: Include input.h.
1869         (struct cl_option_handler_func, decode_options, set_option,
1870         handle_generated_option, read_cmdline_option): Take location_t
1871         parameters.
1872         (handle_option, enable_warning_as_error): Remove.
1873         * toplev.c (toplev_main): Update call to decode_options.
1874
1875 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
1876
1877         * graphite-cloog-util.c (oppose_constraint,
1878         cloog_matrix_to_ppl_constraint,
1879         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1880         CLooG isl uses unsigned integers.  This triggered a warning.
1881
1882 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1883
1884         PR target/46438
1885         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1886         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1887         (xtensa_function_arg_1): De-constify cum.
1888         (xtensa_expand_prologue): Use add_reg_note.
1889
1890         PR target/46435
1891         * config/cris/cris.c (saved_regs_mentioned): Delete.
1892         (cris_reload_address_legitimized): Cast itype to enum reload_type.
1893         Remove unused variable op0p.
1894         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1895         (cris_emit_movem_store): Use add_reg_note.
1896
1897         PR bootstrap/46456
1898         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1899
1900 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1901
1902         * function.c (expand_function_end): Set the locator of the prologue on
1903         the stack checking insns.
1904
1905 2010-11-12  Richard Henderson  <rth@redhat.com>
1906
1907         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1908         * config/xtensa/xtensa.opt (mfused-madd): Remove.
1909         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1910         MASK_FUSED_MADD.
1911         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1912         (fnmasf4): Rename from mulsubsf3; use fma.
1913
1914 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1915             Richard Henderson  <rth@redhat.com>
1916
1917         PR target/46428
1918         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1919         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1920         comparison.
1921
1922 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
1923
1924         * opts-common.c (decode_cmdline_option): Initialize separate_args.
1925
1926 2010-11-12  Jan Hubicka  <jh@suse.cz>
1927
1928         * doc/invoke.texi (early-inlining-insns): Update default.
1929         * params.def (early-inlining-insns): Default to 10.
1930
1931 2010-11-12  Olivier Hainque  <hainque@adacore.com>
1932
1933         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1934
1935 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1936
1937         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1938         (SUPPORTS_INIT_PRIORITY): Define.
1939
1940 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1941
1942         PR target/46430
1943         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1944         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1945         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1946         (avr_device_to_devicelib): Likewise.
1947         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1948         into block.
1949         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1950         (zero_extendhidi2, zero_extendsidi2): Likewise.
1951         * config/avr/avr.c (avr_num_arg_regs): Constify type.
1952         (avr_return_addr_rtx): De-constify tem.
1953         (avr_rotate_bytes): Move declarations to start of block.
1954         Don't use variable length array.  Put nested if/else into block.
1955
1956         PR rtl-optimization/46433
1957         * var-tracking.c: Include tm_p.h .
1958
1959         PR bootstrap/44756
1960         PR build/44767
1961         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1962         should be unsigned.
1963         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1964         * doc/tm.texi: Regenerate.
1965
1966         PR target/46412
1967         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1968         * config/bfin/bfin.c: Include sel-sched.h .
1969         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1970         (expand_interrupt_handler_prologue): Remove unused variable insn.
1971         (bfin_load_pic_reg): Likewise.
1972         (bfin_rtx_costs): Make code / outer_code variables of type
1973         enum rtx_code, copied from re-named parameters.
1974         (bfin_local_alignment): Change align argument and return type
1975         to unsigned.
1976         (bfin_adjust_cost): Remove unused variable insn_type.
1977         Declare variables at start of block.
1978         (struct loop_info): Rename to...
1979         (struct loop_info_d).
1980         (workaround_rts_anomaly): Change type of icode to int.
1981         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1982         with int-typed variable.
1983         (note_np_check_stores): Likewise.
1984         (trapping_loads_p): Remove unused variable pat.
1985         (bfin_expand_binop_builtin): Use expand_normal.
1986         (bfin_expand_unop_builtin): Likewise.
1987         (bfin_expand_builtin): Likewise.  Set tmode before use.
1988
1989         PR middle-end/44769
1990         * final.c (split_double): Don't use BITS_PER_WORD directly in
1991         shift count.
1992
1993         PR target/46431
1994         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1995         assignment.
1996
1997         PR target/46450
1998         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1999         Use add_reg_note.
2000         (xstormy16_function_arg): Dereference cum.
2001         (xstormy16_expand_builtin): Use expand_normal.
2002         Change type of omode to enum machine_mode.
2003         (combine_bnp): Rename and to and_insn.
2004
2005         PR target/46437
2006         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2007         localreg.
2008
2009 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2010
2011         PR debug/46375
2012         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2013
2014 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2015
2016         PR lto/46376
2017         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2018
2019 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
2020
2021         PR c/44782
2022         * common.opt (fmax-errors=): New option.
2023         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2024         * diagnostic.h (struct diagnostic_context): Add max_errors field.
2025         * diagnostic.c (diagnostic_initialize): Initialize it.
2026         (diagnostic_action_after_output): Exit if more than max_errors
2027         have been output.
2028         * doc/invoke.texi (Warning Options): Add -fmax-errors.
2029         (-fmax-errors): Document.
2030
2031 2010-11-11  Richard Henderson  <rth@redhat.com>
2032
2033         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2034
2035 2010-11-11  Richard Henderson  <rth@redhat.com>
2036
2037         * config/fused-madd.opt: New file.
2038         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2039         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2040         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2041         * config/i386/i386.opt (mfused-madd): Remove.
2042         * config/i386/sse.md (split_fma): Remove.
2043         (split_fms, split_fnma, split_fnms): Remove.
2044
2045 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
2046
2047         PR target/46088
2048         * config/i386/i386.md (*ashl<mode>3_cconly,
2049         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2050         change nonimmediate_operand predicate to register_operand.
2051
2052 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
2053
2054         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2055
2056 2010-11-11  Jan Hubicka  <jh@suse.cz>
2057
2058         * opts.c (finish_options): Do not error on -flto-partition alone.
2059
2060         * doc/invoke.texi (-fwhopr): Merge into -flto section.
2061         (-flto-partition): Document none.
2062         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2063         * lto-wrapper.c: Update comment.
2064         (run_gcc): Update LTO option parsing.
2065         * opts.c (finish_options): add support -flto-partition=none
2066         (common_handle_option): Remove fwhopr.
2067         * common.opt: Turn fwhopr into flto.
2068         * collect2.c (main): Update option handling.
2069         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2070         * ipa-split.c (execute_split_functions): Remove flag_whopr.
2071         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2072         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2073         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2074
2075 2010-11-11  Jan Hubicka  <jh@suse.cz>
2076
2077         PR tree-optimize/40436
2078         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2079         (eliminated_by_inlining_prob): ... this one; return 50% probability
2080         for SRA.
2081         (estimate_function_body_sizes): Update use of
2082         eliminated_by_inlining_prob; estimate static function size
2083         for 2 instructions.
2084
2085 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
2086
2087         PR target/44749
2088         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2089         declare.  Change type of argument four to type int.
2090         (mep_secondary_input_reload_class): Returns enum reg_class.
2091         (mep_secondary_output_reload_class): Likewise.
2092         (mep_function_value): Change types of arguments to cont_tree.
2093         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
2094         argument four to type int.
2095         (mep_secondary_input_reload_class): Returns enum reg_class.
2096         (mep_secondary_output_reload_class): Likewise.
2097         (mep_function_value): Change types of arguments to cont_tree.
2098         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2099         mep_regno_reg_class to enum reg_class.
2100
2101 2010-11-11  Richard Henderson  <rth@redhat.com>
2102
2103         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2104         that the target has the exact fma operation that we matched.
2105
2106 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2107
2108         * reginfo.c (fix_register): Avoid inserting English word in
2109         diagnostic sentence.  Use %qs for quoting and %'.
2110
2111 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
2112
2113         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2114         Intel processor family 6, model 0x2c.
2115
2116 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2117
2118         * opts.c (warning_as_error_callback,
2119         register_warning_as_error_callback): Remove.
2120         (enable_warning_as_error): Don't use warning_as_error_callback.
2121         * opts.h (register_warning_as_error_callback): Remove.
2122
2123 2010-11-11  Richard Henderson  <rth@redhat.com>
2124
2125         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2126         in between the MULT and the PLUS/MINUS.
2127
2128 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2129
2130         PR middle-end/46388
2131         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2132         BLKmode mode for it.
2133         (expand_expr_real_1): Similarly for op0.
2134
2135 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2136
2137         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2138         Document optional target selector.
2139
2140 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2141
2142         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2143         assembling high and low parts of size if not using 32-bit HWINT; else
2144         use DECL_SIZE_UNITS, not DECL_SIZE.
2145
2146 2010-11-11  Martin Jambor  <mjambor@suse.cz>
2147
2148         PR tree-optimization/46383
2149         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2150         offsets.
2151         (compute_complex_ancestor_jump_func): Likewise.
2152         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2153
2154 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2155
2156         PR debug/46150
2157         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2158         true if expr1->hash != expr2->hash.
2159
2160 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2161
2162         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
2163         diagnostics with lowercase letters.
2164         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2165         lowercase letters.
2166         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2167         diagnostic.
2168         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2169         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2170         lowercase letters.
2171         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2172         Remove trailing ' ' from diagnostic.
2173         * config/avr/avr.c (print_operand_address): Start diagnostic with
2174         a lowercase letter and remove trailing '.'.
2175         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2176         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2177         with lowercase letters.  Use %' in diagnostics.  Remove trailing
2178         '.' from diagnostics.
2179         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2180         * config/cris/cris.c (cris_split_movdx,
2181         cris_expand_pic_call_address): Start diagnostics with lowercase
2182         letters.
2183         (cris_asm_output_label_ref): Use %' in diagnostic.
2184         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2185         letter.
2186         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2187         lowercase letter.
2188         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2189         lowercase letter.
2190         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2191         diagnostic.
2192         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2193         diagnostic.
2194         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2195         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2196         diagnostics.
2197         * config/i386/i386.c (ix86_option_override_internal): Write
2198         diagnostic as a single sentence without trailing '.'.  Use %' in
2199         diagnostics.
2200         (ix86_function_sseregparm, classify_argument): Start diagnostics
2201         with lowercase letters.
2202         (ix86_expand_prologue): Use %' in diagnostic.
2203         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2204         diagnostic.
2205         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2206         lowercase letter.
2207         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2208         diagnostic.
2209         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2210         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2211         '`' in help text.
2212         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2213         lowercase letter.
2214         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2215         lowercase letters.
2216         * config/microblaze/microblaze.c (microblaze_handle_option):
2217         Remove trailing '.' from diagnostic.
2218         (print_operand): Start diagnostic with a lowercase letter.
2219         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2220         lowercase letters.  Avoid '`' in diagnostics.
2221         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2222         lowercase letters.  Avoid '`' in diagnostics.
2223         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2224         lowercase letters.  Avoid '`' in diagnostics.
2225         * config/picochip/picochip.c (picochip_option_override,
2226         picochip_emit_save_register, picochip_function_arg,
2227         picochip_output_label, picochip_output_internal_label,
2228         picochip_asm_output_opcode, picochip_output_cbranch,
2229         picochip_output_compare, picochip_output_branch,
2230         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2231         diagnostics. Start diagnostics with lowercase letters.  Use %' in
2232         diagnostics.
2233         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2234         "SPE" capitalization.  Start diagnostic with a lowercase letter.
2235         (rs6000_handle_option): Start diagnostics with lowercase letters.
2236         (def_builtin): Remove trailing '.' from diagnostic.
2237         (rs6000_savres_routine_name): Start diagnostic with a lowercase
2238         letter.
2239         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2240         diagnostic.
2241         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2242         lowercase letter.
2243         * config/s390/s390.c (s390_option_override) Start diagnostics with
2244         lowercase letters.  Use %' in diagnostic.
2245         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2246         lowercase letters.
2247         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2248         diagnostic.
2249         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2250         diagnostic.
2251         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2252         diagnostic.
2253         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2254         * config/spu/spu.c (spu_option_override): Start diagnostics with
2255         lowercase letters.  Use %qs for quoting in diagnostics.
2256         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2257         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2258         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2259         from diagnostic.
2260         * convert.c (convert_to_integer, convert_to_vector): Use %' in
2261         diagnostics.
2262         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2263         letter and use "cannot" spelling.
2264         * expmed.c (extract_fixed_bit_field): Start diagnostic with
2265         lowercase letter and format as a single sentence without '.'.
2266         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2267         Use %' in diagnostics.
2268         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2269         Use %' in diagnostics.
2270         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2271         Use %' in diagnostics.
2272         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2273         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2274         with lowercase letters and remove tailing '.' and '\n'.
2275         * lto-cgraph.c (input_profile_summary): Start diagnostic with
2276         lowercase letter and remove trailing '.'.
2277         (input_cgraph): Start diagnostics with lowercase letters and
2278         remove trailing '\n'.
2279         * opts.c (finish_options, common_handle_option): Start diagnostics
2280         with lowercase letters and remove trailing '.'.  Fix typo in
2281         diagnostic.
2282         * passes.c (position_pass): Start diagnostic with lowercase letter.
2283         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2284         register_callback, try_init_one_plugin): Start diagnostics with
2285         lowercase letters.
2286         * reload1.c (spill_failure): Use %' in diagnostic.
2287         (gen_reload): Start diagnostic with a lowercase letter.
2288         * stor-layout.c (place_field): Start diagnostic with a lowercase
2289         letter.
2290         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2291         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2292         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2293         Start diagnostics with lowercase letters, remove trailing '.' and
2294         use %' in diagnostics.
2295         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2296         (verify_ssa): Don't split diagnostic across two error calls.
2297         Spell out "number" and use %' in diagnostic.
2298         * value-prof.c (visit_hist, check_counter): Start diagnostics with
2299         lowercase letters.
2300
2301 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
2302
2303         PR middle-end/46419
2304         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2305         (_mm_cvtpu16_ps): Ditto.
2306
2307 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2308
2309         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2310         warn_larger_than, larger_than_size, warn_frame_larger_than,
2311         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2312         default_visibility, flag_tls_default): New Variable declarations.
2313         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2314         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2315         (v): Declare as Common and document here.
2316         * flags.h (default_visibility, flag_generate_lto,
2317         warn_larger_than, larger_than_size, warn_frame_larger_than,
2318         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2319         flag_shlib, flag_excess_precision_cmdline): Remove.
2320         (set_Wstrict_aliasing): Update prototype.
2321         * gcc.c (verbose_flag): Remove.
2322         (driver_handle_option): Add diagnostic_context parameter.  Don't
2323         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
2324         incrementing it.
2325         * opts-common.c (handle_option): Pass dc to handler.
2326         * opts.c (warn_larger_than, larger_than_size,
2327         warn_frame_larger_than, frame_larger_than_size,
2328         default_visibility): Remove.
2329         (common_handle_option): Add diagnostic_context parameter.
2330         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2331         gcc_options parameters.
2332         (lang_handle_option, target_handle_option, read_cmdline_options,
2333         decode_options): Add diagnostic_context parameters.
2334         (finish_options): Access option state through opts pointer where
2335         possible.
2336         (common_handle_option): Access option state through opts pointer
2337         where possible.  Do not set local static variable verbose.  Do not
2338         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2339         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2340         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2341         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2342         OPT_fwhopr_.  Do not explicitly set .opt file variables for
2343         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
2344         (set_Wstrict_aliasing): Add gcc_options parameter.
2345         * opts.h (struct cl_option_handler_func): Add diagnostic_context
2346         parameter to handler.
2347         (decode_options): Add diagnostic_context parameter.
2348         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2349         asm_file_name, flag_generate_lto, flag_gen_aux_info,
2350         aux_info_file_name, flag_shlib, flag_tls_default,
2351         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2352         (toplev_main): Pass global_dc to decode_options.
2353         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2354         aux_info_file_name, asm_file_name): Remove.
2355         * tree.h (flag_tls_default): Remove.
2356
2357 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2358
2359         PR target/45986
2360         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2361         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2362
2363 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2364
2365         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2366         (x86_64-*-*): Likewise.
2367         * config/i386/cpuid.h: Define TBM bit.
2368         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2369         and set has_tbm.
2370         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2371         isa_flag for TBM.
2372         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2373         (OPTION_MASK_ISA_TBM_UNSET): New.
2374         (ix86_handle_option): Handle -mtbm.
2375         (isa_opts): Add -mtbm.
2376         (enum pta_flags): Add PTA_TBM.
2377         (ix86_option_override_internal): Add TBM support.
2378         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2379         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2380         (IX86_BUILTIN_BEXTRI64): Likewise.
2381         (bdesc_args): Add TBM intrinsics.
2382         (ix86_expand_builtin): Add TBM specific case.
2383         * config/i386/i386.h (TARGET_TBM): New for TBM.
2384         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2385         (tbm_bextri_<mode>): Likewise.
2386         (*tbm_blcfill_<mode>): Likewise.
2387         (*tbm_blci_<mode>): Likewise.
2388         (*tbm_blcic_<mode>): Likewise.
2389         (*tbm_blcmsk_<mode>): Likewise.
2390         (*tbm_blcs_<mode>): Likewise.
2391         (*tbm_blsfill_<mode>): Likewise.
2392         (*tbm_blsic_<mode>): Likewise.
2393         (*tbm_t1mskc_<mode>): Likewise.
2394         (*tbm_tzmsk_<mode>): Likewise.
2395         * config/i386/i386.opt: Add -mtbm.
2396         * config/i386/tbmintrin.h (__bextri_u32): New.
2397         (__blcfill_u32): Likewise.
2398         (__blci_u32): Likewise.
2399         (__blcic_u32): Likewise.
2400         (__blcmsk_u32): Likewise.
2401         (__blcs_u32): Likewise.
2402         (__blsfill_u32): Likewise.
2403         (__blsic_u32): Likewise.
2404         (__t1mskc_u32): Likewise.
2405         (__tzmsk_u32): Likewise.
2406         (__bextri_u64): Likewise.
2407         (__blcfill_u64): Likewise.
2408         (__blci_u64): Likewise.
2409         (__blcic_u64): Likewise.
2410         (__blcmsk_u64): Likewise.
2411         (__blcs_u64): Likewise.
2412         (__blsfill_u64): Likewise.
2413         (__blsic_u64): Likewise.
2414         (__t1mskc_u64): Likewise.
2415         (__tzmsk_u64): Likewise.
2416         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2417         * doc/invoke.texi: Document -mtbm.
2418         * doc/extend.texi: Document TBM built-in functions.
2419
2420 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2421
2422         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2423         (x86_64-*-*): Likewise.
2424         * config/i386/cpuid.h: Define BMI bit.
2425         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2426         and set has_bmi.
2427         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2428         isa_flag for BMI.
2429         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2430         (OPTION_MASK_ISA_BMI_UNSET): New.
2431         (ix86_handle_option): Handle -mbmi.
2432         (isa_opts): Add -mbmi.
2433         (enum pta_flags): Add PTA_BMI.
2434         (ix86_option_override_internal): Add BMI support.
2435         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2436         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2437         (IX86_BUILTIN_BEXTR64): Likewise.
2438         (IX86_BUILTIN_CTZS): Likewise.
2439         (bdesc_args): Add BMI intrinsics.
2440         (ix86_expand_args_builtin): Add BMI specific cases.
2441         * config/i386/i386.h (TARGET_BMI): New for BMI.
2442         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2443         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2444         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2445         (UNSPEC_TZCNT): Likewise.
2446         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2447         (bmi_andn_<mode>): New for BMI.
2448         (bmi_bextr_<mode>): Likewise.
2449         (bmi_blsi_<mode>): Likewise.
2450         (bmi_blsmsk_<mode>): Likewise.
2451         (bmi_blsr_<mode>): Likewise.
2452         * config/i386/i386.opt: Add -mbmi.
2453         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2454         * config/i386/bmiintrin.h (__lzcnt_u16): New.
2455         (__tzcnt_u16): Likewise.
2456         (__andn_u32): Likewise.
2457         (__bextr_u32): Likewise.
2458         (__blsi_u32): Likewise.
2459         (__blsmsk_u32): Likewise.
2460         (__blsr_u32): Likewise.
2461         (__lzcnt_u32): Likewise.
2462         (__tzcnt_u32): Likewise.
2463         (__andn_u64): Likewise.
2464         (__bextr_u64): Likewise.
2465         (__blsi_u64): Likewise.
2466         (__blsmsk_u64): Likewise.
2467         (__blsr_u64): Likewise.
2468         (__lzcnt_u64): Likewise.
2469         (__tzcnt_u64): Likewise.
2470         * doc/invoke.texi: Document -mbmi and -mno-bmi.
2471         * doc/extend.texi: Document BMI built-in functions.
2472
2473 2010-11-10  Jan Hubicka  <jh@suse.cz>
2474
2475         PR tree-optimize/46228
2476         * doc/invoke.texi (comdat-sharing-probability): Document.
2477         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2478         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2479
2480 2010-11-10  Jan Hubicka  <jh@suse.cz>
2481
2482         PR tree-optimize/46228
2483         * cgraph.c (cgraph_propagate_frequency): Fix typo.
2484
2485 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
2486
2487         PR tree-optimization/46414
2488         * tree-inline.c (estimate_move_cost): Check preferred vector
2489         mode for vector type.
2490
2491 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2492
2493         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2494
2495 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
2496
2497         PR tree-optimization/45971
2498         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2499         for phi nodes analyzable by scev.
2500
2501 2010-11-10  Richard Guenther  <rguenther@suse.de>
2502
2503         PR tree-optimization/44964
2504         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2505
2506 2010-11-10  Martin Jambor  <mjambor@suse.cz>
2507
2508         PR tree-optimization/46351
2509         PR tree-optimization/46377
2510         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2511         aggregate bit-fields.
2512
2513 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2514
2515         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2516         * doc/tm.texi: Regenerate.
2517         * opts-common.c (tm.h): Don't include.
2518         (target_option_translations): Remove.
2519         (decode_cmdline_options_to_array): Don't handle translating options.
2520         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2521         * config/darwin-driver.c: Don't condition includes on
2522         CROSS_DIRECTORY_STRUCTURE.
2523         (darwin_default_min_version): Make static.
2524         (darwin_driver_init): New.  Call darwin_default_min_version if not
2525         CROSS_DIRECTORY_STRUCTURE.
2526         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2527         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2528         (ASM_SPEC): Add %{static}.
2529         (darwin_default_min_version): Don't declare.
2530         (darwin_driver_init): Declare.
2531         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2532         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2533         * config/darwin.opt (all_load, allowable_client,
2534         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2535         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2536         exported_symbols_list, filelist, findirect-virtual-calls,
2537         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2538         framework, fterminated-vtables, gfull, gused, image_base, init,
2539         install_name, multi_module, multiply_defined,
2540         multiply_defined_unused, no_dead_strip_inits_and_terms,
2541         seg_addr_table, seg_addr_table_filename, segaddr,
2542         segs_read_only_addr, segs_read_write_addr, single_module,
2543         umbrella, unexported_symbols_list, weak_reference_mismatches,
2544         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2545         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2546         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2547         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2548         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2549         (ASM_SPEC): Add %{static}.
2550         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2551         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2552         (DRIVER_SELF_SPECS): Handle options formerly in
2553         TARGET_OPTION_TRANSLATE_TABLE.
2554         * config/mep/mep.opt (mfar): New.
2555         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2556         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
2557         TARGET_OPTION_TRANSLATE_TABLE.
2558         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2559         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2560         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2561         ffix-and-continue, findirect-data): New.
2562         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2563         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2564         (mnofpu): Define mask and use Report here.
2565
2566 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2567
2568         * config/s390/s390.c (s390_emit_prologue): Report the stack
2569         size if -fstack-usage is used.
2570
2571 2010-11-10  Richard Guenther  <rguenther@suse.de>
2572
2573         PR tree-optimization/46398
2574         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2575
2576 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
2577
2578         PR target/44760
2579         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2580         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2581         GP_REG_OR_PSEUDO_STRICT_P.
2582         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2583         unexpected alternative.
2584         (*movsf_internal): Likewise.
2585         (indirect_jump): Replace call to non-existant function with call to
2586         internal_error.
2587         (tablejump): Likewise.
2588         * config/iq2000/iq2000.c: Include df.h .
2589         (iq2000_function_arg_advance): Use CONST_CAST2.
2590         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2591         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2592         a non-zero function address.
2593         (iq2000_initial_elimination_offset): Add gcc_unreachable for
2594         unexpected value of FROM.
2595         (symbolic_expression_p): Delete.
2596         (iq2000_function_value): Constify func.
2597         (expand_one_builtin): Use expand_normal.
2598         (iq2000_print_operand): Don't print VALUE if calculating it failed.
2599
2600         PR rtl-optimization/44764
2601         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2602
2603         PR target/46407
2604         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2605         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2606         with ATTRIBUTE_UNUSED.
2607         (valid_psw_flag): Constify parameter which.
2608         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2609
2610         PR target/46415
2611         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2612         (mmix_dbx_register_number): Likewise.
2613         * config/mmix/mmix.c: Include df.h .
2614         (mmix_local_alignment): Change argument basic_align and return type
2615         to unsigned.
2616         (mmix_dbx_register_number): Change argument and return type to
2617         unsigned.
2618         (mmix_expand_prologue): Use add_reg_note.
2619
2620         PR target/46417
2621         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2622         (spu_split_store): Use aform.
2623         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2624
2625 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2626
2627         PR/46268
2628         * doc/gty.texi (GTY Options): Clarify that variable_size produces
2629         allocators taking size in bytes, compare with length option.  Add
2630         size calculation example.
2631         (Invoking the garbage collector): Ensure that sentences are
2632         followed by two spaces.  Describe that pointer fields must be
2633         initialized at ggc_collect call.
2634         (Troubleshooting): New section.
2635
2636 2010-11-09  Jan Hubicka  <jh@suse.cz>
2637
2638         PR tree-optimization/40436
2639         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2640         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2641         normal instructions; be sure bultin is not implemented in this file;
2642         compute non-zero return cost.
2643         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2644         * tree-inline.h (eni_weights_d): Add return cost.
2645
2646 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
2647
2648         * c-parser.c (c_parser_struct_declaration): Handle declaration
2649         specifiers followed by CPP_CLOSE_BRACE.
2650
2651 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2652
2653         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2654         split occurs before reload, and we allocate memory at the time of
2655         the split, not during expansion.  Add attributes.
2656         (floatsi<mode>2_lfiwax_mem): Ditto.
2657         (floatunssi<mode>2_lfiwzx): Ditto.
2658         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2659         (floatsidf2): Ditto.
2660         (floatunssisf2): Ditto.
2661         (floatunssidf2): Ditto.
2662         (fix_trunc<mode>si2): Ditto.
2663         (fix_trunc<mode>si2_stfiwx): Ditto.
2664         (fix_trunc<mode>si2_internal): Ditto.
2665         (fix_trunc<mode>si2): Ditto.
2666         (fix_trunc<mode>di2): Ditto.
2667         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2668         (floatsisf2): Ditto.
2669         (floatdidf2_mem): Ditto.
2670         (floatunsdidf2_mem): Ditto.
2671         (floatunsdidf2): Ditto.
2672         (floatdisf2_internal1): Ditto.
2673         (floatdisf2_mem): Ditto.
2674         (floatunsdisf2_mem): Ditto.
2675         (floatsi<mode>2_lfiwax_mem2): Delete.
2676         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2677         (fix_trunc<mode>si2_mem): Ditto.
2678         (fixuns_trunc<mode>si2_mem): Ditto.
2679         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2680         type operations to reduce copying the values to multiple memory slots.
2681         (roundu32<mode>2_fprs): Ditto.
2682
2683         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2684         PRE_INC, PRE_DEC, PRE_MODIFY.
2685         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2686
2687         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2688         Delete prototype.
2689
2690 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2691
2692         PR target/43808
2693         * cfgexpand.c (partition_stack_vars): Call
2694         update_alias_info_with_stack_vars unconditionally.
2695         (update_alias_info_with_stack_vars): Allow unused
2696         unreferenced vars when not optimizing.
2697
2698 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
2699
2700         PR tree-optimization/46036
2701         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2702         add_to_dst_predicate_list.
2703
2704 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2705
2706         PR debug/46171
2707         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2708         earlier.
2709         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2710         argument, call dead_debug_reset when adding REG_UNUSED note.
2711         (dead_debug_reset): New function.
2712         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2713         df_create_unused_note callers.
2714
2715 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
2716
2717         * config/fr30/fr30.c: Include "df.h".
2718
2719 2010-11-09  Richard Guenther  <rguenther@suse.de>
2720
2721         PR tree-optimization/46355
2722         * tree-loop-distribution.c (tree_loop_distribution): Do not
2723         distribute loops without a single exit.
2724
2725 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2726
2727         PR rtl-optimization/46237
2728         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2729         saved hard regs if they might get partially clobbered.
2730
2731 2010-11-09  Paul Koning  <ni1d@arrl.net>
2732
2733         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2734
2735 2010-11-09  Richard Guenther  <rguenther@suse.de>
2736
2737         PR tree-optimization/46177
2738         * tree-loop-distribution.c (prop_phis): Remove.
2739         (generate_builtin): Re-use the old loop exit edge to avoid
2740         needing to update PHI nodes.
2741
2742 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
2743
2744         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2745         type of args_size to unsigned HOST_WIDE_INT.
2746
2747         PR target/44755
2748         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2749         * config/t-pnt16-warn: New file.
2750         * config/picochip/picochip.c (picochip_emit_stack_allocate):
2751         Use add_reg_note.
2752         (picochip_emit_save_register): Likewise.
2753         (picochip_emit_restore_register): Remove variable insn.
2754         (picochip_legitimize_address): Don't use C++ style comments.
2755         (picochip_legitimize_reload_address): Likewise.
2756         (reorder_var_tracking_notes): Remove variable vliw_start.
2757         (picochip_reorg): Cast first arguemnt to emit_note_after to
2758         enum insn_note.
2759         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2760         (picochip_expand_builtin_3op): Likewise.
2761         (picochip_expand_builtin_2opvoid): Likewise.
2762         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2763         (picochip_expand_array_testport): Likewise.
2764         (picochip_init_builtins): Remove unused variables.
2765         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2766         to unsigned long, and output it as such.
2767         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2768         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2769         (schedType): Cast result of picochip_schedule_type to
2770         enum attr_schedType.
2771
2772         PR target/44759
2773         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2774         conditional to type of S.
2775         (mn10300_function_arg): Remove unused variable align.
2776         (mn10300_arg_partial_bytes): Likewise.
2777         * config/mn10300/mn10300.md (attribute cpu): Cast value to
2778         enum attr_cpu.
2779
2780 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
2781
2782         PR bootstrap/46392
2783         * gengtype-parse.c (type): Call get_input_file_name to get file name.
2784
2785 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2786
2787         * tree.h (contains_placeholder_p): Fix comment.
2788         (type_contains_placeholder_p): Adjust comment.
2789         * tree.c (contains_placeholder_p): Fix comment.
2790         (type_contains_placeholder_1): Do not recurse on pointed-to types and
2791         adjust comment.
2792         (type_contains_placeholder_p): Add comment.
2793
2794 2010-11-09  Paul Koning  <ni1d@arrl.net>
2795
2796         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2797         output of byte values.
2798
2799 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2800
2801         PR middle-end/46360
2802         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2803         not in SSA mode.
2804
2805 2010-11-09  Richard Guenther  <rguenther@suse.de>
2806
2807         PR middle-end/46221
2808         * varasm.c (compute_visible_aliases): New function.
2809         (remove_unreachable_alias_pairs): Aliases make a target available
2810         even though we reclaimed the cgraph node.
2811         (finish_aliases_1): Likewise.
2812         * Makefile.in (varasm.o): Add pointer-set.h dependency.
2813
2814 2010-11-09  Nick Clifton  <nickc@redhat.com>
2815
2816         * config/mn10300/mn10300-modes.def: New file.
2817
2818 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
2819             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2820
2821         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2822         (plugin_files, get_file_basename, get_file_realbasename)
2823         (get_file_langdir, error_at_line, gt_files, this_file)
2824         (system_h_file, read_input_list, create_field_all)
2825         (get_file_srcdir_relative_path, get_file_basename)
2826         (get_file_langdir, get_file_gtfilename)
2827         (get_output_file_with_visibility, get_output_file_name)
2828         (struct flist, put_mangled_filename, walk_type)
2829         (put_mangled_filename, finish_root_table, write_roots): Use
2830         input_file-s.
2831         (lang_dir_names, num_lang_dirs): Remove static.
2832         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2833         (main): Use input_file-s.
2834
2835         * gengtype.h: (struct input_file_st, input_file): New type.
2836         (struct fileloc): Use it.
2837         (gt_files, num_gt_files, this_file, system_h_file)
2838         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2839         (get_input_file_name): New function.
2840         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2841         use input_file.
2842         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2843         (get_output_file_name): Ditto.
2844
2845         * gengtype-lex.l (yybegin): Use input_file.
2846
2847         * gengtype-parse.c (parse_error): Use input_file.
2848
2849 2010-11-08  Xinliang David Li  <davidxl@google.com>
2850
2851         PR tree-optimization/46316
2852         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2853         * double-int.h (double_int_mul_with_sign): New function.
2854         * double-int.c (double_int_mul_with_sign): New function.
2855
2856 2010-11-08  Paul Koning  <ni1d@arrl.net>
2857
2858         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2859
2860 2010-11-08  Paul Koning  <ni1d@arrl.net>
2861
2862         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2863
2864 2010-11-08  Paul Koning  <ni1d@arrl.net>
2865
2866         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2867         to 8 bits.
2868
2869 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2870
2871         PR target/46378
2872         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2873         turn on ISA 2.04 rounding instructions for power5.
2874
2875         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2876         not ISA 2.02.
2877
2878         PR target/45585
2879         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2880         in FPR registers.
2881         (movdi_low_st): Ditto.
2882
2883 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2884             Richard Henderson  <rth@redhat.com>
2885
2886         PR target/44758
2887         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2888         (attribute acc_group): Cast value to enum attr_acc_group.
2889         (*movdi_nodouble+6): Use gen_int_mode.
2890         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2891         if RTX_CODE is defined or not.
2892         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2893         struct frv_io.
2894         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2895         (frv_frame_access, frv_expand_prologue): Remove unused variables.
2896         (frv_expand_block_clear): Likewise.
2897         (frv_trampoline_init): Use LCT_NORMAL.
2898         (struct frv_packet_group): New struct, broken out of type of
2899         frv_packet.
2900         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2901         use cast in loop counter increment.
2902         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2903         assigning to io->type.
2904         (bdesc_set): Use rtx_code UNKNOWN in initializer.
2905         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2906         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2907         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2908         (frv_read_argument): Use expand_normal.
2909
2910         PR target/44757
2911         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2912         lm32_legitimate_constant_p.
2913         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2914         * config/lm32/lm32.c (gen_int_relational): Make new block for
2915         LE / LT / LEU / LTU case.  Declare variables at start of block.
2916         (lm32_block_move_inline): Use XALLOCAVEC.
2917
2918 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2919
2920         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2921
2922 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2923
2924         * gengtype (get_output_file_for_structure): Ensure type is union
2925         or struct.
2926         (write_splay_tree_allocator_def): Use
2927         get_output_file_with_visibility.
2928
2929 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2930
2931         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2932         to defined values in case of an error.
2933         (s390_option_override): Skip further processing if the -march
2934         parameter wasn't recognized.
2935
2936 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2937
2938         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2939         assert that REG is a hard register number before using it as an index.
2940
2941         PR bootstrap/46358
2942         * config/i386/i386.c (ix86_expand_split_stack_prologue):
2943         Avoid warnings when HOST_WIDE_INT is 32 bit.
2944
2945 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2946
2947         PR target/46208
2948         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2949         (sparc_promote_prototypes): Likewise.
2950         (sparc_promote_function_mode): Promote in 32-bit mode as well.
2951         (sparc_return_in_memory): Remove superfluous parentheses.
2952         (sparc_struct_value_rtx): Fix long lines.
2953         (sparc_function_value_1): Promote in 32-bit mode as well.
2954
2955 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
2956
2957         PR rtl-optimization/45352
2958         * sel-sched.c (find_best_expr): Do not set pneed_stall when
2959         the variable_issue hook is not implemented.
2960         (fill_insns): Remove dead variable stall_iterations.
2961         (init_seqno_1): Force EBB start for resetting sched cycles on any
2962         successor blocks of the rescheduled region.
2963         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2964         (reset_sched_cycles_in_current_ebb): Add debug printing.
2965         New variable issued_insns.  Advance state when we have issued
2966         issue_rate insns.
2967
2968 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2969
2970         * gengtype (main): Get here's position using POS_HERE macro for
2971         do*typedef calls.
2972
2973 2010-11-07  Ian Lance Taylor  <iant@google.com>
2974
2975         PR target/46089
2976         * config/i386/i386.c (split_stack_fn_large): New static variable.
2977         (ix86_expand_split_stack_prologue): Handle large model.
2978
2979 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
2980
2981         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2982         all possible addressing modes.
2983
2984 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
2985
2986         PR tree-optimization/46346
2987         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2988
2989 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2990
2991         * config/mips/mips.c: Revert previous patch.
2992         * config/mips/mips.md: Likewise.
2993
2994 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2995
2996         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2997         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2998         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2999         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3000         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3001         to use FMA.
3002         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3003         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3004         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3005         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3006
3007 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
3008
3009         PR c/43384
3010         * c-decl.c (lookup_label): Labels can only be referenced in a
3011         function's scope.
3012         (store_parm_decls_oldstyle): Skip erroneous parameters.
3013
3014 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
3015
3016         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3017         LIBCALL_VALUE): Remove macros.
3018         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3019         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3020         (fr30_function_value_regno_p, fr30_function_value,
3021         fr30_libcall_value): New functions.
3022
3023 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
3024
3025         PR middle-end/46314
3026         * target.def (generate_internal_label): New asm_out hook.
3027         * output.h (default_generate_internal_label): Declare.
3028         * varasm.c (default_generate_internal_label): Define.
3029
3030 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
3031
3032         PR target/44981
3033         * doc/extend.tex (format): Document NSString extension.
3034         (format_arg): Likewise.
3035         (Darwin Format Checks): New section.
3036         * doc/tm.texi: Document string object hooks (generated).
3037         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3038         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3039         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3040         * target.def (objc_construct_string_object): Rename, amend
3041         documentation.
3042         (string_object_ref_type_p): New hook.
3043         (check_string_object_format_arg): New hook.
3044         * c-parser.c (c_parser_attributes): Allow objective-c class names as
3045         attribute identifiers.
3046         * config/darwin-c.c (darwin_cfstring_ref_p): New.
3047         (darwin_check_cfstring_format_arg): New.
3048         (darwin_additional_format_types): New.
3049         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3050         (darwin_check_cfstring_format_arg): New.
3051         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3052         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3053         (TARGET_N_FORMAT_TYPES): New.
3054         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3055
3056 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
3057             Pascal Obry  <obry@adacore.com>
3058
3059         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
3060         in 64-bit mode and 17 otherwise.
3061
3062 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3063
3064         PR debug/45939
3065         * var-tracking.c (emit_note_insn_var_location): Make sure that
3066         call related var location notes come before the normal ones.
3067
3068 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3069
3070         PR target/46326
3071         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3072         in the last change.
3073
3074 2010-11-05  Ian Lance Taylor  <iant@google.com>
3075
3076         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3077
3078 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3079
3080         PR c/44772
3081         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3082         pointer_set_contains if DECL_NAME is NULL.
3083
3084 2010-11-05  Ian Lance Taylor  <iant@google.com>
3085
3086         PR target/46084
3087         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3088         request enough additional space for alignment, and force alignment.
3089
3090 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
3091
3092         * config/i386/i386.c (legitimate_pic_address_disp_p):
3093         Handle UNSPEC_PCREL.
3094         (ix86_legitimate_address_p): Likewise.
3095         (legitimize_pic_address): Likewise.
3096         (output_pic_addr_const): Likewise.
3097         (ix86_delegitimize_address): Likewise.
3098         (ix86_find_base_term): Likewise.
3099         (memory_address_length): Likewise.
3100         (x86_output_mi_thunk): Handle special case x64
3101         for non local binding.
3102         * config/i386/i386.md (UNSPEC_PCREL): New.
3103         * config/i386/winnt.c (i386_pe_binds_local_p):
3104         Allow weak symbol for x64 windows with non-local binding.
3105
3106 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3107
3108         PR target/45670
3109         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3110         instead of EXPAND_NORMAL for base expansion.
3111
3112 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
3113
3114         * config.gcc: Support --with-fpmath=avx for x86.
3115         * config/i386/avxmath.h: New.
3116         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3117
3118 2010-11-05  Ian Lance Taylor  <iant@google.com>
3119
3120         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3121         * gengtype.c (walk_type): Don't recognize descbits option.
3122
3123 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
3124
3125         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3126         WORD_SWITCH_TAKES_ARG): Remove.
3127         * doc/options.texi (Args): Document.
3128         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3129         * doc/tm.texi: Regenerate.
3130         * opt-functions.awk (switch_flags): Handle Args.
3131         * opts-common.c: Update comment on tm.h include.
3132         (decode_cmdline_option): Handle options with multiple arguments.
3133         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3134         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3135         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3136         CL_COMMON): Update values.
3137         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3138         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3139         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3140         sectobjectsymbols, sectorder, segcreate, segprot): New.
3141
3142 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3143             Uros Bizjak  <ubizjak@gmail.com>
3144
3145         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3146         256bit AVX register is used.
3147         (ix86_expand_vector_move_misalign): Likewise.
3148         (ix86_expand_vector_move): Replace use_avx256_p with
3149         VALID_AVX256_REG_MODE.
3150
3151 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
3152
3153          PR target/44750
3154         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3155         change.  Set $@-warn.o to -Wno-error.
3156
3157         PR bootstrap/44756
3158         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3159         comparing it to a signed value.
3160
3161         PR middle-end/44766
3162         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3163         PR bootstrap/44770
3164         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3165         to i.
3166
3167         PR target/44754
3168         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3169         (m32c_function_arg).  Add comma between arguments two and three.
3170         (m32c_promote_prototypes): Remove declaration.
3171         (current_function_special_page_vector): Likewise.
3172         (m32c_regno_reg_class): Change return type to enum reg_class.
3173         (m32c_pushm_popm): Use add_reg_note.
3174         (m32c_push_rounding): Change return type to unsigned int.
3175         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3176         enum reload_type.
3177         (m32c_insert_attributes): Constify variable name.
3178         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3179         (m32c_prepare_shift): Remove variable lref.
3180         (m32c_expand_movcc): Remove variable cmp.
3181         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3182         (m32c_compare_redundant): Remove variable op2.
3183         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3184         (m32c_pragma_memregs): Assign the number to target_memregs.
3185         (m32c_pragma_address): Remove variable var_str.
3186         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3187         enum reg_class.
3188         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3189         * config/m32c/bitops.md (andsi3): Add default case to switch.
3190         (iorsi3, xorsi3): Likewise.
3191         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3192         * config/m32c/jump.md (call, call_value): Likewise.
3193         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3194         (m32c_regno_reg_class): Likewise.
3195         (current_function_special_page_vector): Declare.
3196
3197 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3198
3199         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3200
3201         PR tree-optimization/46099
3202         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
3203         if it is NULL and uid wasn't found in the hash table.  Just fold the
3204         result if it is NULL otherwise.  Insert other potentially needed
3205         stmts right before current stmt instead of on the entry edge.
3206         (struct elv_data): Add gsi and reset fields.
3207         (eliminate_local_variables_1): Adjust caller.  If take_address_of
3208         failed for debug stmt, set dta->reset and return.
3209         (eliminate_local_variables_stmt): Change STMT argument for GSI,
3210         pass GSI through to the callback, handle resetting of debug stmts.
3211         (eliminate_local_variables): Adjust caller.  Process debug stmts
3212         in second phase.
3213
3214         PR middle-end/43690
3215         * gimplify.c (gimplify_asm_expr): If a "m" input is a
3216         {pre,post}{in,de}crement, fail.
3217
3218         PR debug/46307
3219         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3220         * tree-pretty-print.c (dump_generic_node): Likewise.
3221         (op_code_prio): Likewise.
3222         * cfgexpand.c (expand_debug_expr): Likewise.
3223
3224 2010-11-04  Paul Koning  <ni1d@arrl.net>
3225
3226         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3227         constraints.
3228
3229 2010-11-04  Chao-ying Fu  <fu@mips.com>
3230
3231         * configure.ac: Test assembler support for DSP Rev1 mult.
3232         * configure: Regenerate.
3233         * config.in: Regenerate.
3234         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3235         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3236         (CODE_FOR_mips_multu): New define.
3237         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3238         dspr2_32 to dsp_32.
3239         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3240         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3241         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3242         New define_expand patterns.
3243         * config/mips/constraints.md (ka): Update the constraint to test
3244         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3245         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3246         mips_multu): Delete.
3247         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3248         Change target constraint to "ka".
3249         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3250         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3251         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3252         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
3253         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3254         (<u>maddsidi4): Likewise.
3255         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3256         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3257
3258 2010-11-04  Paul Koning  <ni1d@arrl.net>
3259
3260         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3261
3262 2010-11-04  Paul Koning  <ni1d@arrl.net>
3263
3264         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3265
3266 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
3267
3268         Fixed using the Objective-C 2.0 dot-syntax with class names.
3269         * c-parser.c (c_parser_next_token_starts_declspecs): In
3270         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3271         (c_parser_next_token_starts_declaration): Same.
3272         (c_parser_postfix_expression): Parse the Objective-C 2.0
3273         dot-syntax with a class name.
3274
3275 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
3276
3277         * final.c (compute_alignments): Compute/free loop info all the time.
3278         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3279         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3280         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3281         * config/rs6000/rs6000.c (cfgloop.h): Include.
3282         (can_override_loop_align): New.
3283         (rs6000_option_override_internal): Set it.
3284         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3285         (rs6000_loop_align): New function.
3286         (rs6000_loop_align_max_skip): Likewise.
3287
3288 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3289
3290         PR driver/45703
3291         * collect2.c (main): Print --help output to stdout.  Do not
3292         exit right away, so ld --help is appended.  Add empty lines
3293         to separate output suitably.
3294
3295 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
3296
3297         PR tree-optimization/46233
3298         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3299         after calling analyze_function, not before.
3300
3301         PR target/46234
3302         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3303         instead of build_va_arg_indirect_ref.
3304         * config/spu/spu.c (spu_va_start): Likewise.
3305         * config/s390/s390.c (s390_va_start): Likewise.
3306
3307 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
3308
3309         PR middle-end/46292
3310         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3311         if the innermode is not vector mode, determine the mode of a subreg
3312         by using mode_for_size of inner_size.
3313
3314 2010-11-04  Richard Guenther  <rguenther@suse.de>
3315
3316         PR rtl-optimization/46183
3317         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3318         (execute_rtl_pre): Likewise.
3319         (execute_rtl_hoist): Likewise.
3320
3321 2010-11-04  Richard Guenther  <rguenther@suse.de>
3322
3323         PR tree-optimization/46068
3324         * ipa-split.c (consider_split): Remove gcc_unreachable.
3325
3326 2010-11-04  Richard Guenther  <rguenther@suse.de>
3327
3328         * tree-nested.c (build_addr): Use build_fold_addr_expr.
3329
3330 2010-11-04  Richard Guenther  <rguenther@suse.de>
3331
3332         PR tree-optimization/45991
3333         * gimplify.c (force_gimple_operand_1): Use the provded test
3334         function in the initial test.
3335
3336 2010-11-04  Jeff Law  <law@redhat.com>
3337
3338         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3339         of readonly memory equivalances for const/pure calls.
3340
3341 2010-11-04  Richard Guenther  <rguenther@suse.de>
3342
3343         PR tree-optimization/45733
3344         * tree-vect-stmts.c (reverse_vec_elements): Honor the
3345         permute builtins function return type.
3346
3347 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
3348
3349         PR middle-end/44765
3350         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3351         as an index, check it is not INVALID_REGNUM.
3352
3353         PR bootstrap/44756
3354         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3355         unsignedp.
3356         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3357
3358         PR bootstrap/44756
3359         * function.c (thread_prologue_and_epilogue_insns): Add
3360         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3361
3362         PR bootstrap/44756
3363         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3364
3365         PR target/44750
3366         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3367         (pdp11_preferred_reload_class): Rename class to rclass.
3368         (pdp11_preferred_output_reload_class): Likewise.
3369         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3370         ALL_COMPILERFLAGS .
3371         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3372
3373         PR bootstrap/44756
3374         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3375         iteration variables to enum machine_mode.
3376
3377         PR target/44751
3378         * config/h8300/h8300.c: Include df.h.
3379         (push, pop): Use add_reg_note.
3380         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3381         (compute_a_shift_cc): Likewise.
3382         (expand_a_shift): Argument code has type enum rtx_code.
3383         (struct shift_insn): Member cc_valid has type enum attr_cc.
3384         (struct shift_info) <cc_inline, cc_special>: Likewise.
3385         enum attr_cc.
3386         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3387         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3388
3389 2010-11-04  Ira Rosen  <irar@il.ibm.com>
3390
3391         PR tree-optimization/46213
3392         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3393         MINUS_EXPR only if the first operand is reduction operand.
3394
3395 2010-11-04  Richard Guenther  <rguenther@suse.de>
3396             Richard Henderson  <rth@redhat.com>
3397
3398         * tree.def (FMA_EXPR): New tree code.
3399         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3400         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3401         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3402         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3403         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3404         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3405         (execute_optimize_widening_mul): Call it.  Reorganize to allow
3406         dead stmt removal.  Move TODO flags ...
3407         (pass_optimize_widening_mul): ... here.
3408         * flag-types.h (enum fp_contract_mode): New enum.
3409         * common.opt (flag_fp_contract_mode): New variable.
3410         (-ffp-contract): New option.
3411         * opts.c (common_handle_option): Handle it.
3412         * doc/invoke.texi (-ffp-contract): Document.
3413         * tree.h (fold_fma): Declare.
3414         * builtins.c (fold_fma): New function.
3415         (fold_builtin_fma): Likewise.
3416         (fold_builtin_3): Call it for fma.
3417         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3418         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3419         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3420         New expanders.
3421         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3422         named patterns.
3423         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3424         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3425         (fms_optab, fnma_optab, fnms_optab): New defines.
3426         * gimplify.c (gimplify_expr): Handle binary truth expressions
3427         explicitly.  Handle FMA_EXPR.
3428         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3429         operations.
3430
3431 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3432             Richard Guenther  <rguenther@suse.de>
3433
3434         * passes.c (init_optimization_passes): Move veclower after SSA.
3435         * tree-vect-generic.c (uniform_vector_p): New function.
3436         (expand_vector_operations_1): Handle conversion.
3437         (pass_lower_vector): Update SSA form.
3438
3439 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
3440
3441         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3442         plugin capabilities.
3443         * configure: Regenerate.
3444
3445 2010-11-03  Xinliang David Li  <davidxl@google.com>
3446
3447         PR target/46200
3448         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3449         Adjust cbase if the use stmt is after iv update.
3450
3451 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3452
3453         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3454
3455 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3456
3457         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3458         comment.  Pass true to the last argument of output_stack_adjust.
3459
3460 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3461
3462         PR target/46295
3463         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3464         if 256bit AVX register is used.
3465
3466 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3467
3468         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3469         xsmindp/xsmaxdp on VSX for single precision min/max.
3470         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3471         (vsx_sminsf3): Ditto.
3472
3473 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3474
3475         * combine.c (try_combine): Fix formatting issues, improve comments and
3476         fix a pasto.
3477
3478 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3479
3480         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3481         of the result before building binary expressions.
3482
3483 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3484
3485         PR rtl-optimization/45865
3486         * Makefile.in (df-problems.o): Revert revision 164552.
3487         * basic-block.h (enum bb_flags): Likewise.
3488         * cfgcleanup.c (block_was_dirty): Likewise.
3489         (try_forward_edges): Likewise.
3490         (try_crossjump_bb): Likewise.
3491         (try_head_merge_bb): Likewise.
3492         (try_optimize_cfg): Likewise.
3493         (cleanup_cfg): Likewise.
3494         * df-core.c (df_set_bb_dirty): Likewise.
3495         * df-problems.c: Likewise.
3496         (df_simulate_find_uses): Likewise.
3497         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3498         (find_memory, find_memory_store): Likewise.
3499         (can_move_insns_across): Likewise.
3500         * df.h (can_move_insns_across): Likewise.
3501         * ifcvt.c (find_memory): Likewise.
3502         (dead_or_predicable): Likewise.
3503
3504 2010-11-03  Richard Guenther  <rguenther@suse.de>
3505
3506         PR middle-end/46288
3507         * predict.c (strip_predict_hints): Simply DCE builtin expect if
3508         the result is unused.
3509
3510 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3511
3512         PR tree-optimization/46009
3513         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3514         cond_if_else_store_replacement if bb1 and bb2 have the same
3515         single successor.
3516         (cond_store_replacement): Use gimple_assign_single_p, don't
3517         check if rhs is SSA_NAME or invariant.  Call release_defs for
3518         assign.
3519         (cond_if_else_store_replacement): New function.
3520
3521 2010-11-03  Richard Guenther  <rguenther@suse.de>
3522
3523         * opts.c (finish_options): Properly check for all WHOPR
3524         flags before complaining about -flto-partition.
3525
3526 2010-11-04  Alan Modra  <amodra@gmail.com>
3527
3528         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3529         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3530         TARGET_SECURE_PLT.
3531         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3532         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3533         on input, "r" on output.
3534
3535 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
3536
3537         Implemented -fobjc-std=objc1 flag.
3538         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3539         option.
3540         * doc/standards.texi (Standards): Updated the section on
3541         Objective-C; mention support for Objective-C 2.0 features and the
3542         new -fstd-objc=objc1 flag to disable them.
3543
3544 2010-11-03  Richard Guenther  <rguenther@suse.de>
3545
3546         PR middle-end/46241
3547         * dwarf2out.c (scope_die_for): Properly detect global scope.
3548
3549 2010-11-03  Richard Guenther  <rguenther@suse.de>
3550
3551         PR tree-optimization/46190
3552         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3553         Properly compute peel iterations.
3554
3555 2010-11-03  Richard Guenther  <rguenther@suse.de>
3556
3557         PR tree-optimization/46286
3558         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3559         re-allocated vector data.
3560
3561 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3562
3563         PR target/46285
3564         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3565         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3566         is completed.
3567
3568 2010-11-03  Richard Guenther  <rguenther@suse.de>
3569
3570         PR tree-optimization/46217
3571         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
3572         flag matches.
3573         (execute_update_addresses_taken): Likewise.
3574
3575 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3576
3577         PR bootstrap/44335
3578         * targhooks.c (targhook_words_big_endian): New function.
3579         (targhook_float_words_big_endian): Likewise.
3580         * targhooks.h (targhook_words_big_endian): Declare.
3581         (targhook_float_words_big_endian): Likewise.
3582         * target.def (words_big_endian, float_words_big_endian): New hooks.
3583
3584 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3585
3586         PR tree-optimization/46165
3587         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3588         a normal call into noreturn call.
3589
3590 2010-11-03  Richard Guenther  <rguenther@suse.de>
3591
3592         PR middle-end/46251
3593         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3594         not INDIRECT_REFs.
3595
3596 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3597
3598         PR tree-optimization/46107
3599         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3600         if cfg_hook_duplicate_loop_to_header_edge failed.
3601
3602 2010-11-03  Ian Lance Taylor  <iant@google.com>
3603
3604         PR lto/46273
3605         * config.gcc: Don't set lto_binary_reader.
3606         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3607         (Configuration): Mention --disable-lto.  Remove --with-libelf
3608         paragraph.
3609
3610 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3611
3612         PR debug/46252
3613         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3614         prev_real_insn.
3615         * gcse.c (insert_insn_end_basic_block): Likewise.
3616
3617         PR rtl-optimization/46034
3618         PR rtl-optimization/46212
3619         PR rtl-optimization/46248
3620         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3621         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3622         before i0dest -> i0src substitution and pass 1 instead of 0 as last
3623         argument to subst on i2pat.
3624
3625 2010-11-02  Ian Lance Taylor  <iant@google.com>
3626
3627         * configure.ac: Use AC_SYS_LARGEFILE.
3628         * configure: Rebuild.
3629         * config.in: Rebuild.
3630
3631 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3632
3633         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3634         fold_convert.
3635         * c-typeck.c (build_function_call_vec): Likewise.
3636         * cfgexpand.c (expand_debug_expr): Likewise.
3637         * cgraphunit.c (assemble_thunk): Likewise.
3638         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3639         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3640         (fold_binary_loc, fold_ternary_loc): Likewise.
3641         * gimple-fold.c (get_symbol_constant_value): Likewise.
3642         * gimple-low.c (lower_builtin_setjmp): Likewise.
3643         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3644         * gimplify.c (gimplify_init_constructor): Likewise.
3645         * lambda.h (build_linear_expr): Likewise.
3646         * omp-low.c (omp_reduction_init): Likewise.
3647         * tree-inline.c (remap_ssa_name): Likewise.
3648         * tree-object-size.c (compute_object_sizes): Likewise.
3649         * tree-sra.c (init_subtree_with_zero): Likewise.
3650         (sra_ipa_modify_assign): Likewise.
3651         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3652         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3653         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3654         (undistribute_ops_list): Likewise.
3655         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3656         * tree-vect-stmts.c (vectorizable_call): Likewise.
3657         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3658         (build_zero_cst): Handle more cases directly.  Update comment.
3659
3660 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3661
3662         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3663         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3664
3665         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3666         and call ix86_split_call_vzeroupper instead of
3667         ix86_split_call_pop_vzeroupper.
3668         (*call_pop_1_vzeroupper): Likewise.
3669         (*sibcall_pop_1_vzeroupper): Likewise.
3670         (*call_value_pop_0_vzeroupper): Likewise.
3671         (*call_value_pop_1_vzeroupper): Likewise.
3672         (*sibcall_value_pop_1_vzeroupper): Likewise.
3673
3674 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3675
3676         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3677
3678 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
3679
3680         * basic-block.h (insert_insn_end_bb_new): Delete.
3681         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3682
3683 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
3684             H.J. Lu  <hongjiu.lu@intel.com>
3685
3686         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3687         (ix86_split_call_pop_vzeroupper): Likewise.
3688
3689         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3690         (ix86_expand_call): Conditionally decorate calls with
3691         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3692         (ix86_split_call_vzeroupper): New.
3693         (ix86_split_call_pop_vzeroupper): Likewise.
3694
3695         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3696         (*call_pop_0_vzeroupper): New insn_and_split pattern.
3697         (*call_pop_1_vzeroupper): Likewise.
3698         (*sibcall_pop_1_vzeroupper): Likewise.
3699         (*call_0_vzeroupper): Likewise.
3700         (*call_1_vzeroupper): Likewise.
3701         (*sibcall_1_vzeroupper): Likewise.
3702         (*call_1_rex64_vzeroupper): Likewise.
3703         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3704         (*call_1_rex64_large_vzeroupper): Likewise.
3705         (*sibcall_1_rex64_vzeroupper): Likewise.
3706         (*call_value_pop_0_vzeroupper): Likewise.
3707         (*call_value_pop_1_vzeroupper): Likewise.
3708         (*sibcall_value_pop_1_vzeroupper): Likewise.
3709         (*call_value_0_vzeroupper): Likewise.
3710         (*call_value_0_rex64_vzeroupper): Likewise.
3711         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3712         (*call_value_1_vzeroupper): Likewise.
3713         (*sibcall_value_1_vzeroupper): Likewise.
3714         (*call_value_1_rex64_vzeroupper): Likewise.
3715         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3716         (*call_value_1_rex64_large_vzeroupper): Likewise.
3717         (*sibcall_value_1_rex64_vzeroupper): Likewise.
3718
3719 2010-11-02  Ian Lance Taylor  <iant@google.com>
3720
3721         PR lto/46273
3722         * config.gcc: Revert last patch: set lto_binary_reader.
3723
3724 2010-11-02  Richard Guenther  <rguenther@suse.de>
3725
3726         PR tree-optimization/46149
3727         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3728         non-indirect MEM_REF variants.
3729
3730 2010-11-02  Richard Guenther  <rguenther@suse.de>
3731
3732         PR tree-optimization/46216
3733         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3734         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3735
3736 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3737
3738         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3739         (*-*-osf*): Likewise.
3740         * configure: Regenerate.
3741
3742 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3743
3744         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3745         for Intel Core 2 and Core i7.
3746
3747 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
3748
3749         Model decoder of Core 2/i7 for multipass scheduling.
3750
3751         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3752         New type to hold target-specific data for multipass scheduling.
3753         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3754         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3755         Core 2/i7.
3756         (core2i7_secondary_decoder_max_insn_size,)
3757         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3758         New static variables.
3759         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3760         ([_]ix86_first_cycle_multipass_data): New static variable.
3761         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3762         Implement targetm.sched hooks.
3763         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3764         of ...
3765         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3766         Implement new targetm.sched hooks.
3767         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3768         targetm.sched hook to install multipass scheduling hooks on demand.
3769
3770         * doc/tm.texi.in: Document new targetm.sched hooks.
3771         * doc/tm.texi: Regenerate.
3772
3773         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3774         (first_cycle_multipass_data_t): New typedef.
3775         (struct choice_entry: target_data): New field.
3776         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
3777         to allow target model restrictions not represented in DFA.
3778         (choose_ready, schedule_block): Update.
3779         (sched_extend_ready_list, sched_finish_ready_list): Call new target
3780         hooks to initialize target-specific data for multipass scheduling.
3781         * sched-int.h (max_issue): Update declaration.
3782         * sel-sched.c (choose_best_insn): Update.
3783         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3784         (first_cycle_multipass_{init, fini}): Define and document new
3785         targetm.sched hooks.
3786
3787 2010-11-02  Richard Guenther  <rguenther@suse.de>
3788
3789         PR tree-optimization/46184
3790         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3791         input vector type from the reduction operand as well.
3792
3793 2010-11-02  Richard Guenther  <rguenther@suse.de>
3794
3795         PR tree-optimization/46177
3796         * tree-loop-distribution.c (prop_phis): Use
3797         mark_virtual_phi_result_for_renaming.
3798
3799 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3800
3801         PR middle-end/46120
3802         * tree.c (get_binfo_at_offset): Bail out on artificial
3803         fields.  Identify primary bases according to their offsets.
3804
3805 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3806
3807         PR tree-optimization/45875
3808         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3809         (gimple_get_relevant_ref_binfo): Detect primary bases according to
3810         their field offset.
3811
3812 2010-11-02  Ian Lance Taylor  <iant@google.com>
3813
3814         * doc/install.texi (Configuration): Note in two places that Java
3815         is not enabled by default.
3816
3817 2010-11-02  Ian Lance Taylor  <iant@google.com>
3818
3819         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3820         (Configuration): Mention --disable-lto.  Remove --with-libelf
3821         paragraph.
3822
3823 2010-11-02  Ian Lance Taylor  <iant@google.com>
3824
3825         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
3826         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
3827         LIBELFINC.  Remove HAVE_libelf.
3828         * config.gcc: Don't set lto_binary_reader.
3829         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3830         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3831         (LIBS): Remove $(LIBELFLIBS).
3832         (INCLUDES): Remove $(LIBELFINC).
3833         * configure: Rebuild.
3834         * config.in: Rebuild.
3835
3836 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3837
3838         * config/microblaze/microblaze-protos.h (function_arg): Delete.
3839         (function_arg_advance): Delete.
3840         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3841         (FUNCTION_ARG): Delete.
3842         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
3843         (microblaze_function_arg_advance): ...this.  Make static.  Take a
3844         const_tree and a bool.
3845         (function-arg): Rename to...
3846         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
3847         and a bool.
3848         (microblaze_expand_prologue): Call targetm.calls.function_arg and
3849         targetm.calls.function_arg_advance.
3850         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3851
3852 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3853
3854         Merge from FSF "apple/trunk" branch.
3855
3856         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
3857         * config/darwin.opt: .. to here.
3858         (matt-stubs): New option.
3859         * config/i386/darwin.opt: Delete.
3860         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
3861         (MACHO_DYNAMIC_NO_PIC_P): New.
3862         (MACHOPIC_INDIRECT): New.
3863         (MACHOPIC_PURE): New.
3864         * config/i386/darwin.h (DARWIN_X86) Define to 1.
3865         (MACHOPIC_ATT_STUB): New.
3866         (CC1_SPEC): Do not remove mdynamic-no-pic.
3867         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3868         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3869         (FUNCTION_PROFILER): Correct over-length line.
3870         (SUBTARGET_OVERRIDE_OPTIONS): New.
3871         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3872         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
3873         (legitimate_constant_p): Handle mdynamic-no-pic.
3874         (ix86_legitimate_address_p): Likewise.
3875         (ix86_legitimize_address): Likewise.
3876         (ix86_expand_move): Likewise.
3877         (machopic_output_stub): Update for ATT-style stubs and
3878         mdynamic-no-pic.
3879         * config/darwin-protos.h (machopic_symbol_defined_p): New.
3880         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
3881         TARGET_DYNAMIC_NO_PIC: Remove.
3882         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3883         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3884         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
3885         Remove handling of mdynamic-no-pic.
3886         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
3887         Define if required.
3888         (machopic_symbol_defined_p): Do not try to use current_function_decl
3889         when generating _get_pc thunks within stubs.
3890         (machopic_indirect_data_reference): Rework for direct conditionals
3891         rather than #ifdefs, add x86 mdynamic-no-pic
3892         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
3893         defined value.
3894         (darwin_override_options): Handle mdynamic-no-pic here.
3895         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
3896         (machopic_lazy_symbol_ptr3_section): New.
3897         (machopic_picsymbol_stub2_section): New.
3898         (machopic_picsymbol_stub3_section): New.
3899         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
3900         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3901         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3902         Moved common definition from x86 and rs6000.
3903         (MACHO_DYNAMIC_NO_PIC_P): Override value.
3904         (MACHOPIC_INDIRECT): Likewise.
3905         (MACHOPIC_PURE): Likewise.
3906         * config.gcc (x86-darwin-*): Remove darwin.opt.
3907
3908 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
3909
3910         PR debug/46255
3911         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
3912         instead of gsi_last_bb.
3913
3914 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3915             Maxim Kuvyrkov  <maxim@codesourcery.com>
3916
3917         * config/i386/i386.c (cpu_names): Add "corei7".
3918         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3919
3920 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3921             Maxim Kuvyrkov  <maxim@codesourcery.com>
3922
3923         Tune alignment for Intel Core i7
3924
3925         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3926         (enum processor_type): Update comment.  Add entries for Core i7.
3927         * config/i386-c.c (ix86_target_macros_internal): Update.
3928         * config/i386.c (m_COREI7{_32,_64}): New macros.
3929         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3930         (processor_target_table): Tune alignment for Core i7.
3931         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3932
3933         * doc/invoke.texi: Document "corei7" option value.
3934
3935 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3936             Maxim Kuvyrkov  <maxim@codesourcery.com>
3937             H.J. Lu  <hjl.tools@gmail.com>
3938
3939         Basic support for Intel Core i7
3940
3941         * i386.c (ix86_option_override_internal): Add entry for corei7, use
3942         generic tuning.  Use generic32 when compiling for 32-bit ABI.
3943
3944 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3945
3946         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
3947         sections and call darwin_asm_dwarf_section() to handle them.
3948         (darwin_asm_dwarf_section): New.
3949         (darwin_file_start): Remove code emitting dwarf section symbols.
3950
3951 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
3952
3953         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
3954         explicitly disable stack protection when building libgcc.
3955         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
3956
3957 2010-11-01  Jason Merrill  <jason@redhat.com>
3958
3959         * fold-const.c (fold_indirect_ref_1): Handle folding
3960         POINTER_PLUS_EXPR to ARRAY_REF.
3961
3962 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3963
3964         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
3965         (sh_delegitimize_address): New function.
3966
3967 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3968
3969         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
3970         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
3971         (CC1_SPEC): Don't handle -target.
3972         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
3973         options.
3974         * config/darwin.opt (Zallowable_client, Zbundle_loader,
3975         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
3976         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
3977         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
3978         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
3979         Zweak_reference_mismatches, client_name, compatibility_version,
3980         current_version, dylinker_install_name, pagezero_size,
3981         read_only_relocs, seg1addr, segs_read_only_addr,
3982         segs_read_write_addr, sub_library, sub_umbrella): New.
3983         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
3984         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
3985         * config/freebsd.opt: New.
3986         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.