OSDN Git Service

* flag-types.h (struct visibility_flags): Don't declare here.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2
3         * flag-types.h (struct visibility_flags): Don't declare here.
4         * flags.h (strip_off_ending, fast_math_flags_set_p,
5         fast_math_flags_struct_set_p): Declare here.
6         (visibility_options): Don't declare here.
7         * opts-common.c (option_enabled, get_option_state): Move from
8         opts.c.
9         * opts-global.c: Include diagnostic.h instead of
10         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
11         and toplev.h.
12         (const_char_p, ignored_options, in_fnames, num_in_fnames,
13         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
14         print_ignored_options, unknown_option_callback,
15         post_handling_callback, lang_handle_option, add_input_filename,
16         read_cmdline_options, initial_lang_mask, init_options_once,
17         decode_cmdline_options_to_array_default_mask,
18         set_default_handlers, decode_options): Move from opts.c.
19         (print_ignored_options): Use warning_at instead of saving and
20         restoring input_location.
21         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
22         instead of expr.h.  Don't include langhooks.h, except.h or
23         lto-streamer.h.  Add more comments on includes.
24         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
25         toplev.c.
26         (visibility_options): Move to c-family/c-common.c.
27         (const_char_p, ignored_options, in_fnames, num_in_fnames,
28         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
29         print_ignored_options, unknown_option_callback,
30         post_handling_callback, lang_handle_option, add_input_filename,
31         read_cmdline_options, initial_lang_mask, init_options_once,
32         decode_cmdline_options_to_array_default_mask,
33         set_default_handlers, decode_options): Move to opts-global.c.
34         (target_handle_option, default_options_optimization,
35         finish_options, common_handle_option): Remove static.
36         (option_enabled, get_option_state): Move to opts-common.c.
37         * opts.h (common_handle_option, target_handle_option,
38         finish_options, default_options_optimization): Declare.
39         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
40         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
41         opts.c.
42         * toplev.h (strip_off_ending, decode_d_option,
43         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
44         declare here.
45         * Makefile.in (opts.o, opts-global.o): Update dependencies.
46
47 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
48
49         PR driver/42690
50         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
51         options, replace by call of pass-through-libs spec function to process
52         link_gcc_c_sequence spec.
53         (lto_libgcc_spec): Delete variable.
54         (static_specs[]): Remove related entry.
55         (static_spec_functions[]): Add new entry for pass-through-libs.
56         (main): Don't generate deleted lto_libgcc_spec.
57         (pass_through_libs_spec_func): New function to implement the new
58         pass-through-libs spec function.
59         * doc/invoke.texi (pass-through-libs): Document new spec function.
60
61 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
62
63         * doc/options.texi (Warning, Optimization): Document.
64
65 2010-11-23  Jan Hubicka  <jh@suse.cz>
66
67         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
68         (tree_decl_with_vis): Add implicit_section_name_p.
69         * targhooks.h (default_function_section): Declare.
70         * target.def (function_section): New hook.
71         * defaults.h (HOT_TEXT_SECTION_NAME,
72         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
73         * predict.c (choose_function_section): Remove.
74         (estimate_bb_frequencies): Do not use choose_function_section.
75         * coretypes.h (enum node_frequency): Move here from cgraph.h
76         * cgraph.h (enum node_frequency): Remove.
77         * varasm.c (initialize_cold_section_name, unlikely_text_section,
78         unlikely_text_section_p): Remove.
79         (named_subsection_entry): New structure.
80         (get_text_section): New function.
81         (default_function_section): New function.
82         (function_section_1): Break out from ...; handle profile info.
83         (function_section): ... here.
84         (unlikely_text_section): Remove.
85         (unlikely_text_section_p): Use function_section_1.
86         (assemble_start_function): Do not initialize cold section.
87         (default_section_type_flags): Do not special case cold subsection.
88         (switch_to_section): Likewise.
89         * output.h (get_text_section): Define.
90         * config/i386/winnt.c: Do not special case cold section.
91         * config/darwin-protos.h (darwin_function_section): Declare.
92         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
93         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
94         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
95         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
96         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
97         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
98         * config/darwin.c (machopic_select_section): Use
99         darwin_function_section.
100         (darwin_function_section): New function.
101         * config/darwin.h (HOT_TEXT_SECTION_NAME,
102         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
103         (TARGET_ASM_FUNCTION_SECTION): Define.
104         * system.h (HOT_TEXT_SECTION_NAME,
105         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
106
107 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
108
109         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
110         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
111
112 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
113
114         PR middle-end/46499
115         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
116         following unconditional jumps.
117
118 2010-11-23  Richard Guenther  <rguenther@suse.de>
119
120         * doc/md.texi (386 constraints): Clarify A constraint documentation.
121
122 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
123             Jeremie Salvucci  <jeremie.salvucci@free.fr>
124
125         * gengtype.c (enum typekind, struct options)
126         (struct nested_ptr_data, struct pair, NUM_PARAM)
127         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
128         Move to gengtype.h.
129         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
130         Remove static, add zero state_number.
131         (typedefs, structures, param_structs, variables): Remove static.
132         (create_option): Remove.
133         (create_string_option, create_type_option, create_nested_option):
134         New functions.
135         (create_nested_ptr_option): Use create_nested_option.
136         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
137         new create*option functions.
138         (process_gc_options): Adjust for discriminated option.
139         (output_mangled_typename): Handle TYPE_NONE.
140         (walk_type): Test option kinds.
141         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
142         (write_func_for_structure, write_type, write_local, write_root)
143         (write_roots, note_def_vec, dump_options): Adjust for
144         discriminated option.
145
146         * gengtype.h
147         (typedefs, structures, param_structs, variables, enum typekind):
148         Move from gengtype.c
149         (enum option_kind): New discriminating enumeration.
150         (struct options): Becomes discriminated.
151         (struct nested_ptr_data): Nove from gengtype.c
152         (create_string_option, create_type_option, create_nested_option)
153         (create_nested_ptr_option): New functions
154         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
155         (UNION_OR_STRUCT_P): Move from gengtype.c
156
157         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
158         discriminated options.
159
160 2010-11-23  Richard Guenther  <rguenther@suse.de>
161
162         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
163         twice.  Avoid re-allocating the ops vector all the time.
164
165 2010-11-23  Richard Guenther  <rguenther@suse.de>
166
167         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
168         is_gimple_min_invariant, group tree code checks to allow
169         combining them.
170         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
171         of is_gimple_reg.
172
173 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
174
175         * config.gcc (sparc*-*-*): Reorder.
176
177 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
178
179         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
180         Remove ENABLE_CHECKING around DBGPRINTF.
181
182 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
183
184         * common.opt (exit_after_options, write_symbols, debug_info_level,
185         use_gnu_debug_info_extensions): New Variable entries.
186         (fprofile-dir=): Use Var.
187         * flag-types.h (enum debug_info_level): Rename to enum
188         debug_info_levels.
189         * flags.h (write_symbols, debug_info_level,
190         use_gnu_debug_info_extensions): Remove declarations.
191         * opts.c (exit_after_options, write_symbols, debug_info_level):
192         Remove.
193         (set_struct_debug_option): Make static variables const.
194         (use_gnu_debug_info_extensions): Remove.
195         (set_debug_level, print_filtered_help, print_specific_help,
196         fast_math_flags_set_p): Take gcc_options parameters and use them
197         in place of global variables.
198         (print_filtered_help): Make new_help non-static.
199         (print_specific_help): Update call to print_filtered_help.
200         (common_handle_option): Update calls to print_specific_help.  Use
201         gcc_options structure for more settings.  Make --help table
202         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
203         set_debug_level.
204         * toplev.c (profile_data_prefix): Remove.
205         * toplev.h (profile_data_prefix, exit_after_options): Remove
206         declarations.
207         (fast_math_flags_set_p): Update prototype.
208         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
209         Update call to fast_math_flags_set_p.
210
211 2010-11-22  Richard Henderson  <rth@redhat.com>
212
213         PR target/46434
214         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
215         return the address register extracted.
216         (crx_decompose_address): Update the extracted address register.
217
218 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
219
220         PR driver/43335
221         * gcc.c (main): Don't crash when lto-wrapper program is not found.
222
223 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
224
225         PR target/46608
226         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
227         * config/picochip/picochip-protos.h: Don't include "target.h" .
228         (picochip_secondary_reload): Don't declare.
229
230         PR target/46613
231         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
232         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
233         static.
234
235 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
236
237         PR bootstrap/46609
238         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
239         (source_dot_c_frul): Likewise.
240
241 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
242
243         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
244
245 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
246
247         PR bootstrap/44970
248         * Makefile.in (fwprop.o) Add sparseset.h.
249         * fwprop.c: Include sparseset.h
250         (struct find_occurrence_data, find_occurrence_callback,
251         find_occurrence): Remove.
252         (active_defs, active_defs_check, register_active_defs,
253         update_df_init, update_uses): New.
254         (update_df): Rewrite.
255         (try_fwprop_subst, forward_propagate_asm): Add calls to
256         update_df_init and update_df.
257         (fwprop_init): Allocate active_defs and active_defs_check.
258         (fwprop_done): Free them.
259         (fwprop, fwprop_addr): Adjust comments.
260         * df.h (df_uses_create): Declare.
261         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
262         (df_ref_create): Return result of df_ref_create_structure directly.
263         (df_ref_create_structure): Call df_install_ref_incremental when
264         no collection_rec is passed.
265         (df_ref_record): Do not create multiword hard reg info when no
266         collection_rec is passed.
267         (df_uses_create): New. 
268
269 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
270
271         PR middle-end/43057
272         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
273         setting location.
274
275 2010-11-22  Richard Guenther  <rguenther@suse.de>
276
277         * gimple-fold.c (maybe_fold_reference): When canonicalizing
278         MEM_REFs, preserve volatileness.
279         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
280         addresses.
281
282 2010-11-22  Richard Guenther  <rguenther@suse.de>
283
284         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
285
286 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
287
288         PR rtl-optimization/45652
289         * alias.c (get_reg_base_value): New.
290         * rtl.h (get_reg_base_value): Add prototype.
291         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
292         non-null REG_BASE_VALUE for renaming.
293
294 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
295             Basile Starynkevitch  <basile@starynkevitch.net>
296
297         * gengtype.c: Include xregex.h and obstack.h
298         Added comments about role of get_output_file_with_visibility and
299         our regexpr machinery.
300         (frul_actionrout_t, struct file_rule_st): New.
301         (hader_dot_h_frul, source_dot_c_frul): New functions.
302         (NULL_REGEX,  NULL_FRULACT): New.
303         (files_rules): New.
304         (matching_file_name_substitute): New function.
305         (get_output_file_with_visibility): Updated comments and rewritten
306         to use the new files_rules machinery.
307
308         * Makefile.in (XREGEX_H): Added variable.
309         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
310
311 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
312
313         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
314
315 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
316
317         * target.def (conditional_register_usage): Define.
318         * reginfo.c (init_reg_sets_1): Call
319         targetm.conditional_register_usage.
320         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
321         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
322         for making it a hook.
323         * doc/tm.texi: Regenerate.
324         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
325         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
326         New function.
327         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
328         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
329         * config/arc/arc.c (arc_conditional_register_usage): ...here.
330         New function.
331         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
332         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
333         * config/arm/arm.c (arm_conditional_register_usage): ...here.
334         New function.
335         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
336         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
337         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
338         * config/bfin/bfin.c (conditional_register_usage): Move code into...
339         (bfin_conditional_register_usage): ...here.  New function.
340         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
341         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
342         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
343         * config/cris/cris.c (cris_conditional_register_usage): Make static.
344         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
345         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
346         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
347         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
348         * config/frv/frv.c (frv_conditional_register_usage): Make static.
349         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
350         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
351         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
352         New function.
353         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
354         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
355         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
356         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
357         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
358         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
359         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
360         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
361         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
362         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
363         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
364         New function.
365         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
366         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
367         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
368         Delete.
369         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
370         static.
371         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
372         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
373         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
374         * config/mep/mep.c (mep_conditional_register_usage): Make static.
375         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
376         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
377         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
378         * config/mips/mips.c (mips_conditional_register_usage): Make static.
379         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
380         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
381         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
382         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
383         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
384         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
385         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
386         ...here.  New function.
387         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
388         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
389         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
390         * config/pa/pa.c (pa_conditional_register_usage): ...here.
391         New function.
392         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
393         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
394         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
395         New function.
396         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
397         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
398         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
399         Delete.
400         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
401         static.
402         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
403         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
404         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
405         * config/rx/rx.c (rx_conditional_register_usage): Make static.
406         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
407         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
408         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
409         * config/s390/s390.c (s390_conditional_register_usage): Make static.
410         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
411         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
412         * config/score/score.c (score_conditional_register_usage): ...here.
413         New function.
414         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
415         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
416         * config/sh/sh.c (sh_conditional_register_usage): ...here.
417         New function.
418         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
419         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
420         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
421         New function.
422         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
423         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
424         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
425         * config/spu/spu.c (spu_conditional_register_usage): Make static.
426         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
427         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
428         * config/v850/v850.c (v850_conditional_register_usage): ...here.
429         New function.
430         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
431
432 2010-11-21  Jan Hubicka  <jh@suse.cz>
433             Dominique d'Humieres <dominiq@lps.ens.ft>
434
435         PR target/46510
436         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
437         finalize external decls.
438
439 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
440
441         * system.h (strerror): Poison.
442
443 2010-11-21  Richard Henderson  <rth@redhat.com>
444
445         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
446         for infq/huge_valq.
447
448 2010-11-21  Richard Henderson  <rth@redhat.com>
449
450         PR rtl-optimization/46571
451         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
452         (compute_hash_table_work): Use NONDEBUG_INSN_P.
453
454 2010-11-21  Paul Koning  <ni1d@arrl.net>
455
456         * config/mips/pdp11.md (negsi2): Fix wrong code.
457
458 2010-11-21  Paul Koning  <ni1d@arrl.net>
459
460         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
461         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
462
463 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
464
465         * config/mips/mips.c (machine_function): Rename load_label_length to
466         load_label_num_insns.
467         (mips_load_label_length): Rename to...
468         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
469         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
470
471 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
472
473         PR target/46533
474         * config/alpha/predicates.md (direct_call_operand): Return false
475         for !TARGET_SMALL_TEXT targets.
476
477 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
478
479         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
480         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
481         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
482         * doc/tm.texi: Regenerate.
483         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
484         HANDLE_PRAGMA_WEAK): Poison.
485         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
486         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
487         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
488         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
489         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
490         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
491         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
492         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
493         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
494         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
495         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
496         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
497         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
498         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
499         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
500         (HANDLE_PRAGMA_WEAK): Don't undefine.
501         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
502         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
503         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
504         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
505         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
506         (HANDLE_PRAGMA_WEAK): Don't undefine.
507         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
508         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
509         (HANDLE_PRAGMA_PACK): Don't undefine.
510         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
511         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
512         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
513         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
514         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
515         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
516         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
517         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
518         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
519         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
520         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
521         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
522         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
523         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
524         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
525         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
526         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
527
528 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
529
530         PR target/31100
531         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
532         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
533         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
534
535 2010-11-20  Jan Hubicka  <jh@suse.cz>
536
537         * cgraph.c (ld_plugin_symbol_resolution_names): New.
538         (dump_cgraph_node): Dump resolution.
539         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
540         (cgraph_comdat_can_be_unshared_p): Dclare.
541         * lto-streamer-out.c (produce_symtab): Use
542         cgraph_comdat_can_be_unshared_p.
543         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
544         (cgraph_comdat_can_be_unshared_p): New function based on logic
545         in cgraph_externally_visible_p.
546         (cgraph_externally_visible_p): Use it.
547         (varpool_externally_visible_p): Virtual tables can be unshared.
548         * varpool.c (dump_varpool_node): Dump resolution.
549
550 2010-11-20  Jan Hubicka  <jh@suse.cz>
551
552         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
553
554 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
555
556         PR other/46202
557         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
558         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
559         shell quoting.
560         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
561         (install-strip): New target.
562         (STRIPPROG): New variable, exported if STRIP is set.
563         * doc/install.texi (Final install): Minor markup and code style
564         fixes.  Document install-strip target.
565
566 2010-11-20  Paul Koning  <ni1d@arrl.net>
567
568         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
569         pdp11_regno_reg_class): New functions.
570         * config/pdp11/pdp11.md (define_constants): Add register numbers.
571         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
572         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
573         functions.
574         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
575         frame pointer and argument pointer pseudo-registers.
576         (ARG_POINTER_REGNUM): Define.
577         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
578         argument pointer.
579         (FIRST_PARM_OFFSET): Update for argument pointer.
580         (INITIAL_FRAME_POINTER_OFFSET): Delete.
581         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
582         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
583         frame pointer and argument pointer.
584
585 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
586
587         PR debug/46561
588         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
589         when looking for immediate uses.
590
591         PR tree-optimization/45830
592         * stmt.c (expand_switch_using_bit_tests_p): New function.
593         (expand_case): Use it.
594         * tree.h (expand_switch_using_bit_tests_p): New prototype.
595         * tree-switch-conversion.c (struct switch_conv_info): Add
596         bit_test_uniq, bit_test_count and bit_test_bb fields.
597         (check_range): Fix a comment.
598         (check_process_case): Compute bit_test_uniq and bit_test_count.
599         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
600         allocation.
601         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
602         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
603         (array_value_type): New function.
604         (build_one_array): Use it, if it returned different type,
605         fold_convert all constructor fields and convert back to the
606         wider type in the generated code.
607         (process_switch): Initialize bit_test_uniq, bit_test_count and
608         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
609         returned true.
610
611 2010-11-19  Michael Matz  <matz@suse.de>
612
613         PR tree-optimization/46077
614         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
615
616 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
617
618         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
619         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
620         function.
621         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
622
623 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
624
625         * mode-switching.c (optimize_mode_switching): Use
626         FOR_BB_INSNS instead of open-coded loop.
627         * cfgrtl.c (redirect_branch_edge): Ditto.
628
629 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
630
631         PR target/46436
632         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
633         to accomodate 32 bit HOST_WIDE_INT.
634         (m68hc11_emit_logical): Remove unused variable insn.
635         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
636         this_insn_uses_iy before use.
637
638         PR target/46434
639         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
640
641 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
642
643         PR c/46547
644         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
645         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
646
647 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
648
649         * doc/extend.texi (Function attributes): Document PowerPC target
650         attributes that are supported.
651         (Pragmas): Document that PowerPC now supports target pragmas.
652
653         * doc/options.texi (TargetVariable): Document TargetVariable,
654         HeaderInclude, and SourceInclude.
655
656         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
657         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
658         -ffp-contract=off.
659
660         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
661         SourceInclude directives.  Fix a cut+paste error with target save
662         enum variables.  Sort enums in the structures after ints and
663         before shorts.
664         * opth-gen.awk: Ditto.
665
666         * configure.ac: Add support for HeaderInclude and SourceInclude option
667         directives to add the appropriate files to the dependency lists.
668         * configure: Regenerate.
669         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
670         (OPTIONS_C_EXTRA): New variable for SourceInclude.
671         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
672         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
673         (gcc-options.o): Ditto.
674         * opt-include.awk: New awk script to handle HeaderInclude and
675         TargetInclude.
676
677         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
678         gets saved in the target options.
679         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
680         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
681         (-mprototype): Ditto.
682         (-mbit-word): ditto.
683         (-mregnames): Ditto.
684         (-msecure-plt): Ditto.
685         (-mbss-plt): Ditto.
686         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
687         (-mpowerpc-gfxopt): Ditto.
688         (-mmfcrf): Ditto.
689         (-mpopcntb): Ditto.
690         (-mfprnd): Ditto.
691         (-mcmpb): Ditto.
692         (-mmmfpgpr): Ditto.
693         (-maltivec): Ditto.
694         (-mhard-dfp): Ditto.
695         (-mmulhw): Ditto.
696         (-mdlmzb): Ditto.
697         (-mmultiple): Ditto.
698         (-mstring): Ditto.
699         (-mpopcntd): Ditto.
700         (-mfriz): Ditto.
701         (-mvsx): Ditto.
702         (-mno-update): Ditto.
703         (-mavoid-indexed-addresses): Ditto.
704         (-mtls-markers): Ditto.
705         (-msched-epilog): Ditto.
706         (-msched-prolog): Ditto.
707         (-maix-struct-return): Ditto.
708         (-msvr4-struct-return): Ditto.
709         (-mxl-compat): Ditto.
710         (-mrecip-precision): Ditto.
711         (-mfp-in-toc): Ditto.
712         (-msum-in-toc): Ditto.
713         (-mvrsave): Ditto.
714         (-mblock-move-inline-limit=): Ditto.
715         (-misel): Ditto.
716         (-mpaired): Ditto.
717         (-mlongcall): Ditto.
718         (-mgen-cell-microcode): Ditto.
719         (-mwarn-cell-microcode): Ditto.
720         (-mwarn-altivec-long): Ditto.
721         (-mprioritize-restricted-insns=): Ditto.
722         (-msingle-float): Ditto.
723         (-mdouble-float): Ditto.
724         (-msimple-fpu): Ditto.
725         (-mxilinx-fpu): Ditto.
726         * config/rs6000/aix64.opt (-mpe): Ditto.
727
728         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
729         (rs6000_cpu): Move variable to be a target variable.  Rename
730         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
731         -mdebug=<xxx> variables into a single int.
732         (rs6000_always_hint): Ditto.
733         (rs6000_sched_groups): Ditto.
734         (rs6000_align_branch_targets): Ditto.
735         (rs6000_sched_costly_dep): Ditto.
736         (rs6000_sched_insert_nops): Ditto.
737         (rs6000_long_double_type_size): Ditto.
738         (rs6000_ieeequad): Ditto.
739         (rs6000_altivec_abi): Ditto.
740         (rs6000_spe): Ditto.
741         (rs6000_spe_abi): Ditto.
742         (rs6000_float_gprs): Ditto.
743         (rs6000_darwin64_abi): Ditto.
744         (can_override_loop_align): Ditto.
745         (rs6000_sdata): Ditto.
746         (rs6000_tls_size): Ditto.
747         (rs6000_current_abi): Ditto.
748         (rs6000_traceback): Ditto.
749         (rs6000_alignment_flags): Ditto.
750         (rs6000_current_cmodel): Ditto.
751         (rs6000_recip_control): Ditto.
752         (rs6000_cpu_index): Ditto.
753         (rs6000_tune_index): Ditto.
754         (rs6000_debug): Ditto.
755         (rs6000_target_flags_explict): Ditto.
756
757         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
758         declaration.
759
760         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
761         cmodel.  Change all uses.
762
763         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
764         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
765         Rename cmodel to rs6000_current_cmodel.
766         (rs6000_sched_groups): Ditto.
767         (rs6000_align_branch_targets): Ditto.
768         (rs6000_sched_costly_dep): Ditto.
769         (rs6000_sched_insert_nops): Ditto.
770         (rs6000_long_double_type_size): Ditto.
771         (rs6000_ieeequad): Ditto.
772         (rs6000_altivec_abi): Ditto.
773         (rs6000_spe): Ditto.
774         (rs6000_spe_abi): Ditto.
775         (rs6000_float_gprs): Ditto.
776         (rs6000_darwin64_abi): Ditto.
777         (can_override_loop_align): Ditto.
778         (rs6000_sdata): Ditto.
779         (rs6000_tls_size): Ditto.
780         (rs6000_current_abi): Ditto.
781         (rs6000_traceback): Ditto.
782         (rs6000_alignment_flags): Ditto.
783         (rs6000_current_cmodel): Ditto.
784         (rs6000_recip_control): Ditto.
785         (rs6000_cpu_index): Ditto.
786         (rs6000_tune_index): Ditto.
787         (rs6000_debug): Ditto.
788         (rs6000_target_flags_explict): Ditto.
789         (rs6000_sched_insert_nops_str): Make static.
790         (rs6000_sched_costly_dep_str): Ditto.
791         (rs6000_recip_name): Ditto.
792         (rs6000_abi_name): Ditto.
793         (rs6000_sdata_name): Ditto.
794         (enum rs6000_traceback_name): Move to rs6000-opts.h.
795         (rs6000_parse_tls_size_option): Delete.
796         (rs6000_valid_attribute_p): New function for target attributes and
797         pragmas.
798         (rs6000_function_specific_save): Ditto.
799         (rs6000_function_specific_restore): Ditto.
800         (rs6000_function_specific_print): Ditto.
801         (rs6000_can_inline_p): Ditto.
802         (rs6000_set_current_function): Ditto.
803         (rs6000_inner_target_options): Ditto.
804         (rs6000_debug_target_options): Ditto.
805         (rs6000_pragma_target_parse): Ditto.
806         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
807         attributes and pragmas.
808         (TARGET_OPTION_SAVE): Ditto.
809         (TARGET_OPTION_RESTORE): Ditto.
810         (TARGET_OPTION_PRINT): Ditto.
811         (TARGET_CAN_INLINE_P): Ditto.
812         (TARGET_SET_CURRENT_FUNCTION): Ditto.
813         (POWER_MASKS): Move to file level scope from the
814         rs6000_option_override_internal function.
815         (POWERPC_MASKS): Ditto.
816         (ISA_*_MASKS): Ditto.
817         (struct rs6000_ptt): Ditto.
818         (processor_target_table): Ditto.
819         (rs6000_cpu_name_lookup): Map cpu name to an index in
820         processor_target_table.
821         (rs6000_debug_reg_global): Print more information on processor
822         options for -mdebug=reg.
823         (rs6000_init_hard_regno_mode_ok): Add support for target
824         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
825         Allow -mdebug=val1,val2.  Rename cmodel variable.
826         (rs6000_option_override_internal): Ditto.
827         (rs6000_option_override): Ditto.
828         (rs6000_handle_option): Ditto.
829         (rs6000_conditional_register_usage): Add debug trace message.
830         (struct rs6000_opt_mask): New for target attribute/pragma support.
831         (rs6000_opt_masks): Ditto.
832         (struct rs6000_opt_var): Ditto.
833         (rs6000_opt_vars): Ditto.
834         (rs6000_previous_function): Ditto.
835
836         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
837         wasn't already included.
838         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
839         (enum processor_type): Ditto.
840         (rs6000_cpu): Ditto.
841         (enum fpu_type_t): Ditto.
842         (fpu_type): Ditto.
843         (enum rs6000_dependence_cost): Ditto.
844         (enum rs6000_nop_insertion): Ditto.
845         (enum group_termination): Ditto.
846         (rs6000_long_double_type_size): Ditto.
847         (rs6000_ieeequad): Ditto.
848         (rs6000_altivec_abi): Ditto.
849         (rs6000_spe_abi): Ditto.
850         (rs6000_spe): Ditto.
851         (rs6000_float_gprs): Ditto.
852         (rs6000_alignment_flags): Ditto.
853         (rs6000_sched_insert_nops): Ditto.
854         (enum rs6000_vector): Ditto.
855         (enum rs6000_abi): Ditto.
856         (rs6000_current_opt): Ditto.
857         (rs6000_debug_*): Delete.
858         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
859         (TARGET_DEBUG*): Ditto.
860
861         * config/rs6000/rs6000-opts.h: New header file to define the enums
862         that are used in target variables that are now defined in rs6000.opt.
863
864         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
865         rs6000-opts.h.
866         (rs6000_sdata): Ditto.
867         (rs6000_abi_name): Delete.
868         (rs6000_sdata_name): Ditto.
869         (rs6000_tls_size_string): Ditto.
870
871 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
872
873         * common.opt (debug_struct_ordinary, debug_struct_generic): New
874         Variable entries.
875         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
876         should_emit_struct_debug): Move from opts.c.
877         * flag-types.h (enum debug_struct_file): Move from opts.c.
878         * flags.h (should_emit_struct_debug): Remove.
879         (base_of_path): Declare.
880         (set_struct_debug_option): Add gcc_options parameter.
881         * optc-gen.awk, opth-gen.awk: Handle array variables.
882         * opts.c (enum debug_struct_file, debug_struct_ordinary,
883         debug_struct_generic): Remove.
884         (set_struct_debug_option): Add gcc_options parameter.
885         (base_of_path): Remove static.
886         (main_input_basename, main_input_baselength, matches_main_base,
887         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
888         Remove.
889         * toplev.c (main_input_basename, main_input_baselength): Define
890         here.
891         * toplev.h (main_input_basename, main_input_baselength): Declare
892         here.
893
894 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
895
896         * common.opt (flag_instrument_functions_exclude_functions,
897         flag_instrument_functions_exclude_files): New Variable definitions.
898         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
899         * gimplify.c (char_p): Declare type and vectors.
900         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
901         * opts.c (flag_instrument_functions_exclude_functions,
902         flag_instrument_functions_exclude_files): Remove.
903         (add_comma_separated_to_vector): Take void **.
904         (flag_instrument_functions_exclude_p): Move to gimplify.c.
905         (common_handle_option): Use options structure for
906         -finstrument-functions-exclude- options.
907
908 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
909
910         * doc/options.texi (Var): Document effects of Defer.
911         (Defer): Document.
912         * opt-functions.awk (var_type, var_set): Handle deferred options.
913         * opts-common.c (set_option): Handle CLVC_DEFER.
914         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
915         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
916         fstack-limit-symbol=): Mark as deferred.
917         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
918         plugin.h.
919         (print_filtered_help): Don't report state of CLVC_DEFER options.
920         (common_handle_option): Move code for OPT_fcall_used_,
921         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
922         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
923         OPT_fstack_limit_symbol_ to opts-global.c.
924         (option_enabled, get_option_state): Handle CLVC_DEFER.
925         * opts.h: Include vec.h.
926         (enum cl_var_type): Add CLVC_DEFER.
927         (cl_deferred_option): Define type and vectors.
928         (handle_common_deferred_options): Declare.
929         * opts-global.c: New.
930         * toplev.c (toplev_main): Call handle_common_deferred_options
931         * Makefile.in (OPTS_H): Include $(VEC_H).
932         (OBJS-common): Include opts-global.o.
933         (opts.o): Update dependencies.
934         (opts-global.o): Add dependencies.
935
936 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
937
938         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
939         to objc_declare_protocols.
940
941 2010-11-19  Richard Guenther  <rguenther@suse.de>
942
943         PR lto/45789
944         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
945         IDENTIFIERs do not stream TREE_TYPE.
946         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
947
948 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
949
950         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
951
952 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
953
954         PR target/45870
955         * dwarf2out.c (const_ok_for_output_1): Don't complain about
956         non-delegitimized TLS UNSPECs.
957
958 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
959             Ian Lance Taylor  <iant@google.com>
960
961         * config/darwin-c.c (darwin_additional_format_types): Export.
962
963 2010-11-18  Paul Koning  <ni1d@arrl.net>
964
965         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
966         pointer.
967
968 2010-11-18  Paul Koning  <ni1d@arrl.net>
969
970         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
971         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
972         * config/pdp11/pdp11.opt (-mabshi): Delete.
973
974 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
975
976         * resource.h (struct resources): Fix typo in the comment.
977
978 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
979
980         PR target/46546
981         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
982
983 2010-11-18  Richard Henderson  <rth@redhat.com>
984
985         PR middle-end/46515
986         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
987         maybe_copy_epilogue_insn; handle prologue insns as well.
988         * rtl.h, cfglayout.c: Update for rename.
989         * recog.c (peep2_attempt): Copy prologue/epilogue data for
990         RTX_FRAME_RELATED_P insns.
991
992 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
993
994         PR middle-end/46534
995         * builtins.c (fold_builtin_printf): Don't copy and modify string
996         before build_string_literal, instead modify what
997         build_string_literal returned.
998
999 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
1000
1001         PR c/33193
1002         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
1003         REALPART_EXPR and IMAGPART_EXPR.
1004
1005 2010-11-18  Richard Guenther  <rguenther@suse.de>
1006
1007         PR tree-optimization/46172
1008         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
1009         function.
1010         (slpeel_tree_peel_loop_to_edge): Call it.
1011
1012 2010-11-18  Jeff Law  <law@redhat.com>
1013
1014         PR middle-end-optimization/46297
1015         * postreload.c (reload_combine_note_store): Deal with embedded
1016         side effects in MEM expressions.
1017
1018 2010-11-18  Richard Guenther  <rguenther@suse.de>
1019
1020         PR lto/45089
1021         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
1022         when checking is not enabled.
1023
1024 2010-11-18  Richard Guenther  <rguenther@suse.de>
1025
1026         PR lto/46525
1027         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
1028         type leaders.
1029         (gimple_register_canonical_type): Also cache the canoncial type
1030         for non type leaders.
1031
1032 2010-11-18  Richard Guenther  <rguenther@suse.de>
1033
1034         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
1035
1036 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
1037
1038         PR middle-end/46518
1039         * sel-sched-ir.c (init_expr): Use the correct type for
1040         target_available.
1041         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
1042
1043 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1044
1045         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
1046         as well as -mrelocatable at the same time.
1047
1048 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
1049
1050         PR target/46422
1051         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
1052         Call the clz builtin.
1053
1054 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
1055             Steve Ellcey  <sje@cup.hp.com>
1056
1057         PR middle-end/31490
1058         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
1059         if section attribute used.
1060
1061 2010-11-17  Jan Hubicka  <jh@suse.cz>
1062
1063         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1064         expand errno setting variant when optimizing for size.
1065
1066 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1067
1068         * postreload.c (reload_combine): Call control_flow_insn_p only once.
1069         Reverse backward loop.  Fix formatting issues.
1070
1071 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
1072
1073         * c-parser.c (c_token_is_qualifier,
1074         c_parser_next_token_is_qualifier): New.
1075         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1076         Improve error message on specs->tagdef_seen_p.
1077         (c_parser_struct_or_union_specifier): Improve error recovery.
1078         (c_parser_declspecs): Move exit condition on C_ID_ID early.
1079         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1080         using c_parser_next_token_is_qualifier; extend it to cover
1081         a ctsk_tagdef typespec and !typespec_ok in general.
1082
1083 2010-11-17  Richard Guenther  <rguenther@suse.de>
1084
1085         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1086         (gimple_mod_pow2_value_transform): Likewise.
1087         (gimple_mod_subtract_transform): Likewise.
1088
1089 2010-11-17  Richard Guenther  <rguenther@suse.de>
1090
1091         PR lto/46504
1092         * gimple.c (gimple_register_canonical_type): Make sure to only
1093         make type leaders canonical types.
1094
1095 2010-11-17  Michael Matz  <matz@suse.de>
1096
1097         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1098         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1099         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1100         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1101         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1102         (pass_build_ssa): ... but here.
1103         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1104         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1105         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1106         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1107         * predict.c (rebuild_frequencies): Ditto.
1108         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1109         * emit-rtl.c (verify_rtl_sharing): Ditto.
1110         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1111         * tree-ssa-live.c (remove_unused_locals): Ditto.
1112         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1113         * tree-ssa.c (pass_early_warn_uninitialized,
1114         execute_update_addresses_taken, pass_update_address_taken): Ditto.
1115         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1116         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1117         * passes.c (pass_postreload, execute_todo): Ditto.
1118         * tree-ssanames.c (pass_release_ssa_names): Ditto.
1119
1120 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1121
1122         * doc/invoke.texi (-dy): Remove.
1123         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1124         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1125         * langhooks.c (lhd_do_nothing_i): Remove.
1126         * langhooks.h (lang_hooks.parse_file): Take no arguments.
1127         * toplev.c (set_yydebug): Remove.
1128         (compile_file): Update call to lang_hooks.parse_file.
1129         (decode_d_option): Don't handle -dy.
1130
1131 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1132
1133         PR rtl-optimization/46440
1134         * combine.c (update_cfg_for_uncondjump): When changing
1135         an indirect jump into unconditional jump, remove BARRIERs
1136         from bb's footer.
1137
1138 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1139
1140         * opts.c (target_handle_option): Do not assert that loc ==
1141         UNKNOWN_LOCATION.
1142
1143 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1144             Richard Guenther  <rguenther@suse.de>
1145
1146         PR middle-end/45838
1147         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1148         call_may_clobber_ref_p_1): Return true for __sync_* and some
1149         OpenMP builtins that act as threading barriers.
1150
1151 2010-11-17  Richard Guenther  <rguenther@suse.de>
1152
1153         PR tree-optimization/46498
1154         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1155
1156 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1157
1158         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1159         (xtensa_function_arg_boundary): ...this.
1160         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1161         thinko in declaration.
1162         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1163         number of parameters to picochip_function_arg_boundary.
1164         (picochip_arg_advance): Likewise.
1165
1166 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1167
1168         PR target/46512
1169         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1170         under check for type.
1171
1172 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1173
1174         * ifcvt.c (dead_or_predicable): Fix typo.
1175
1176 2010-11-16  Richard Henderson  <rth@redhat.com>
1177
1178         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1179         * config/s390/s390.opt (mfused-madd): Remove.
1180         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1181         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1182         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1183         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1184
1185 2010-11-16  Richard Henderson  <rth@redhat.com>
1186
1187         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1188         * config/rs6000/rs6000.opt (mfused-madd): Remove.
1189         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1190         (*altivec_vmaddfp_1): Remove.
1191         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1192         (altivec_mulv4sf3): Expand to FMA directly.
1193         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1194         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1195         * config/rs6000/paired.md (paired_madds0): Use FMA.
1196         (paired_madds1): Likewise.
1197         (*paired_madd): Rename from paired_madd; use FMA.
1198         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1199         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1200         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1201         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1202         (rs6000_emit_madd): Use fma_optab.
1203         (rs6000_emit_msub): Use fms_optab.
1204         (rs6000_emit_nmsub): Expand the FMA pattern directly.
1205         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1206         (*fmasf4_fpr): Rename from fmasf4_fpr.
1207         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1208         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1209         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1210         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1211         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1212         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1213         (*fmadf4_fpr): Rename from fmadf4_fpr.
1214         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1215         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1216         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1217         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1218         (fmasf4, fmadf4): Macroize into...
1219         (fma<FMA_F>4): ... here.
1220         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1221         (nfma<FMA_F>4, nfms<FMA_F>4): New.
1222         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1223         TARGET_FUSED_MADD.
1224         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1225         (*vsx_fmadd<mode>4_1): Remove.
1226         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1227         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1228         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1229         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1230         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1231         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1232         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1233
1234 2010-11-16  Richard Henderson  <rth@redhat.com>
1235
1236         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1237         (fmasf4, fnmadf4, fnmasf4): Likewise.
1238         (unnamed plus+mult insns and splitters): Delete.
1239
1240 2010-11-16  Richard Henderson  <rth@redhat.com>
1241
1242         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1243         (fnma<VSF>4): Rename from fnms_<VSF>.
1244         (fms<VSF>4): Rename from fms_<VSF>.
1245         (fma<VDF>4): Rename from fma_<VDF>.
1246         (fms<VDF>4): Rename from fms_<VDF>.
1247         (nfma<VDF>4): Rename from fnma_<VDF>.
1248         (nfms<VDF>4): Rename from fnms_<VDF>.
1249         (fnma<VDF>4, fnms<VDF>4): New expanders.
1250         (floatunsdisf2): Update for the renames.
1251         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1252         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1253
1254 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1255
1256         PR rtl-optimization/46490
1257         * combine.c (expand_compound_operation): Fix thinko.
1258
1259 2010-11-16  Richard Henderson  <rth@redhat.com>
1260
1261         PR target/46470
1262         * recog.c (peep2_attempt): Convert frame-related info when possible.
1263         (peep2_fill_buffer): Allow frame-related insns into the buffer.
1264         (peephole2_optimize): Allow peep2_attempt to fail.
1265
1266 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1267
1268         PR rtl-optimization/46315
1269         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1270         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1271         extracted from...
1272         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
1273         (remove_reg_equal_equiv_notes_for_defs): ...this.
1274         (delete_unmarked_insns): Adjust to above renaming.
1275         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1276         referring to registers set in the insns being moved, if any.
1277
1278         * df-core.c (df_ref_dump): New function extracted from...
1279         (df_refs_chain_dump): ...here.  Call it.
1280         (df_regs_chain_dump): Likewise.
1281         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1282         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
1283
1284 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
1285
1286         PR rtl-optimization/46395
1287         * postreload.c (reload_combine): Invalidate register use
1288         information on all control flow insns.
1289
1290         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1291         LABEL_REF in UNSPEC operand.
1292
1293 2010-11-16  Jan Hubicka  <jh@suse.cz>
1294
1295         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1296         when !flag_toplevel_reorder do not remove unless variable is
1297         COMDAT or ARTIFICIAL.
1298         * ipa.c (varpool_can_remove_if_no_refs): ... here.
1299         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1300         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1301         * varpool.c (decide_is_variable_needed): Do not handle visibility
1302         issues.
1303         (varpool_finalize_decl): Likewise.
1304         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1305         update outdated comment on DECL_RTL_SET_P check.
1306
1307 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1308
1309         * config/sol2.h (NM_FLAGS): Define.
1310         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1311         * doc/tm.texi: Update.
1312
1313 2010-11-16  Nick Clifton  <nickc@redhat.com>
1314
1315         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1316         (msubsf4): Rename to fmssf4, and use fma.
1317         (nmaddsf4): Rename to fnmasf4 and use fma.
1318         (nmsubsf4): Rename to fnmssf4 and use fma.
1319
1320 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
1321
1322         PR target/44762
1323         * config/score/score3.c (score3_return_in_memory): Constify arguments.
1324         (score3_in_small_data_p, score3_function_value): Likewise.
1325         (score3_trampoline_init): Use LCT_NORMAL.
1326         (score3_print_operand): Initialize code as UNKNOWN.
1327         * config/score/predicates.md (score_load_multiple_operation):
1328         Remove unused variable.
1329         (score_store_multiple_operation): Likewise.
1330         * config/score/score7.c (score7_return_in_memory): Constify arguments.
1331         (score7_in_small_data_p, score7_function_value): Likewise.
1332         (score7_trampoline_init): Use LCT_NORMAL.
1333         (score7_print_operand): Initialize code as UNKNOWN.
1334         * config/score/score3.h (score3_return_in_memory): Update prototype.
1335         (score3_in_small_data_p, score3_function_value): Likewise.
1336         * config/score/score-protos.h (score_function_value): Likewise.
1337         * config/score/score7.h (score7_return_in_memory): Update prototype.
1338         (score7_in_small_data_p, score7_function_value): Likewise.
1339         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1340         (score_return_in_memory, score_pass_by_reference): Constify arguments.
1341         (score_output_mi_thunk, score_function_prologue): Don't return a value.
1342         (score_function_epilogue, score_in_small_data_p): Likewise.
1343         (score_option_override, score_asm_trampoline_template): Likewise.
1344         (score_trampoline_init, score_print_operand): Likewise.
1345         (score_print_operand_address, score_prologue): Likewise.
1346         (score_epilogue, score_call, score_call_value): Likewise.
1347         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1348         (score_function_arg_advance): Likewise. Make static.
1349         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1350         (score_function_arg, score_legitimate_address_p): Make static.
1351         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1352         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1353         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1354         Allow (W) == HOST_BITS_PER_WIDE_INT.
1355
1356         PR java/46386
1357         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1358         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1359
1360 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1361
1362         * config/arc/arc.c: Delete pasto.
1363         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1364
1365 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
1366
1367         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1368         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1369         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1370         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1371         (mn10300_preferred_reload_class,
1372         mn10300_preferred_output_reload_class): New functions.
1373
1374 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1375
1376         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1377         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1378         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1379         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1380
1381 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1382
1383         * builtins.c (std_gimplify_va_arg_expr): Use
1384         targetm.calls.function_arg_boundary.
1385         * function.c (assign_parms, locate_and_pad_parm): Likewise.
1386         * calls.c (struct arg_data): Update comment.
1387         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1388         * target.def (function_arg_boundary): Define.
1389         * targhooks.h (default_function_arg_boundary): Declare.
1390         * targhooks.c (default_function_arg_boundary): Define.
1391         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1392         TARGET_FUNCTION_ARG_BOUNDARY.
1393         (FUNCTION_ARG_BOUNDARY): Delete.
1394         (TARGET_FUNCTION_ARG_BOUNDARY): New.
1395         * doc/tm.texi: Regenerate.
1396         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1397         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1398         * config/arc/arc.c (arc_function_arg_boundary): Define.
1399         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1400         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1401         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1402         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1403         (arm_function_arg_boundary): Define.
1404         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1405         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1406         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1407         * config/frv/frv.c (frv_function_arg_boundary): Make static.
1408         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1409         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1410         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1411         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1412         (ix86_compat_function_arg_boundary): Take and return unsigned int.
1413         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1414         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1415         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1416         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1417         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1418         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1419         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1420         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1421         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1422         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1423         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1424         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1425         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1426         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1427         * config/mips/mips.c (mips_function_arg_boundary): Make static.
1428         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1429         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1430         * config/pa/pa.c (pa_function_arg_boundary): Define.
1431         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1432         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1433         * config/picochip/picochip-protos.h
1434         (picochip_get_function_arg_boundary): Delete.
1435         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1436         Rename to...
1437         (picochip_function_arg_boundary): ...this.  Make static.
1438         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1439         (picochip_arg_advance): Adjust.
1440         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1441         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1442         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1443         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1444         (rs6000_function_arg_boundary): ...this.  Make static.
1445         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1446         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1447         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1448         * config/rx/rx.c (rx_function_arg_boundary): Define.
1449         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1450         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1451         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1452         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1453         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1454         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1455         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1456         (xtensa_function_arg_boundary): ...this.  Make static.
1457         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1458
1459 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1460
1461         * expr.c (alignment_for_piecewise_move): New function.
1462         (widest_int_mode_for_size): New function.
1463         (move_by_pieces, move_by_pieces_ninsns): Call them.
1464         (can_store_by_pieces, store_by_pieces_1): Likewise.
1465
1466 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1467
1468         * gcc.c (char_p): Define.  Define a VEC of it.
1469         (n_linker_options, n_assembler_options, n_preprocessor_options):
1470         Delete.
1471         (linker_options, assembler_options, preprocessor_options): Convert
1472         to a VEC.
1473         (add_preprocessor_option): Adjust.
1474         (add_assembler_option): Adjust.
1475         (add_linker_option): Adjust.
1476         (do_specs_vec): New function.
1477         (do_spec_1): Call it.  Adjust for new types.
1478
1479 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1480
1481         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1482         (sreal.o, statistics.o, stringpool.o): Likewise.
1483
1484 2010-11-16  Richard Guenther  <rguenther@suse.de>
1485
1486         PR tree-optimization/44545
1487         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1488         statements are not reassociatable.
1489         (reassociate_bb): Likewise.
1490
1491 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1492
1493         * bitmap.c: Delete unnecessary includes.
1494         * ebitmap.c: Likewise.
1495         * et-forest.c: Likewise.
1496         * sreal.c: Likewise.
1497         * statistics.c: Likewise.
1498         * stringpool.c: Likewise.
1499         * double-int.c: Add comment for inclusion of tm.h.
1500
1501 2010-11-16  Richard Guenther  <rguenther@suse.de>
1502
1503         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1504         (visit_nary_op): ... this.
1505         (visit_binary_op): Remove.
1506         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1507
1508 2010-11-16  Richard Guenther  <rguenther@suse.de>
1509
1510         PR middle-end/45172
1511         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1512
1513 2010-11-16  Nick Clifton  <nickc@redhat.com>
1514
1515         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1516         record is packed.
1517
1518 2010-11-15  Richard Henderson  <rth@redhat.com>
1519
1520         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1521         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1522         DOT_PROD_EXPR.
1523
1524 2010-11-15  Richard Henderson  <rth@redhat.com>
1525
1526         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1527         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
1528         fma rtx_code.
1529
1530 2010-11-15  Richard Henderson  <rth@redhat.com>
1531
1532         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1533         and *mulsubsf4 respectively.  Use fma rtx_code.
1534
1535 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
1536
1537         * gcc.c: Include "vec.h".
1538         (argbuf): Make into a VEC.
1539         (argbuf_length, argbuf_index): Remove.
1540         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1541         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1542         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1543         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1544         (gcc.o): Depend on $(VEC_H).
1545
1546 2010-11-15  Richard Henderson  <rth@redhat.com>
1547
1548         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1549         via FMA if unsafe math.
1550         (insert_var_expansion_initialization): Handle FMA.
1551         (combine_var_copies_in_loop_exit): Likewise.
1552
1553 2010-11-15  Richard Henderson  <rth@redhat.com>
1554
1555         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1556         * config/ia64/ia64.opt: Remove mfused-madd.
1557         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1558         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1559         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1560         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1561         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1562         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1563         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1564         (fmav2sf4): Rename from fpma; use FMA code.
1565         (fmsv2sf4): Rename from fpms; use FMA code.
1566         (fnmav2sf4): Rename from *fpnma; use FMA code.
1567         * config/ia64/ia64.md (MODE_SDF): New iterator.
1568         (suffix): New mode attribute.
1569         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1570         (fmssf4): Rename from *fmssf4.
1571         (fnmasf4): Rename from *nfmasf4.
1572         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1573         (*nmadddf4, *nmadddf4_truncsf): Remove.
1574         (fmsdf4): Rename from *fmsdf4.
1575         (fnmadf4): Rename from *nfmadf4.
1576         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1577         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1578         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1579         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1580         (fmsxf4): Rename from *fmsxf4.
1581         (fnmaxf4): Rename from *nfmaxf4.
1582         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1583         (*fnmaxf_trunc_<MODE_SDF>): New.
1584
1585 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1586
1587         PR tree-optimization/46461
1588         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1589         a gimple val.
1590
1591 2010-11-15  Ian Lance Taylor  <iant@google.com>
1592
1593         * godump.c: New file.
1594         * common.opt (fdump-go-spec=): New option.
1595         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1596         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1597         (TYPE_SYMTAB_IS_DIE): Define.
1598         (struct tree_type): Change GTY for symtab field to use
1599         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1600         to pick the union field.
1601         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1602         (dump_go_spec_init): Declare.
1603         * toplev.c (process_options): Handle flag_dump_go_spec.
1604         * debug.c: Include "tree.h".
1605         (do_nothing_debug_hooks): Set tree_type_symtab_field.
1606         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1607         * dbxout.c (dbx_debug_hooks): Likewise.
1608         (xcoff_debug_hooks): Likewise.
1609         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1610         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
1611         SDB_DEBUGGING_INFO is not defined.
1612         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1613         (Overall Options): Document -fdump-go-spec.
1614         * Makefile.in (OBJS-common): Add godump.o.
1615         (debug.o): Add dependency on $(TREE_H).
1616         (godump.o): New target.
1617         (GTFILES): Add $(srcdir)/godump.c.
1618
1619 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1620
1621         PR debug/46095
1622         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1623         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1624         style < 0, add REG_FRAME_RELATED_EXPR.
1625
1626         PR debug/46387
1627         * rtl.h (vt_equate_reg_base_value): New prototype.
1628         * alias.c (vt_equate_reg_base_value): New function.
1629         * var-tracking.c (vt_init_cfa_base): Use it.
1630
1631 2010-11-15  Jan Hubicka  <jh@suse.cz>
1632             Diego Novillo  <dnovillo@google.com>
1633
1634         PR lto/41528
1635         * doc/lto.texi: Add.
1636         * doc/gccint.texi: Add reference to lto.texi.
1637         * doc/invoke.texi: Update user documentation for LTO.
1638         Move internal flags to lto.texi
1639
1640 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1641
1642         * c-typeck.c (build_unary_op): Use
1643         objc_build_incr_expr_for_property_ref to build the pre/post
1644         increment/decrement of an Objective-C property ref, and skip the
1645         lvalue_or_else check in that case.
1646
1647 2010-11-15  Martin Jambor  <mjambor@suse.cz>
1648
1649         PR tree-optimization/46349
1650         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1651         (contains_vce_or_bfcref_p): Likewise.
1652         (sra_modify_assign): Use them.
1653
1654 2010-11-15  Richard Guenther  <rguenther@suse.de>
1655
1656         PR tree-optimization/46467
1657         * tree-ssa-structalias.c (do_structure_copy): Properly treat
1658         variables without subvars.
1659
1660 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
1661
1662         * config/picochip/picochip.c (file header): Picochip name change.
1663         * config/picochip/picochip.md (file header): Likewise.
1664         * config/picochip/predicates.md (file header): Likewise.
1665         * config/picochip/dfa_space.md (file header): Likewise.
1666         * config/picochip/dfa_speed.md (file header): Likewise.
1667         * config/picochip/picochip.h(file header): Likewise.
1668         * config/picochip/constraints.md (file header): Likewise.
1669         * config/picochip/picochip-protos.h (file header): Likewise.
1670         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1671         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1672         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1673         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1674         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1675         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1676         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1677         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1678         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1679         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1680         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1681         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1682         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1683         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1684
1685 2010-11-15  Richard Guenther  <rguenther@suse.de>
1686
1687         PR bootstrap/46474
1688         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1689
1690 2010-11-15  Nick Clifton  <nickc@redhat.com>
1691
1692         * config/stormy16/stormy16.c (direct_return): Do not generate a
1693         direct return for interrupt handlers.
1694
1695 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
1696
1697         * Makefile.in (tm.texi): Replace with rule for:
1698         ($(srcdir)/doc/tm.texi).
1699         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1700         $(srcdir)/doc/tm.texi .
1701         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1702         tm.texi .
1703
1704         PR target/46427
1705         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1706
1707         PR bootstrap/45444
1708         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1709         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1710
1711         PR target/46432
1712         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1713
1714 2010-11-15  Richard Guenther  <rguenther@suse.de>
1715
1716         PR lto/44150
1717         * lto-opts.c (lto_write_options): Write -fexceptions even if
1718         not set by the user.
1719
1720 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1721
1722         PR c/46462
1723         * c-decl.c (declspecs_add_type): Make variables with error types
1724         integers.
1725         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1726         do not start a declaration before an Objective-C foreach.
1727         (c_parser_declaration_or_fndef): Improve recovery after unknown
1728         type name.
1729         (c_parser_for_statement): Hoist entrance of "foreach context"
1730         before ifs, add corresponding reset where it was missing.  Do
1731         not set objc_could_be_foreach_context for C.
1732
1733 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1734
1735         PR tree-optimization/45722
1736         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1737         this is a reference to a component.
1738         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1739         (ipa_note_param_call): Adjust comment.
1740
1741 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
1742
1743         * config/mips/mips.c (machine_function): Remove
1744         initialized_mips16_gp_pseudo_p.
1745         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1746         detect whether a pseudo has already been created.  Unconditionally
1747         create a new one if not.
1748         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1749         expanding to rtl.  Create a new pseudo otherwise, if allowed.
1750
1751 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
1752
1753         PR target/43440
1754         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1755         * tm.texi: Regenerated.
1756         * output.h (decode_reg_name_and_count): Declare.
1757         * varasm.c (decode_reg_name_and_count): New function.
1758         (decode_reg_name): Reimplement using decode_reg_name_and_count.
1759         * reginfo.c (fix_register): Use decode_reg_name_and_count and
1760         iterate over all regs used.
1761         * stmt.c (expand_asm_operands): Likewise.
1762         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1763         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1764         multiple machine registers.
1765
1766 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1767
1768         * stor-layout.c (place_union_field): Do not put location information
1769         on offset expressions.
1770         (place_field): Likewise.
1771         (finalize_record_size): Likewise on size expressions.
1772         (finalize_type_size): Likewise.
1773         (layout_type): Likewise.
1774
1775 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
1776
1777         PR debug/42889
1778         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1779         * df-core.c (df_set_bb_dirty_nonrl): Remove.
1780         * df.h (df_set_bb_dirty_nonlr): Likewise.
1781
1782 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
1783
1784         * config/mips/mips.md (call_internal): Pass curr_insn to
1785         mips_split_call.
1786         (call_internal_direct): Ditto.
1787         (call_value_internal): Ditto.
1788         (call_value_internal_direct): Ditto.
1789         (call_value_multiple_internal): Ditto.
1790         * config/mips/mips.c (mips_split_call): Do not copy
1791         CALL_INSN_FUNCTION_USAGE here.
1792
1793 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
1794
1795         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1796         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1797         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1798         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1799         (TUNE_LOONGSON_3A): Define.
1800         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1801         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1802         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1803         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1804         (mips_rtx_cost_data): Add Loongson-3A.
1805
1806 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1807
1808         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1809         switches.
1810
1811 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1812
1813         * dwarf2out.c (macinfo_entry): New struct.
1814         (output_comp_unit): Emit the section start label here and flag that we
1815         will emit an info section.
1816         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1817         emitting directly.
1818         (dwarf2out_end_source_file): Likewise.
1819         (dwarf2out_define): Likewise.
1820         (dwarf2out_undef): Likewise.
1821         (output_macinfo): New.
1822         (dwarf2out_init): Do not emit debug section switches here, allocate a
1823         vec for macinfo, when required.
1824         (dwarf2out_finish): First switch to debug_abbrev_section here.
1825         debug_line_section,  debug_macinfo_section, Likewise.
1826         Check that the pubtypes table has at least one unpruned entry before
1827         trying to emit it.
1828
1829 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1830
1831         PR c/20385
1832         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1833         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
1834         token lookahead.
1835         (c_parser_compound_statement_nostart, c_parser_label,
1836         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1837         (c_parser_declaration_or_fndef): Detect the case now matched by
1838         c_parser_next_tokens_start_declaration, give error and correct it.
1839
1840 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1841
1842         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1843         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1844         with typespec_kind.
1845         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1846         (shadow_tag_warned, check_compound_literal_type): Adjust
1847         uses of tag_defined_p.
1848         (declspecs_add_type): Set typespec_kind.
1849         * c-parser.c (c_parser_declaration_or_fndef,
1850         c_parser_declspecs, c_parser_struct_declaration,
1851         c_parser_parameter_declaration, c_parser_type_name,
1852         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1853         of type_seen_p.
1854         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1855         tag_defined_p, pass ctsk_firstref through.
1856
1857 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1858
1859         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1860         (struct format_wanted_type): Replace field "name" with "kind", add
1861         "format_start" and "format_length".
1862         (check_format_info_main): Fill in new fields.  Fill in
1863         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
1864         after the final NUL outside the while loop.  Do not include
1865         width and precision modifiers in the format_start/format_length
1866         of the main format.
1867         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1868         arguments.  Compute WANTED_TYPE first so that format_type_warning
1869         can be called for missing arguments.  Adjust calls to
1870         format_type_warning.
1871         (format_type_warning): Fetch as much information as possible
1872         from format_wanted_type.  Adjust printing now that every
1873         warning has a "descr", as well as for missing argument warnings
1874         and to include % sign for format specifiers.
1875
1876 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
1877
1878         PR rtl-optimization/46204
1879         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1880         Update all callers.  Do not recompute topological order.  Adjust
1881         fallthrough edges following a degenerate conditional jump.
1882
1883 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1884
1885         * opts-common.c (control_warning_option): New.
1886         * opts.c (set_default_handlers): New.
1887         (decode_options): Use set_default_handlers and
1888         control_warning_option.
1889         (common_handle_option): Update call to enable_warning_as_error.
1890         (enable_warning_as_error): Take gcc_options parameters.  Use
1891         control_warning_option.
1892         * opts.h (set_default_handlers, control_warning_option): Declare.
1893
1894 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1895
1896         * Makefile.in (OPTS_H): Define.
1897         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1898         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1899         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1900         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1901         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1902         * gcc.c (driver_handle_option): Take location_t parameter.
1903         (process_command, do_self_spec): Update calls to
1904         read_cmdline_option.
1905         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1906         * langhooks.c (lhd_handle_option): Take location_t parameter.
1907         * langhooks.h (handle_option): Take location_t parameter.
1908         * lto-opts.c (lto_reissue_options): Update call to set_option.
1909         * opts-common.c (handle_option): Make static.  Take location_t
1910         parameter and pass it to other functions.
1911         (handle_generated_option): Take location_t parameter and pass it
1912         to other functions.
1913         (read_cmdline_option): Take location_t parameter and pass it to
1914         other functions.  Use warning_at and error_at.
1915         (set_option): Take location_t parameter and pass it to other
1916         functions.
1917         * opts.c (common_handle_option): Take location_t parameter and
1918         pass it to other functions.
1919         (enable_warning_as_error): Make static.  Take location_t parameter
1920         and pass it to other functions.
1921         (lang_handle_option): Take location_t parameter and pass it to
1922         other functions.
1923         (target_handle_option): Take location_t parameter.
1924         (read_cmdline_options, maybe_default_option,
1925         maybe_default_options, default_options_optimization,
1926         decode_options): Take location_t parameter and pass it to other
1927         functions.
1928         * opts.h: Include input.h.
1929         (struct cl_option_handler_func, decode_options, set_option,
1930         handle_generated_option, read_cmdline_option): Take location_t
1931         parameters.
1932         (handle_option, enable_warning_as_error): Remove.
1933         * toplev.c (toplev_main): Update call to decode_options.
1934
1935 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
1936
1937         * graphite-cloog-util.c (oppose_constraint,
1938         cloog_matrix_to_ppl_constraint,
1939         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1940         CLooG isl uses unsigned integers.  This triggered a warning.
1941
1942 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1943
1944         PR target/46438
1945         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1946         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1947         (xtensa_function_arg_1): De-constify cum.
1948         (xtensa_expand_prologue): Use add_reg_note.
1949
1950         PR target/46435
1951         * config/cris/cris.c (saved_regs_mentioned): Delete.
1952         (cris_reload_address_legitimized): Cast itype to enum reload_type.
1953         Remove unused variable op0p.
1954         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1955         (cris_emit_movem_store): Use add_reg_note.
1956
1957         PR bootstrap/46456
1958         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1959
1960 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1961
1962         * function.c (expand_function_end): Set the locator of the prologue on
1963         the stack checking insns.
1964
1965 2010-11-12  Richard Henderson  <rth@redhat.com>
1966
1967         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1968         * config/xtensa/xtensa.opt (mfused-madd): Remove.
1969         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1970         MASK_FUSED_MADD.
1971         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1972         (fnmasf4): Rename from mulsubsf3; use fma.
1973
1974 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1975             Richard Henderson  <rth@redhat.com>
1976
1977         PR target/46428
1978         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1979         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1980         comparison.
1981
1982 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
1983
1984         * opts-common.c (decode_cmdline_option): Initialize separate_args.
1985
1986 2010-11-12  Jan Hubicka  <jh@suse.cz>
1987
1988         * doc/invoke.texi (early-inlining-insns): Update default.
1989         * params.def (early-inlining-insns): Default to 10.
1990
1991 2010-11-12  Olivier Hainque  <hainque@adacore.com>
1992
1993         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1994
1995 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1996
1997         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1998         (SUPPORTS_INIT_PRIORITY): Define.
1999
2000 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2001
2002         PR target/46430
2003         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
2004         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
2005         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2006         (avr_device_to_devicelib): Likewise.
2007         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
2008         into block.
2009         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
2010         (zero_extendhidi2, zero_extendsidi2): Likewise.
2011         * config/avr/avr.c (avr_num_arg_regs): Constify type.
2012         (avr_return_addr_rtx): De-constify tem.
2013         (avr_rotate_bytes): Move declarations to start of block.
2014         Don't use variable length array.  Put nested if/else into block.
2015
2016         PR rtl-optimization/46433
2017         * var-tracking.c: Include tm_p.h .
2018
2019         PR bootstrap/44756
2020         PR build/44767
2021         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
2022         should be unsigned.
2023         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
2024         * doc/tm.texi: Regenerate.
2025
2026         PR target/46412
2027         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
2028         * config/bfin/bfin.c: Include sel-sched.h .
2029         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
2030         (expand_interrupt_handler_prologue): Remove unused variable insn.
2031         (bfin_load_pic_reg): Likewise.
2032         (bfin_rtx_costs): Make code / outer_code variables of type
2033         enum rtx_code, copied from re-named parameters.
2034         (bfin_local_alignment): Change align argument and return type
2035         to unsigned.
2036         (bfin_adjust_cost): Remove unused variable insn_type.
2037         Declare variables at start of block.
2038         (struct loop_info): Rename to...
2039         (struct loop_info_d).
2040         (workaround_rts_anomaly): Change type of icode to int.
2041         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
2042         with int-typed variable.
2043         (note_np_check_stores): Likewise.
2044         (trapping_loads_p): Remove unused variable pat.
2045         (bfin_expand_binop_builtin): Use expand_normal.
2046         (bfin_expand_unop_builtin): Likewise.
2047         (bfin_expand_builtin): Likewise.  Set tmode before use.
2048
2049         PR middle-end/44769
2050         * final.c (split_double): Don't use BITS_PER_WORD directly in
2051         shift count.
2052
2053         PR target/46431
2054         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
2055         assignment.
2056
2057         PR target/46450
2058         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
2059         Use add_reg_note.
2060         (xstormy16_function_arg): Dereference cum.
2061         (xstormy16_expand_builtin): Use expand_normal.
2062         Change type of omode to enum machine_mode.
2063         (combine_bnp): Rename and to and_insn.
2064
2065         PR target/46437
2066         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2067         localreg.
2068
2069 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2070
2071         PR debug/46375
2072         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2073
2074 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2075
2076         PR lto/46376
2077         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2078
2079 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
2080
2081         PR c/44782
2082         * common.opt (fmax-errors=): New option.
2083         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2084         * diagnostic.h (struct diagnostic_context): Add max_errors field.
2085         * diagnostic.c (diagnostic_initialize): Initialize it.
2086         (diagnostic_action_after_output): Exit if more than max_errors
2087         have been output.
2088         * doc/invoke.texi (Warning Options): Add -fmax-errors.
2089         (-fmax-errors): Document.
2090
2091 2010-11-11  Richard Henderson  <rth@redhat.com>
2092
2093         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2094
2095 2010-11-11  Richard Henderson  <rth@redhat.com>
2096
2097         * config/fused-madd.opt: New file.
2098         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2099         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2100         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2101         * config/i386/i386.opt (mfused-madd): Remove.
2102         * config/i386/sse.md (split_fma): Remove.
2103         (split_fms, split_fnma, split_fnms): Remove.
2104
2105 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
2106
2107         PR target/46088
2108         * config/i386/i386.md (*ashl<mode>3_cconly,
2109         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2110         change nonimmediate_operand predicate to register_operand.
2111
2112 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
2113
2114         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2115
2116 2010-11-11  Jan Hubicka  <jh@suse.cz>
2117
2118         * opts.c (finish_options): Do not error on -flto-partition alone.
2119
2120         * doc/invoke.texi (-fwhopr): Merge into -flto section.
2121         (-flto-partition): Document none.
2122         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2123         * lto-wrapper.c: Update comment.
2124         (run_gcc): Update LTO option parsing.
2125         * opts.c (finish_options): add support -flto-partition=none
2126         (common_handle_option): Remove fwhopr.
2127         * common.opt: Turn fwhopr into flto.
2128         * collect2.c (main): Update option handling.
2129         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2130         * ipa-split.c (execute_split_functions): Remove flag_whopr.
2131         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2132         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2133         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2134
2135 2010-11-11  Jan Hubicka  <jh@suse.cz>
2136
2137         PR tree-optimize/40436
2138         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2139         (eliminated_by_inlining_prob): ... this one; return 50% probability
2140         for SRA.
2141         (estimate_function_body_sizes): Update use of
2142         eliminated_by_inlining_prob; estimate static function size
2143         for 2 instructions.
2144
2145 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
2146
2147         PR target/44749
2148         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2149         declare.  Change type of argument four to type int.
2150         (mep_secondary_input_reload_class): Returns enum reg_class.
2151         (mep_secondary_output_reload_class): Likewise.
2152         (mep_function_value): Change types of arguments to cont_tree.
2153         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
2154         argument four to type int.
2155         (mep_secondary_input_reload_class): Returns enum reg_class.
2156         (mep_secondary_output_reload_class): Likewise.
2157         (mep_function_value): Change types of arguments to cont_tree.
2158         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2159         mep_regno_reg_class to enum reg_class.
2160
2161 2010-11-11  Richard Henderson  <rth@redhat.com>
2162
2163         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2164         that the target has the exact fma operation that we matched.
2165
2166 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2167
2168         * reginfo.c (fix_register): Avoid inserting English word in
2169         diagnostic sentence.  Use %qs for quoting and %'.
2170
2171 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
2172
2173         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2174         Intel processor family 6, model 0x2c.
2175
2176 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2177
2178         * opts.c (warning_as_error_callback,
2179         register_warning_as_error_callback): Remove.
2180         (enable_warning_as_error): Don't use warning_as_error_callback.
2181         * opts.h (register_warning_as_error_callback): Remove.
2182
2183 2010-11-11  Richard Henderson  <rth@redhat.com>
2184
2185         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2186         in between the MULT and the PLUS/MINUS.
2187
2188 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2189
2190         PR middle-end/46388
2191         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2192         BLKmode mode for it.
2193         (expand_expr_real_1): Similarly for op0.
2194
2195 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2196
2197         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2198         Document optional target selector.
2199
2200 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2201
2202         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2203         assembling high and low parts of size if not using 32-bit HWINT; else
2204         use DECL_SIZE_UNITS, not DECL_SIZE.
2205
2206 2010-11-11  Martin Jambor  <mjambor@suse.cz>
2207
2208         PR tree-optimization/46383
2209         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2210         offsets.
2211         (compute_complex_ancestor_jump_func): Likewise.
2212         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2213
2214 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2215
2216         PR debug/46150
2217         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2218         true if expr1->hash != expr2->hash.
2219
2220 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2221
2222         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
2223         diagnostics with lowercase letters.
2224         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2225         lowercase letters.
2226         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2227         diagnostic.
2228         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2229         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2230         lowercase letters.
2231         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2232         Remove trailing ' ' from diagnostic.
2233         * config/avr/avr.c (print_operand_address): Start diagnostic with
2234         a lowercase letter and remove trailing '.'.
2235         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2236         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2237         with lowercase letters.  Use %' in diagnostics.  Remove trailing
2238         '.' from diagnostics.
2239         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2240         * config/cris/cris.c (cris_split_movdx,
2241         cris_expand_pic_call_address): Start diagnostics with lowercase
2242         letters.
2243         (cris_asm_output_label_ref): Use %' in diagnostic.
2244         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2245         letter.
2246         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2247         lowercase letter.
2248         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2249         lowercase letter.
2250         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2251         diagnostic.
2252         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2253         diagnostic.
2254         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2255         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2256         diagnostics.
2257         * config/i386/i386.c (ix86_option_override_internal): Write
2258         diagnostic as a single sentence without trailing '.'.  Use %' in
2259         diagnostics.
2260         (ix86_function_sseregparm, classify_argument): Start diagnostics
2261         with lowercase letters.
2262         (ix86_expand_prologue): Use %' in diagnostic.
2263         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2264         diagnostic.
2265         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2266         lowercase letter.
2267         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2268         diagnostic.
2269         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2270         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2271         '`' in help text.
2272         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2273         lowercase letter.
2274         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2275         lowercase letters.
2276         * config/microblaze/microblaze.c (microblaze_handle_option):
2277         Remove trailing '.' from diagnostic.
2278         (print_operand): Start diagnostic with a lowercase letter.
2279         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2280         lowercase letters.  Avoid '`' in diagnostics.
2281         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2282         lowercase letters.  Avoid '`' in diagnostics.
2283         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2284         lowercase letters.  Avoid '`' in diagnostics.
2285         * config/picochip/picochip.c (picochip_option_override,
2286         picochip_emit_save_register, picochip_function_arg,
2287         picochip_output_label, picochip_output_internal_label,
2288         picochip_asm_output_opcode, picochip_output_cbranch,
2289         picochip_output_compare, picochip_output_branch,
2290         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2291         diagnostics. Start diagnostics with lowercase letters.  Use %' in
2292         diagnostics.
2293         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2294         "SPE" capitalization.  Start diagnostic with a lowercase letter.
2295         (rs6000_handle_option): Start diagnostics with lowercase letters.
2296         (def_builtin): Remove trailing '.' from diagnostic.
2297         (rs6000_savres_routine_name): Start diagnostic with a lowercase
2298         letter.
2299         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2300         diagnostic.
2301         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2302         lowercase letter.
2303         * config/s390/s390.c (s390_option_override) Start diagnostics with
2304         lowercase letters.  Use %' in diagnostic.
2305         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2306         lowercase letters.
2307         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2308         diagnostic.
2309         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2310         diagnostic.
2311         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2312         diagnostic.
2313         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2314         * config/spu/spu.c (spu_option_override): Start diagnostics with
2315         lowercase letters.  Use %qs for quoting in diagnostics.
2316         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2317         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2318         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2319         from diagnostic.
2320         * convert.c (convert_to_integer, convert_to_vector): Use %' in
2321         diagnostics.
2322         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2323         letter and use "cannot" spelling.
2324         * expmed.c (extract_fixed_bit_field): Start diagnostic with
2325         lowercase letter and format as a single sentence without '.'.
2326         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2327         Use %' in diagnostics.
2328         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2329         Use %' in diagnostics.
2330         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2331         Use %' in diagnostics.
2332         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2333         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2334         with lowercase letters and remove tailing '.' and '\n'.
2335         * lto-cgraph.c (input_profile_summary): Start diagnostic with
2336         lowercase letter and remove trailing '.'.
2337         (input_cgraph): Start diagnostics with lowercase letters and
2338         remove trailing '\n'.
2339         * opts.c (finish_options, common_handle_option): Start diagnostics
2340         with lowercase letters and remove trailing '.'.  Fix typo in
2341         diagnostic.
2342         * passes.c (position_pass): Start diagnostic with lowercase letter.
2343         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2344         register_callback, try_init_one_plugin): Start diagnostics with
2345         lowercase letters.
2346         * reload1.c (spill_failure): Use %' in diagnostic.
2347         (gen_reload): Start diagnostic with a lowercase letter.
2348         * stor-layout.c (place_field): Start diagnostic with a lowercase
2349         letter.
2350         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2351         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2352         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2353         Start diagnostics with lowercase letters, remove trailing '.' and
2354         use %' in diagnostics.
2355         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2356         (verify_ssa): Don't split diagnostic across two error calls.
2357         Spell out "number" and use %' in diagnostic.
2358         * value-prof.c (visit_hist, check_counter): Start diagnostics with
2359         lowercase letters.
2360
2361 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
2362
2363         PR middle-end/46419
2364         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2365         (_mm_cvtpu16_ps): Ditto.
2366
2367 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2368
2369         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2370         warn_larger_than, larger_than_size, warn_frame_larger_than,
2371         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2372         default_visibility, flag_tls_default): New Variable declarations.
2373         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2374         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2375         (v): Declare as Common and document here.
2376         * flags.h (default_visibility, flag_generate_lto,
2377         warn_larger_than, larger_than_size, warn_frame_larger_than,
2378         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2379         flag_shlib, flag_excess_precision_cmdline): Remove.
2380         (set_Wstrict_aliasing): Update prototype.
2381         * gcc.c (verbose_flag): Remove.
2382         (driver_handle_option): Add diagnostic_context parameter.  Don't
2383         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
2384         incrementing it.
2385         * opts-common.c (handle_option): Pass dc to handler.
2386         * opts.c (warn_larger_than, larger_than_size,
2387         warn_frame_larger_than, frame_larger_than_size,
2388         default_visibility): Remove.
2389         (common_handle_option): Add diagnostic_context parameter.
2390         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2391         gcc_options parameters.
2392         (lang_handle_option, target_handle_option, read_cmdline_options,
2393         decode_options): Add diagnostic_context parameters.
2394         (finish_options): Access option state through opts pointer where
2395         possible.
2396         (common_handle_option): Access option state through opts pointer
2397         where possible.  Do not set local static variable verbose.  Do not
2398         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2399         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2400         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2401         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2402         OPT_fwhopr_.  Do not explicitly set .opt file variables for
2403         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
2404         (set_Wstrict_aliasing): Add gcc_options parameter.
2405         * opts.h (struct cl_option_handler_func): Add diagnostic_context
2406         parameter to handler.
2407         (decode_options): Add diagnostic_context parameter.
2408         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2409         asm_file_name, flag_generate_lto, flag_gen_aux_info,
2410         aux_info_file_name, flag_shlib, flag_tls_default,
2411         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2412         (toplev_main): Pass global_dc to decode_options.
2413         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2414         aux_info_file_name, asm_file_name): Remove.
2415         * tree.h (flag_tls_default): Remove.
2416
2417 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2418
2419         PR target/45986
2420         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2421         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2422
2423 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2424
2425         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2426         (x86_64-*-*): Likewise.
2427         * config/i386/cpuid.h: Define TBM bit.
2428         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2429         and set has_tbm.
2430         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2431         isa_flag for TBM.
2432         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2433         (OPTION_MASK_ISA_TBM_UNSET): New.
2434         (ix86_handle_option): Handle -mtbm.
2435         (isa_opts): Add -mtbm.
2436         (enum pta_flags): Add PTA_TBM.
2437         (ix86_option_override_internal): Add TBM support.
2438         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2439         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2440         (IX86_BUILTIN_BEXTRI64): Likewise.
2441         (bdesc_args): Add TBM intrinsics.
2442         (ix86_expand_builtin): Add TBM specific case.
2443         * config/i386/i386.h (TARGET_TBM): New for TBM.
2444         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2445         (tbm_bextri_<mode>): Likewise.
2446         (*tbm_blcfill_<mode>): Likewise.
2447         (*tbm_blci_<mode>): Likewise.
2448         (*tbm_blcic_<mode>): Likewise.
2449         (*tbm_blcmsk_<mode>): Likewise.
2450         (*tbm_blcs_<mode>): Likewise.
2451         (*tbm_blsfill_<mode>): Likewise.
2452         (*tbm_blsic_<mode>): Likewise.
2453         (*tbm_t1mskc_<mode>): Likewise.
2454         (*tbm_tzmsk_<mode>): Likewise.
2455         * config/i386/i386.opt: Add -mtbm.
2456         * config/i386/tbmintrin.h (__bextri_u32): New.
2457         (__blcfill_u32): Likewise.
2458         (__blci_u32): Likewise.
2459         (__blcic_u32): Likewise.
2460         (__blcmsk_u32): Likewise.
2461         (__blcs_u32): Likewise.
2462         (__blsfill_u32): Likewise.
2463         (__blsic_u32): Likewise.
2464         (__t1mskc_u32): Likewise.
2465         (__tzmsk_u32): Likewise.
2466         (__bextri_u64): Likewise.
2467         (__blcfill_u64): Likewise.
2468         (__blci_u64): Likewise.
2469         (__blcic_u64): Likewise.
2470         (__blcmsk_u64): Likewise.
2471         (__blcs_u64): Likewise.
2472         (__blsfill_u64): Likewise.
2473         (__blsic_u64): Likewise.
2474         (__t1mskc_u64): Likewise.
2475         (__tzmsk_u64): Likewise.
2476         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2477         * doc/invoke.texi: Document -mtbm.
2478         * doc/extend.texi: Document TBM built-in functions.
2479
2480 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2481
2482         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2483         (x86_64-*-*): Likewise.
2484         * config/i386/cpuid.h: Define BMI bit.
2485         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2486         and set has_bmi.
2487         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2488         isa_flag for BMI.
2489         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2490         (OPTION_MASK_ISA_BMI_UNSET): New.
2491         (ix86_handle_option): Handle -mbmi.
2492         (isa_opts): Add -mbmi.
2493         (enum pta_flags): Add PTA_BMI.
2494         (ix86_option_override_internal): Add BMI support.
2495         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2496         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2497         (IX86_BUILTIN_BEXTR64): Likewise.
2498         (IX86_BUILTIN_CTZS): Likewise.
2499         (bdesc_args): Add BMI intrinsics.
2500         (ix86_expand_args_builtin): Add BMI specific cases.
2501         * config/i386/i386.h (TARGET_BMI): New for BMI.
2502         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2503         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2504         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2505         (UNSPEC_TZCNT): Likewise.
2506         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2507         (bmi_andn_<mode>): New for BMI.
2508         (bmi_bextr_<mode>): Likewise.
2509         (bmi_blsi_<mode>): Likewise.
2510         (bmi_blsmsk_<mode>): Likewise.
2511         (bmi_blsr_<mode>): Likewise.
2512         * config/i386/i386.opt: Add -mbmi.
2513         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2514         * config/i386/bmiintrin.h (__lzcnt_u16): New.
2515         (__tzcnt_u16): Likewise.
2516         (__andn_u32): Likewise.
2517         (__bextr_u32): Likewise.
2518         (__blsi_u32): Likewise.
2519         (__blsmsk_u32): Likewise.
2520         (__blsr_u32): Likewise.
2521         (__lzcnt_u32): Likewise.
2522         (__tzcnt_u32): Likewise.
2523         (__andn_u64): Likewise.
2524         (__bextr_u64): Likewise.
2525         (__blsi_u64): Likewise.
2526         (__blsmsk_u64): Likewise.
2527         (__blsr_u64): Likewise.
2528         (__lzcnt_u64): Likewise.
2529         (__tzcnt_u64): Likewise.
2530         * doc/invoke.texi: Document -mbmi and -mno-bmi.
2531         * doc/extend.texi: Document BMI built-in functions.
2532
2533 2010-11-10  Jan Hubicka  <jh@suse.cz>
2534
2535         PR tree-optimize/46228
2536         * doc/invoke.texi (comdat-sharing-probability): Document.
2537         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2538         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2539
2540 2010-11-10  Jan Hubicka  <jh@suse.cz>
2541
2542         PR tree-optimize/46228
2543         * cgraph.c (cgraph_propagate_frequency): Fix typo.
2544
2545 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
2546
2547         PR tree-optimization/46414
2548         * tree-inline.c (estimate_move_cost): Check preferred vector
2549         mode for vector type.
2550
2551 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2552
2553         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2554
2555 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
2556
2557         PR tree-optimization/45971
2558         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2559         for phi nodes analyzable by scev.
2560
2561 2010-11-10  Richard Guenther  <rguenther@suse.de>
2562
2563         PR tree-optimization/44964
2564         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2565
2566 2010-11-10  Martin Jambor  <mjambor@suse.cz>
2567
2568         PR tree-optimization/46351
2569         PR tree-optimization/46377
2570         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2571         aggregate bit-fields.
2572
2573 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2574
2575         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2576         * doc/tm.texi: Regenerate.
2577         * opts-common.c (tm.h): Don't include.
2578         (target_option_translations): Remove.
2579         (decode_cmdline_options_to_array): Don't handle translating options.
2580         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2581         * config/darwin-driver.c: Don't condition includes on
2582         CROSS_DIRECTORY_STRUCTURE.
2583         (darwin_default_min_version): Make static.
2584         (darwin_driver_init): New.  Call darwin_default_min_version if not
2585         CROSS_DIRECTORY_STRUCTURE.
2586         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2587         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2588         (ASM_SPEC): Add %{static}.
2589         (darwin_default_min_version): Don't declare.
2590         (darwin_driver_init): Declare.
2591         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2592         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2593         * config/darwin.opt (all_load, allowable_client,
2594         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2595         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2596         exported_symbols_list, filelist, findirect-virtual-calls,
2597         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2598         framework, fterminated-vtables, gfull, gused, image_base, init,
2599         install_name, multi_module, multiply_defined,
2600         multiply_defined_unused, no_dead_strip_inits_and_terms,
2601         seg_addr_table, seg_addr_table_filename, segaddr,
2602         segs_read_only_addr, segs_read_write_addr, single_module,
2603         umbrella, unexported_symbols_list, weak_reference_mismatches,
2604         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2605         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2606         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2607         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2608         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2609         (ASM_SPEC): Add %{static}.
2610         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2611         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2612         (DRIVER_SELF_SPECS): Handle options formerly in
2613         TARGET_OPTION_TRANSLATE_TABLE.
2614         * config/mep/mep.opt (mfar): New.
2615         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2616         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
2617         TARGET_OPTION_TRANSLATE_TABLE.
2618         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2619         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2620         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2621         ffix-and-continue, findirect-data): New.
2622         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2623         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2624         (mnofpu): Define mask and use Report here.
2625
2626 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2627
2628         * config/s390/s390.c (s390_emit_prologue): Report the stack
2629         size if -fstack-usage is used.
2630
2631 2010-11-10  Richard Guenther  <rguenther@suse.de>
2632
2633         PR tree-optimization/46398
2634         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2635
2636 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
2637
2638         PR target/44760
2639         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2640         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2641         GP_REG_OR_PSEUDO_STRICT_P.
2642         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2643         unexpected alternative.
2644         (*movsf_internal): Likewise.
2645         (indirect_jump): Replace call to non-existant function with call to
2646         internal_error.
2647         (tablejump): Likewise.
2648         * config/iq2000/iq2000.c: Include df.h .
2649         (iq2000_function_arg_advance): Use CONST_CAST2.
2650         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2651         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2652         a non-zero function address.
2653         (iq2000_initial_elimination_offset): Add gcc_unreachable for
2654         unexpected value of FROM.
2655         (symbolic_expression_p): Delete.
2656         (iq2000_function_value): Constify func.
2657         (expand_one_builtin): Use expand_normal.
2658         (iq2000_print_operand): Don't print VALUE if calculating it failed.
2659
2660         PR rtl-optimization/44764
2661         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2662
2663         PR target/46407
2664         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2665         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2666         with ATTRIBUTE_UNUSED.
2667         (valid_psw_flag): Constify parameter which.
2668         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2669
2670         PR target/46415
2671         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2672         (mmix_dbx_register_number): Likewise.
2673         * config/mmix/mmix.c: Include df.h .
2674         (mmix_local_alignment): Change argument basic_align and return type
2675         to unsigned.
2676         (mmix_dbx_register_number): Change argument and return type to
2677         unsigned.
2678         (mmix_expand_prologue): Use add_reg_note.
2679
2680         PR target/46417
2681         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2682         (spu_split_store): Use aform.
2683         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2684
2685 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2686
2687         PR/46268
2688         * doc/gty.texi (GTY Options): Clarify that variable_size produces
2689         allocators taking size in bytes, compare with length option.  Add
2690         size calculation example.
2691         (Invoking the garbage collector): Ensure that sentences are
2692         followed by two spaces.  Describe that pointer fields must be
2693         initialized at ggc_collect call.
2694         (Troubleshooting): New section.
2695
2696 2010-11-09  Jan Hubicka  <jh@suse.cz>
2697
2698         PR tree-optimization/40436
2699         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2700         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2701         normal instructions; be sure bultin is not implemented in this file;
2702         compute non-zero return cost.
2703         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2704         * tree-inline.h (eni_weights_d): Add return cost.
2705
2706 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
2707
2708         * c-parser.c (c_parser_struct_declaration): Handle declaration
2709         specifiers followed by CPP_CLOSE_BRACE.
2710
2711 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2712
2713         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2714         split occurs before reload, and we allocate memory at the time of
2715         the split, not during expansion.  Add attributes.
2716         (floatsi<mode>2_lfiwax_mem): Ditto.
2717         (floatunssi<mode>2_lfiwzx): Ditto.
2718         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2719         (floatsidf2): Ditto.
2720         (floatunssisf2): Ditto.
2721         (floatunssidf2): Ditto.
2722         (fix_trunc<mode>si2): Ditto.
2723         (fix_trunc<mode>si2_stfiwx): Ditto.
2724         (fix_trunc<mode>si2_internal): Ditto.
2725         (fix_trunc<mode>si2): Ditto.
2726         (fix_trunc<mode>di2): Ditto.
2727         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2728         (floatsisf2): Ditto.
2729         (floatdidf2_mem): Ditto.
2730         (floatunsdidf2_mem): Ditto.
2731         (floatunsdidf2): Ditto.
2732         (floatdisf2_internal1): Ditto.
2733         (floatdisf2_mem): Ditto.
2734         (floatunsdisf2_mem): Ditto.
2735         (floatsi<mode>2_lfiwax_mem2): Delete.
2736         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2737         (fix_trunc<mode>si2_mem): Ditto.
2738         (fixuns_trunc<mode>si2_mem): Ditto.
2739         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2740         type operations to reduce copying the values to multiple memory slots.
2741         (roundu32<mode>2_fprs): Ditto.
2742
2743         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2744         PRE_INC, PRE_DEC, PRE_MODIFY.
2745         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2746
2747         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2748         Delete prototype.
2749
2750 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2751
2752         PR target/43808
2753         * cfgexpand.c (partition_stack_vars): Call
2754         update_alias_info_with_stack_vars unconditionally.
2755         (update_alias_info_with_stack_vars): Allow unused
2756         unreferenced vars when not optimizing.
2757
2758 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
2759
2760         PR tree-optimization/46036
2761         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2762         add_to_dst_predicate_list.
2763
2764 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2765
2766         PR debug/46171
2767         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2768         earlier.
2769         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2770         argument, call dead_debug_reset when adding REG_UNUSED note.
2771         (dead_debug_reset): New function.
2772         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2773         df_create_unused_note callers.
2774
2775 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
2776
2777         * config/fr30/fr30.c: Include "df.h".
2778
2779 2010-11-09  Richard Guenther  <rguenther@suse.de>
2780
2781         PR tree-optimization/46355
2782         * tree-loop-distribution.c (tree_loop_distribution): Do not
2783         distribute loops without a single exit.
2784
2785 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2786
2787         PR rtl-optimization/46237
2788         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2789         saved hard regs if they might get partially clobbered.
2790
2791 2010-11-09  Paul Koning  <ni1d@arrl.net>
2792
2793         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2794
2795 2010-11-09  Richard Guenther  <rguenther@suse.de>
2796
2797         PR tree-optimization/46177
2798         * tree-loop-distribution.c (prop_phis): Remove.
2799         (generate_builtin): Re-use the old loop exit edge to avoid
2800         needing to update PHI nodes.
2801
2802 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
2803
2804         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2805         type of args_size to unsigned HOST_WIDE_INT.
2806
2807         PR target/44755
2808         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2809         * config/t-pnt16-warn: New file.
2810         * config/picochip/picochip.c (picochip_emit_stack_allocate):
2811         Use add_reg_note.
2812         (picochip_emit_save_register): Likewise.
2813         (picochip_emit_restore_register): Remove variable insn.
2814         (picochip_legitimize_address): Don't use C++ style comments.
2815         (picochip_legitimize_reload_address): Likewise.
2816         (reorder_var_tracking_notes): Remove variable vliw_start.
2817         (picochip_reorg): Cast first arguemnt to emit_note_after to
2818         enum insn_note.
2819         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2820         (picochip_expand_builtin_3op): Likewise.
2821         (picochip_expand_builtin_2opvoid): Likewise.
2822         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2823         (picochip_expand_array_testport): Likewise.
2824         (picochip_init_builtins): Remove unused variables.
2825         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2826         to unsigned long, and output it as such.
2827         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2828         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2829         (schedType): Cast result of picochip_schedule_type to
2830         enum attr_schedType.
2831
2832         PR target/44759
2833         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2834         conditional to type of S.
2835         (mn10300_function_arg): Remove unused variable align.
2836         (mn10300_arg_partial_bytes): Likewise.
2837         * config/mn10300/mn10300.md (attribute cpu): Cast value to
2838         enum attr_cpu.
2839
2840 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
2841
2842         PR bootstrap/46392
2843         * gengtype-parse.c (type): Call get_input_file_name to get file name.
2844
2845 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2846
2847         * tree.h (contains_placeholder_p): Fix comment.
2848         (type_contains_placeholder_p): Adjust comment.
2849         * tree.c (contains_placeholder_p): Fix comment.
2850         (type_contains_placeholder_1): Do not recurse on pointed-to types and
2851         adjust comment.
2852         (type_contains_placeholder_p): Add comment.
2853
2854 2010-11-09  Paul Koning  <ni1d@arrl.net>
2855
2856         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2857         output of byte values.
2858
2859 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2860
2861         PR middle-end/46360
2862         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2863         not in SSA mode.
2864
2865 2010-11-09  Richard Guenther  <rguenther@suse.de>
2866
2867         PR middle-end/46221
2868         * varasm.c (compute_visible_aliases): New function.
2869         (remove_unreachable_alias_pairs): Aliases make a target available
2870         even though we reclaimed the cgraph node.
2871         (finish_aliases_1): Likewise.
2872         * Makefile.in (varasm.o): Add pointer-set.h dependency.
2873
2874 2010-11-09  Nick Clifton  <nickc@redhat.com>
2875
2876         * config/mn10300/mn10300-modes.def: New file.
2877
2878 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
2879             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2880
2881         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2882         (plugin_files, get_file_basename, get_file_realbasename)
2883         (get_file_langdir, error_at_line, gt_files, this_file)
2884         (system_h_file, read_input_list, create_field_all)
2885         (get_file_srcdir_relative_path, get_file_basename)
2886         (get_file_langdir, get_file_gtfilename)
2887         (get_output_file_with_visibility, get_output_file_name)
2888         (struct flist, put_mangled_filename, walk_type)
2889         (put_mangled_filename, finish_root_table, write_roots): Use
2890         input_file-s.
2891         (lang_dir_names, num_lang_dirs): Remove static.
2892         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2893         (main): Use input_file-s.
2894
2895         * gengtype.h: (struct input_file_st, input_file): New type.
2896         (struct fileloc): Use it.
2897         (gt_files, num_gt_files, this_file, system_h_file)
2898         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2899         (get_input_file_name): New function.
2900         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2901         use input_file.
2902         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2903         (get_output_file_name): Ditto.
2904
2905         * gengtype-lex.l (yybegin): Use input_file.
2906
2907         * gengtype-parse.c (parse_error): Use input_file.
2908
2909 2010-11-08  Xinliang David Li  <davidxl@google.com>
2910
2911         PR tree-optimization/46316
2912         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2913         * double-int.h (double_int_mul_with_sign): New function.
2914         * double-int.c (double_int_mul_with_sign): New function.
2915
2916 2010-11-08  Paul Koning  <ni1d@arrl.net>
2917
2918         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2919
2920 2010-11-08  Paul Koning  <ni1d@arrl.net>
2921
2922         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2923
2924 2010-11-08  Paul Koning  <ni1d@arrl.net>
2925
2926         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2927         to 8 bits.
2928
2929 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2930
2931         PR target/46378
2932         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2933         turn on ISA 2.04 rounding instructions for power5.
2934
2935         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2936         not ISA 2.02.
2937
2938         PR target/45585
2939         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2940         in FPR registers.
2941         (movdi_low_st): Ditto.
2942
2943 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2944             Richard Henderson  <rth@redhat.com>
2945
2946         PR target/44758
2947         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2948         (attribute acc_group): Cast value to enum attr_acc_group.
2949         (*movdi_nodouble+6): Use gen_int_mode.
2950         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2951         if RTX_CODE is defined or not.
2952         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2953         struct frv_io.
2954         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2955         (frv_frame_access, frv_expand_prologue): Remove unused variables.
2956         (frv_expand_block_clear): Likewise.
2957         (frv_trampoline_init): Use LCT_NORMAL.
2958         (struct frv_packet_group): New struct, broken out of type of
2959         frv_packet.
2960         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2961         use cast in loop counter increment.
2962         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2963         assigning to io->type.
2964         (bdesc_set): Use rtx_code UNKNOWN in initializer.
2965         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2966         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2967         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2968         (frv_read_argument): Use expand_normal.
2969
2970         PR target/44757
2971         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2972         lm32_legitimate_constant_p.
2973         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2974         * config/lm32/lm32.c (gen_int_relational): Make new block for
2975         LE / LT / LEU / LTU case.  Declare variables at start of block.
2976         (lm32_block_move_inline): Use XALLOCAVEC.
2977
2978 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2979
2980         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2981
2982 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2983
2984         * gengtype (get_output_file_for_structure): Ensure type is union
2985         or struct.
2986         (write_splay_tree_allocator_def): Use
2987         get_output_file_with_visibility.
2988
2989 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2990
2991         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2992         to defined values in case of an error.
2993         (s390_option_override): Skip further processing if the -march
2994         parameter wasn't recognized.
2995
2996 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2997
2998         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2999         assert that REG is a hard register number before using it as an index.
3000
3001         PR bootstrap/46358
3002         * config/i386/i386.c (ix86_expand_split_stack_prologue):
3003         Avoid warnings when HOST_WIDE_INT is 32 bit.
3004
3005 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3006
3007         PR target/46208
3008         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
3009         (sparc_promote_prototypes): Likewise.
3010         (sparc_promote_function_mode): Promote in 32-bit mode as well.
3011         (sparc_return_in_memory): Remove superfluous parentheses.
3012         (sparc_struct_value_rtx): Fix long lines.
3013         (sparc_function_value_1): Promote in 32-bit mode as well.
3014
3015 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
3016
3017         PR rtl-optimization/45352
3018         * sel-sched.c (find_best_expr): Do not set pneed_stall when
3019         the variable_issue hook is not implemented.
3020         (fill_insns): Remove dead variable stall_iterations.
3021         (init_seqno_1): Force EBB start for resetting sched cycles on any
3022         successor blocks of the rescheduled region.
3023         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
3024         (reset_sched_cycles_in_current_ebb): Add debug printing.
3025         New variable issued_insns.  Advance state when we have issued
3026         issue_rate insns.
3027
3028 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3029
3030         * gengtype (main): Get here's position using POS_HERE macro for
3031         do*typedef calls.
3032
3033 2010-11-07  Ian Lance Taylor  <iant@google.com>
3034
3035         PR target/46089
3036         * config/i386/i386.c (split_stack_fn_large): New static variable.
3037         (ix86_expand_split_stack_prologue): Handle large model.
3038
3039 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
3040
3041         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
3042         all possible addressing modes.
3043
3044 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
3045
3046         PR tree-optimization/46346
3047         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
3048
3049 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3050
3051         * config/mips/mips.c: Revert previous patch.
3052         * config/mips/mips.md: Likewise.
3053
3054 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3055
3056         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
3057         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
3058         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
3059         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3060         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3061         to use FMA.
3062         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3063         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3064         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3065         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3066
3067 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
3068
3069         PR c/43384
3070         * c-decl.c (lookup_label): Labels can only be referenced in a
3071         function's scope.
3072         (store_parm_decls_oldstyle): Skip erroneous parameters.
3073
3074 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
3075
3076         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3077         LIBCALL_VALUE): Remove macros.
3078         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3079         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3080         (fr30_function_value_regno_p, fr30_function_value,
3081         fr30_libcall_value): New functions.
3082
3083 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
3084
3085         PR middle-end/46314
3086         * target.def (generate_internal_label): New asm_out hook.
3087         * output.h (default_generate_internal_label): Declare.
3088         * varasm.c (default_generate_internal_label): Define.
3089
3090 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
3091
3092         PR target/44981
3093         * doc/extend.tex (format): Document NSString extension.
3094         (format_arg): Likewise.
3095         (Darwin Format Checks): New section.
3096         * doc/tm.texi: Document string object hooks (generated).
3097         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3098         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3099         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3100         * target.def (objc_construct_string_object): Rename, amend
3101         documentation.
3102         (string_object_ref_type_p): New hook.
3103         (check_string_object_format_arg): New hook.
3104         * c-parser.c (c_parser_attributes): Allow objective-c class names as
3105         attribute identifiers.
3106         * config/darwin-c.c (darwin_cfstring_ref_p): New.
3107         (darwin_check_cfstring_format_arg): New.
3108         (darwin_additional_format_types): New.
3109         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3110         (darwin_check_cfstring_format_arg): New.
3111         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3112         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3113         (TARGET_N_FORMAT_TYPES): New.
3114         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3115
3116 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
3117             Pascal Obry  <obry@adacore.com>
3118
3119         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
3120         in 64-bit mode and 17 otherwise.
3121
3122 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3123
3124         PR debug/45939
3125         * var-tracking.c (emit_note_insn_var_location): Make sure that
3126         call related var location notes come before the normal ones.
3127
3128 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3129
3130         PR target/46326
3131         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3132         in the last change.
3133
3134 2010-11-05  Ian Lance Taylor  <iant@google.com>
3135
3136         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3137
3138 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3139
3140         PR c/44772
3141         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3142         pointer_set_contains if DECL_NAME is NULL.
3143
3144 2010-11-05  Ian Lance Taylor  <iant@google.com>
3145
3146         PR target/46084
3147         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3148         request enough additional space for alignment, and force alignment.
3149
3150 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
3151
3152         * config/i386/i386.c (legitimate_pic_address_disp_p):
3153         Handle UNSPEC_PCREL.
3154         (ix86_legitimate_address_p): Likewise.
3155         (legitimize_pic_address): Likewise.
3156         (output_pic_addr_const): Likewise.
3157         (ix86_delegitimize_address): Likewise.
3158         (ix86_find_base_term): Likewise.
3159         (memory_address_length): Likewise.
3160         (x86_output_mi_thunk): Handle special case x64
3161         for non local binding.
3162         * config/i386/i386.md (UNSPEC_PCREL): New.
3163         * config/i386/winnt.c (i386_pe_binds_local_p):
3164         Allow weak symbol for x64 windows with non-local binding.
3165
3166 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3167
3168         PR target/45670
3169         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3170         instead of EXPAND_NORMAL for base expansion.
3171
3172 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
3173
3174         * config.gcc: Support --with-fpmath=avx for x86.
3175         * config/i386/avxmath.h: New.
3176         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3177
3178 2010-11-05  Ian Lance Taylor  <iant@google.com>
3179
3180         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3181         * gengtype.c (walk_type): Don't recognize descbits option.
3182
3183 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
3184
3185         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3186         WORD_SWITCH_TAKES_ARG): Remove.
3187         * doc/options.texi (Args): Document.
3188         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3189         * doc/tm.texi: Regenerate.
3190         * opt-functions.awk (switch_flags): Handle Args.
3191         * opts-common.c: Update comment on tm.h include.
3192         (decode_cmdline_option): Handle options with multiple arguments.
3193         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3194         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3195         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3196         CL_COMMON): Update values.
3197         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3198         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3199         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3200         sectobjectsymbols, sectorder, segcreate, segprot): New.
3201
3202 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3203             Uros Bizjak  <ubizjak@gmail.com>
3204
3205         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3206         256bit AVX register is used.
3207         (ix86_expand_vector_move_misalign): Likewise.
3208         (ix86_expand_vector_move): Replace use_avx256_p with
3209         VALID_AVX256_REG_MODE.
3210
3211 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
3212
3213          PR target/44750
3214         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3215         change.  Set $@-warn.o to -Wno-error.
3216
3217         PR bootstrap/44756
3218         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3219         comparing it to a signed value.
3220
3221         PR middle-end/44766
3222         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3223         PR bootstrap/44770
3224         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3225         to i.
3226
3227         PR target/44754
3228         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3229         (m32c_function_arg).  Add comma between arguments two and three.
3230         (m32c_promote_prototypes): Remove declaration.
3231         (current_function_special_page_vector): Likewise.
3232         (m32c_regno_reg_class): Change return type to enum reg_class.
3233         (m32c_pushm_popm): Use add_reg_note.
3234         (m32c_push_rounding): Change return type to unsigned int.
3235         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3236         enum reload_type.
3237         (m32c_insert_attributes): Constify variable name.
3238         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3239         (m32c_prepare_shift): Remove variable lref.
3240         (m32c_expand_movcc): Remove variable cmp.
3241         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3242         (m32c_compare_redundant): Remove variable op2.
3243         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3244         (m32c_pragma_memregs): Assign the number to target_memregs.
3245         (m32c_pragma_address): Remove variable var_str.
3246         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3247         enum reg_class.
3248         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3249         * config/m32c/bitops.md (andsi3): Add default case to switch.
3250         (iorsi3, xorsi3): Likewise.
3251         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3252         * config/m32c/jump.md (call, call_value): Likewise.
3253         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3254         (m32c_regno_reg_class): Likewise.
3255         (current_function_special_page_vector): Declare.
3256
3257 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3258
3259         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3260
3261         PR tree-optimization/46099
3262         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
3263         if it is NULL and uid wasn't found in the hash table.  Just fold the
3264         result if it is NULL otherwise.  Insert other potentially needed
3265         stmts right before current stmt instead of on the entry edge.
3266         (struct elv_data): Add gsi and reset fields.
3267         (eliminate_local_variables_1): Adjust caller.  If take_address_of
3268         failed for debug stmt, set dta->reset and return.
3269         (eliminate_local_variables_stmt): Change STMT argument for GSI,
3270         pass GSI through to the callback, handle resetting of debug stmts.
3271         (eliminate_local_variables): Adjust caller.  Process debug stmts
3272         in second phase.
3273
3274         PR middle-end/43690
3275         * gimplify.c (gimplify_asm_expr): If a "m" input is a
3276         {pre,post}{in,de}crement, fail.
3277
3278         PR debug/46307
3279         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3280         * tree-pretty-print.c (dump_generic_node): Likewise.
3281         (op_code_prio): Likewise.
3282         * cfgexpand.c (expand_debug_expr): Likewise.
3283
3284 2010-11-04  Paul Koning  <ni1d@arrl.net>
3285
3286         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3287         constraints.
3288
3289 2010-11-04  Chao-ying Fu  <fu@mips.com>
3290
3291         * configure.ac: Test assembler support for DSP Rev1 mult.
3292         * configure: Regenerate.
3293         * config.in: Regenerate.
3294         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3295         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3296         (CODE_FOR_mips_multu): New define.
3297         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3298         dspr2_32 to dsp_32.
3299         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3300         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3301         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3302         New define_expand patterns.
3303         * config/mips/constraints.md (ka): Update the constraint to test
3304         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3305         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3306         mips_multu): Delete.
3307         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3308         Change target constraint to "ka".
3309         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3310         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3311         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3312         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
3313         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3314         (<u>maddsidi4): Likewise.
3315         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3316         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3317
3318 2010-11-04  Paul Koning  <ni1d@arrl.net>
3319
3320         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3321
3322 2010-11-04  Paul Koning  <ni1d@arrl.net>
3323
3324         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3325
3326 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
3327
3328         Fixed using the Objective-C 2.0 dot-syntax with class names.
3329         * c-parser.c (c_parser_next_token_starts_declspecs): In
3330         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3331         (c_parser_next_token_starts_declaration): Same.
3332         (c_parser_postfix_expression): Parse the Objective-C 2.0
3333         dot-syntax with a class name.
3334
3335 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
3336
3337         * final.c (compute_alignments): Compute/free loop info all the time.
3338         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3339         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3340         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3341         * config/rs6000/rs6000.c (cfgloop.h): Include.
3342         (can_override_loop_align): New.
3343         (rs6000_option_override_internal): Set it.
3344         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3345         (rs6000_loop_align): New function.
3346         (rs6000_loop_align_max_skip): Likewise.
3347
3348 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3349
3350         PR driver/45703
3351         * collect2.c (main): Print --help output to stdout.  Do not
3352         exit right away, so ld --help is appended.  Add empty lines
3353         to separate output suitably.
3354
3355 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
3356
3357         PR tree-optimization/46233
3358         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3359         after calling analyze_function, not before.
3360
3361         PR target/46234
3362         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3363         instead of build_va_arg_indirect_ref.
3364         * config/spu/spu.c (spu_va_start): Likewise.
3365         * config/s390/s390.c (s390_va_start): Likewise.
3366
3367 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
3368
3369         PR middle-end/46292
3370         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3371         if the innermode is not vector mode, determine the mode of a subreg
3372         by using mode_for_size of inner_size.
3373
3374 2010-11-04  Richard Guenther  <rguenther@suse.de>
3375
3376         PR rtl-optimization/46183
3377         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3378         (execute_rtl_pre): Likewise.
3379         (execute_rtl_hoist): Likewise.
3380
3381 2010-11-04  Richard Guenther  <rguenther@suse.de>
3382
3383         PR tree-optimization/46068
3384         * ipa-split.c (consider_split): Remove gcc_unreachable.
3385
3386 2010-11-04  Richard Guenther  <rguenther@suse.de>
3387
3388         * tree-nested.c (build_addr): Use build_fold_addr_expr.
3389
3390 2010-11-04  Richard Guenther  <rguenther@suse.de>
3391
3392         PR tree-optimization/45991
3393         * gimplify.c (force_gimple_operand_1): Use the provded test
3394         function in the initial test.
3395
3396 2010-11-04  Jeff Law  <law@redhat.com>
3397
3398         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3399         of readonly memory equivalances for const/pure calls.
3400
3401 2010-11-04  Richard Guenther  <rguenther@suse.de>
3402
3403         PR tree-optimization/45733
3404         * tree-vect-stmts.c (reverse_vec_elements): Honor the
3405         permute builtins function return type.
3406
3407 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
3408
3409         PR middle-end/44765
3410         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3411         as an index, check it is not INVALID_REGNUM.
3412
3413         PR bootstrap/44756
3414         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3415         unsignedp.
3416         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3417
3418         PR bootstrap/44756
3419         * function.c (thread_prologue_and_epilogue_insns): Add
3420         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3421
3422         PR bootstrap/44756
3423         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3424
3425         PR target/44750
3426         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3427         (pdp11_preferred_reload_class): Rename class to rclass.
3428         (pdp11_preferred_output_reload_class): Likewise.
3429         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3430         ALL_COMPILERFLAGS .
3431         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3432
3433         PR bootstrap/44756
3434         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3435         iteration variables to enum machine_mode.
3436
3437         PR target/44751
3438         * config/h8300/h8300.c: Include df.h.
3439         (push, pop): Use add_reg_note.
3440         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3441         (compute_a_shift_cc): Likewise.
3442         (expand_a_shift): Argument code has type enum rtx_code.
3443         (struct shift_insn): Member cc_valid has type enum attr_cc.
3444         (struct shift_info) <cc_inline, cc_special>: Likewise.
3445         enum attr_cc.
3446         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3447         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3448
3449 2010-11-04  Ira Rosen  <irar@il.ibm.com>
3450
3451         PR tree-optimization/46213
3452         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3453         MINUS_EXPR only if the first operand is reduction operand.
3454
3455 2010-11-04  Richard Guenther  <rguenther@suse.de>
3456             Richard Henderson  <rth@redhat.com>
3457
3458         * tree.def (FMA_EXPR): New tree code.
3459         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3460         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3461         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3462         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3463         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3464         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3465         (execute_optimize_widening_mul): Call it.  Reorganize to allow
3466         dead stmt removal.  Move TODO flags ...
3467         (pass_optimize_widening_mul): ... here.
3468         * flag-types.h (enum fp_contract_mode): New enum.
3469         * common.opt (flag_fp_contract_mode): New variable.
3470         (-ffp-contract): New option.
3471         * opts.c (common_handle_option): Handle it.
3472         * doc/invoke.texi (-ffp-contract): Document.
3473         * tree.h (fold_fma): Declare.
3474         * builtins.c (fold_fma): New function.
3475         (fold_builtin_fma): Likewise.
3476         (fold_builtin_3): Call it for fma.
3477         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3478         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3479         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3480         New expanders.
3481         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3482         named patterns.
3483         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3484         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3485         (fms_optab, fnma_optab, fnms_optab): New defines.
3486         * gimplify.c (gimplify_expr): Handle binary truth expressions
3487         explicitly.  Handle FMA_EXPR.
3488         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3489         operations.
3490
3491 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3492             Richard Guenther  <rguenther@suse.de>
3493
3494         * passes.c (init_optimization_passes): Move veclower after SSA.
3495         * tree-vect-generic.c (uniform_vector_p): New function.
3496         (expand_vector_operations_1): Handle conversion.
3497         (pass_lower_vector): Update SSA form.
3498
3499 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
3500
3501         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3502         plugin capabilities.
3503         * configure: Regenerate.
3504
3505 2010-11-03  Xinliang David Li  <davidxl@google.com>
3506
3507         PR target/46200
3508         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3509         Adjust cbase if the use stmt is after iv update.
3510
3511 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3512
3513         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3514
3515 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3516
3517         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3518         comment.  Pass true to the last argument of output_stack_adjust.
3519
3520 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3521
3522         PR target/46295
3523         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3524         if 256bit AVX register is used.
3525
3526 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3527
3528         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3529         xsmindp/xsmaxdp on VSX for single precision min/max.
3530         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3531         (vsx_sminsf3): Ditto.
3532
3533 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3534
3535         * combine.c (try_combine): Fix formatting issues, improve comments and
3536         fix a pasto.
3537
3538 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3539
3540         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3541         of the result before building binary expressions.
3542
3543 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3544
3545         PR rtl-optimization/45865
3546         * Makefile.in (df-problems.o): Revert revision 164552.
3547         * basic-block.h (enum bb_flags): Likewise.
3548         * cfgcleanup.c (block_was_dirty): Likewise.
3549         (try_forward_edges): Likewise.
3550         (try_crossjump_bb): Likewise.
3551         (try_head_merge_bb): Likewise.
3552         (try_optimize_cfg): Likewise.
3553         (cleanup_cfg): Likewise.
3554         * df-core.c (df_set_bb_dirty): Likewise.
3555         * df-problems.c: Likewise.
3556         (df_simulate_find_uses): Likewise.
3557         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3558         (find_memory, find_memory_store): Likewise.
3559         (can_move_insns_across): Likewise.
3560         * df.h (can_move_insns_across): Likewise.
3561         * ifcvt.c (find_memory): Likewise.
3562         (dead_or_predicable): Likewise.
3563
3564 2010-11-03  Richard Guenther  <rguenther@suse.de>
3565
3566         PR middle-end/46288
3567         * predict.c (strip_predict_hints): Simply DCE builtin expect if
3568         the result is unused.
3569
3570 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3571
3572         PR tree-optimization/46009
3573         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3574         cond_if_else_store_replacement if bb1 and bb2 have the same
3575         single successor.
3576         (cond_store_replacement): Use gimple_assign_single_p, don't
3577         check if rhs is SSA_NAME or invariant.  Call release_defs for
3578         assign.
3579         (cond_if_else_store_replacement): New function.
3580
3581 2010-11-03  Richard Guenther  <rguenther@suse.de>
3582
3583         * opts.c (finish_options): Properly check for all WHOPR
3584         flags before complaining about -flto-partition.
3585
3586 2010-11-04  Alan Modra  <amodra@gmail.com>
3587
3588         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3589         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3590         TARGET_SECURE_PLT.
3591         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3592         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3593         on input, "r" on output.
3594
3595 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
3596
3597         Implemented -fobjc-std=objc1 flag.
3598         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3599         option.
3600         * doc/standards.texi (Standards): Updated the section on
3601         Objective-C; mention support for Objective-C 2.0 features and the
3602         new -fstd-objc=objc1 flag to disable them.
3603
3604 2010-11-03  Richard Guenther  <rguenther@suse.de>
3605
3606         PR middle-end/46241
3607         * dwarf2out.c (scope_die_for): Properly detect global scope.
3608
3609 2010-11-03  Richard Guenther  <rguenther@suse.de>
3610
3611         PR tree-optimization/46190
3612         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3613         Properly compute peel iterations.
3614
3615 2010-11-03  Richard Guenther  <rguenther@suse.de>
3616
3617         PR tree-optimization/46286
3618         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3619         re-allocated vector data.
3620
3621 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3622
3623         PR target/46285
3624         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3625         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3626         is completed.
3627
3628 2010-11-03  Richard Guenther  <rguenther@suse.de>
3629
3630         PR tree-optimization/46217
3631         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
3632         flag matches.
3633         (execute_update_addresses_taken): Likewise.
3634
3635 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3636
3637         PR bootstrap/44335
3638         * targhooks.c (targhook_words_big_endian): New function.
3639         (targhook_float_words_big_endian): Likewise.
3640         * targhooks.h (targhook_words_big_endian): Declare.
3641         (targhook_float_words_big_endian): Likewise.
3642         * target.def (words_big_endian, float_words_big_endian): New hooks.
3643
3644 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3645
3646         PR tree-optimization/46165
3647         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3648         a normal call into noreturn call.
3649
3650 2010-11-03  Richard Guenther  <rguenther@suse.de>
3651
3652         PR middle-end/46251
3653         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3654         not INDIRECT_REFs.
3655
3656 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3657
3658         PR tree-optimization/46107
3659         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3660         if cfg_hook_duplicate_loop_to_header_edge failed.
3661
3662 2010-11-03  Ian Lance Taylor  <iant@google.com>
3663
3664         PR lto/46273
3665         * config.gcc: Don't set lto_binary_reader.
3666         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3667         (Configuration): Mention --disable-lto.  Remove --with-libelf
3668         paragraph.
3669
3670 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3671
3672         PR debug/46252
3673         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3674         prev_real_insn.
3675         * gcse.c (insert_insn_end_basic_block): Likewise.
3676
3677         PR rtl-optimization/46034
3678         PR rtl-optimization/46212
3679         PR rtl-optimization/46248
3680         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3681         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3682         before i0dest -> i0src substitution and pass 1 instead of 0 as last
3683         argument to subst on i2pat.
3684
3685 2010-11-02  Ian Lance Taylor  <iant@google.com>
3686
3687         * configure.ac: Use AC_SYS_LARGEFILE.
3688         * configure: Rebuild.
3689         * config.in: Rebuild.
3690
3691 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3692
3693         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3694         fold_convert.
3695         * c-typeck.c (build_function_call_vec): Likewise.
3696         * cfgexpand.c (expand_debug_expr): Likewise.
3697         * cgraphunit.c (assemble_thunk): Likewise.
3698         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3699         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3700         (fold_binary_loc, fold_ternary_loc): Likewise.
3701         * gimple-fold.c (get_symbol_constant_value): Likewise.
3702         * gimple-low.c (lower_builtin_setjmp): Likewise.
3703         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3704         * gimplify.c (gimplify_init_constructor): Likewise.
3705         * lambda.h (build_linear_expr): Likewise.
3706         * omp-low.c (omp_reduction_init): Likewise.
3707         * tree-inline.c (remap_ssa_name): Likewise.
3708         * tree-object-size.c (compute_object_sizes): Likewise.
3709         * tree-sra.c (init_subtree_with_zero): Likewise.
3710         (sra_ipa_modify_assign): Likewise.
3711         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3712         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3713         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3714         (undistribute_ops_list): Likewise.
3715         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3716         * tree-vect-stmts.c (vectorizable_call): Likewise.
3717         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3718         (build_zero_cst): Handle more cases directly.  Update comment.
3719
3720 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3721
3722         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3723         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3724
3725         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3726         and call ix86_split_call_vzeroupper instead of
3727         ix86_split_call_pop_vzeroupper.
3728         (*call_pop_1_vzeroupper): Likewise.
3729         (*sibcall_pop_1_vzeroupper): Likewise.
3730         (*call_value_pop_0_vzeroupper): Likewise.
3731         (*call_value_pop_1_vzeroupper): Likewise.
3732         (*sibcall_value_pop_1_vzeroupper): Likewise.
3733
3734 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3735
3736         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3737
3738 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
3739
3740         * basic-block.h (insert_insn_end_bb_new): Delete.
3741         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3742
3743 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
3744             H.J. Lu  <hongjiu.lu@intel.com>
3745
3746         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3747         (ix86_split_call_pop_vzeroupper): Likewise.
3748
3749         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3750         (ix86_expand_call): Conditionally decorate calls with
3751         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3752         (ix86_split_call_vzeroupper): New.
3753         (ix86_split_call_pop_vzeroupper): Likewise.
3754
3755         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3756         (*call_pop_0_vzeroupper): New insn_and_split pattern.
3757         (*call_pop_1_vzeroupper): Likewise.
3758         (*sibcall_pop_1_vzeroupper): Likewise.
3759         (*call_0_vzeroupper): Likewise.
3760         (*call_1_vzeroupper): Likewise.
3761         (*sibcall_1_vzeroupper): Likewise.
3762         (*call_1_rex64_vzeroupper): Likewise.
3763         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3764         (*call_1_rex64_large_vzeroupper): Likewise.
3765         (*sibcall_1_rex64_vzeroupper): Likewise.
3766         (*call_value_pop_0_vzeroupper): Likewise.
3767         (*call_value_pop_1_vzeroupper): Likewise.
3768         (*sibcall_value_pop_1_vzeroupper): Likewise.
3769         (*call_value_0_vzeroupper): Likewise.
3770         (*call_value_0_rex64_vzeroupper): Likewise.
3771         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3772         (*call_value_1_vzeroupper): Likewise.
3773         (*sibcall_value_1_vzeroupper): Likewise.
3774         (*call_value_1_rex64_vzeroupper): Likewise.
3775         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3776         (*call_value_1_rex64_large_vzeroupper): Likewise.
3777         (*sibcall_value_1_rex64_vzeroupper): Likewise.
3778
3779 2010-11-02  Ian Lance Taylor  <iant@google.com>
3780
3781         PR lto/46273
3782         * config.gcc: Revert last patch: set lto_binary_reader.
3783
3784 2010-11-02  Richard Guenther  <rguenther@suse.de>
3785
3786         PR tree-optimization/46149
3787         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3788         non-indirect MEM_REF variants.
3789
3790 2010-11-02  Richard Guenther  <rguenther@suse.de>
3791
3792         PR tree-optimization/46216
3793         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3794         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3795
3796 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3797
3798         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3799         (*-*-osf*): Likewise.
3800         * configure: Regenerate.
3801
3802 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3803
3804         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3805         for Intel Core 2 and Core i7.
3806
3807 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
3808
3809         Model decoder of Core 2/i7 for multipass scheduling.
3810
3811         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3812         New type to hold target-specific data for multipass scheduling.
3813         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3814         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3815         Core 2/i7.
3816         (core2i7_secondary_decoder_max_insn_size,)
3817         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3818         New static variables.
3819         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3820         ([_]ix86_first_cycle_multipass_data): New static variable.
3821         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3822         Implement targetm.sched hooks.
3823         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3824         of ...
3825         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3826         Implement new targetm.sched hooks.
3827         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3828         targetm.sched hook to install multipass scheduling hooks on demand.
3829
3830         * doc/tm.texi.in: Document new targetm.sched hooks.
3831         * doc/tm.texi: Regenerate.
3832
3833         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3834         (first_cycle_multipass_data_t): New typedef.
3835         (struct choice_entry: target_data): New field.
3836         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
3837         to allow target model restrictions not represented in DFA.
3838         (choose_ready, schedule_block): Update.
3839         (sched_extend_ready_list, sched_finish_ready_list): Call new target
3840         hooks to initialize target-specific data for multipass scheduling.
3841         * sched-int.h (max_issue): Update declaration.
3842         * sel-sched.c (choose_best_insn): Update.
3843         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3844         (first_cycle_multipass_{init, fini}): Define and document new
3845         targetm.sched hooks.
3846
3847 2010-11-02  Richard Guenther  <rguenther@suse.de>
3848
3849         PR tree-optimization/46184
3850         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3851         input vector type from the reduction operand as well.
3852
3853 2010-11-02  Richard Guenther  <rguenther@suse.de>
3854
3855         PR tree-optimization/46177
3856         * tree-loop-distribution.c (prop_phis): Use
3857         mark_virtual_phi_result_for_renaming.
3858
3859 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3860
3861         PR middle-end/46120
3862         * tree.c (get_binfo_at_offset): Bail out on artificial
3863         fields.  Identify primary bases according to their offsets.
3864
3865 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3866
3867         PR tree-optimization/45875
3868         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3869         (gimple_get_relevant_ref_binfo): Detect primary bases according to
3870         their field offset.
3871
3872 2010-11-02  Ian Lance Taylor  <iant@google.com>
3873
3874         * doc/install.texi (Configuration): Note in two places that Java
3875         is not enabled by default.
3876
3877 2010-11-02  Ian Lance Taylor  <iant@google.com>
3878
3879         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3880         (Configuration): Mention --disable-lto.  Remove --with-libelf
3881         paragraph.
3882
3883 2010-11-02  Ian Lance Taylor  <iant@google.com>
3884
3885         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
3886         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
3887         LIBELFINC.  Remove HAVE_libelf.
3888         * config.gcc: Don't set lto_binary_reader.
3889         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3890         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3891         (LIBS): Remove $(LIBELFLIBS).
3892         (INCLUDES): Remove $(LIBELFINC).
3893         * configure: Rebuild.
3894         * config.in: Rebuild.
3895
3896 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3897
3898         * config/microblaze/microblaze-protos.h (function_arg): Delete.
3899         (function_arg_advance): Delete.
3900         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3901         (FUNCTION_ARG): Delete.
3902         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
3903         (microblaze_function_arg_advance): ...this.  Make static.  Take a
3904         const_tree and a bool.
3905         (function-arg): Rename to...
3906         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
3907         and a bool.
3908         (microblaze_expand_prologue): Call targetm.calls.function_arg and
3909         targetm.calls.function_arg_advance.
3910         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3911
3912 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3913
3914         Merge from FSF "apple/trunk" branch.
3915
3916         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
3917         * config/darwin.opt: .. to here.
3918         (matt-stubs): New option.
3919         * config/i386/darwin.opt: Delete.
3920         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
3921         (MACHO_DYNAMIC_NO_PIC_P): New.
3922         (MACHOPIC_INDIRECT): New.
3923         (MACHOPIC_PURE): New.
3924         * config/i386/darwin.h (DARWIN_X86) Define to 1.
3925         (MACHOPIC_ATT_STUB): New.
3926         (CC1_SPEC): Do not remove mdynamic-no-pic.
3927         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3928         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3929         (FUNCTION_PROFILER): Correct over-length line.
3930         (SUBTARGET_OVERRIDE_OPTIONS): New.
3931         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3932         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
3933         (legitimate_constant_p): Handle mdynamic-no-pic.
3934         (ix86_legitimate_address_p): Likewise.
3935         (ix86_legitimize_address): Likewise.
3936         (ix86_expand_move): Likewise.
3937         (machopic_output_stub): Update for ATT-style stubs and
3938         mdynamic-no-pic.
3939         * config/darwin-protos.h (machopic_symbol_defined_p): New.
3940         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
3941         TARGET_DYNAMIC_NO_PIC: Remove.
3942         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3943         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3944         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
3945         Remove handling of mdynamic-no-pic.
3946         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
3947         Define if required.
3948         (machopic_symbol_defined_p): Do not try to use current_function_decl
3949         when generating _get_pc thunks within stubs.
3950         (machopic_indirect_data_reference): Rework for direct conditionals
3951         rather than #ifdefs, add x86 mdynamic-no-pic
3952         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
3953         defined value.
3954         (darwin_override_options): Handle mdynamic-no-pic here.
3955         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
3956         (machopic_lazy_symbol_ptr3_section): New.
3957         (machopic_picsymbol_stub2_section): New.
3958         (machopic_picsymbol_stub3_section): New.
3959         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
3960         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3961         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3962         Moved common definition from x86 and rs6000.
3963         (MACHO_DYNAMIC_NO_PIC_P): Override value.
3964         (MACHOPIC_INDIRECT): Likewise.
3965         (MACHOPIC_PURE): Likewise.
3966         * config.gcc (x86-darwin-*): Remove darwin.opt.
3967
3968 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
3969
3970         PR debug/46255
3971         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
3972         instead of gsi_last_bb.
3973
3974 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3975             Maxim Kuvyrkov  <maxim@codesourcery.com>
3976
3977         * config/i386/i386.c (cpu_names): Add "corei7".
3978         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3979
3980 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3981             Maxim Kuvyrkov  <maxim@codesourcery.com>
3982
3983         Tune alignment for Intel Core i7
3984
3985         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3986         (enum processor_type): Update comment.  Add entries for Core i7.
3987         * config/i386-c.c (ix86_target_macros_internal): Update.
3988         * config/i386.c (m_COREI7{_32,_64}): New macros.
3989         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3990         (processor_target_table): Tune alignment for Core i7.
3991         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3992
3993         * doc/invoke.texi: Document "corei7" option value.
3994
3995 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3996             Maxim Kuvyrkov  <maxim@codesourcery.com>
3997             H.J. Lu  <hjl.tools@gmail.com>
3998
3999         Basic support for Intel Core i7
4000
4001         * i386.c (ix86_option_override_internal): Add entry for corei7, use
4002         generic tuning.  Use generic32 when compiling for 32-bit ABI.
4003
4004 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4005
4006         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
4007         sections and call darwin_asm_dwarf_section() to handle them.
4008         (darwin_asm_dwarf_section): New.
4009         (darwin_file_start): Remove code emitting dwarf section symbols.
4010
4011 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
4012
4013         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
4014         explicitly disable stack protection when building libgcc.
4015         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
4016
4017 2010-11-01  Jason Merrill  <jason@redhat.com>
4018
4019         * fold-const.c (fold_indirect_ref_1): Handle folding
4020         POINTER_PLUS_EXPR to ARRAY_REF.
4021
4022 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
4023
4024         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
4025         (sh_delegitimize_address): New function.
4026
4027 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4028
4029         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
4030         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
4031         (CC1_SPEC): Don't handle -target.
4032         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
4033         options.
4034         * config/darwin.opt (Zallowable_client, Zbundle_loader,
4035         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
4036         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
4037         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
4038         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
4039         Zweak_reference_mismatches, client_name, compatibility_version,
4040         current_version, dylinker_install_name, pagezero_size,
4041         read_only_relocs, seg1addr, segs_read_only_addr,
4042         segs_read_write_addr, sub_library, sub_umbrella): New.
4043         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
4044         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
4045         * config/freebsd.opt: New.
4046         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
4047         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
4048         * config/rpath.opt: New.
4049         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
4050         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
4051         Use rpath.opt.
4052
4053 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4054
4055         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
4056         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
4057         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
4058         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
4059         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
4060         Document that options in .opt files do not need to be included.
4061         * doc/tm.texi: Regenerate.
4062         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
4063         * opts-common.c: Update comment on tm.h include.
4064         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
4065         * system.h (SWITCH_TAKES_ARG): Poison.
4066         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
4067         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
4068         in darwin.opt.
4069         (LINK_COMMAND_SPEC_A): Don't include %{x}.
4070         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4071         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
4072         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
4073         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4074         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
4075         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
4076         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
4077         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
4078         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4079         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
4080         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
4081         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
4082         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
4083         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
4084         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
4085         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
4086         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
4087         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
4088         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
4089         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
4090         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
4091         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
4092         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4093
4094 2010-11-01  Paul Koning  <ni1d@arrl.net>
4095
4096         * config/pdp11/pdp11.md: Use iterators.
4097         (addqi3, subqi3, iorsi3, xorsi3): Delete.
4098
4099 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
4100
4101         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
4102         GCC_INSN_FLAGS_H.
4103         * libgcov.c (__gcov_indirect_call_profiler): Set
4104         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
4105         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
4106
4107 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4108
4109         PR tree-optimization/46259
4110
4111         Revert:
4112         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4113         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
4114         build_vector_from_val.
4115
4116 2010-11-01  DJ Delorie  <dj@redhat.com>
4117
4118         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
4119         as well as an assertion.
4120
4121 2010-11-01  Paul Koning  <ni1d@arrl.net>
4122
4123         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
4124         complex modes in memory.
4125
4126 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4127
4128         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
4129
4130 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
4131
4132         PR target/45250
4133         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
4134         (cfa_base_offset): New variable.
4135         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
4136         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
4137         is NULL.
4138         (vt_init_cfa_base): Initialize cfa_base_offset.
4139
4140 2010-11-01  Alan Modra  <amodra@gmail.com>
4141
4142         PR target/46030
4143         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
4144         and savres_strategy.
4145         (stack_info): New file scope var.
4146         (rs6000_init_machine_status): Init stack_info.
4147         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
4148         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
4149         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
4150         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
4151         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
4152         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
4153         (rs6000_savres_strategy): Rewrite.
4154         (rs6000_stack_info): Use "stack_info" in place of local "info".
4155         Return cached stack info when reload_completed unless ENABLE_CHECKING
4156         in which case confirm newly calculated stack info matches old info.
4157         Delay calculation of lr_save_p, set it for out of line gp save/restore
4158         as well as fp.  Call rs6000_savres_strategy from here..
4159         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
4160         (rs6000_output_function_prologue): Use info->savres_strategy to
4161         determine whether fp save/restore externs need to be emitted.
4162
4163 2010-10-31  Jason Merrill  <jason@redhat.com>
4164
4165         * tree.h (EXPR_LOC_OR_HERE): New macro.
4166         * builtins.c (c_strlen): Use it.
4167         * c-decl.c (build_enumerator): Likewise.
4168         * gimplify.c (internal_get_tmp_var): Likewise.
4169         (shortcut_cond_expr): Likewise.
4170         (gimplify_one_sizepos): Likewise.
4171
4172 2010-10-31  Richard Henderson  <rth@redhat.com>
4173
4174         * config/i386/cygming.h (TARGET_SEH): New.
4175         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
4176         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
4177         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
4178         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
4179         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
4180         (ASM_DECLARE_FUNCTION_SIZE): New.
4181         * config/i386/i386-protos.h: Update.
4182         * config/i386/i386.c (ix86_option_override_internal): Enable
4183         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
4184         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
4185         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
4186         (ix86_compute_frame_layout): For SEH, disable
4187         use_fast_prologue_epilogue, move frame pointer to the end of
4188         the frame.  Initialize hfp_save_offset.
4189         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
4190         at end of prologue for SEH.
4191         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
4192         emit blockage at beginning of epilogue.
4193         (ix86_expand_binary_operator): After reload, emit LEA if needed.
4194         (ix86_output_call_insn): New.
4195         * config/i386/i386.h (TARGET_SEH): New.
4196         (struct machine_function): Add member seh.
4197         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
4198         * config/i386/winnt.c (struct seh_frame_state): New.
4199         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
4200         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
4201         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
4202         i386_pe_start_function, i386_pe_end_function): New.
4203
4204         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
4205         as CFA_STORE in rules 12 and 13.
4206
4207 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
4208
4209         PR tree-optimization/46142
4210         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
4211         accommodate third function argument.
4212
4213 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4214
4215         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
4216
4217 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4218
4219         * fold-const.c (build_zero_vector): Use build_vector_from_val.
4220         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
4221         (get_initial_def_for_reduction): Likewise.
4222         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4223         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
4224         * tree.c (build_one_cst): Likewise.
4225         (build_vector_from_val): Use types_compatible_p for assert.
4226
4227 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4228
4229         * emit-rtl.c (mark_used_flags): New function.
4230         (set_used_flags, reset_used_flags): Call it.
4231
4232 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
4233
4234         PR middle-end/44569
4235         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
4236         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
4237
4238 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
4239
4240         PR target/46195
4241         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4242         (ix86_compat_aligned_value_p): This.
4243         (ix86_old_function_arg_boundary): Renamed to ...
4244         (ix86_compat_function_arg_boundary): This.  Updated.
4245         (ix86_contains_aligned_value_p): New.
4246         (ix86_function_arg_boundary): Align long double parameters on
4247         stack to 4byte in 32bit.
4248
4249 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4250
4251         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4252         * c-parser.c (c_parser_objc_at_property_declaration): Removed
4253         parsing of RID_COPIES and RID_IVAR.  Updated call to
4254         objc_add_property_declaration.
4255         * c-typecheck.c (build_component_ref): Call
4256         objc_maybe_build_component_ref instead of objc_build_setter_call.
4257         Use objc_is_property_ref to improve Objective-C checks.
4258         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4259         of objc_build_getter_call.
4260
4261 2010-10-29  Paul Koning  <ni1d@arrl.net>
4262
4263         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4264         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
4265         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
4266         (REG_OK_STRICT): Move description.
4267
4268 2010-10-29  Paul Koning  <ni1d@arrl.net>
4269
4270         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
4271
4272 2010-10-29  Paul Koning  <ni1d@arrl.net>
4273
4274         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
4275
4276 2010-10-29  Paul Koning  <ni1d@arrl.net>
4277
4278         PR/41822
4279         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
4280
4281 2010-10-29  Richard Henderson  <rth@redhat.com>
4282
4283         PR rtl-opt/46226
4284         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
4285         for asm goto.
4286
4287 2010-10-29  Paul Koning  <ni1d@arrl.net>
4288
4289         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
4290         register to register move.
4291
4292 2010-10-29  Paul Koning  <ni1d@arrl.net>
4293
4294         * config/pdp11/pdp11.c (print_operand_address): Correct handling
4295         of integer constant addresses, delete vax-only logic.
4296
4297 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
4298
4299         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
4300         a conditional expression.
4301
4302 2010-10-29  Paul Koning  <ni1d@arrl.net>
4303
4304         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
4305         instruction encoding.
4306
4307 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4308             Andrew Pinski  <pinskia@gmail.com>
4309
4310         * tree.h (build_vector_from_val): Declare.
4311         * tree.c (build_vector_from_val): New function.
4312         * c-typeck.c (build_binary_op): Handle vector shifting.
4313         * doc/extend.texi: Description of the vector shifting operation.
4314
4315 2010-10-29  Paul Koning  <pkoning@equallogic.com>
4316
4317         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
4318         pdp11_secondary_memory_needed): Declare.
4319         * config/pdp11/predicates.md (float_operand): New predicate.
4320         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
4321         (cbranchdf4, movdf): Change predicate.
4322         (movsf): Handle FPU register case.
4323         (truncdfsf2, extendsfdf2): Add FPU register case.
4324         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
4325         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
4326         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4327         (pdp11_register_move_cost): Update cost matrix.
4328         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
4329         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
4330         pdp11_secondary_memory_needed): New function.
4331         (pdp11_return_in_memory): Add other float types.
4332         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
4333         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
4334         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
4335         REGISTER_MOVE_COST): Delete.
4336         (BASE_RETURN_VALUE_REG): Add other float types.
4337
4338 2010-10-29  Nick Clifton  <nickc@redhat.com>
4339
4340         * doc/invoke.texi: Document -mam34 and -mtune options.
4341         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
4342         (mn10300_tune_cpu): New variable.
4343         (mn10300_handle_option): Handle -mam34 and -mtune options.
4344         (mn10300_option_override): Convert tune string into tune cpu variable.
4345         (mn10300_legitimate_constant_p): Delete unused local variable.
4346         (is_load_insn): New function.
4347         (is_store_insn): New function.
4348         (mn10300_adjust_schedule_cost): New function.
4349         (TARGET_SCHED_ADJUST_COST): Define.
4350         * config/mn10300/mn10300.opt (mam34): New option.
4351         (mtune): New option.
4352         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
4353         (enum processor_type): Add AM34.
4354         (TARGET_AM34): Define.
4355         * config/mn10300/mn10300.md (attr cpu): Add am34.
4356         Add pipeline description.
4357         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
4358         Remove unneeded alternatives.  Add timing attribute.
4359         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
4360         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
4361         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
4362         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
4363         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
4364         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
4365         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
4366         float_conditional_branch, jump, indirect_jump, tablejump,
4367         call_internal, call_value_internal, zero_extendqisi2_am33,
4368         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
4369         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
4370         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
4371         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
4372         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
4373         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
4374         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
4375         return_internal_regs, store_movm, return, call_next_insn):
4376         Add timing attribute.
4377         (am33_subsi3): Add missing clobber of CC_REG.
4378         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
4379         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
4380         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
4381         extendqisi2): Fix predicates.
4382         (call_internal, call_internal_value): Separate alternatives.
4383         * config/mn10300/t-mn10300: Add AM34 multilib.
4384
4385 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
4386
4387         * config/sh/sh.c (sh_promote_function_mode): Use
4388         default_promote_function_mode if !sh_promote_prototypes.
4389
4390 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
4391
4392         * recog.c (split_all_insns): Remove dead code.
4393
4394 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4395
4396         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4397
4398 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4399
4400         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4401         (FUNCTION_ARG_ADVANCE): Delete.
4402         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
4403         functions.
4404         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
4405         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4406         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4407
4408 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4409
4410         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
4411         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4412         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4413         Take a const_tree and a bool.
4414         (mcore_function_arg_advance): New function.
4415         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4416
4417 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4418
4419         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
4420         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4421         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4422         Take a const_tree and a bool.
4423         (mcore_function_arg_advance): New function.
4424         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4425
4426 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4427
4428         * config/h8300/h8300-protos.h (function_arg): Delete.
4429         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4430         * config/h8300/h8300.c (function_arg): Rename to...
4431         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
4432         a bool.
4433         (h8300_function_arg_advance): New function.
4434         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4435
4436 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4437
4438         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
4439         to...
4440         * config/arc/arc.c (arc_function_arg): ...here and...
4441         (arc_function_arg_advance): ...here.  New functions.
4442         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4443
4444 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4445
4446         * config/crx/crx-protos.h (crx_function_arg): Delete.
4447         (crx_function_arg_advance): Delete.
4448         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4449         * config/crx/crx.c (crx_function_arg): Make static.  Take a
4450         const_tree and a bool.
4451         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
4452         (enough_regs_for_param): Take a const_tree.
4453         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4454
4455 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4456
4457         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
4458         (m68hc11_function_arg_advance): Delete.
4459         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
4460         (FUNCTION_ARG_ADVANCE): Delete.
4461         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
4462         Take a const_tree and a bool.
4463         (m68hc11_function_arg_advance): Likewise.
4464         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4465
4466 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4467
4468         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
4469         (xstormy16_function_arg_advance): Delete.
4470         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
4471         (FUNCTION_ARG_ADVANCE): Delete.
4472         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
4473         Take a const_tree and a bool.
4474         (xstormy16_function_arg_advance): Likewise.  Return void, updating
4475         the CUM parameter instead.
4476         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4477
4478 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4479
4480         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
4481         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4482         (MOXIE_FUNCTION_ARG_SIZE): Move to...
4483         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
4484         (moxie_function_arg): Make static.  Take a const_tree and a bool.
4485         (moxie_function_arg_advance): New function.
4486         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4487
4488 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4489
4490         * config/mn10300/mn10300-protos.h (function_arg): Delete.
4491         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
4492         (FUNCTION_ARG_ADVANCE): Delete.
4493         * config/mn10300/mn10300.c (function_arg): Rename to...
4494         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
4495         and a bool.
4496         (mn10300_function_arg_advance): New function.
4497         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4498
4499 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4500
4501         * config/iq2000/iq2000-protos.h (function_arg): Delete.
4502         (function_arg_advance): Delete.
4503         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4504         * config/iq2000/iq2000.c (function_arg): Rename to...
4505         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
4506         a bool.
4507         (function_arg_advance): Rename to...
4508         (iq2000_function_arg_advance): ...this.  Make static.  Take a
4509         const_tree and a bool.
4510         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
4511         iq2000_function_arg.
4512         (iq2000_pass_by_reference): Call iq2000_function_arg).
4513         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4514
4515 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4516
4517         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
4518         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4519         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
4520         const_tree.
4521         (fr30_function_arg): New function.
4522         (fr30_function_arg_advance): New function.
4523         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4524
4525 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4526
4527         * config/frv/frv-protos.h (frv_function_arg): Delete.
4528         (frv_function_arg_advance): Delete.
4529         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4530         * config/frv/frv.c (frv_function_arg): Rename to...
4531         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
4532         (frv_function_arg, frv_function_incoming_arg): New functions.
4533         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
4534         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4535         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4536
4537 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
4538
4539         PR target/46153
4540         * config/i386/sse.md (sse_movhlps_exp): Use destination
4541         returned from ix86_fixup_binary_operands to expand insn.
4542         (sse_movlhps_exp): Ditto.
4543         (sse_loadhps_exp): Ditto.
4544         (sse_loadlps_exp): Ditto.
4545         (sse2_loadhpd_exp): Ditto.
4546         (sse2_loadlpd_exp): Ditto.
4547
4548 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
4549
4550         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
4551         constants in thumb2.
4552
4553 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
4554
4555         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
4556         arithmetics in masking operations.
4557         (contains_muldiv): Likewise.
4558         (try_combine): Likewise.
4559         (find_split_point): Likewise.
4560         (combine_simplify_rtx): Likewise.
4561         (simplify_if_then_else): Likewise.
4562         (simplify_set): Likewise.
4563         (expand_compound_operation): Likewise.
4564         (expand_field_assignment): Likewise.
4565         (make_extraction): Likewise.
4566         (extract_left_shift): Likewise.
4567         (make_compound_operation): Likewise.
4568         (force_to_mode): Likewise.
4569         (make_field_assignment): Likewise.
4570         (reg_nonzero_bits_for_combine): Likewise.
4571         (simplify_shift_const_1): Likewise.
4572         (simplify_comparison): Likewise.
4573
4574 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
4575
4576         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
4577         (ia64_function_arg_advance): Delete.
4578         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4579         (FUNCTION_ARG_ADVANCE): Delete.
4580         * config/ia64/ia64.c (ia64_function_arg): Rename to...
4581         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
4582         bool arguments.
4583         (ia64_function_arg, ia64_function_incoming_arg): New functions.
4584         (ia64_function_arg_advance): Make static.  Take a const_tree and
4585         a bool.
4586         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4587         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4588
4589 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
4590
4591         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
4592         (TARGET_GET_RAW_ARG_MODE): New.
4593         * doc/tm.texi: Regenerate.
4594         * target.def (get_raw_result_mode): New.
4595         (get_raw_arg_mode): New.
4596         * targhooks.c (default_get_reg_raw_mode): New.
4597         * targhooks.h (default_get_reg_raw_mode): New.
4598         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
4599         (apply_result_size): Ditto.
4600         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
4601         (TARGET_GET_RAW_RESULT_MODE): Define.
4602         (TARGET_GET_RAW_ARG_MODE): Ditto.
4603
4604 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4605
4606         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
4607         for newer Solaris 10 release.
4608         (sparc_fallback_frame_state): Likewise.
4609
4610 2010-10-27  Jason Merrill  <jason@redhat.com>
4611
4612         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
4613         variables sooner.
4614
4615 2010-10-27  Jie Zhang  <jie@codesourcery.com>
4616             Maxim Kuvyrkov  <maxim@codesourcery.com>
4617
4618         * haifa-sched.c (ISSUE_POINTS): Remove.
4619         (max_issue): Don't issue more than issue_rate instructions.
4620
4621 2010-10-27  Ian Lance Taylor  <iant@google.com>
4622
4623         PR target/46197
4624         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
4625         (split_stack_return): Replace UNSPEC_STACK_CHECK with
4626         UNSPECV_SPLIT_STACK_RETURN.
4627
4628 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
4629
4630         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
4631
4632         * config/i386/i386.c (block_info): New.
4633         (BLOCK_INFO): Likewise.
4634         (call_avx256_state): Likewise.
4635         (check_avx256_stores): Likewise.
4636         (move_or_delete_vzeroupper_2): Likewise.
4637         (move_or_delete_vzeroupper_1): Likewise.
4638         (move_or_delete_vzeroupper): Likewise.
4639         (use_avx256_p): Likewise.
4640         (function_pass_avx256_p): Likewise.
4641         (flag_opts): Add -mvzeroupper.
4642         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
4643         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
4644         is disabled.
4645         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
4646         generate vzeroupper.
4647         (init_cumulative_args): Add an int to indicate caller.  Set
4648         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
4649         based on return type.
4650         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
4651         caller_pass_avx256_p based on argument type.
4652         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
4653         is used, but not returned by caller.
4654         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
4655         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
4656         is used.
4657         (ix86_minimum_alignment): Likewise.
4658         (ix86_expand_special_args_builtin): Set target to
4659         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
4660         (ix86_reorg): Run the vzeroupper optimization if needed.
4661
4662         * config/i386/i386.h (ix86_args): Add caller.
4663         (INIT_CUMULATIVE_ARGS): Updated.
4664         (machine_function): Add use_vzeroupper_p, use_avx256_p,
4665         caller_pass_avx256_p, caller_return_avx256_p,
4666         callee_pass_avx256_p and callee_return_avx256_p.
4667
4668         * config/i386/i386.opt (-mvzeroupper): New.
4669
4670         * config/i386/predicates.md (vzeroupper_operation): Removed.
4671
4672         * config/i386/sse.md (avx_vzeroupper): Removed.
4673         (*avx_vzeroupper): Removed.
4674         (avx_vzeroupper): New.
4675
4676         * doc/invoke.texi: Document -mvzeroupper.
4677
4678 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4679
4680         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
4681         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
4682         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
4683
4684 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4685             Olivier Hainque  <hainque@adacore.com>
4686
4687         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
4688         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
4689         fs->signal_frame instead.
4690
4691 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4692
4693         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
4694         parsing of RID_COPIES and RID_IVAR.
4695
4696 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4697
4698         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
4699         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
4700         Do not use objc_set_property_attr, but use local variables
4701         instead.  Detect repeated usage of setter, getter and ivar
4702         attributes.  Improved error processing when a setter name does not
4703         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
4704         that the token is a keyword.  Updated call to
4705         objc_add_property_declaration.
4706
4707 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4708
4709         * c-parser.c (c_parser_objc_at_property): Renamed to
4710         c_parser_objc_at_property_declaration.  Updated calls to
4711         objc_add_property_variable, now objc_add_property_declaration.
4712         Code rewritten to be much more robust in recovering from syntax
4713         errors.  Added comments.
4714         (c_parser_objc_property_attrlist): Removed.
4715         (c_parser_external_declaration): Updated calls to
4716         c_parser_objc_at_property, now
4717         c_parser_objc_at_property_declaration.
4718         (c_parser_objc_methodprotolist): Same change.
4719
4720 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4721
4722         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
4723
4724 2010-10-26  Jan Hubicka  <jh@suse.cz>
4725
4726         * ipa.c (process_references): Enqueue all referenced nodes;
4727         mark as reachable only non-external nodes.
4728         (cgraph_remove_unreachable_nodes): All referenced nodes should
4729         be enqueued; remove bogues node->needed check.
4730
4731 2010-10-26  Jan Hubicka  <jh@suse.cz>
4732
4733         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
4734         to represent OMP.
4735
4736 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4737
4738         * config/i386/i386.md (split_stack_return): Replace
4739         unspec_volatile with unspec.
4740
4741 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
4742
4743         * doc/install.texi: Fix typo in --with-sysroot description.
4744
4745 2010-10-26  Jan Hubicka  <jh@suse.cz>
4746
4747         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
4748         Use info provided by linker plugin.
4749
4750 2010-10-26  Jason Merrill  <jason@redhat.com>
4751
4752         * varasm.c (constructor_static_from_elts_p): Don't require a
4753         CONSTRUCTOR to have elements to be suitable for static
4754         initialization.  Allow ARRAY_TYPE as well.
4755
4756 2010-10-26  Jan Hubicka  <jh@suse.cz>
4757
4758         PR middle-end/45736
4759         * cgraph.c (cgraph_set_readonly_flag): Rename to...
4760         (cgraph_set_const_flags) ... this one; get also looping argument;
4761         clear constructor/destructor flags.
4762         (cgraph_set_pure_flag): Likewise.
4763         (cgraph_set_looping_const_or_pure_flag): Remove.
4764         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
4765         to optimize away static ctors/dtors; it does not work on inline clones;
4766         external functions can always be rmeoved.
4767         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
4768         inline clones; in LTO external functions always can go.
4769         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
4770         (cgraph_mark_address_taken_node): Assert that we are not taking
4771         address of inline clone.
4772         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
4773         external functions.
4774         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
4775         address taken.
4776         (ipcp_initialize_node_lattices): Only local functions can be
4777         handled without cloning.
4778         * cgraph.h (cgraph_set_readonly_flag,
4779         cgraph_set_looping_const_or_pure_flag): Remove.
4780         (cgraph_set_const_flag): Declare.
4781         (cgraph_set_pure_flag): Update.
4782         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
4783         flags setting code.
4784         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
4785         look at inline clones; fix handling of external definitions.
4786         (cgraph_postorder): Do not look at inline clones in the first pass.
4787         (function_and_variable_visibility): Drop constructors/destructor
4788         flags at pure and const functions.
4789         * tree-profile.c (tree_profiling): Update.
4790         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
4791         address taken; external functions do not account to whole program size.
4792         (cgraph_decide_inlining): Likewise; do not try to inline
4793         functions already inlined.
4794
4795 2010-10-26  Jie Zhang  <jie@codesourcery.com>
4796
4797         * doc/invoke.texi: Improve documentation of
4798         -fstrict-volatile-bitfields.
4799
4800 2010-10-26  Ira Rosen  <irar@il.ibm.com>
4801
4802         PR tree-optimization/46167
4803         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
4804         is basic block for the statement.
4805
4806 2010-10-26  Paul Koning  <ni1d@arrl.net>
4807
4808         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
4809         current definition of struct_real_format.
4810
4811 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4812
4813         PR target/44948
4814         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
4815         (ix86_function_arg_boundary): Always align parameters on stack
4816         in 64bit and align parameters with alignment >= 16byte on stack
4817         in 32bit.  Warn alignment change.
4818
4819 2010-10-26  Ian Lance Taylor  <iant@google.com>
4820
4821         PR middle-end/45687
4822         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
4823         offset.
4824
4825 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4826
4827         Implement opaque-enum-specifiesr for C++0x
4828         * tree.h (ENUM_IS_OPAQUE): New.
4829         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
4830
4831 2010-10-26  Jie Zhang  <jie@codesourcery.com>
4832
4833         * stor-layout.c (layout_decl): Use the field's type to
4834         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
4835         * config/arm/arm.c (arm_override_options): Default to
4836         -fstrict-volatile-bitfields.
4837
4838 2010-10-25  Paul Koning  <ni1d@arrl.net>
4839
4840         * config/pdp11/pdp11.md: Add define_constants for register
4841         numbers, branch offset limits.
4842         * config/pdp11/pdp11.c: Use named constants instead of numbers.
4843         * config/pdp11.pdp11.h: Ditto.
4844
4845 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
4846
4847         * configure.ac: Use $cpu_type instead of $target to define the nop.
4848         * configure: Regenerate.
4849
4850 2010-10-25  Jie Zhang  <jie@codesourcery.com>
4851
4852         * combine.c (try_combine): If insns need to be kept around, check that
4853         they can be copied in the merged instruction.
4854
4855 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4856
4857         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
4858         has been modified.
4859         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
4860         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
4861         it has been modified.
4862
4863 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4864
4865         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
4866
4867 2010-10-24  Paul Koning  <ni1d@arrl.net>
4868
4869         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
4870         * config/pdp11/pdp11.c (output_jump): Ditto.
4871
4872 2010-10-24  Ian Lance Taylor  <iant@google.com>
4873
4874         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
4875
4876 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4877
4878         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
4879         least one insn with a locus corresponding to an edge's goto_locus,
4880         disregard non-fallthru edges to the exit block and merge the blocks
4881         created for the same goto_locus.
4882
4883 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
4884
4885         * gcc.c (n_switches_alloc_debug_check): New.
4886         (set_option_handlers): New.
4887         (process_command): Use set_option_handlers.
4888         (do_self_spec): Pass spec-generated options through option handlers.
4889         (main): Also save and restore n_switches_alloc when swapping
4890         switch arrays.
4891
4892 2010-10-23  Richard Henderson  <rth@redhat.com>
4893
4894         PR target/46144
4895         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
4896         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
4897         Honor matching operands when splitting to XOR.
4898
4899 2010-10-23  Ian Lance Taylor  <iant@google.com>
4900
4901         * tree-vrp.c (extract_range_from_binary_expr): If
4902         flag_non_call_exceptions don't eliminate division by zero.
4903         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4904
4905 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
4906
4907         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
4908         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
4909         __ORDER_PDP_ENDIAN__.
4910         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4911         (struct DWstruct): Define based on __BYTE_ORDER__.
4912         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4913         (struct INTstruct): Define based on __BYTE_ORDER__.
4914         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4915         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
4916         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
4917         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4918         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4919         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4920         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4921         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4922         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4923         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4924         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4925         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4926         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4927         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4928         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4929         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4930         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4931         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4932         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4933         * doc/tm.texi: Regenerate.
4934         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
4935         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
4936
4937 2010-10-23  Jie Zhang  <jie@codesourcery.com>
4938
4939         PR rtl-optimization/37360
4940         * config/mips/mips.c (cached_can_issue_more): New local variable.
4941         (mips_sched_reorder_1): New.
4942         (mips_sched_reorder): Use mips_sched_reorder_1.
4943         (mips_sched_reorder2): New.
4944         (mips_variable_issue): Set cached_can_issue_more.
4945         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
4946         instead of mips_sched_reorder.
4947
4948         Revert:
4949         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
4950         PR rtl-optimization/37360
4951         * haifa-sched.c (max_issue): Do not assert that we never issue more
4952         insns than issue_rate.  Add comment.
4953
4954 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
4955
4956         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
4957         location info of the expression.
4958
4959 2010-10-22  DJ Delorie  <dj@redhat.com>
4960
4961         * doc/extend.texi (Named Address Spaces): Document the M32C named
4962         address space.
4963
4964         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
4965         __far address space.
4966         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
4967         "__far" address space for R8C and M16C processor variants.
4968         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
4969         (far_addr_space_p): New.
4970         (encode_pattern_1): Add sign and zero extend support.
4971         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
4972         (m32c_extra_constraint_p2): Add SF constraint.
4973         (m32c_legitimate_address_p): Support __far addresses.
4974         (m32c_addr_space_pointer_mode): New.
4975         (m32c_addr_space_address_mode): New.
4976         (m32c_addr_space_legitimate_address_p): New.
4977         (m32c_addr_space_legitimize_address): New.
4978         (m32c_addr_space_subset_p): New.
4979         (m32c_addr_space_convert): New.
4980         (conversions): Add __far operand patterns.
4981         (m32c_prepare_move): Force constants into registers for __far moves.
4982         (m32c_split_move): __far moves are always split.
4983         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
4984         * config/m32c/mov.md (mov<mode>_far_op1): New.
4985         (mov<mode>_far_op2): New.
4986         (movqi_op): Add __far (SF) support.
4987         (movhi_op): Likewise.
4988         (movsi_splittable): Split A1A0 also.
4989
4990 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4991             Andrew Pinski  <pinskia@gmail.com>
4992
4993         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
4994         * doc/extend.texi: New paragraph
4995
4996 2010-10-22  Paul Koning  <ni1d@arrl.net>
4997
4998         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
4999
5000 2010-10-22  DJ Delorie  <dj@redhat.com>
5001
5002         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
5003
5004 2010-10-22  Paul Koning  <ni1d@arrl.net>
5005
5006         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
5007
5008 2010-10-22  Richard Henderson  <rth@redhat.com>
5009
5010         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
5011         cases for __builtin_fma and __builtin_fmaf.
5012
5013 2010-10-22  Richard Henderson  <rth@redhat.com>
5014
5015         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
5016         NEG+USE for vectors as well.
5017         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
5018         and splitter.
5019
5020 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5021
5022         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
5023         SWITCH_CURTAILS_COMPILATION): Remove.
5024         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
5025         * doc/tm.texi: Regenerate.
5026         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
5027
5028 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5029
5030         * config/i386/bdver1.md: New file.
5031         * config/i386/i386.md (include "bdver1.md"): Invoke the
5032         pipeline description for bdver1.
5033         (x86_sahf_1): Add "bdver1_decode" attribute.
5034         (*cmpfp_i_mixed): Likewise.
5035         (*cmpfp_i_sse): Likewise.
5036         (*cmpfp_i_i387): Likewise.
5037         (*cmpfp_iu_mixed): Likewise.
5038         (*cmpfp_iu_sse): Likewise.
5039         (*cmpfp_iu_387): Likewise.
5040         (*swap<mode>,*swap<mode>_1): Likewise.
5041         (fixuns_trunc<mode>hi2): Likewise.
5042         (fix_trunc<mode>si_sse): Likewise.
5043         (x86_fnstcw_1): Likewise.
5044         (x86_fldcw_1): Likewise.
5045         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
5046         (*floatsi<mode>2_vector_mixed): Likewise.
5047         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
5048         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5049         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5050         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
5051         (*floatsi<mode>2_vector_sse): Likewise.
5052         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
5053         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5054         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5055         (*mul<mode>3_1): Likewise.
5056         (*mulsi3_1_zext): Likewise.
5057         (*mulhi3_1): Likewise.
5058         (*mulqi3_1): Likewise.
5059         (*<u>mul<mode><dwi>3_1): Likewise.
5060         (*<u>mulqihi3_1): Likewise.
5061         (*<s>muldi3_highpart_1): Likewise.
5062         (*<s>mulsi3_highpart_1): Likewise.
5063         (*<s>mulsi3_highpart_zext): Likewise.
5064         (x86_64_shld): Likewise.
5065         (x86_shld): Likewise.
5066         (x86_64_shrd): Likewise.
5067         (x86_shrd): Likewise.
5068         (sqrtxf2): Likewise.
5069         (sqrt_extend<mode>xf2_i387): Likewise.
5070         (*sqrt<mode>2_sse): Likewise.
5071         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
5072         (sse_cvtsi2ssq): Likewise.
5073         (sse_cvtss2si): Likewise.
5074         (sse_cvtss2si_2): Likewise.
5075         (sse_cvtss2siq): Likewise.
5076         (sse_cvtss2siq_2): Likewise.
5077         (sse_cvttss2si): Likewise.
5078         (sse_cvttss2siq): Likewise.
5079         (sse2_cvtpi2pd): Likewise.
5080         (sse2_cvttpd2pi): Likewise.
5081         (sse2_cvtsi2sd): Likewise.
5082         (sse2_cvtsi2sdq): Likewise.
5083         (sse2_cvtsd2si): Likewise.
5084         (sse2_cvtsd2si_2): Likewise.
5085         (sse2_cvtsd2siq): Likewise.
5086         (sse2_cvtsd2siq_2): Likewise.
5087         (sse2_cvttsd2si): Likewise.
5088         (sse2_cvttsd2siq): Likewise.
5089         (*sse2_cvtpd2dq): Likewise.
5090         (*sse2_cvttpd2dq): Likewise.
5091         (sse2_cvtsd2ss): Likewise.
5092         (sse2_cvtss2sd): Likewise.
5093         (*sse2_cvtpd2ps): Likewise.
5094         (sse2_cvtps2pd): Likewise.
5095
5096 2010-10-22  Richard Guenther  <rguenther@suse.de>
5097
5098         PR middle-end/46137
5099         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
5100         remove the virtual operands if they are not needed.
5101
5102 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5103
5104         * config/i386/i386.c (processor_costs bdver1_cost): Update
5105         insn costs and architectural parameters for bdver1.
5106
5107 2010-10-22  Richard Guenther  <rguenther@suse.de>
5108
5109         * gimple.h (gimple_register_canonical_type): Declare.
5110         * gimple.c (gimple_canonical_types): New global hashtable.
5111         (struct gimple_type_leader_entry_s): New type.
5112         (gimple_type_leader): New global cache.
5113         (gimple_lookup_type_leader): New function.
5114         (gtc_visit): Query the proper cache.
5115         (gimple_types_compatible_p): Likewise.
5116         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
5117         (gimple_canonical_type_eq): New function.
5118         (gimple_register_canonical_type): Likewise.
5119         (print_gimple_types_stats): Adjust for gimple_canonical_types.
5120         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
5121         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
5122         gimple_types_compatible_p for LTO.
5123
5124 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
5125
5126         PR target/46098
5127         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
5128         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
5129         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
5130         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
5131         (<sse>_movu<ssemodesuffix>): New expander.
5132         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
5133         (avx_movdqu<avxmodesuffix>): New expander.
5134         (*sse2_movdqu): Rename from sse2_movdqu.
5135         (sse2_movdqu): New expander.
5136
5137 2010-10-22  Richard Guenther  <rguenther@suse.de>
5138
5139         PR tree-optimization/45720
5140         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5141         Handle negative step.
5142         (vect_enhance_data_refs_alignment): Likewise.
5143         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
5144         (vect_create_cond_for_align_checks): Likewise.
5145         (vect_create_cond_for_alias_checks): Likewise.
5146
5147 2010-10-22  Ira Rosen  <irar@il.ibm.com>
5148
5149         PR tree-optimization/46126
5150         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
5151         vectorizable_shift in case of basic block vectorization.
5152
5153 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5154
5155         * target.h (enum opt_levels, struct default_options): New.
5156         * target.def (handle_ofast): Remove hook.
5157         (target_option.optimization): Change to
5158         target_option.optimization_table.
5159         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
5160         TARGET_OPTION_OPTIMIZATION_TABLE.
5161         (CAN_DEBUG_WITHOUT_FP): Remove.
5162         * doc/tm.texi: Regenerate.
5163         * opts.c (maybe_default_option, maybe_default_options,
5164         default_options_table): New.
5165         (default_options_optimization): Take extra parameters.  Don't
5166         assert that global_options and global_options_set are in use.  Use
5167         maybe_default_options.
5168         (decode_options): Pass extra parameters to
5169         default_options_optimization.
5170         * common.opt (falign-loops): Use value 0 with Var.
5171         (frerun-cse-after-loop, ftree-ter): Remove Init.
5172         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
5173         TARGET_OPTION_OPTIMIZATION): Remove.
5174         * targhooks.c (empty_optimization_table): New.
5175         * targhooks.h (empty_optimization_table): Declare.
5176         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
5177         * config/alpha/alpha.c (alpha_option_optimization_table,
5178         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5179         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
5180         * config/arm/arm.c (arm_option_optimization: Change to
5181         arm_option_optimization_table.
5182         (TARGET_OPTION_OPTIMIZATION): Change to
5183         TARGET_OPTION_OPTIMIZATION_TABLE.
5184         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
5185         * config/avr/avr.c (avr_option_optimization_table,
5186         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5187         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
5188         * config/cris/cris.c (cris_option_optimization): Change to
5189         cris_option_optimization_table.
5190         (TARGET_OPTION_OPTIMIZATION): Change to
5191         TARGET_OPTION_OPTIMIZATION_TABLE.
5192         * config/crx/crx.c (crx_option_optimization): Change to
5193         crx_option_optimization_table.
5194         (TARGET_OPTION_OPTIMIZATION): Change to
5195         TARGET_OPTION_OPTIMIZATION_TABLE.
5196         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5197         * config/fr30/fr30.c (fr30_option_optimization_table,
5198         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5199         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
5200         * config/frv/frv.c (frv_option_optimization_table,
5201         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5202         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
5203         * config/h8300/h8300.c (h8300_option_optimization): Change to
5204         h8300_option_optimization_table.
5205         (TARGET_OPTION_OPTIMIZATION): Change to
5206         TARGET_OPTION_OPTIMIZATION_TABLE.
5207         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5208         * config/i386/i386.c (ix86_option_optimization): Change to
5209         ix86_option_optimization_table.
5210         (TARGET_OPTION_OPTIMIZATION): Change to
5211         TARGET_OPTION_OPTIMIZATION_TABLE.
5212         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5213         as initializer.
5214         * config/ia64/ia64.c (ia64_option_optimization): Change to
5215         ia64_option_optimization_table.
5216         (TARGET_OPTION_OPTIMIZATION): Change to
5217         TARGET_OPTION_OPTIMIZATION_TABLE.
5218         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
5219         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
5220         initializer.
5221         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5222         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5223         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5224         * config/lm32/lm32.c (lm32_option_optimization_table,
5225         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5226         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
5227         * config/m32r/m32r.c (m32r_option_optimization): Change to
5228         m32r_option_optimization_table.
5229         (TARGET_OPTION_OPTIMIZATION): Change to
5230         TARGET_OPTION_OPTIMIZATION_TABLE.
5231         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
5232         CAN_DEBUG_WITHOUT_FP): Remove.
5233         * config/mcore/mcore.c (mcore_option_optimization): Change to
5234         mcore_option_optimization_table.
5235         (TARGET_OPTION_OPTIMIZATION): Change to
5236         TARGET_OPTION_OPTIMIZATION_TABLE.
5237         * config/mep/mep.c (mep_option_optimization): Change to
5238         mep_option_optimization_table.
5239         (TARGET_OPTION_OPTIMIZATION): Change to
5240         TARGET_OPTION_OPTIMIZATION_TABLE.
5241         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5242         * config/microblaze/microblaze.c
5243         (microblaze_option_optimization_table,
5244         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5245         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5246         * config/mips/mips.c (mips_option_optimization_table,
5247         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5248         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5249         * config/mmix/mmix.c (mmix_option_optimization): Change to
5250         mmix_option_optimization_table.
5251         (TARGET_OPTION_OPTIMIZATION): Change to
5252         TARGET_OPTION_OPTIMIZATION_TABLE.
5253         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5254         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5255         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5256         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5257         * config/pa/pa.c (pa_option_optimization_table,
5258         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5259         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5260         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
5261         pdp11_option_optimization_table.
5262         (TARGET_OPTION_OPTIMIZATION): Change to
5263         TARGET_OPTION_OPTIMIZATION_TABLE.
5264         * config/picochip/picochip.c (picochip_option_optimization_table,
5265         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5266         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
5267         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
5268         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5269         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5270         * config/rx/rx.c (rx_option_optimization_table,
5271         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5272         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5273         * config/s390/s390.c (s390_option_optimization): Change to
5274         s390_option_optimization_table.
5275         (s390_option_override): Update comment.
5276         (TARGET_OPTION_OPTIMIZATION): Change to
5277         TARGET_OPTION_OPTIMIZATION_TABLE.
5278         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
5279         * config/score/score.c (score_option_optimization_table,
5280         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5281         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
5282         * config/sh/sh.c (sh_option_optimization): Change to
5283         sh_option_optimization_table.
5284         (TARGET_OPTION_OPTIMIZATION): Change to
5285         TARGET_OPTION_OPTIMIZATION_TABLE.
5286         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
5287         (sh_option_override, expand_block_move, multcosts, find_barrier,
5288         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
5289         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
5290         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
5291         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
5292         instead of TARGET_SMALLCODE.
5293         * config/sh/sh.opt (mspace): Make into an alias for -Os.
5294         * config/sparc/sparc.c (sparc_option_optimization_table,
5295         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5296         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
5297         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5298         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5299         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
5300         * config/v850/v850.c (v850_option_optimization): Change to
5301         v850_option_optimization_table.
5302         (TARGET_OPTION_OPTIMIZATION): Change to
5303         TARGET_OPTION_OPTIMIZATION_TABLE.
5304         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
5305         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
5306         xtensa_option_optimization_table.
5307         (TARGET_OPTION_OPTIMIZATION): Change to
5308         TARGET_OPTION_OPTIMIZATION_TABLE.
5309         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5310
5311 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
5312
5313         Based on the CFString implementation in FSF apple/trunk branch.
5314
5315         * target.def (objc_construct_string): New Hook.
5316         * doc/tm.texi (objc_construct_string): Document.
5317         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
5318         * config/t-darwin: Amend build rules for darwin.o.
5319         * config/darwin.opt: Add cfstrings flags.
5320         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
5321         (darwin_objc_construct_string): New.
5322         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
5323         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
5324         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
5325         (darwin_fold_builtin): Likewise.
5326         (darwin_build_constant_cfstring): Likewise.
5327         (darwin_objc_construct_string): Likewise.
5328         (darwin_cfstring_p): Likewise.
5329         (darwin_enter_string_into_cfstring_table): Likewise.
5330         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
5331         * config/darwin.c (darwin_running_cxx): New var.
5332         (machopic_select_section): Return cfstring_constant_object_section.
5333         (darwin_override_options): Set darwin_running_cxx.
5334         (add_builtin_field_decl): New.
5335         (darwin_init_cfstring_builtins): New.
5336         (darwin_build_constant_cfstring): New.
5337         (darwin_fold_builtin): New.
5338         (cfstring_hash): New.
5339         (cfstring_eq): New.
5340         (darwin_enter_string_into_cfstring_table): New.
5341         * config/darwin-sections.def (cfstring_constant_object_section): New.
5342         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
5343         (TARGET_OBJC_CONSTRUCT_STRING): Define.
5344
5345 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5346
5347         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
5348         TYPE_STUB_DECL instead of TREE_CHAIN.
5349         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
5350         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
5351         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
5352         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
5353         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
5354         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
5355         Likewise.
5356         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
5357
5358 2010-10-22  Jie Zhang  <jie@codesourcery.com>
5359
5360         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
5361         (copy_blkmode_from_reg): Likewise.
5362         (read_complex_part): Likewise.
5363         (expand_expr_real_1): Calculate packedp and pass it to
5364         extract_bit_field.
5365         * expr.h (extract_bit_field): Update declaration.
5366         * calls.c (store_unaligned_arguments_into_pseudos): Update call
5367         to extract_bit_field.
5368         * expmed.c (extract_fixed_bit_field): Update calls to
5369         extract_fixed_bit_field.
5370         (store_split_bit_field): Likewise.
5371         (extract_bit_field_1): Add new argument packedp.
5372         (extract_bit_field): Add new argument packedp.
5373         (extract_fixed_bit_field): Add new argument packedp and let
5374         packed attribute override volatile.
5375         * stmt.c (expand_return): Update call to extract_bit_field.
5376
5377 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5378
5379         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
5380
5381 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5382
5383         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
5384         of gcc_checking_assert.
5385         * sel-sched.c (code_motion_process_successors): Likewise.
5386
5387 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
5388
5389         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
5390         when stopping because of a different locus on edge or insn.
5391         (try_optimize_cfg): Add comment.
5392         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
5393         block is a forwarder block, propagate locus on the edge.
5394         (cfg_layout_merge_blocks): Likewise.
5395
5396 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
5397
5398         PR target/45946
5399         * config/i386/i386.md (*pushti2): New insn pattern.
5400         (pushti2 splitter): New insn splitter.
5401         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
5402         DWI mode iterator.
5403
5404 2010-10-21  Paul Koning  <ni1d@arrl.net>
5405
5406         * config/pdp11/pdp11-protos.md (arith_operand,
5407         const_immediate_operand, expand_shift_operand,
5408         immediate15_operand): Delete
5409         * config/pdp11/pdp11.c: Ditto.
5410         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
5411         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5412         EXTRA_CONSTRAINT): Delete.
5413         * config/pdp11/pdp11.md (various): Use standard constraints
5414         instead of removed ones.
5415         * config/pdp11/constraints.md: New file.
5416         * config/pdp11/predicates.md: New file.
5417
5418 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
5419
5420         PR c/45834
5421         * alias.c (true_dependence_1): Remove obsolete check for QImode.
5422         (may_alias_p): Ditto.
5423
5424 2010-10-21  Martin Jambor  <mjambor@suse.cz>
5425
5426         PR tree-optimization/45875
5427         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
5428
5429 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5430
5431         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
5432         variables.
5433         (create_new_def_for): Likewise.
5434
5435 2010-10-21  Nick Clifton  <nickc@redhat.com>
5436
5437         * config/mn10300/mn10300.c: Fold code to 80-character width.
5438         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5439         MEM, CONST_INT and CONST_DOUBLE.
5440         (targetm): Move initialization to end of file.
5441         (print_operand): Rename to mn10300_print_operand.
5442         (print_operand_address): Rename to mn10300_print_operand_address.
5443         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
5444         (expand_prologue): Rename to mn10300_expand_prologue.
5445         (expand_epilogue): Rename to mn10300_expand_epilogue.
5446         (initial_offset): Rename to mn10300_initial_offset.
5447         (function_arg): Rename to mn10300_function_arg.
5448         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
5449         (symbolic_operand): Rename to mn10300_symbolic_operand.
5450         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
5451         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
5452         * config/mn10300/mn10300-protos.h: Update prototypes.
5453         * config/mn10300/mn10300.h: Fold code to 80-character width.
5454         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5455         MEM, CONST_INT and CONST_DOUBLE.
5456         (CPP_SPEC): Move to...
5457         (TARGET_CPU_CPP_BUILTINS): ... here.
5458         * config/mn10300/mn10300.md: Fold code to 80-character width.
5459         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5460         MEM, CONST_INT and CONST_DOUBLE.
5461
5462 2010-10-21  Ira Rosen  <irar@il.ibm.com>
5463
5464         PR tree-optimization/46049
5465         PR tree-optimization/46052
5466         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
5467         (vect_get_slp_defs): Add arguments.
5468         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
5469         operands to vect_get_slp_defs.
5470         (vectorizable_reduction): Fix comment, pass scalar operands to
5471         vect_get_slp_defs.
5472         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
5473         type to determine number of units in the created vector.
5474         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
5475         (vectorizable_conversion): Fix comment.
5476         (vectorizable_shift): New function.
5477         (vectorizable_operation): Move code that handles shifts to
5478         vectorizable_shift.
5479         (vectorizable_type_demotion): Fix comment, pass scalar operands to
5480         vect_get_slp_defs.
5481         (vectorizable_type_promotion, vectorizable_store): Likewise.
5482         (vectorizable_condition): Fix comment.
5483         (vect_analyze_stmt): Call vectorizable_shift.
5484         (vect_transform_stmt): Likewise.
5485         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
5486         Use it as the operand to create vectors for, except reduction
5487         initial definition and store.  Use operands type.
5488         (vect_get_slp_defs): Add new arguments.  Pass them to
5489          vect_get_constant_vectors.
5490
5491 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5492
5493         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
5494         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
5495         * cfghooks.c (fixup_reorder_chain): Likewise.
5496         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
5497         * cgraph.c (cgraph_add_thunk): Likewise.
5498         (cgraph_create_edge_1): Likewise.
5499         (cgraph_create_virtual_clone): Likewise.
5500         * ddg.c (add_cross_iteration_register_deps): Likewise.
5501         * dwarf2out.c (modified_type_die): Likewise.
5502         * emit-rtl.c (set_mem_alias_set): Likewise.
5503         * ggc-zone.c (zone_allocate_marks): Likewise.
5504         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
5505         * gimple.c (iterative_hash_gimple_type): Likewise.
5506         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
5507         (create_single_exit_edge): Likewise.
5508         * haifa-sched.c (choose_ready): Likewise.
5509         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5510         * passes.c (execute_todo): Likewise.
5511         * sched-ebb.c (begin_schedule_ready): Likewise.
5512         * sel-sched.c (code_motion_process_successors): Likewise.
5513         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
5514         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
5515         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
5516         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
5517         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
5518         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
5519         (ssa_conflicts_add): Likewise.
5520         * tree-ssa-copy.c (replace_exp): Likewise.
5521         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
5522         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
5523         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
5524         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
5525         (compute_antic): Likewise.
5526         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
5527         (add_dependence): Likewise.
5528         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
5529         * tree-vrp.c (supports_overflow_infinity): Likewise.
5530         (make_overflow_infinity, negative_overflow_infinity): Likewise.
5531         (avoid_overflow_infinity, register_new_assert_for): Likewise.
5532         (process_assert_insertions_for): Likewise.
5533         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
5534         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
5535         (intersect_loc_chains, variable_merge_over_cur): Likewise.
5536
5537 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5538
5539         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
5540         * reload1.c (has_nonexceptional_receiver): Likewise.
5541         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
5542         (create_new_def_for): Likewise.
5543         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
5544         (merge_phi_nodes): Likewise.
5545         (has_abnormal_incoming_edge_p): Delete.
5546
5547 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
5548
5549         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
5550
5551 2010-10-21  Richard Guenther  <rguenther@suse.de>
5552             Michael Matz  <matz@suse.de>
5553
5554         PR tree-optimization/45764
5555         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5556         Adjust initial misalignment for negative DR_STEP.
5557         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
5558         do not have the same alignment over the whole iteration domain.
5559
5560 2010-10-21  Richard Guenther  <rguenther@suse.de>
5561
5562         PR tree-optimization/46111
5563         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
5564
5565 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5566
5567         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
5568
5569 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5570
5571         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
5572         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
5573
5574 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5575
5576         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
5577         signal_frame.
5578         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
5579
5580 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5581
5582         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
5583         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
5584
5585 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
5586
5587         * basic-block.h (find_fallthru_edge): Define.
5588         * cfgcleanup.c (merge_blocks_move): Use it.
5589         (try_crossjump_bb): Likewise.
5590         * cfglayout.c (fixup_reorder_chains): Likewise.
5591         (fixup_fallthru_exit_predecessor): Likewise.
5592         * cfgrtl.c (rtl_split_edge): Likewise.
5593         (rtl_verify_flow_info): Likewise.
5594         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5595         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
5596         * ifcvt.c (block_fallthru): Likewise.
5597         * reload1.c (fixup_abnormal_edges): Likewise.
5598         * sched-ebb.c (being_schedule_ready): Likewise.
5599         (schedule_ebb): Likwise.
5600         * sched-rgn.c (find_single_block_region): Likewise.
5601         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
5602         * tree-complex.c (expand_complex_move): Likewise.
5603         * sched-int.h (find_fallthru_edge): Rename to...
5604         (find_fallthru_edge_from): ...this.
5605         * haifa-sched.c (find_fallthru_edge): Rename to...
5606         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
5607         (init_before_recovery): Call find_fallthru_edge_from.
5608         * sel-sched-ir.c (merge_fences): Likewise.
5609         * sel-sched.c (in_fallthru_bb_p): Likewise.
5610         (move_cond_jump): Likewise.
5611
5612 2010-10-20  Paul Koning  <ni1d@arrl.net>
5613
5614         * config/pdp11/pdp11.md (various): Fix conditions on a number of
5615         insn to check for target 11/40 or higher.
5616
5617 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5618
5619         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
5620         bool instead of a tree.
5621         (c_parser_objc_method_decl): Added bool argument.  Updated call to
5622         objc_build_method_signature.
5623         (c_parser_objc_method_definition): Do not call
5624         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
5625         c_parser_objc_method_decl and objc_start_method_definition.
5626         (c_parser_objc_methodproto): Do not call objc_set_method_type.
5627         Updated calls to c_parser_objc_method_type,
5628         c_parser_objc_method_decl and objc_add_method_declaration.
5629
5630 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
5631
5632         PR tree-optimization/45919
5633         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
5634         array members.
5635
5636         PR tree-optimization/46066
5637         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
5638         instead of gsi_last_bb.
5639
5640 2010-10-20  DJ Delorie  <dj@redhat.com>
5641
5642         * config/m32c/m32c.c (m32c_option_override): Always disable
5643         function-cse in 16-bit mode.  Indirect calls are always worse than
5644         direct calls as there is no 16-bit indirect call opcode.
5645         (m32c_override_options_after_change): New, likewise.
5646
5647 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
5648
5649         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
5650         emitting the conditional move in the inner mode of the SUBREG.
5651
5652 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
5653
5654         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
5655         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
5656         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5657         (ia64_preferred_reload_class): Make static.  Change rclass argument
5658         and result types from enum reg_class to reg_class_t.
5659
5660 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
5661
5662         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
5663         call for single operand expression.
5664
5665 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5666
5667         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
5668         if there is a call statement to pure or const function in the block.
5669
5670 2010-10-20  Paul Koning  <pkoning@equallogic.com>
5671
5672         Fix several build errors for pdp11 target.
5673         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
5674         (cbranchdf4): Conditional on TARGET_FPU.
5675         (movdf): Ditto; correct alternatives check.
5676         (movmemhi): Fix predicate and constraint.
5677         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
5678
5679 2010-10-20  Richard Guenther  <rguenther@suse.de>
5680
5681         PR lto/45667
5682         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
5683         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
5684         (verify_gimple_assign_single): Disable ADDR_EXPR type check
5685         when in LTO.
5686
5687 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
5688
5689         PR fortran/42169
5690         * ira-emit.c (store_can_be_removed_p): Return false instead of
5691         gcc_unreachable.
5692
5693 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
5694
5695         * fold-const.c (fold_binary_loc): New transformation.
5696
5697 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
5698
5699         PR target/46085
5700         * config/i386/sse.md (reduc_splus_v8sf): Updated.
5701         (reduc_splus_v4df): Likewise.
5702
5703 2010-10-20  Richard Guenther  <rguenther@suse.de>
5704
5705         PR tree-optimization/45860
5706         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
5707         conditional store replacement for non-register type stores.
5708
5709 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5710
5711         * stor-layout.c (skip_simple_constant_arithmetic): New function.
5712         (self_referential_size): Use it instead of skip_simple_arithmetic.
5713
5714 2010-10-20  Olivier Hainque  <hainque@adacore.com>
5715
5716         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
5717         If the current function calls eh_return, claim live all registers
5718         that we need to check for liveness otherwise.
5719
5720 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5721
5722         * c-decl.c (c_write_global_declarations): Call
5723         objc_write_global_declarations when compiling Objective-C.
5724         * c-lang.c (finish_file): Removed.
5725
5726 2010-10-19  DJ Delorie  <dj@redhat.com>
5727
5728         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
5729         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
5730         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5731         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5732         * doc/tm.texi: Regenerate.
5733         * targhooks.h (default_label_align_after_barrier_max_skip,
5734         default_loop_align_max_skip, default_label_align_max_skip,
5735         default_jump_align_max_skip): Declare.
5736         * target.def (label_align_after_barrier_max_skip): New.
5737         (loop_align_max_skip): New.
5738         (label_align_max_skip): New.
5739         (jump_align_max_skip): New.
5740         * system.h (poison): Add those macros to the list.
5741         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
5742         (LOOP_ALIGN_MAX_SKIP): Remove.
5743         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
5744         (JUMP_ALIGN_MAX_SKIP): Remove.
5745         (default_label_align_after_barrier_max_skip): New.
5746         (default_loop_align_max_skip): New.
5747         (default_label_align_max_skip): New.
5748         (default_jump_align_max_skip): New.
5749         (compute_alignments): Use the new hooks.
5750         (shorten_branches): Likewise.
5751
5752 2010-10-19  Richard Henderson  <rth@redhat.com>
5753
5754         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
5755         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
5756         (fma4i_fmadd_<mode>): New.
5757         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
5758         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
5759         standard fma patterns.
5760         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
5761         enable for FMA.
5762         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5763         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5764         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
5765
5766 2010-10-19  Paul Koning  <pkoning@equallogic.com>
5767
5768         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
5769         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
5770
5771 2010-10-19  Richard Henderson  <rth@redhat.com>
5772
5773         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
5774         (fmadf4, *fmsdf4, *nfmadf4): New.
5775         (fmaxf4, *fmsxf4, *nfmaxf4): New.
5776
5777 2010-10-19  Michael Eager  <eager@eagercon.com>
5778
5779         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
5780         Use sjlj unwind info for exceptions.
5781
5782 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
5783
5784         PR fortran/43414
5785         * dwarf2out.c (add_calling_convention_attribute): Flag main
5786         Fortran subroutine with DW_AT_main_subprogram.
5787
5788 2010-10-19  Nick Clifton  <nickc@redhat.com>
5789
5790         * config/rx/rx.c (rx_function_value): Small integer types are
5791         promoted to SImode.
5792         (rx_promote_function_mode): New function.
5793         (TARGET_PROMOTE_FUNCTION_MODE): Define.
5794
5795 2010-10-19  Nick Clifton  <nickc@redhat.com>
5796
5797         * config/mep/mep.c (mep_print_operand): Use
5798         targetm.strip_name_encoding.
5799         (mep_output_aligned_common): Likewise.
5800
5801 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
5802
5803         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
5804
5805 2010-10-18  Richard Henderson  <rth@redhat.com>
5806
5807         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
5808         (fma (neg a) (neg b) c) and (fma a (neg b) c).
5809
5810 2010-10-18  Richard Henderson  <rth@redhat.com>
5811
5812         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
5813         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
5814         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
5815         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
5816         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
5817         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
5818         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
5819         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
5820         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
5821         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
5822         (bdesc_multi_arg): Remove the corresponding builtins.
5823         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
5824         (UNSPEC_FMA4_FMSUBADD): Remove.
5825         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
5826         * config/i386/sse.md (FMA4MODEF4): Remove.
5827         (FMAMODE): Add.
5828         (fma<mode>4): New expander.
5829         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
5830         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
5831         (*fma4i_fmsub_<mode>): Similarly.
5832         (*fma4i_fnmadd_<mode>): Similarly.
5833         (*fma4i_fnmsub_<mode>): Similarly.
5834         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
5835         with the first operand.
5836         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
5837         of explicit arithmetic.  Macroize with AVXMODEF2P.
5838         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
5839         (xop_frcz<mode>2): Macroize with FMAMODE.
5840         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
5841         the first operand.
5842         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
5843         extra negations.
5844         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
5845         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
5846         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
5847         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
5848         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
5849         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
5850         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
5851         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
5852
5853 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
5854
5855         PR rtl-optimization/45966
5856         * combine.c (try_combine): If added_sets_2, deal with the case
5857         where i0 feeds i1 and i1 feeds i2.
5858
5859 2010-10-18  Jan Hubicka  <jh@suse.cz>
5860
5861         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
5862         preserve flags before trying to guess on visibility.
5863         (varpool_externally_visible_p): New function.
5864         (function_and_variable_visibility): Use it.
5865
5866 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5867
5868         Implemented parsing @synthesize and @dynamic for Objective-C.
5869         * c-parser.c (c_parser_external_declaration): Recognize
5870         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
5871         (c_parser_objc_at_synthesize_declaration): New.
5872         (c_parser_objc_at_dynamic_declaration): New.
5873
5874 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5875
5876         * c-parser.c (c_parser_objc_class_declaration): After finding an
5877         error, parse the whole declaration then reset parser->error.
5878
5879 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5880
5881         PR target/46041
5882         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
5883         * builtins.c (mode_has_fma): Ditto.
5884
5885 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
5886
5887         PR target/36898
5888         PR middle-end/43760
5889         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
5890
5891 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
5892
5893         * config/i386/i386.c (ix86_option_override_internal): Define and
5894         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
5895         default.
5896         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5897         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
5898
5899 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5900
5901         Merge from 'apple/trunk' branch on FSF servers.
5902         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
5903         following Objective-C change:
5904
5905         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
5906
5907         Radar 4301047
5908         * c-parse.in (objc_quals): Build objc qualifier list same way
5909         as gcc-3.3
5910
5911 2010-10-18  Jan Hubicka  <jh@suse.cz>
5912
5913         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
5914         function_and_variable_visibility): Revert accidental commit.
5915
5916 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5917
5918         Merge from 'apple/trunk' branch on FSF servers.
5919         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
5920         the following Objective-C change:
5921
5922         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
5923
5924         Radar 4204796
5925         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
5926         'volatilized' type used in a typeof operator.
5927
5928 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
5929
5930         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
5931         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
5932         rewrite modelled on gimple_purge_dead_eh_edges.
5933         (gimple_purge_all_dead_abnormal_call_edges): New function.
5934         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
5935         directly instead of through gimple_purge_dead_abnormal_call_edges.
5936         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
5937         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
5938         removed AB side-effects from one of its statements.
5939         (init_pre): Initialize need_ab_cleanup.
5940         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
5941         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
5942
5943 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5944
5945         PR c/46015
5946         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
5947         on computed goto argument.
5948
5949 2010-10-18  Richard Guenther  <rguenther@suse.de>
5950
5951         PR tree-optimization/45967
5952         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
5953         (could_have_pointers): Likewise.
5954         (handle_rhs_call, handle_const_call, handle_pure_call,
5955         find_func_aliases, intra_create_variable_infos): Remove calls to them.
5956         (struct fieldoff): Add must_have_pointers field.
5957         (type_must_have_pointers): New function.
5958         (field_must_have_pointers): Likewise.
5959         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
5960         Adjust field merging.
5961         (create_function_info_for): May-have-pointers of varinfo is
5962         almost always true.
5963         (create_variable_info_for_1): Likewise.
5964
5965 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
5966
5967         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
5968         of operands to vec_concat.
5969
5970 2010-10-18  Richard Guenther  <rguenther@suse.de>
5971
5972         PR lto/44950
5973         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
5974         also clear references to entries of it.
5975
5976 2010-10-18  Andi Kleen  <ak@linux.intel.com>
5977
5978         PR other/43448
5979         * gccbug.in: Remove.
5980         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
5981         (doc, distclean, install-common): Remove reference to gccbug.
5982         * configure: Regenerate.
5983         * configure.ac (all_outputs): Remove gccbug.
5984         * doc/configfiles.texi: Remove references to gccbug.
5985         * doc/sourcebuild.texi: Dito.
5986
5987 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5988
5989         PR middle-end/46019
5990         * fold-const.c (fold_binary_loc): If integer_pow2p has
5991         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
5992
5993 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5994             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5995
5996         * gengtype.c (verbosity_level): Add variable.
5997         (set_gc_used): Count variables for verbosity.
5998         (close_output_files): Backing up files, counting written ones
5999         verbosily.
6000         (write_types): Count emitted functions for verbosity. Added
6001         debug messages.
6002         (write_enum_defn): Count structures for verbosity. Added debug
6003         messages.
6004         (gengtype_long_options): Add "verbose" & "backupdir".
6005         (print_usage): Ditto.
6006         (main): Verbose display of parsed files.
6007
6008         * gengtype.h (verbosity_level): Add declaration.
6009
6010 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6011
6012         * gengtype.c (parse_program_options): Add allocation of
6013         plugin_files, and correct test on nb_plugin_files.
6014
6015 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6016
6017         Merge from 'apple/trunk' branch on FSF servers.
6018
6019         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
6020
6021         Radar 4133425
6022         * c-decl.c (undeclared_variable): Issue diagnostic on
6023         private 'ivar' access.
6024
6025 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6026
6027         PR target/46051
6028         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
6029         generated sequence to match *avx_vperm2f128<mode>_nozero.
6030         (vec_interleave_lowv4df): Ditto.
6031         (vec_interleave_highv8sf): Ditto.
6032         (vec_interleave_lowv8sf): Ditto.
6033
6034 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
6035
6036         * libgcov.c (create_file_directory): Enable it for win32 case.
6037         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
6038         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
6039         (GCOV_PREFIX_SKIP): Likewise.
6040
6041 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6042
6043         * doc/objc.texi (GNU Objective-C runtime API): New section.
6044         (Modern GNU Objective-C runtime API): New section.
6045         (Traditional GNU Objective-C runtime API): New section.
6046         (Executing code before main): Mention that this section is
6047         specific to the GNU Objective-C runtime.
6048         (Garbage Collection): Same.
6049
6050 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6051
6052         * c-parser.c (c_parser_for_statement): Move initialization of
6053         cond and incr before if.
6054
6055 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
6056
6057         * target.def (preferred_output_reload_class): New hook.
6058         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
6059         * doc/tm.texi: Regenerate.
6060         * targhooks.c (default_preferred_output_reload_class): New function.
6061         * targhooks.h (default_preferred_output_reload_class): Declare.
6062         * reload.c (find_dummy_reload): Change rclass argument type from
6063         enum reg_class to reg_class_t. Change this_alternative array type
6064         from enum reg_class to reg_class_t.
6065         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6066         (push_reload): Change preferred_class variable type to reg_class_t.
6067         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6068         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
6069         argument type from enum reg_class to reg_class_t. Use
6070         HARD_REGISTER_NUM_P predicate.
6071         * recog.h (reg_fits_class_p): Update prototype.
6072
6073         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6074         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
6075         Remove.
6076         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
6077         static. Change regclass argument and result types from enum reg_class
6078         to reg_class_t.
6079         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6080
6081 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
6082
6083         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
6084         visibility enum, and handle @package.
6085
6086 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6087
6088         * doc/objc.texi (What you can and what you cannot do in +load):
6089         Document that sending messages to constant string objects in +load
6090         is not guaranteed to work.
6091
6092 2010-10-16  Jan Hubicka  <jh@suse.cz>
6093
6094         PR middle-end/44206
6095         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
6096         existence of refrences before removing the function.
6097
6098 2010-10-16  Jan Hubicka  <jh@suse.cz>
6099
6100         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
6101         only_called_at_startup and only_called_at_exit.
6102         (cgraph_propagate_frequency): Compute only_called_at_startup and
6103         only_called_at_exit.
6104         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
6105         only_called_at_exit.
6106         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
6107         flags.
6108         * predict.c (compute_function_frequency): Initialize the new flags.
6109
6110 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
6111
6112         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
6113         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
6114         on the bounds of its domain.
6115         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
6116
6117 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
6118
6119         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
6120         * config/avr/avr-protos.h (preferred_reload_class): Remove.
6121         * config/avr/avr.c (preferred_reload_class): Remove.
6122         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
6123         * config/pa/pa.c (emit_move_sequence): Update comment
6124         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
6125         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
6126         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
6127         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
6128         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
6129         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
6130         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
6131         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
6132         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
6133         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
6134         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
6135         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
6136         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
6137
6138 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6139
6140         * opts.c (set_fast_math_flags,
6141         set_unsafe_math_optimizations_flags): Make static.
6142         * toplev.h (set_fast_math_flags,
6143         set_unsafe_math_optimizations_flags): Remove prototypes.
6144
6145 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6146
6147         * config/arm/arm.c (arm_option_optimization): Set
6148         flag_section_anchors to 1 not 2.
6149         * config/i386/i386.c (ix86_option_override_internal): Check
6150         global_options_set.x_flag_zee and
6151         global_options_set.x_flag_omit_frame_pointer.
6152         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
6153         flag_zee to 2.
6154         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6155         global_options_set.x_flag_omit_frame_pointer.
6156         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
6157         opts->x_flag_section_anchors to 1 not 2.
6158         * config/sh/sh.c (sh_option_optimization): Don't set
6159         flag_schedule_insns to 2.
6160         (sh_option_override): Check
6161         global_options_set.x_flag_schedule_insns.
6162         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
6163
6164 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
6165
6166         * configure.ac: Make sure inhibit_libc remains false for mingw targets
6167         as cross.
6168         * configure: Regenerated.
6169
6170 2010-10-15  Xinliang David Li  <davidxl@google.com>
6171
6172         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
6173         function.
6174         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
6175         into a recursive function.
6176
6177 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
6178
6179         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
6180         (*movdfcc_1): ditto.
6181
6182 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6183
6184         * target.def (target_option.init_struct): New hook.
6185         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
6186         * doc/tm.texi: Regenerate.
6187         * hooks.c (hook_void_gcc_optionsp): New.
6188         * hooks.h (hook_void_gcc_optionsp): Declare.
6189         * langhooks-def.h (lhd_init_options_struct): Remove.
6190         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
6191         * langhooks.c (lhd_init_options_struct): Remove.
6192         * opts.c (init_options_struct): Also call
6193         targetm.target_option.init_struct.
6194         * config/i386/i386.c (ix86_option_init_struct,
6195         TARGET_OPTION_INIT_STRUCT): New.
6196         (ix86_option_optimization): Move some settings to
6197         ix86_option_init_struct.
6198         * config/pdp11/pdp11.c (pdp11_option_init_struct,
6199         TARGET_OPTION_INIT_STRUCT): New.
6200         (pdp11_option_optimization): Move some settings to
6201         pdp11_option_init_struct.
6202         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
6203         rs6000_option_init_struct.  Use options structure pointer.
6204         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6205         * config/s390/s390.c (s390_option_init_struct,
6206         TARGET_OPTION_INIT_STRUCT): New.
6207         (s390_option_optimization): Don't set
6208         flag_asynchronous_unwind_tables here.
6209         * config/sh/sh.c (sh_option_init_struct,
6210         TARGET_OPTION_INIT_STRUCT): New.
6211         (sh_option_optimization): Don't set flag_finite_math_only here.
6212         * config/spu/spu.c (spu_option_optimization): Replace by
6213         spu_option_optimization.  Use options structure pointer.
6214         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6215
6216 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6217
6218         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
6219
6220         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
6221         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
6222         (Standard names): Document fma.
6223
6224         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
6225         __FP_FAST_FMAF, __FP_FAST_FMAL.
6226
6227         * builitns.c (expand_builtin_mathfn_ternary): New function for
6228         expanding ternary math functions, like fma.
6229         (expand_builtin): Call it for the fma builtins.
6230
6231         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
6232         ops at present.
6233
6234         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
6235         vectorizable functions to support vectorizing fma.
6236
6237         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6238         Handle fma builtins.
6239
6240         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6241         (UNSPEC_VSX_MSUB): Ditto.
6242         (UNSPEC_VSX_NMADD): Ditto.
6243         (UNSPEC_VSX_NMSUB): Ditto.
6244         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6245         of UNSPEC. Renumber combiner patterns.
6246         (vsx_fmsub<mode>4*): Ditto.
6247         (vsx_fnmadd<mode>4*): Ditto.
6248         (vsx_fnmsub<mode>4*): Ditto.
6249
6250         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6251         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6252         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
6253         (altivec_vmaddfp_1): Ditto.
6254         (altivec_vmaddfp_2): Ditto.
6255         (atlivec_mulv4sf3): Ditto.
6256         (altivec_vnmsubfp): Ditto.
6257         (altivec_vnmsubfp_1): Ditto.
6258         (altivec_vnmsubfp_2): Ditto.
6259         (altivec_vnmsubfp_3): Delete.
6260
6261         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
6262         (fmasf4_fpr): Ditto.
6263         (fmssf4_fpr): Ditto.
6264         (fnmasf4_fpr): Ditto.
6265         (fnmssf4_fpr): Ditto.
6266         (fmadf4): Ditto.
6267         (fmadf4_fpr): Ditto.
6268         (fmsdf4_fpr): Ditto.
6269         (fnmadf4_fpr): Ditto.
6270         (fnmsdf4_fpr): Ditto.
6271
6272         * optabs.h (OTI_fma): Add fma optab.
6273         (fma_optab): Ditto.
6274
6275         * genopinit.c (optabs): Set fma optab.
6276
6277         * rtl.def (FMA): Add FMA rtl.
6278
6279         * tree.h (mode_has_fma): New function to return if MODE supports a
6280         fast multiply and add instruction.
6281         * builtins.c (mode_has_fma): Ditto.
6282
6283 2010-10-15  Jan Hubicka  <jh@suse.cz>
6284
6285         * lto-streamer-out.c (write_symbol): Use pointer set of seen
6286         objects instead of bitmap.
6287         (produce_symtab): Likewise; output defined symbols first.
6288
6289 2010-10-15  Jie Zhang  <jie@codesourcery.com>
6290
6291         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
6292         Option Summary and Index.
6293
6294 2010-10-15  Richard Guenther  <rguenther@suse.de>
6295
6296         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
6297         for automatic variables again.
6298
6299 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6300
6301         * doc/extend.texi (Variable Length): Don't refer to VLAs not
6302         conforming to C99.
6303
6304 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6305
6306         * config/rx/rx.c (rx_option_optimization): Change to
6307         rx_override_options_after_change.  Don't change
6308         flag_lto_compression_level.  Don't check for changes to whether
6309         FPU instructions can be used.  Check and set only
6310         flag_finite_math_only, not other fast-math flags.
6311         (rx_option_override): Call rx_override_options_after_change.
6312         (TARGET_OPTION_OPTIMIZATION): Remove.
6313         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6314
6315 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6316
6317         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
6318         disable section anchors for lang_hooks.name[4] != 'O'.
6319
6320 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6321
6322         * config/frv/frv.c (frv_option_optimization,
6323         TARGET_OPTION_OPTIMIZATION): Remove.
6324         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
6325
6326 2010-10-15  Michael Matz  <matz@suse.de>
6327
6328         * cgraphunit.c (clone_of_p): Define unconditionally.
6329
6330 2010-10-15  Richard Guenther  <rguenther@suse.de>
6331
6332         PR lto/45957
6333         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
6334
6335 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
6336
6337         * ifcvt.c (find_active_insn_before): New function.
6338         (find_active_insn_after): New function.
6339         (cond_exec_process_if_block): Use new functions to replace
6340         prev_active_insn() and next_active_insn().
6341
6342 2010-10-14  Yao Qi  <yao@codesourcery.com>
6343
6344         PR target/45447
6345         * config/arm/arm.c (arm_build_builtin_va_list): Assign
6346         va_list_name to TYPE_STUB_DECL (va_list_type).
6347
6348 2010-10-14  Jan Hubicka  <jh@suse.cz>
6349
6350         PR middle-end/45621
6351         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
6352         redirected to clone, be happy.
6353         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
6354         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
6355         former_clone_of unconditionally.
6356
6357 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6358
6359         Merge from FSF apple 'trunk' branch.
6360         2006 Fariborz Jahanian  <fjahanian@apple.com>
6361
6362         Radars 4436866, 4505126, 4506903, 4517826
6363         * c-parser.c (c_parser, objc_property_attr_context) New flag.
6364         (c_lex_one_token): Handle property attributes.
6365         (c_parser_external_declaration): Handle @property.
6366         (c_parser_declaration_or_fndef): Warn on invalid attributes before
6367         @alias, @class, @end and @property objc keywords.
6368         (c_parser_objc_methodprotolist): Handle @property.
6369         (c_parser_objc_property_attrlist): New.
6370         (c_parser_objc_at_property): New.
6371         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
6372         (build_modify_expr): Likewise.
6373
6374 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6375
6376         PR tree-optimization/46008
6377         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
6378
6379 2010-10-14  Richard Guenther  <rguenther@suse.de>
6380
6381         PR tree-optimization/44913
6382         * tree-data-ref.c (disjoint_objects_p): Remove.
6383         (dr_may_alias_p): Simplify.  Only hand the base object to
6384         the alias-oracle.
6385         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6386         some more trees, bail out instead of asserting.
6387         (ptr_derefs_may_alias_p): Likewise.  Export.
6388         (refs_may_alias_p_1): Handle STRING_CSTs.
6389         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
6390
6391 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6392
6393         PR c/45969
6394         * c-typeck.c (build_binary_op): Don't try to compute a semantic
6395         type with excess precision for boolean operations.
6396
6397 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
6398             Basile Starynkevitch  <basile@starynkevitch.net>
6399
6400         * gengtype.c:  Include getopt.h and version.h.
6401
6402         (lang_bitmap, struct outf, outf_p)
6403         (get_output_file_with_visibility, oprintf): Definitions moved to
6404         gengtype.h
6405         (output_files, header_file, srcdir, srcdir_len, this_file)
6406         (do_dump): No more static variables.
6407         (do_debug): New.
6408         (dbgprint_count_type_at): Added new function.
6409         (gengtype_long_options): New.
6410         (print_usage, print_version, parse_program_options): New.
6411         (main): Call parse_program_options, and removed old option
6412         handling code.  Added some debug output.
6413
6414         * gengtype.h:  Updated copyright year.
6415         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
6416         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
6417         Moved from gengtype.c to here.
6418         (do_debug, read_state_filename, write_state_filename): New variables.
6419         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
6420
6421         * Makefile.in:
6422         (REVISION): Always defined.
6423         (version.o): Removed ifdef REVISION_c.
6424         (s-gtype): Pass arguments to build/gengtype program.
6425         (build/version.o): Added building rule.
6426         (build/gengtype$(build_exeext)): Added build/version.o.
6427
6428 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6429
6430         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
6431         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
6432         __strong macros.
6433
6434 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
6435
6436         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
6437         may_trap_or_fault_p instead of may_trap_p predicate.
6438         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
6439         (substitute_placeholder_in_expr): Likewise.
6440         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
6441         flag on MEM_REF nodes.
6442         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
6443         flags on INDIRECT_REF nodes.
6444
6445 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
6446
6447         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
6448         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
6449         (arm*-*-eabi*) <tm_file>: Likewise.
6450         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
6451         (frv-*-*linux*) <tm_file>: Likewise.
6452         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
6453         and associated helper macros.
6454         * config/frv/frv-abi.h: Delete.
6455
6456 2010-10-14  Richard Guenther  <rguenther@suse.de>
6457
6458         PR lto/44561
6459         * tree.def (NULLPTR_TYPE): New tree code.
6460         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
6461         * dwarf2out.c (is_base_type): Likewise.
6462         (gen_type_die_with_usage): Likewise.
6463         * sdbout.c (plain_type_1): Likewise.
6464         * tree.c (build_int_cst_wide): Likewise.
6465         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
6466
6467 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6468
6469         * params.c (params_finished): New.
6470         (add_params): Assert !params_finished.
6471         (finish_params): New.
6472         (set_param_value_internal): Take params and params_set
6473         parameters.  Assert params_finished.
6474         (set_param_value, maybe_set_param_value): Take params and
6475         params_set parameters.  Update calls to set_param_value_internal.
6476         (set_default_param_value): Assert !params_finished.  Don't use
6477         set_param_value_internal.
6478         (default_param_value, init_param_values): New.
6479         * params.h (struct param_info): Change value to default_value.
6480         Remove set.
6481         (set_param_value, maybe_set_param_value): Add params and
6482         params_set parameters.
6483         (PARAM_VALUE): Get parameters from global_options.
6484         (PARAM_SET_P): Remove.
6485         (finish_params, default_param_value, init_param_values): New.
6486         * common.opt (param_values): New Variable.
6487         * config/arm/arm.c (arm_option_override): Pass extra arguments to
6488         maybe_set_param_value.
6489         * config/i386/i386.c (ix86_option_override_internal): Pass extra
6490         arguments to maybe_set_param_value.
6491         * config/picochip/picochip.c (picochip_option_override): Pass
6492         extra arguments to maybe_set_param_value.
6493         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
6494         extra arguments to maybe_set_param_value.
6495         * config/s390/s390.c (s390_option_override): Use
6496         maybe_set_param_value instead of set_param_value.  Pass extra
6497         arguments to maybe_set_param_value.
6498         * config/sparc/sparc.c (sparc_option_override): Pass extra
6499         arguments to maybe_set_param_value.
6500         * config/spu/spu.c (spu_option_override): Pass extra arguments to
6501         maybe_set_param_value.
6502         * opts.c (handle_param): Take opts and opts_set parameters.
6503         Update call to set_param_value.
6504         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
6505         initial_loop_invariant_max_bbs_in_loop): Remove.
6506         (init_options_once): Don't set them.
6507         (init_options_struct): Initialize parameters structures.
6508         (default_options_optimization): Use default_param_value when
6509         restoring defaults.  Update calls to maybe_set_param_value.
6510         (finish_options): Update calls to maybe_set_param_value.
6511         (common_handle_option): Update calls to handle_param and
6512         set_param_value.
6513         * toplev.c (DEFPARAM): Update definition for changes to param_info.
6514         (general_init): Call finish_params.
6515
6516 2010-10-14  Nick Clifton  <nickc@redhat.com>
6517
6518         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
6519         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
6520         (FIRST_PSEUDO_REGISTER): Increase by one.
6521         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
6522         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
6523         (MODES_TIEABLE): Call mn10300_modes_tieable.
6524         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
6525         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
6526         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
6527         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
6528         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
6529         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
6530         (mn10300_cc_status_mdep): Delete.
6531         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
6532         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
6533         the combine-stack-adjust pass.
6534         (print_operand): Use the mode of the comparison operation to
6535         select the comparison suffix.
6536         (notice_update_cc): Delete.
6537         (mn10300_secondary_reload_class): Remove test for stack pointer
6538         based arithmetic.
6539         (output_tst): Rename to mn10300_output_cmp.
6540         (impossible_plus_operand): Move into predicates.md.
6541         (mn10300_legitimize_address): Make static.
6542         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
6543         constant pic operands.
6544         (mn10300_legitimate_constant_p): New function.
6545         (mn10300_case_values_threshold): Make static.
6546         (mn10300_hard_regno_mode_ok): New function.
6547         (mn10300_modes_tieable): New function.
6548         (mn10300_select_cc_mode): New function.
6549         * config/mn10300/predicates.md (impossible_plus_operand): Define.
6550         * config/mn10300/mn10300-protos.h: Tidy.
6551         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
6552         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
6553         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
6554         with clobbers or sets of CC_REG.
6555         (CC_REG): Define.
6556         (mov*): Remove use of CLR instruction.
6557         (cbranch_si4_<code>): New pattern/split.
6558         (integer_conditional_branch): New pattern.
6559         (cbranch_sf4_<code>): New pattern/split.
6560         (float_conditional_branch): New pattern.
6561         (casesi): Use addsi3 pattern instead of movsi pattern to add and
6562         move a value at the same time.
6563         (cc0 peepholes): Remove.
6564
6565 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6566
6567         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
6568         on RTX_FRAME_RELATED_P insns and the insn to which
6569         NOTE_INSN_EPILOGUE_BEG is attached.
6570         * sched-vis.c (print_value): Allow NULL value.
6571
6572 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6573
6574         PR rtl-optimization/45570
6575         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
6576         assert that we are pipelining outer loops.  Allow returning
6577         zero predecessors.
6578
6579 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6580
6581         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
6582         (tidy_control_flow): Tidy vertical space.
6583         (sel_remove_bb): New variable idx.  Use it to remember the basic
6584         block index before deleting the block.
6585         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
6586         (sel_merge_blocks): ... here.
6587         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
6588
6589 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6590
6591         * cse.c (is_dead_reg): Change into inline function that is not
6592         called through for_each_rtx.
6593         (set_live_p): Adjust caller.
6594         (insn_live_p): Don't reset DEBUG_INSNs here.
6595         (struct dead_debug_insn_data): New data.
6596         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
6597         (delete_trivially_dead_insns): If there is just one setter for the
6598         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
6599         and add DEBUG_INSN for it right before the removed setter and
6600         use the DEBUG_EXPR instead of the dead pseudo.
6601
6602 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
6603
6604         * et-forest.c (et_nca): Return NULL immediately when
6605         the dominance forest has disjoint components.
6606
6607 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
6608
6609         * ira.c (setup_class_hard_regs): Fix typo in indexing
6610         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
6611
6612 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
6613
6614         * graph.c (inbb): New variable.
6615         (start_bb): Set inbb to 1 if output is inside of a building block.
6616         (end_bb): Check if output is inside of a building block.
6617
6618 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
6619
6620         PR rtl-optimization/45912
6621         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
6622         regno of registers instead of their index to compute the alignment.
6623
6624 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
6625
6626         * config/i386/i386.c (ix86_build_const_vector): Check vector
6627         mode instead of scalar mode.
6628         (ix86_build_signbit_mask): Likewise.
6629         (ix86_expand_fp_absneg_operator): Updated.
6630         (ix86_expand_copysign): Likewise.
6631         (ix86_expand_int_vcond): Likewise.
6632         (ix86_emit_swdivsf): Likewise.
6633         (ix86_sse_copysign_to_positive): Likewise.
6634         (ix86_expand_sse_fabs): Likewise.
6635         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
6636         * config/i386/sse.md (copysign<mode>3): Likewise.
6637         (sse2_cvtudq2ps): Likewise.
6638         (vec_unpacku_float_hi_v4si): Likewise.
6639         (vec_unpacku_float_lo_v4si): Likewise.
6640
6641         * config/i386/i386.c (ix86_builtins): Add
6642         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
6643         (bdesc_args): Likewise.
6644         (ix86_builtin_vectorized_function): Support
6645         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
6646         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
6647         and IX86_BUILTIN_CVTPS2DQ256.
6648         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
6649
6650         * config/i386/sse.md (STORENT_MODE): New.
6651         (VEC_FLOAT_MODE): Likewise.
6652         (VEC_EXTRACT_MODE): Likewise.
6653         (*avx_cvtdq2pd256_2): Likewise.
6654         (vec_pack_trunc_v4df): Likewise.
6655         (vec_interleave_highv8sf): Likewise.
6656         (vec_interleave_lowv8sf): Likewise.
6657         (storent<mode>): Macroized.
6658         (<code><mode>2: absneg): Likewise.
6659         (copysign<mode>3): Likewise.
6660         (vec_extract<mode>): Likewise.
6661
6662         PR target/44180
6663         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
6664         for V8SFmode.
6665
6666 2010-10-13  Richard Guenther  <rguenther@suse.de>
6667             H.J. Lu  <hongjiu.lu@intel.com>
6668
6669         * config/i386/sse.md (reduc_splus_v8sf): Add.
6670         (reduc_splus_v4df): Likewise.
6671         (vec_unpacks_hi_v8sf): Likewise.
6672         (vec_unpacks_lo_v8sf): Likewise.
6673         (*avx_cvtps2pd256_2): Likewise.
6674         (vec_unpacks_float_hi_v8si): Likewise.
6675         (vec_unpacks_float_lo_v8si): Likewise.
6676         (vec_interleave_highv4df): Likewise.
6677         (vec_interleave_lowv4df): Likewise.
6678
6679 2010-10-13  Richard Guenther  <rguenther@suse.de>
6680
6681         PR objc/45878
6682         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
6683         alone if there are no virtual methods.
6684
6685 2010-10-13  Richard Henderson  <rth@redhat.com>
6686
6687         * expr.c (build_personality_function): Take parameter LANG instead
6688         of parameter NAME.  Build the name based on the lang prefix and the
6689         unwind method in use.
6690         * tree.c (lhd_gcc_personality): Update call to
6691         build_personality_function.
6692
6693 2010-10-13  Richard Guenther  <rguenther@suse.de>
6694
6695         PR objc/45878
6696         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
6697
6698 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
6699
6700         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
6701         Canonicalize input operands of ASM_OPERANDS insns.
6702
6703 2010-10-13  Richard Guenther  <rguenther@suse.de>
6704
6705         PR tree-optimization/45788
6706         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
6707         EH update until fixup-cfg.
6708
6709 2010-10-13  Julian Brown  <julian@codesourcery.com>
6710
6711         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
6712         from CORE_REGS and GENERAL_REGS classes.
6713         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
6714         final constraint for register preferencing.
6715
6716 2010-10-13  Richard Guenther  <rguenther@suse.de>
6717
6718         PR tree-optimization/45970
6719         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
6720         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
6721         (stmt_kills_ref_p): Likewise.
6722         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
6723
6724 2010-10-13  Richard Guenther  <rguenther@suse.de>
6725
6726         PR tree-optimization/45982
6727         * tree-ssa-structalias.c (make_constraints_to): New function.
6728         (make_constraint_to): Implement in terms of make_constraints_to.
6729         (find_func_aliases): Properly make return values of pure/const
6730         functions escape if they assign to sth that is not a pointer.
6731
6732 2010-10-13  Richard Guenther  <rguenther@suse.de>
6733
6734         PR middle-end/45874
6735         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
6736         Fixup the CFG when EH was fixed up.
6737
6738 2010-10-13  Ira Rosen  <irar@il.ibm.com>
6739
6740         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
6741         Use operand's type for POINTER_PLUS_EXPR.
6742
6743 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
6744
6745         * c-parser.c (c_parser_for_statement): Initialize incr.
6746
6747 2010-10-12  Xinliang David Li  <davidxl@google.com>
6748
6749         PR tree-optimization/45972
6750         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
6751         with too many arguments.
6752
6753 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
6754
6755         PR fortran/45636
6756         * tree-ssa-forwprop.c: Include expr.h.
6757         (constant_pointer_difference, simplify_builtin_call): New functions.
6758         (tree_ssa_forward_propagate_single_use_vars): Call
6759         simplify_builtin_call on builtin calls.
6760
6761 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
6762
6763         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
6764         (*adddi3_extend_sp32): Likewise.
6765         (*subdi3_insn_sp32): Likewise.
6766         (*subdi3_extend_sp32): Likewise.
6767         (*negdi2_sp32): Use negative test for consistency.
6768
6769 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
6770
6771         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
6772         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6773         * config/fixed-bit.h: Likewise.
6774         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6775         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6776         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
6777         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
6778         (DF_SIZE): Likewise.
6779         * doc/tm.texi: Regenerate.
6780
6781 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
6782
6783         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
6784         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
6785         (*isel_reversed_unsigned_<mode>): New.
6786         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
6787         as valid comparisons and adjust operands and output appropriately.
6788         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
6789
6790 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
6791
6792         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
6793         DATA_ALIGNMENT and add COND parameter. Update comments above.
6794         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
6795         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
6796
6797 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
6798
6799         PR bootstrap/45958
6800         * exec-tool.in: Support '-plugin' as the second option to the linker.
6801
6802 2010-10-12  Richard Henderson  <rth@redhat.com>
6803
6804         PR middle-end/45962
6805         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
6806         (expand_stack_vars): Assert large base allocated when used.
6807
6808 2010-10-12  Richard Guenther  <rguenther@suse.de>
6809
6810         * tree-ssa-structalias.c (get_constraint_for_1): Constants
6811         only point to nonlocal, not anything.
6812
6813 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6814
6815         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
6816         unwind info for exceptions.
6817
6818 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6819
6820         PR testsuite/45851
6821         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
6822         Document optional target selector.
6823
6824 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
6825
6826         * flag-types.h: New.
6827         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
6828         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
6829         options.h.
6830         (OPTIONS_H): Define.
6831         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
6832         of options.h.
6833         * configure.ac (tm_include_list): Include options.h not flags.h.
6834         * configure: Regenerate.
6835         * flags.h: Include flag-types.h.  Include options.h at top of file
6836         again.
6837         (enum debug_info_type, enum debug_info_level, enum
6838         debug_info_usage, enum symbol_visibility, struct visibility_flags,
6839         enum ira_algorithm, enum ira_region, enum excess_precision, enum
6840         graph_dump_types, enum stack_check_type,
6841         enum warn_strict_overflow_code): Move to flag-types.h
6842         * opth-gen.awk: Include flag-types.h in options.h.
6843
6844 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
6845
6846         * expr.c (store_expr): Share code for STRING_CST and
6847         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
6848         check if target is a MEM.
6849
6850         * rtl.h: Include hashtab.h.
6851         (iterative_hash_rtx): New prototype.
6852         * rtl.c (iterative_hash_rtx): New function.
6853         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
6854         (output_loc_list): Return immediately if emitted is set, set it.
6855         (hash_loc_operands, hash_locs, hash_loc_list,
6856         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
6857         optimize_location_lists_1, optimize_location_lists): New function.
6858         (dwarf2out_finish): Call optimize_location_lists.
6859         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
6860
6861 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6862
6863         PR testsuite/45974
6864         Revert:
6865         * Makefile.in ($(lang_checks_parallel))
6866         ($(lang_checks_parallelized)): Use single quotes for
6867         $(RUNTESTFLAGS), to allow passing quoted content.
6868
6869 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6870
6871         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
6872         actual_oldval.  Use __builtin_expect.
6873         (SUBWORD_VAL_CAS): Likewise.
6874
6875 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6876
6877         * recog.c (nonmemory_operand): Call immediate_operand for
6878         CONSTANT_P operands.
6879
6880 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
6881
6882         * config/i386/i386.md (movmem<mode>): Macroize expander from
6883         movmem{si,di} using SWI48 mode iterator.
6884         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
6885         *strmovsi_rex_1 using P mode iterator.
6886         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
6887         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
6888         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
6889         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
6890         (setmem<mode>): Macroize expander from setmem{si,di} using
6891         SWI48 mode iterator.
6892         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
6893         *strsetsi_rex_1 using P mode iterator.
6894         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
6895         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
6896         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
6897         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
6898         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
6899         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
6900         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
6901         mode iterator.
6902         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
6903         *strlenqi_rex_1 using P mode iterator.
6904
6905 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
6906
6907         PR bootstrap/45445
6908         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
6909         static functions.
6910         (mark_ref_live, mark_ref_dead): Use them.
6911         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
6912         Save the original reg, and use the new functions.
6913         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
6914         changed.
6915         (check_and_make_def_conflict): Save the original reg.
6916
6917 2010-10-11  Martin Jambor  <mjambor@suse.cz>
6918
6919         PR middle-end/45699
6920         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
6921         thunks.
6922
6923 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6924
6925         * Makefile.in ($(lang_checks_parallel))
6926         ($(lang_checks_parallelized)): Use single quotes for
6927         $(RUNTESTFLAGS), to allow passing quoted content.
6928
6929         PR bootstrap/35855
6930         * opt-functions.awk (BEGIN): New section.
6931         (lower, upper, digit, alnum): New variables.
6932         (static_var, opt_sanitized_name): Use alnum instead of character
6933         classes, for non-C locale.
6934         * optc-gen.awk: Likewise.
6935         * opth-gen.awk: Likewise.
6936
6937 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
6938
6939         * target.def (preferred_reload_class): New hook.
6940         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
6941         * doc/tm.texi: Regenerate.
6942         * targhooks.c (default_preferred_reload_class): New function.
6943         * targhooks.h (default_preferred_reload_class): Declare.
6944         * reload.c (find_dummy_reload): Change preferred_class variable type
6945         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
6946         target hook.
6947         (find_reloads): Change goal_alternative array type from int to
6948         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
6949         (push_reload, find_reloads_address_part): Use
6950         TARGET_PREFERRED_RELOAD_CLASS target hook.
6951         * reload1.c (emit_input_reload_insns): Ditto.
6952         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
6953         hook. Change rclass argument and secondary_class variable types from
6954         'enum reg_class' to reg_class_t.
6955
6956         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
6957         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
6958         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
6959         Change regclass argument and result types from enum reg_class to
6960         reg_class_t.
6961         (TARGET_PREFERRED_RELOAD_CLASS): Define.
6962
6963 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
6964
6965         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
6966         in masking operations.
6967         (simplify_const_unary_operation): Likewise.
6968         (simplify_binary_operation_1): Likewise.
6969         (simplify_const_binary_operation): Likewise.
6970         (simplify_const_relational_operation): Likewise.
6971         (simplify_ternary_operation): Likewise.
6972         (simplify_immed_subreg): Likewise.
6973
6974 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6975
6976         PR middle-end/45862
6977         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
6978         (TARGET_SUPPORTS_WEAK): New.
6979         * doc/tm.texi: Regenerate.
6980         * defaults.h (SUPPORTS_WEAK): Update comment.
6981         (TARGET_SUPPORTS_WEAK): New.
6982         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
6983         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
6984         SUPPORTS_WEAK.
6985         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
6986         make_decl_one_only): Likewise.
6987         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
6988         TARGET_SUPPORTS_WEAK.
6989         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
6990         instead of SUPPORTS_WEAK.
6991
6992 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6993
6994         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
6995
6996 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6997
6998         * vec.h (VEC_qsort): Define.
6999         * dbxout.c (output_used_types): Use it.
7000         * df-scan.c (df_sort_and_compress_refs): Likewise.
7001         (df_sort_and_compress_mws): Likewise.
7002         * genautomata.c (uniq_sort_alt_states): Likewise.
7003         (evaluate_equiv_classes): Likewise.
7004         (output_trans_table): Likewise.
7005         (output_state): Likewise.
7006         * gimplify.c (compare_case_labels): Likewise.
7007         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
7008         * ipa.c (build_cdtor_fns): Likewise.
7009         * lto.c (lto_wpa_write_files): Likewise.
7010         * sel-sched.c (fill_vec_av_set): Likewise.
7011         * tree-predcom.c (determine_roots_comp): Likewise.
7012         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
7013         (splice_param_accesses): Likewise.
7014         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
7015         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7016         (reassociate_bb): Likewise.
7017         * tree-ssa-sccvn.c (sort_scc): Likewise.
7018         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
7019
7020 2010-10-11  Ian Lance Taylor  <iant@google.com>
7021
7022         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
7023         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
7024         TREE_THIS_NOTRAP when appropriate.
7025         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
7026         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
7027         newly created MEM_REF.
7028
7029 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7030
7031         Nathan Froyds patch to hooks FUNCTION_ARG etc.
7032         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
7033         (picochip_incoming_function_arg): Delete.
7034         (picochip_arg_advance): Delete.
7035         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
7036         (FUNCTION_INCOMING_ARG): Delete.
7037         (FUNCTION_ARG_ADVANCE): Delete.
7038         * config/picochip/picochip.c (picochip_function_arg): Take a
7039         const_tree and a bool.
7040         (picochip_incoming_function_arg): Likewise.
7041         (picochip_arg_advance): Likewise.
7042         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7043         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7044
7045 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7046
7047         PR middle-end/45955
7048         * ipa.c (build_cdtor): Delete endless loop.
7049
7050 2010-10-07  Andi Kleen  <ak@linux.intel.com>
7051
7052         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
7053         checksum-options.
7054         (checksum-options): Add.
7055         (cc1-dummy): Remove.
7056         (cc1-checksum): Change to run checksum over object files
7057         and options only.
7058         * dummy-checksum.c: Remove.
7059         * genchecksum.c: Update copyright.
7060         (usage): Allow multiple arguments.
7061         (BLOCKSIZE): Add.
7062         (dosum): Change for incremental checksum. Remove C output.
7063         (main): Iterate over all argument files. Add C output.
7064
7065 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
7066
7067         * params.c (set_param_value_internal): New.
7068         (set_param_value): Use set_param_value_internal.
7069         (maybe_set_param_value, set_default_param_value): New.
7070         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
7071         (maybe_set_param_value, set_default_param_value): Declare.
7072         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
7073         * config/i386/i386.c (ix86_option_override_internal): Use
7074         maybe_set_param_value.
7075         * config/ia64/ia64.c (ia64_option_default_params,
7076         TARGET_OPTION_DEFAULT_PARAMS): New.
7077         (ia64_option_optimization): Move some code to
7078         ia64_option_default_params.
7079         * config/picochip/picochip.c (picochip_option_override): Use
7080         maybe_set_param_value.
7081         * config/rs6000/rs6000.c (rs6000_option_default_params,
7082         TARGET_OPTION_DEFAULT_PARAMS): New.
7083         (rs6000_option_override_internal): Use maybe_set_param_value.
7084         (rs6000_option_optimization): Move some code to
7085         rs6000_option_default_params.
7086         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
7087         * config/sh/sh.c (sh_option_default_params,
7088         TARGET_OPTION_DEFAULT_PARAMS): New.
7089         (sh_option_optimization): Move some code to sh_option_default_params.
7090         * config/sparc/sparc.c (sparc_option_override): Use
7091         maybe_set_param_value.
7092         * config/spu/spu.c (spu_option_default_params,
7093         TARGET_OPTION_DEFAULT_PARAMS): New.
7094         (spu_option_optimization): Move some code to spu_option_default_params.
7095         (spu_option_override): Use maybe_set_param_value.
7096         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
7097         * doc/tm.texi: Regenerate.
7098         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
7099         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
7100         compiler_params.
7101         (default_options_optimization): Use maybe_set_param_value.
7102         (finish_options): Use maybe_set_param_value.
7103         * target.def (target_option.default_params): New hook.
7104         * toplev.c (general_init): Call targetm.target_option.default_params.
7105
7106 2010-10-11  Ira Rosen  <irar@il.ibm.com>
7107
7108         PR tree-optimization/45902
7109         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
7110         vector type for constants, unless it's a pointer.
7111
7112 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7113
7114         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
7115
7116 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
7117
7118         PR target/45870
7119         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
7120         (ix86_delegitimize_address): Use it.
7121
7122 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
7123
7124         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
7125
7126 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
7127
7128         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
7129         to cum struct in the call to function_arg_advance.
7130         (alpha_function_arg_advance): Mark named as unused.
7131
7132 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
7133
7134         * config/mips/mips.c (mips_handle_option): Make "value" with
7135         ATTRIBUTE_UNUSED.
7136
7137 2010-10-09  Richard Henderson  <rth@redhat.com>
7138
7139         PR rtl-opt/33721
7140         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
7141         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
7142         required_align, tidy the code a bit.  Emit split_stack code in the
7143         right place.  Mark the return value with the alignment properly.
7144         * expr.h (allocate_dynamic_stack_space): Update decl.
7145         * builtins.c (expand_builtin_apply): Update call to
7146         allocate_dynamic_stack_space.
7147         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
7148         * calls.c (initialize_argument_information): Update call to
7149         allocate_dynamic_stack_space.
7150         (expand_call): Likewise.
7151
7152         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
7153         Don't update_stack_alignment here.
7154         (alloc_stack_frame_space): Make ALIGN unsigned.
7155         (stack_var_cmp): Sort by alignment too.
7156         (partition_stack_vars): Don't merge large and small alignment vars.
7157         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
7158         Take care when BASE is not virtual_stack_vars_rtx.
7159         (expand_stack_vars): Allocate dynamic stack space for large
7160         alignment variables.
7161         (expand_one_stack_var): Update all to expand_one_stack_var_at.
7162         (defer_stack_allocation): True for large alignment vars.
7163         (update_stack_alignment): Merge into ...
7164         (expand_one_var): ... here.
7165         (gimple_expand_cfg): Place code from expand_stack_vars.
7166
7167 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7168
7169         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7170         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
7171         (pdp11_function_arg_advance): New function.
7172         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7173
7174 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7175
7176         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
7177         * libgcc2.c: Likewise.
7178
7179 2010-10-09  Richard Guenther  <rguenther@suse.de>
7180
7181         PR lto/45956
7182         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
7183         Properly check if a decl is an automatic var.
7184
7185 2010-10-09  Richard Guenther  <rguenther@suse.de>
7186
7187         PR lto/45947
7188         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
7189
7190 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7191
7192         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
7193         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7194         * config/mmix/mmix.c (mmix_function_arg): Rename to...
7195         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
7196         bool arguments.
7197         (mmix_function_arg): New function.
7198         (mmix_function_incoming_arg): New function.
7199         (mmix_function_arg_advance): New function.
7200         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7201         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7202
7203 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7204
7205         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7206         * config/vax/vax.c (vax_function_arg): New function.
7207         (vax_function_arg_advance): New function.
7208         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7209
7210 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7211
7212         * config/pa/pa-protos.h (function_arg): Delete.
7213         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7214         * config/pa/pa.c (function_arg): Rename to...
7215         (pa_function_arg): ...this.  Make static.  Take a const_tree and
7216         a bool.
7217         (pa_function_arg_advance): New function.
7218         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7219
7220 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7221
7222         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7223         * config/m68k/m68k.c (m68k_function_arg): New function.
7224         (m68k_function_arg_advance): New function.
7225         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7226
7227 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7228
7229         * config/avr/avr-protos.h (function_arg): Delete.
7230         (function_arg_advance): Delete.
7231         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7232         * config/avr/avr.c (function_arg): Rename to...
7233         (avr_function_arg): ...this.  Make static.  Take a const_tree and
7234         a bool.
7235         (function_arg_advance): Rename to...
7236         (avr_function_arg_advance): ...this.  Make static.  Take a
7237         const_tree and a bool.
7238         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7239
7240 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7241
7242         * config/alpha/alpha-protos.h (function_arg): Delete.
7243         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7244         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7245         * config/alpha/alpha.c (function_arg): Rename to...
7246         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
7247         a bool.  Delete TARGET_ABI_UNICOSMK code.
7248         (alpha_function_arg_advance): New function.
7249         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7250
7251 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7252
7253         * config/mep/mep-protos.h (mep_function_arg): Delete.
7254         (mep_function_arg_advance): Delete.
7255         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7256         * config/mep/mep.c (mep_function_arg): Make static.  Take a
7257         const_tree and a bool.
7258         (mep_function_arg_advance): Likewise.
7259         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7260
7261 2010-10-09  Richard Guenther  <rguenther@suse.de>
7262
7263         PR tree-optimization/45945
7264         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
7265
7266 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
7267
7268         PR tree-optimization/45612
7269         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
7270         Test LABEL_DECLs as well.  Fix formatting issues.
7271         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
7272         whose label is present in NON_SSA_VARS.
7273         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
7274         as well.  Fix formatting issues.
7275         (visit_bb): Fix typos and formatting issue.
7276
7277 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7278
7279         PR tree-optimization/45950
7280         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
7281         before initializing vno->op.
7282
7283 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
7284
7285         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
7286         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
7287
7288 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
7289
7290         PR target/45913
7291         * config/i386/i386.c (ix86_binary_operator_ok): Support
7292         "andhi/andsi/anddi" as a zero-extending move.
7293
7294 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7295
7296         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
7297         into a temporary array.
7298
7299 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
7300
7301         PR tree-optimization/45903
7302         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
7303         of {A,L}SHIFTRT of MEM.
7304
7305 2010-10-08  Richard Guenther  <rguenther@suse.de>
7306
7307         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7308         Re-construct BLOCK_VARS.
7309         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
7310         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7311         * tree.c (free_lang_data_in_block): Remove.
7312         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
7313         Do not touch the BLOCK tree.
7314         * expr.c (expand_expr_real_1): Allow externals.
7315
7316 2010-10-08  Richard Guenther  <rguenther@suse.de>
7317
7318         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
7319         Do not output BLOCK_SUBBLOCKS.
7320         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
7321         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
7322         Re-construct BLOCK_SUBBLOCKS of parent block.
7323         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
7324         for BINFO_BASE_ACCESSES.
7325
7326 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
7327
7328         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
7329         (TREE_H): Include $(FLAGS_H) instead of options.h.
7330         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
7331         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7332         * common.opt (flag_complex_method, flag_evaluation_order,
7333         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
7334         Variable declarations.
7335         * configure.ac (tm_include_list): Include flags.h instead of options.h.
7336         * configure: Regenerate.
7337         * flags.h: Condition out contents for target libraries.  Include
7338         options.h at end of file.
7339         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
7340         flag_evaluation_order, flag_warn_unused_result): Remove.
7341         * gcc.c (main): Intialize global_options with global_options_init.
7342         * langhooks-def.h (lhd_init_options_struct): Declare.
7343         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7344         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
7345         * langhooks.c (lhd_init_options_struct): New.
7346         * langhooks.h (struct lang_hooks): Add init_options_struct.
7347         Update comment on init_options.
7348         * optc-gen.awk: Generate initializer for global_options_init, not
7349         global_options.
7350         * opth-gen.awk: Condition out structure declarations for target
7351         libraries.  Declare global_options_init.
7352         * opts-common.c: Include flags.h instead of options.h.
7353         * opts.c (flag_warn_unused_result): Remove.
7354         (read_cmdline_options): Take gcc_options parameters.  Pass them to
7355         read_cmdline_option.
7356         (initial_lang_mask, initial_min_crossjump_insns,
7357         initial_max_fields_for_field_sensitive,
7358         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
7359         (init_options_once): New.  Split out of decode_options.
7360         (init_options_struct): New.  Split out of decode_options.
7361         (decode_cmdline_options_to_array_default_mask): New.
7362         (default_options_optimization): New.  Split out of decode_options.
7363         (decode_options): Move most code to other functions.  Update call
7364         to read_cmdline_options.
7365         (finish_options): New.  Split out of decode_options.
7366         * opts.h (decode_options): Add gcc_options parameters.
7367         (init_options_once, init_options_struct,
7368         decode_cmdline_options_to_array_default_mask): New.
7369         * toplev.c (flag_complex_method, flag_ira_algorithm,
7370         flag_ira_region, flag_evaluation_order): Remove.
7371         (general_init): Use global_options_init for initial flag values
7372         for global_dc.
7373         (toplev_main): Call init_options_once, init_options_struct,
7374         lang_hooks.init_options_struct,
7375         decode_cmdline_options_to_array_default_mask and
7376         lang_hooks.init_option before decode_options.  Update arguments to
7377         decode_options.
7378         * tree.h: Include flags.h instead of options.h.
7379
7380 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7381
7382         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7383
7384 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7385
7386         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
7387         Delete.
7388         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
7389         (FUNCTION_INCOMING_ARG): Delete.
7390         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
7391         (function_arg_slotno): Likewise.  Take bool arguments.
7392         (sparc_arg_partial_bytes): Update call to it.
7393         (function_arg): Rename to...
7394         (sparc_function_arg_1): ...this.  Take bool arguments.
7395         (sparc_function_arg, sparc_function_incoming_arg): New functions.
7396         (function_arg_advance): Rename to...
7397         (sparc_function_arg_advance): ...this.  Take bool argument.
7398         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
7399         (TARGET_FUNCTION_INCOMING_ARG): Define.
7400
7401 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7402
7403         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
7404         Delete.
7405         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7406         * config/bfin/bfin.c (function_arg_advance): Rename to...
7407         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
7408         and bool arguments.
7409         (function_arg): Rename to...
7410         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
7411         arguments.
7412         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7413
7414 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7415
7416         * config/score/score-protos.h (score_function_arg): Delete.
7417         (score_function_arg_advance): Delete.
7418         * config/score/score3.h (score3_function_arg_advance): Take a
7419         const_tree and a bool.
7420         (score3_function_arg): Likewise.
7421         * config/score/score7.h (score7_function_arg_advance): Likewise.
7422         (score7_function_arg): Likewise.
7423         * config/score/score3.c (score3_classify_arg): Likewise.
7424         (score3_function_arg_advance, score3_function_arg): Likewise.
7425         * config/score/score7.c (score7_classify_arg): Likewise.
7426         (score7_function_arg_advance, score7_function_arg): Likewise.
7427         * config/score/score.c (score_function_arg_advance): Likewise.
7428         (score_function_arg): Likewise.  De-const-ify `cum' argument.
7429         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7430
7431 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7432
7433         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
7434         (s390_function_arg): Delete.
7435         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7436         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
7437         (s390_function_arg_integer): Likewise.
7438         (s390_function_arg_advance): Make static.  Take a const_tree and
7439         a bool.
7440         (s390_function_arg): Likewise.
7441         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7442
7443 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7444
7445         * config/spu/spu-protos.h (spu_function_arg): Delete.
7446         * config/spu/spu.h (FUNCTION_ARG): Delete.
7447         (FUNCTION_ARG_ADVANCE): Move code to ...
7448         * config/spu/spu.c (spu_function_arg_advance): New function.
7449         (spu_function_arg): Make static.  Take a const_tree and a bool.
7450         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
7451         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7452
7453 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7454
7455         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7456
7457 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7458
7459         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
7460         (init_vn_nary_op_from_op): New function.
7461         (init_vn_nary_op_from_stmt): New function.
7462         (vn_nary_op_lookup_1): New function.
7463         (sizeof_vn_nary_op): New function.
7464         (alloc_vn_nary_op_noinit): New function.
7465         (alloc_vn_nary_op): New function.
7466         (vn_nary_op_insert_into): New function.
7467         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
7468         (vn_nary_op_lookup): Likewise.
7469         (vn_nary_op_lookup_stmt): Likewise.
7470         (vn_nary_op_insert_pieces): Likewise.
7471         (vn_nary_op_insert): Likewise.
7472         (vn_nary_op_insert_stmt): Likewise.
7473         (copy_nary): Likewise.
7474         (set_value_id_for_result): New function.
7475         (set_hashtable_value_ids): Call it.
7476
7477 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7478
7479         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7480         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
7481
7482 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7483
7484         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
7485         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7486
7487 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
7488
7489         PR debug/45656
7490         * cse.c (cse_extended_basic_block): Preserve cc0 info across
7491         debug isnsn.  Skip them when searching for cc0 setter.
7492         (set_live_p): Skip debug insns when searching for cc0 user.
7493
7494 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
7495
7496         PR debug/45673
7497         PR debug/45604
7498         PR debug/45419
7499         PR debug/45408
7500         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
7501         type of MEM_REFs to INTEGER_CSTs.
7502
7503 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
7504
7505         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
7506         m68hc11_print_operand_address.
7507
7508 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
7509
7510         * builtins.c (rewrite_call_expr): Move code to...
7511         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
7512         (rewrite_call_expr_array): New function.
7513         (fold_builtin_sprintf_chk_1): New function.
7514         (fold_builtin_sprintf_chk): Call it.
7515         (gimple_fold_builtin_sprintf_chk): Likewise.
7516         (fold_builtin_snprintf_chk_1): New function.
7517         (fold_builtin_snprintf_chk): Call it.
7518         (gimple_fold_builtin_snprintf_chk): Likewise.
7519         (gimple_rewrite_call_expr): Delete.
7520
7521 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7522
7523         * config.host: Update copyright year.
7524
7525 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7526
7527         * config.host (host_lto_plugin_soname): New shell variable.
7528         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
7529         * config.in: Regenerate.
7530         * configure: Regenerate.
7531         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
7532         LTO plugin shared library.
7533
7534 2010-10-07  Richard Henderson  <rth@redhat.com>
7535
7536         * target.h (enum unwind_info_type): Move ...
7537         * coretypes.h: ... here.
7538
7539 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
7540
7541         * doc/objc.texi (Fast enumeration protocol): Mention that
7542         'unsigned int' can also be used instead of 'unsigned long' in
7543         countByEnumeratingWithState:objects:count:.
7544
7545 2010-10-07  Martin Jambor  <mjambor@suse.cz>
7546
7547         * tree-sra.c (struct access): New field grp_assignment_write.
7548         (dump_access): Dump grp_assignment_write.
7549         (build_accesses_from_assign): Set grp_assignment_write.
7550         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
7551         (mark_read_status): Renamed to mark_rw_status, individual values
7552         renamed too.
7553         (analyze_access_subtree): Changed type of mark_write to
7554         mark_read_status.  Fixed propagating of mark_read and
7555         mark_write.  Changed benefit estimate.  Updated comment.
7556
7557 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
7558
7559         PR Tree-Vect/45847
7560         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
7561         check for vectype_out returned by get_vectype_for_scalar_type().
7562
7563 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
7564
7565         PR target/45805
7566         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
7567         constraint, add register specifier in instruction template.
7568         (neon_vec_pack_trunc_<mode>): Likewise.
7569         (neon_vec_<US>mult_<mode>): Add register specifier to
7570         instruction template.
7571
7572 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7573
7574         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
7575         cygwin2.o.
7576         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
7577         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
7578         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
7579         (cygwin2.o): Likewise.
7580         * config/i386/cygwin1.c: Delete file.
7581         * config/i386/cygwin2.c: Likewise.
7582         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
7583         make all {%!mno-cygwin} ones unconditional.
7584         (STARTFILE_SPEC): Likewise.
7585         (REAL_LIBGCC_SPEC): Likewise.
7586         (LIB_SPEC): Likewise.
7587         (CXX_WRAP_SPEC): Likewise.
7588         (LINK_SPEC): Likewise.
7589         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
7590         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
7591         (cygwin_gplusplus_include_dir): Delete now-unused array.
7592         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
7593         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
7594         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
7595         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
7596         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
7597         (cygwin_local_include_dir): Delete now-unused array.
7598         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
7599         (cygwin_cross_include_dir): Delete now-unused array.
7600         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
7601         (cygwin_tool_include_dir): Delete now-unused array.
7602         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
7603         (cygwin_standard_include_dir): Delete now-unused array.
7604         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
7605         (GEN_CVT_ARRAY): Delete now-unused macro definition.
7606         (cvt_to_mingw): Delete now-unused array.
7607         (mingw_scan): Remove prototype of deleted function.
7608         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
7609         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
7610         * doc/invoke.texi (-mcygwin): Don't document removed option.
7611         (-mno-cygwin): Likewise.
7612
7613 2010-10-07  Richard Guenther  <rguenther@suse.de>
7614
7615         * machmode.h (mode_for_vector): Declare.
7616         * stor-layout.c (mode_for_vector): New function, split out from ...
7617         (layout_type): ... here.
7618         * tree-vectorizer.h (current_vector_size): Declare.
7619         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
7620         mask vector type is available.
7621         (get_vectype_for_scalar_type): Rename to ...
7622         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
7623         size argument.
7624         (get_vectype_for_scalar_type): New wrapper around
7625         get_vectype_for_scalar_type_and_size using current_vector_size.
7626         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
7627         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
7628         of vect_analyze_loop here.
7629         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
7630         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
7631         to autodetect.
7632         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
7633         V8SF to V8SI conversion builtin.
7634
7635 2010-10-07  Richard Guenther  <rguenther@suse.de>
7636
7637         * target.def (autovectorize_vector_sizes): New target hook.
7638         * targhooks.c (default_autovectorize_vector_sizes): New function.
7639         * targhooks.h (default_autovectorize_vector_sizes): Declare.
7640         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
7641         Document.
7642         * doc/tm.texi: Update.
7643         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
7644         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7645
7646 2010-10-07  Richard Guenther  <rguenther@suse.de>
7647
7648         * target.def (units_per_simd_word): Rename to ...
7649         (preferred_simd_mode): ... this.  Return mode instead of size.
7650         * targhooks.c (default_units_per_simd_word): Rename to ...
7651         (default_preferred_simd_mode): ... this.  Return word_mode.
7652         * targhooks.h (default_preferred_simd_mode): Declare.
7653         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
7654         (arm_preferred_simd_mode): ... this.  Re-implement.
7655         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
7656         (ix86_preferred_simd_mode): ... this.  Re-implement.
7657         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
7658         (sparc_preferred_simd_mode): ... this.  Re-implement.
7659         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
7660         (mips_preferred_simd_mode): ... this.  Re-implement.
7661         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
7662         (rs6000_preferred_simd_mode): ... this.  Re-implement.
7663         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
7664         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
7665         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
7666         * doc/tm.texi: Update.
7667
7668 2010-10-07  Richard Guenther  <rguenther@suse.de>
7669
7670         PR middle-end/45869
7671         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
7672         of pointers.
7673
7674 2010-10-07  Alan Modra  <amodra@gmail.com>
7675
7676         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
7677         rather than sign extension by hand.
7678
7679 2010-10-07  Jan Hubicka  <jh@suse.cz>
7680
7681         PR middle-end/45926
7682         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
7683
7684 2010-10-07  Richard Guenther  <rguenther@suse.de>
7685
7686         PR bootstrap/45914
7687         * configure.ac: Fix typo.
7688         * configure: Regenerated.
7689
7690 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7691
7692         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
7693         define_builtin_std where it's unnecessary.
7694         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
7695
7696 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
7697
7698         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
7699         * doc/tm.texi.in: Regenerate.
7700         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
7701         * targhooks.c (default_class_likely_spilled_p): Don't use the
7702         CLASS_LIKELY_SPILLED_P macro.
7703
7704         * config/arm/arm.md: Update comment.
7705
7706 2010-10-06  Jan Hubicka  <jh@suse.cz>
7707
7708         * ipa.c (cgraph_remove_unreachable_nodes): External references can
7709         always be removed.
7710         (cgraph_externally_visible_p): We can not bring local comdats that
7711         are known to linker; fix handling of internal visibility.
7712         (function_and_variable_visibility): Likewise.
7713
7714 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
7715
7716         PR rtl-optimization/45394
7717         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
7718         (struct rtx_subst_pair): Remove AFTER field.
7719         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
7720         (propagate_for_debug): Remove MOVE parameter and adjust.
7721         (try_combine): In the special case where I2 is a PARALLEL, combine only
7722         destinations of SETs and set I2SRC to the I2 source.
7723         Adjust calls to propagate_for_debug throughout.
7724         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
7725         insns.
7726
7727 2010-10-06  Olivier Hainque  <hainque@adacore.com>
7728
7729         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
7730         switch on insn codes as sequence of ifs.
7731
7732 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
7733
7734         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
7735         be UI_NONE for picochip.
7736         (picochip_option_override): Do not disable exception flags.
7737         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
7738         Declare.
7739
7740 2010-10-06  Richard Guenther  <rguenther@suse.de>
7741
7742         * Makefile.in (regmove.o): Depend on $(TARGET_H).
7743
7744 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7745
7746         Implemented fast enumeration for Objective-C.
7747         * c-parser.c (objc_could_be_foreach_context): New.
7748         (c_lex_one_token): Recognize RID_IN keyword in a potential
7749         Objective-C foreach context.
7750         (c_parser_declaration_or_fndef): Added parameter.  Accept
7751         Objective-C RID_IN keyword as terminating a declaration; in that
7752         case, return the declaration in the new parameter.
7753         (c_parser_extenral_declaration): Updated calls to
7754         c_parser_declaration_or_fndef.
7755         (c_parser_declaration_or_fndef): Same change.
7756         (c_parser_compound_statement_nostart): Same change.
7757         (c_parser_label): Same change.
7758         (c_parser_objc_methodprotolist): Same change.
7759         (c_parser_omp_for_loop): Same change.
7760         (c_parser_for_statement): Detect and parse Objective-C foreach
7761         statements.
7762         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
7763         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
7764         fast enumeration parsing code to turn off the c99 error but still
7765         perform checks on the loop declarations.
7766         * c-tree.h (check_for_loop_decls): Updated declaration.
7767         * doc/objc.texi: Document fast enumeration.
7768
7769 2010-10-06  Nick Clifton  <nickc@redhat.com>
7770
7771         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
7772         (MDR_REGNUM): Define.
7773         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
7774         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
7775         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
7776         (REGISTER_NAMES): Add MDR.
7777         (DWARF2_DEBUGGING_INFO): Define to 1.
7778         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7779         (F): New function.  Sets RTX_FRAME_RELATED_P.
7780         (mn10300_gen_multiple_store): Use F.
7781         (expand_prologue): Use F.  Use gen_movsf() to push floating
7782         point registers.
7783         (expand_epilogue): Use gen_movsf() to pop floating point registers.
7784         (mn10300_option_override): Disable combine stack adjust pass.
7785
7786 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
7787
7788         PR target/45901
7789         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
7790         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
7791
7792 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
7793
7794         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
7795         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
7796         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
7797         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
7798         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
7799         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
7800         BUILT_IN_TOUPPER): Mark as leaf.
7801
7802         PR middle-end/45838
7803         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
7804         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
7805         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
7806         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
7807         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
7808         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
7809         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
7810
7811 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
7812
7813         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
7814         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7815         (m68hc11_class_likely_spilled_p): New function.
7816
7817 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
7818
7819         * c-parser.c (c_parser_objc_method_definition): Updated comment.
7820
7821 2010-10-05  Jan Hubicka  <jh@suse.cz>
7822
7823         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
7824         Document.
7825         * opts.c (decode_options): Handle lto partitions.
7826         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
7827         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
7828
7829 2010-10-05  Jan Hubicka  <jh@suse.cz>
7830
7831         * cgraphunit.c (assemble_function): Output thunks and aliases before
7832         the function itself.
7833
7834 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7835
7836         * config/picochip/picochip.c (picochip_option_override): Disable
7837         exception flags for picochip.
7838
7839 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
7840
7841         * opts-common.c (handle_option, handle_generated_option,
7842         read_cmdline_option, set_option): Add diagnostic_context
7843         parameter.  Update calls among these functions.
7844         (set_option): Don't use global_dc.
7845         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
7846         (decode_options): Pass global_dc to enable_warning_as_error.
7847         (common_handle_option): Pass global_dc to enable_warning_as_error.
7848         (enable_warning_as_error): Add diagnostic_context parameter.
7849         Document parameters.  Don't use global_dc.  Pass
7850         diagnostic_context parameter to handle_generated_option.
7851         * opts.h (set_option, handle_option, handle_generated_option,
7852         read_cmdline_option, enable_warning_as_error): Add
7853         diagnostic_context parameter.
7854         * Makefile.in (lto-opts.o): Update dependencies.
7855         * coretypes.h (struct diagnostic_context, diagnostic_context):
7856         Declare here.
7857         * diagnostic.h (diagnostic_context): Don't declare typedef here.
7858         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
7859         * langhooks-def.h (struct diagnostic_context): Don't declare here.
7860         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
7861         using diagnostic_context typedef.
7862         * langhooks.c (lhd_initialize_diagnostics): Declare using
7863         diagnostic_context typedef.
7864         * langhooks.h (struct diagnostic_context): Don't declare here.
7865         (initialize_diagnostics, print_error_function): Declare using
7866         diagnostic_context typedef.
7867         * lto-opts.c: Include diagnostic.h.
7868         (lto_reissue_options): Pass global_dc to set_option.  Pass
7869         DK_UNSPECIFIED not 0.
7870         * plugin.c (plugins_internal_error_function): Declare using
7871         diagnostic_context typedef.
7872         * plugin.h (struct diagnostic_context): Don't declare here.
7873         (plugins_internal_error_function): Declare using
7874         diagnostic_context typedef.
7875
7876 2010-10-05  Olivier Hainque  <hainque@adacore.com>
7877             Nicolas Roche  <roche@adacore.com>
7878
7879         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
7880         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
7881
7882 2010-10-05  Ira Rosen  <irar@il.ibm.com>
7883
7884         PR tree-optimization/45752
7885         * tree-vect-slp.c (vect_get_mask_element): Remove static
7886         variables, make them function arguments.
7887         (vect_transform_slp_perm_load): Pass new arguments to
7888         vect_get_mask_element.
7889
7890 2010-10-05  Richard Guenther  <rguenther@suse.de>
7891
7892         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
7893         (gimple_mod_pow2): Likewise.
7894         (gimple_mod_subtract): Likewise.
7895         (gimple_ic): Likewise.
7896         (gimple_stringop_fixed_value): Likewise.
7897         * tree-profile.c (tree_init_edge_profiler): Mark profile
7898         functions nothrow and leaf.
7899         (add_abnormal_goto_call_edges): Remove.
7900         (tree_gen_edge_profiler): Work on SSA form.
7901         (tree_gen_ic_profiler): Likewise.  Simplify.
7902         (do_tree_profiling): Update SSA form.
7903         (pass_tree_profile): Remove.
7904         (do_tree_profiling): Likewise.
7905         (gate_tree_profile_ipa): New function.
7906         (pass_ipa_tree_profile): New.
7907         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
7908         state of instrumented functions.
7909         * passes.c (init_optimization_passes): Remove early non-SSA
7910         inlining.  Move profiling after early optimizations.
7911         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
7912         (pass_ipa_early_inline): Likewise.
7913         * tree-pass.h (pass_ipa_early_inline): Remove.
7914         (pass_tree_profile): Likewise.
7915         (pass_ipa_tree_profile): Declare.
7916
7917 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7918             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
7919
7920         * config/s390/s390.c (z196_cost): New.
7921         (s390_handle_arch_option): Add -march=z196.
7922         (s390_option_override): Use the new cost function and use the z10
7923         defaults also for z196.
7924         (legitimate_reload_constant_p): Adjust comment.
7925         (legitimate_reload_fp_constant_p): New function.
7926         (s390_preferred_reload_class): Distingiush between FP and Int constants.
7927         (preferred_la_operand_p): Avoid la with index on z196.
7928         (s390_adjust_priority): Trigger also for z196.
7929         (s390_issue_rate): Issue rate for z196 is 3.
7930         (s390_z10_fix_long_loop_prediction): Rename to ...
7931         (s390_fix_long_loop_prediction): ... this.
7932         (s390_reorg): Apply the z10 adjustments also for z196.
7933         (s390_loop_unroll_adjust): Do this also for z196.
7934         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
7935         (enum processor_flags): Add PF_Z196.
7936         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
7937         (TARGET_CPU_Z196, TARGET_Z196): New macros.
7938         * config.gcc: Enable z196 for --with-arch.
7939         * config/s390/2817.md: New file.
7940         * config/s390/2084.md: New type for multiply and add.
7941         * config/s390/2097.md: Likewise.
7942         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
7943         (UNSPECV_ATOMIC_OP): New constants.
7944         (fmadddf, fmaddsf): New values for type attribute.
7945         (z196prop): New insn attribute.
7946         (cpu, cpu_facility): Add z196.
7947         (ATOMIC_Z196): New code iterator.
7948         (noxa): New code attribute.
7949         (gk): New mode attribute.
7950         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
7951         Support load zero for fp constants.
7952         (fixuns_truncdddi2, fixuns_trunctddi2)
7953         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
7954         for z196.
7955         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
7956         (popcounthi2, popcountqi2): New expander.
7957         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
7958         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
7959         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
7960         insn definition.
7961         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
7962         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
7963         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
7964         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
7965         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
7966         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
7967         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
7968         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
7969         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
7970         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
7971         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
7972         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
7973         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
7974         Support new z196 instructions.
7975
7976 2010-10-05  Richard Guenther  <rguenther@suse.de>
7977
7978         PR middle-end/45877
7979         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
7980         case where gimplification optimizes away the stmt.
7981
7982 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7983
7984         PR debug/45849
7985         * var-tracking.c (strip_pointer_flags): New function.
7986         (emit_note_insn_var_location): If rtx_equal_p check failed,
7987         retry on locations simplified with simplify_replace_fn_rtx
7988         and strip_pointer_flags as its callback.
7989
7990 2010-10-04  Jan Hubicka  <jh@suse.cz>
7991
7992         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
7993         (can_refer_decl_in_current_unit_p): ... this one; reverse return
7994         value; handle comdats too.
7995         (canonicalize_constructor_val): Use it; handle function_decls
7996         correctly.
7997         (gimple_fold_obj_type_ref_known_binfo): Likewise.
7998         * gimple.c (get_base_address): Accept all kinds of decls.
7999
8000 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8001
8002         * flags.h (g_switch_value, g_switch_set): Remove.
8003         * opts.c (g_switch_value, g_switch_set): Remove.
8004         * config/g.opt (G): Add Var(g_switch_value).
8005         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
8006         (alpha_option_override): Check global_options_set.x_g_switch_value
8007         instead of g_switch_set.
8008         (alpha_in_small_data_p): Remove cast in comparison with
8009         g_switch_value.
8010         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
8011         g_switch_value to unsigned HOST_WIDE_INT.
8012         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
8013         with g_switch_value.
8014         (frv_handle_option): Don't handle -G here.
8015         (frv_option_override): Check global_options_set.x_g_switch_value
8016         instead of g_switch_set.  Don't modify g_switch_set.
8017         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
8018         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
8019         g_switch_value to unsigned HOST_WIDE_INT.
8020         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
8021         (ia64_option_override): Check global_options_set.x_g_switch_value
8022         instead of g_switch_set.
8023         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
8024         Remove.
8025         (lm32_in_small_data_p): Remove cast in comparison with
8026         g_switch_value.
8027         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
8028         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
8029         HOST_WIDE_INT.
8030         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
8031         (m32r_init): Check global_options_set.x_g_switch_value instead of
8032         g_switch_set.
8033         (m32r_in_small_data_p): Remove cast in comparison with
8034         g_switch_value.
8035         (m32r_file_start): Format g_switch_value with %d.
8036         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
8037         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
8038         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
8039         handle -G here.
8040         (microblaze_option_override): Check
8041         global_options_set.x_g_switch_value instead of g_switch_set.
8042         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
8043         (mips_option_override): Check global_options_set.x_g_switch_value
8044         instead of g_switch_set.
8045         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
8046         (rs6000_file_start): Format g_switch_value with %d.
8047         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
8048         comparisons with g_switch_value.
8049         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8050         global_options_set.x_g_switch_value instead of g_switch_set.
8051         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8052         global_options_set.x_g_switch_value instead of g_switch_set.
8053         * config/score/score.c (score_handle_option): Don't handle -G here.
8054         * config/score/score3.c (score3_option_override): Check
8055         global_options_set.x_g_switch_value instead of g_switch_set.
8056         * config/score/score7.c (score7_option_override): Check
8057         global_options_set.x_g_switch_value instead of g_switch_set.
8058
8059 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8060
8061         * common.opt (fira-coalesce): Remove.
8062
8063         * doc/invoke.texi (flag_ira_coalesce): Remove.
8064
8065         * ira-color.c (allocno_coalesced_p): Move before
8066         copy_freq_compare_func.
8067         processed_coalesced_allocno_bitmap): Ditto.
8068         (update_conflict_hard_regno_costs): Don't use
8069         ALLOCNO_FIRST_COALESCED_ALLOCNO.
8070         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
8071         (assign_hard_reg): Assume no coalesced allocnos.
8072         (get_coalesced_allocnos_attributes): Remove.
8073         (bucket_allocno_compare_func): Assume no coalesced allocnos.
8074         (push_allocno_to_stack): Ditto.
8075         (remove_allocno_from_bucket_and_push): Use
8076         ira_print_expanded_allocno instead of print_coalesced_allocno.
8077         (push_allocnos_to_stack): Assume uncoalesced allocnos.
8078         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
8079         all_conflicting_hard_regs.
8080         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
8081         (setup_allocno_left_conflicts_size): Ditto.
8082         (put_allocno_into_bucket): Ditto.
8083         (copy_freq_compare_func): Remove.
8084         (copy_freq_compare_func, merge_allocnos): Move before
8085         coalesced_pseudo_reg_freq_compare.
8086         coalesced_allocno_conflict_p): Ditto.
8087         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
8088         parameter.  Assume it true.
8089         (color_allocnos): Assume uncoalesced allocnos.  Use
8090         ira_print_expanded_allocno instead of print_coalesced_allocno.
8091         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
8092         parameter.
8093
8094         * ira.c: Remove comment about coalescing.
8095
8096 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8097
8098         * config/mips/mips.h (target_flags_explicit): Declare for
8099         GENERATOR_FILE.
8100
8101 2010-10-04  Andi Kleen  <ak@linux.intel.com>
8102
8103         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
8104         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
8105
8106 2010-10-04  Matthias Klose  <doko@ubuntu.com>
8107
8108         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
8109         multilib osdirname if it exists.
8110         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
8111
8112 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8113
8114         PR middle-end/45876
8115         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
8116         arg0's type or its unsigned counterpart as utype.  Convert
8117         arg1 to utype unconditionally.
8118
8119 2010-10-04  Julian Brown  <julian@codesourcery.com>
8120
8121         * expr.c (expand_assignment): Add assertion to prevent emitting
8122         null rtx for movmisalign pattern.
8123         (expand_expr_real_1): Likewise.
8124         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
8125         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
8126         (arm_vector_alignment_reachable): New.
8127         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
8128         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
8129         (arm_print_operand): Include alignment qualifier in %A.
8130         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
8131         (movmisalign<mode>): New expander.
8132         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
8133         insn patterns.
8134
8135 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8136
8137         * optc-gen.awk: Define global_options_set.  Don't define
8138         target_flags_explicit.
8139         * opth-gen.awk: Declare global_options_set.  Define
8140         target_flags_explicit as macro.
8141         * opts-common.c (handle_option): Take opts_set and generated_p
8142         parameters.
8143         (handle_generated_option, read_cmdline_option, set_option): Take
8144         opts_set parameter.
8145         (set_option): Use opts_set instead of hardcoding target_flags and
8146         target_flags_explicit.
8147         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
8148         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
8149         flag_value_profile_transformations_set, flag_peel_loops_set,
8150         flag_branch_probabilities_set, flag_inline_functions_set,
8151         flag_ipa_cp_set, flag_ipa_cp_clone_set,
8152         flag_predictive_commoning_set, flag_unswitch_loops_set,
8153         flag_gcse_after_reload_set): Remove.
8154         (common_handle_option, lang_handle_option, target_handle_option):
8155         Take opts_set parameter.  Assert that it is &global_options_set.
8156         (common_handle_option): Don't set _set variables.  Check opts_set
8157         instead of such variables.
8158         (enable_warning_as_error): Pass &global_options_set to
8159         handle_generated_option.
8160         * opts.h (cl_option_handler_func.handler, set_option,
8161         handle_option, handle_generated_option, read_cmdline_option): Add
8162         opts_set parameters.
8163         (handle_option): Add generated_p parameter.
8164         * config/i386/i386.c (ix86_function_specific_save,
8165         ix86_function_specific_restore): Updat for renaming of
8166         target_flags_explicit field.
8167         * config/i386/i386.opt (target_flags_explicit): Rename to
8168         ix86_target_flags_explicit.
8169         * config/ia64/ia64.c (ia64_override_options_after_change): Check
8170         global_options_set.x_flag_selective_scheduling and
8171         global_options_set.x_flag_selective_scheduling2, not
8172         sel_sched_switch_set.
8173         * flags.h (sel_sched_switch_set,
8174         flag_speculative_prefetching_set): Remove.
8175         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
8176         that it is &global_options_set.
8177         (process_command): Pass &global_options_set to read_cmdline_option.
8178         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
8179         set_option.
8180         * toplev.c (target_flags_explicit): Remove.
8181
8182 2010-10-04  Jan Hubicka  <jh@suse.cz>
8183
8184         PR middle-end/45871
8185         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
8186         use get_ref_base_and_offset to handle references.
8187         (fold_const_aggregate_ref): Update.
8188
8189 2010-10-04  Martin Jambor  <mjambor@suse.cz>
8190
8191         PR tree-optimization/45572
8192         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
8193         ipa_check_create_node_params.
8194         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
8195
8196 2010-10-04  Yao Qi  <yao@codesourcery.com>
8197
8198         * doc/passes.texi: Clean up.
8199
8200 2010-10-03  Ian Lance Taylor  <iant@google.com>
8201
8202         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
8203         referring to a field using a typedef name.
8204         (find_anonymous_field_with_type): New static function.
8205         (convert_to_anonymous_field): New static function.
8206         (convert_for_assignment): If -fplan9-extensions, permit converting
8207         pointer to struct to pointer to anonymous field.
8208         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
8209         (is_duplicate_field): New static function.
8210         (detect_field_duplicates_hash): If -fplan9-extensions, check for
8211         typedef names duplicating field names.
8212         (detect_field_duplicates): Likewise.
8213         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
8214         (C Dialect Options): Document -fplan9-extensions.
8215         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
8216
8217 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
8218
8219         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
8220         revision 164914.
8221         (vect_create_data_ref_ptr): Likewise.
8222         * tree-vect-stmts.c (vectorizable_store): Likewise.
8223         (perm_mask_for_reverse): Likewise.
8224         (reverse_vec_elements): Likewise.
8225         (vectorizable_load): Likewise.
8226
8227 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8228
8229         * cppbuiltin.c: New file.
8230         * cppbuiltin.h: New file.
8231         * Makefile.in: Take into account cppbuiltin.{h,c}.
8232
8233 2010-10-03  Andi Kleen  <ak@linux.intel.com>
8234
8235         * lto-cgraph.c (input_cgraph): Check for missing sections.
8236
8237 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
8238
8239         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
8240         to nonimmediate_operand.  Force operand 2 to register when allowed.
8241         (*<shiftrt_insn><mode>3_mask): Ditto.
8242         (*<rotate_insn><mode>3_mask): Ditto.
8243
8244 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
8245
8246         PR tree-optimization/45720
8247         PR tree-optimization/45764
8248         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8249         Don't accept backwards consecutive accesses.
8250         (vect_create_data_ref_ptr): Disallow negative steps.
8251
8252         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8253         (perm_mask_for_reverse): Removed.
8254         (reverse_vec_elements): Likewise.
8255         (vectorizable_load): Don't handle negative steps.
8256
8257 2010-10-02  Jan Hubicka  <jh@suse.cz>
8258
8259         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8260         call destination is known.
8261
8262 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8263
8264         PR target/45820
8265         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
8266         earlier.
8267
8268 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8269
8270         * doc/install.texi (Configuration): Document build_configargs,
8271         host_configargs, target_configargs.
8272
8273 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
8274
8275         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
8276         (*<shiftrt_insn><mode>3_mask): Ditto.
8277         (*<rotate_insn><mode>3_mask): Ditto.
8278
8279 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
8280
8281         PR tree-optimization/44716
8282         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
8283         (HOT_TEXT_SECTION_NAME): Define.
8284
8285 2010-10-01  Nick Clifton  <nickc@redhat.com>
8286
8287         * common.opt: Add -fcombine-stack-adjustments.
8288         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
8289         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
8290         flag_combine_stack_adjustments.
8291         * doc/invoke.texi: Document the new option.
8292
8293 2010-10-01  Richard Guenther  <rguenther@suse.de>
8294
8295         PR tree-optimization/45854
8296         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
8297
8298 2010-10-01  Anthony Green  <green@moxielogic.com>
8299
8300         * config.gcc: Fix moxie-*-rtems* configuration.
8301
8302 2010-10-01  Richard Guenther  <rguenther@suse.de>
8303
8304         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
8305         (gen_decl_die): Likewise.
8306
8307 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8308
8309         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
8310         to the function code for SPU MD builtins.
8311         (spu_expand_builtin): Update.
8312         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
8313
8314 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8315
8316         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
8317         sjlj_except_unwind_info.
8318
8319 2010-10-01  Tristan Gingold  <gingold@adacore.com>
8320
8321         * configure.ac: Define the nop insn for avr*-*-*
8322         * configure: Regenerate.
8323
8324 2010-10-01  Alan Modra  <amodra@gmail.com>
8325
8326         PR target/45807
8327         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
8328         extend toc_restore_insn.
8329
8330 2010-09-30  Richard Guenther  <rguenther@suse.de>
8331
8332         PR tree-optimization/43959
8333         * function.c (gimplify_parameters): Use create_tmp_reg instead of
8334         create_tmp_var.
8335
8336 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8337
8338         * config/sh/sh.c (sh_expand_prologue): Set
8339         current_function_static_stack_size.
8340
8341 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8342
8343         * configure.ac: Check for Solaris 8 ld with .hidden support.
8344         * configure: Regenerate.
8345
8346 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8347
8348         PR middle-end/45758
8349         * graphite.c (graphite_initialize): Call scev_reset.
8350
8351 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8352
8353         * sese.h (scev_analyzable_p): Return false for real or floating
8354         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
8355
8356 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8357
8358         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
8359         and ps.
8360         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
8361         domain.
8362         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
8363         Do not allocate ub_expr, it is passed in initialized.
8364
8365 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8366
8367         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
8368         (build_cloog_prog): Dump CLooG input file when
8369         flag_graphite_dump_cloog is set.  This is disabled on trunk.
8370         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
8371
8372 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8373
8374         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
8375         verify_dominators for CDI_POST_DOMINATORS.
8376         * sese.h: Remove comment about CDI_POST_DOMINATORS.
8377         (recompute_all_dominators): Remove call to free_dominance_info
8378         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
8379         for CDI_POST_DOMINATORS.
8380
8381 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8382
8383         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
8384         over pbb_dim_iter_domain.
8385
8386 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8387
8388         * graphite-flattening.c: Fix comments.
8389
8390 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8391
8392         * Makefile.in (OBJS-common): Add graphite-flattening.o.
8393         (graphite-flattening.o): New rule.
8394         * common.opt (floop-flatten): New flag.
8395         * doc/invoke.texi (-floop-flatten): Documented.
8396         * graphite-flattening.c: New.
8397         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
8398         * graphite-poly.h (flatten_all_loops): Declared.
8399         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
8400         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
8401         is set, also set flag_graphite.
8402
8403 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8404
8405         * graphite-poly.c (cloog_checksum): New.
8406         * graphite-poly.h (cloog_checksum): Declared.
8407
8408 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8409
8410         * graphite-poly.c (pbb_number_of_iterations): Removed.
8411         (pbb_number_of_iterations_at_time): Correctly compute the number
8412         of iterations in the transformed loop.
8413         * graphite-poly.h (pbb_number_of_iterations): Removed.
8414
8415 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8416
8417         * graphite-poly.h (lst_update_scattering_seq): Removed.
8418         (lst_update_scattering): Correctly handle outermost loop dewey
8419         renumbering.
8420
8421 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8422
8423         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
8424         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
8425         * graphite-poly.h (lst_niter_for_loop): New.
8426
8427 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8428
8429         * graphite-poly.c (apply_poly_transforms): Do not abort when the
8430         transform read from disk is not legal.  Call fatal_error instead.
8431
8432 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8433
8434         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
8435         (print_scop_header): Removed.  Inlined in the only call place...
8436         (print_scop): ... here.
8437
8438 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8439
8440         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
8441
8442 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8443
8444         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
8445
8446 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8447
8448         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
8449         (dot_deps_stmt): Same.
8450         * graphite-poly.c (dot_lst): Same.
8451
8452 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8453
8454         * graphite-blocking.c (scop_do_strip_mine): Do not call
8455         graphite_legal_transform.
8456         (scop_do_block): Same.
8457
8458 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
8459
8460         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
8461         description.
8462
8463 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8464
8465         * tree-scalar-evolution.c (instantiate_array_ref): New.
8466         (instantiate_scev_r): Also handle ARRAY_REFs.
8467
8468 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8469
8470         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8471         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
8472         RESULT_DECL, and FIELD_DECL.  Return false for an
8473         SSA_NAME_IS_DEFAULT_DEF.
8474         (compute_scalar_evolution_in_loop): Do not further analyze the
8475         scalar evolution when no_evolution_in_loop_p returns true.
8476
8477 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8478
8479         * tree-chrec.h (evolution_function_is_affine_p): Do not check
8480         whether CHREC_LEFT is invariant.  A function is affine when
8481         CHREC_RIGHT is invariant.
8482
8483 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8484
8485         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
8486         is_gimple_reg.
8487         (rewrite_degenerate_phi): Same.
8488         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
8489
8490 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
8491
8492         * graphite-scop-detection.c (graphite_can_represent_scev,
8493         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
8494         graphite_can_represent_loop): Remove outermost_loop.
8495
8496 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8497
8498         PR middle-end/45229
8499         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
8500         handle GIMPLE_CALLs with no LHS.
8501
8502 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8503
8504         * graphite-poly.c (init_graphite_out_file): New.
8505         (init_graphite_in_file): New.
8506         (apply_poly_transforms): Updated to enable reading and writing of
8507         multiple scop files.
8508
8509 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
8510
8511         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
8512         redundant checks.
8513
8514 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8515
8516         * graphite-clast-to-gimple.c (precision_for_value): Adjust
8517         computation of precision by 1.
8518
8519 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8520
8521         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
8522         (openscop_read_polyhedron_matrix): New.
8523         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
8524         (openscop_read_N_int): Same.
8525         * graphite-poly.c (openscop_read_N_int): New.
8526         (openscop_read_one_int): New.
8527         (openscop_read_N_string): New.
8528         (openscop_read_one_string): New.
8529         (openscop_read_powerset_matrix): New.
8530         (graphite_read_transforms): Remove.
8531         (graphite_read_scatt): New.
8532         (graphite_read_scop_file): New.
8533         (apply_poly_transforms): Updated to call graphite_read_scop_file.
8534
8535 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8536
8537         * graphite-poly.c: Change include order.
8538
8539 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8540
8541         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
8542         (cloog_matrix_nrows): New.
8543
8544 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8545
8546         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
8547         from matrix lines.
8548         * graphite-poly.c (openscop_print_scattering_function_1): Same.
8549         (print_scattering_function_1): Same.
8550         (openscop_print_pbb_domain): Same.
8551         (openscop_print_scop_context): Same.
8552         (print_scop_context): Same.
8553
8554 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
8555
8556         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
8557         (openscop_print_pdr_polyhedron): Print pph.
8558
8559 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8560
8561         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
8562         priority signed types.
8563
8564 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8565
8566         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
8567         the call to lang_hooks.types.type_for_size.  Call
8568         build_nonstandard_integer_type.
8569
8570 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8571
8572         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
8573         (openscop_print_polyhedron_matrix): New.
8574         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
8575         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
8576         (openscop_print_pdr_powerset): New.
8577         (openscop_print_powerset_matrix): New.
8578         (openscop_print_scattering_function_1): New.
8579         (print_scattering_function): Add support for scattering names and
8580         OpenScop format.
8581         (graphite_write_transforms): Remove.
8582         (print_pdr_access_layout): Updated to support OpenScop format.
8583         (print_pdr): Same.
8584         (openscop_print_pbb_domain): New.
8585         (print_pbb_body): Added a parameter to allow indicating that pbb_body
8586         is not provided.
8587         (print_pbb): Updated to call the new print_pbb_body.
8588         (openscop_print_scop_context): New.
8589         (print_scop_header): New.
8590         (print_scop): Updated to call print_scop_header.
8591         * graphite-poly.h: Document OpenScop format.
8592
8593 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
8594
8595         * config/cris/m32c.c (cris_memory_move_cost): New.
8596         (cris_register_move_cost): Make static. Change arguments type from
8597         enum reg_class to reg_class_t.
8598         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8599         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8600         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
8601
8602 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
8603
8604         PR target/45843
8605         * config/i386/i386.c (ix86_gimplify_va_arg): Use
8606         INTVAL (XEXP (slot, 1)) as prev_size.
8607
8608 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
8609
8610         PR target/45837
8611         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
8612         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
8613         defined.
8614         * config/rs6000/option-defaults.h (toplevel): Change #if
8615         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
8616         global option changes.
8617
8618 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
8619
8620         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
8621
8622         PR tree-optimization/31261
8623         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
8624         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
8625
8626 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8627
8628         PR bootstrap/45796
8629         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
8630         special-casing for generators and turn into ...
8631         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
8632         rule, for better error messages in case of toplevel dependency errors.
8633         (genprog): Add hooks, rename to ...
8634         (genprogerr): ... this, and let genprog also contain check,
8635         checksum, condmd.
8636         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
8637         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
8638         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
8639
8640 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
8641             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8642
8643         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
8644         for GMP, MPFR and MPC.
8645
8646 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8647
8648         * config/sparc/sparc.opt (mimpure-text): Move ...
8649         * config/sol2.opt: ... here.  Correct description.
8650         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
8651         * doc/invoke.texi (Option Summary, SPARC Options): Move
8652         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
8653         (Option Summary, Solaris 2 Options): ... here.
8654         (Submodel Options, Solaris 2 Options): New menu entry.
8655         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
8656         (Solaris 2 Options): ... here.
8657
8658 2010-09-30  Michael Eager  <eager@eagercon.com>
8659
8660         * extend.texi (interrupt_handler): Add MicroBlaze to list.
8661         (save_volatiles): Describe option for MicroBlaze.
8662         * invoke.texi: Add MicroBlaze Options.
8663         * contrib.texi: Add acknowledgment.
8664         * md.texi: Add MicroBlaze d and z constraints.
8665         * install.texi: Add microblaze-*-elf.
8666         * configure.ac: Add microblaze-*-* to target list.
8667         * configure: Regenerate.
8668         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
8669         * config/microblaze/microblaze-protos.h: New.
8670         * config/microblaze/crti.s: New.
8671         * config/microblaze/predicates.md: New.
8672         * config/microblaze/linux.h: New.
8673         * config/microblaze/microblaze.md: New.
8674         * config/microblaze/constraints.md: New.
8675         * config/microblaze/crtn.s: New.
8676         * config/microblaze/microblaze.opt: New.
8677         * config/microblaze/microblaze-c.c: New.
8678         * config/microblaze/t-microblaze: New.
8679         * config/microblaze/microblaze.c: New.
8680         * config/microblaze/microblaze.h: New.
8681
8682 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
8683
8684         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
8685         parse @optional/@required and set the flags as appropriate.
8686
8687 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
8688
8689         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
8690
8691 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
8692
8693         * opt-functions.awk (static_var): Update comment.
8694         (var_ref): Return offsetof expression or -1, not variable address.
8695         * optc-gen.awk: Generate structure field initializers instead of
8696         static variables.  Expect -1 for missing variables instead of null
8697         pointer.  Add gcc_options parameters to generated functions.
8698         * opth-gen.awk: Generate structure fields for static variables.
8699         Add gcc_options parameters to generated functions.
8700         * common.opt (optimize, optimize_size): Add variables.
8701         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
8702         &global_options to cl_target_option_restore.
8703         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
8704         &global_options to cl_optimization_restore, cl_target_option_save
8705         and cl_target_option_restore.
8706         (ix86_set_current_function): Pass &global_options to
8707         cl_target_option_restore.
8708         * config/pdp11/pdp11.h (optimize): Remove.
8709         * config/rs6000/rs6000.h (optimize): Remove.
8710         * config/sh/sh.h (optimize): Remove.
8711         * config/xtensa/xtensa.h (optimize): Remove.
8712         * coretypes.h (struct gcc_options): Declare.
8713         * diagnostic.c (diagnostic_initialize): Initialize
8714         context->option_state.
8715         (diagnostic_report_diagnostic): Pass option_state to
8716         option_enabled hook.
8717         * diagnostic.h (diagnostic_context.option_enabled): Add void *
8718         parameter.
8719         (diagnostic_context.option_state): New field.
8720         * final.c (final_start_function, final, final_scan_insn): Rename
8721         optimize parameter to optimize_p.
8722         * flags.h (optimize, optimize_size): Remove.
8723         * function.c (invoke_set_current_function_hook): Pass
8724         &global_options to cl_optimization_restore.
8725         * gcc.c (driver_handle_option): Take gcc_options parameter.
8726         Assert that it is &global_options.
8727         (process_command): Pass &global_options to read_cmdline_option.
8728         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
8729         option_enabled.
8730         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
8731         &global_options to set_option.
8732         * opts-common.c (handle_option, handle_generated_option,
8733         read_cmdline_option, set_option): Take explicit gcc_options
8734         parameters.  Use option_flag_var.
8735         (option_flag_var): New.
8736         * opts.c (common_handle_option, lang_handle_option,
8737         target_handle_option): Take gcc_options parameter.  Assert that it
8738         is &global_options.
8739         (read_cmdline_options): Pass &global_options to read_cmdline_option.
8740         (print_filtered_help): Use option_flag_var.  Pass &global_options
8741         to option_enabled.
8742         (common_handle_option): Use option_flag_var.
8743         (option_enabled): Take opts parameter.  Use option_flag_var.
8744         (get_option_state): Take gcc_options parameter.  Use
8745         option_flag_var.  Pass gcc_options parameter to option_enabled.
8746         (enable_warning_as_error): Pass &global_options to
8747         handle_generated_option.
8748         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
8749         (cl_option_handler_func.handler): Take gcc_options parameter.
8750         (option_enabled, get_option_state, set_option, handle_option,
8751         handle_generated_option, read_cmdline_option): Take gcc_options
8752         parameters.
8753         * toplev.c (optimize, optimize_size): Remove.
8754         (print_switch_values): Pass &global_options to option_enabled.
8755         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
8756         to get_option_state.
8757         (general_init): Initialize global_dc->option_state.
8758         * tree.c (build_optimization_node): Pass &global_options to
8759         cl_optimization_save.
8760         (build_target_option_node): Pass &global_options to
8761         cl_target_option_save.
8762
8763 2010-09-30  Martin Jambor  <mjambor@suse.cz>
8764
8765         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
8766         zero sized bit-fields.
8767
8768 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
8769
8770         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
8771         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
8772         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
8773         (c_parser_objc_class_declaration): Same change.
8774         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
8775         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8776         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
8777         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
8778         and RID_AT_PUBLIC instead of RID_PUBLIC.
8779         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
8780         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8781
8782 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
8783
8784         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
8785         Add links to current providers of packages for Solaris and IRIX.
8786
8787 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8788
8789         Merge from 'apple/trunk' branch on FSF servers.
8790         * c-parser.c: Applied change originally in c-parse.in.
8791
8792         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
8793
8794         Radar 4281748
8795         * c-decl.c (start_decl): Check for redeclaration of class name.
8796         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
8797
8798 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
8799
8800         * config/ia64/ia64.c (ia64_builtin_decl): New.
8801         (TARGET_BUILTIN_DECL): Define.
8802         (ia64_builtins): New.
8803         (ia64_init_builtins): Save decls in ia64_builtins.
8804
8805 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
8806
8807         PR target/40457
8808         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
8809         (move2add_use_add3_insn): Likewise.
8810         (reload_cse_move2add): Likewise.
8811         * rtlanal.c (get_full_rtx_cost): New function.
8812         * rtl.h (struct full_rtx_costs): New.
8813         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
8814         costs_add_n_insns): New inline functions.
8815         (get_full_rtx_cost): Declare.
8816
8817         PR c/45054
8818         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
8819         invariants.  Check for reg_equiv_invariant.
8820         (reload): Assert that spilled_pseudos is empty when returning.
8821
8822 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
8823
8824         * config/i386/mingw32.h (TARGET_64BIT): replaced by
8825         TARGET_64BIT_DEFAULT in #if check.
8826
8827 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
8828
8829         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
8830
8831 2010-09-29  Mike Stump  <mikestump@comcast.net>
8832
8833         * config/darwin.h (flag_mkernel): Remove.
8834         (flag_apple_kext): Likewise.
8835
8836 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8837             Jack Howarth  <howarth@bromo.med.uc.edu>
8838
8839         * config/darwin.opt (undefined): Add.
8840
8841 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
8842
8843         PR testsuite/45664
8844         * configure.ac: Add --enable-indirect-function option.
8845         * config.gcc: Add default_gnu_indirect_function.
8846         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
8847         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
8848         * varasm.c (do_assemble_alias): Adjust for macro name change.
8849         * configure: Rebuilt.
8850         * doc/install.texi: Document --enable-indirect-function.
8851
8852 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8853
8854         * doc/options.texi (Variable, Var, Init): Update documentation
8855         without reference to VarExists.
8856         (VarExists): Remove.
8857         * common.opt, config/i386/i386.opt, config/linux.opt,
8858         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
8859         Don't use VarExists.
8860
8861 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8862
8863         * optc-gen.awk: Generate global_options initializer instead of
8864         individual variables.  Add x_ prefix to names of structure members.
8865         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
8866         names of structure members.
8867         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8868         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
8869         * doc/tm.texi: Regenerate.
8870         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8871         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8872         * c-parser.c (disable_extension_diagnostics,
8873         restore_extension_diagnostics): Update names of cpp_options members.
8874         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8875         * common.opt (fcompare-debug-second): Don't use Var.
8876         * config/alpha/alpha.h (target_flags): Remove.
8877         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8878         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8879         * config/bfin/bfin.h (target_flags): Remove.
8880         * config/cris/cris.h (target_flags): Remove.
8881         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
8882         cl_target_option members.
8883         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
8884         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
8885         ix86_can_inline_p): Update names of cl_target_option members.
8886         * config/i386/i386.h (ix86_isa_flags): Remove.
8887         * config/lm32/lm32.h (target_flags): Remove.
8888         * config/mcore/mcore.h (mcore_stack_increment): Remove.
8889         * config/mcore/mcore.md (addsi3): Remove extern declaration of
8890         flag_omit_frame_pointer.
8891         * config/mep/mep.h (target_flags): Remove.
8892         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8893         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8894         * config/mmix/mmix.h (target_flags): Remove.
8895         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
8896         flag_expensive_optimizations): Remove.
8897         * config/s390/s390.h (flag_pic): Remove.
8898         * config/score/score-conv.h (target_flags): Remove.
8899         * config/sh/sh.h (sh_fixed_range_str): Remove.
8900         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
8901         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8902         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8903         * diagnostic.c (diagnostic_initialize): Update names of
8904         diagnostic_context members.
8905         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
8906         warn_system_headers.
8907         (diagnostic_report_warnings_p): Update for new names.
8908         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8909         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
8910         HARD_FRAME_POINTER_IS_ARG_POINTER.
8911         * flags.h (flag_compare_debug): Declare.
8912         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8913         * opts.c (flag_compare_debug): Define.
8914         (common_handle_option): Update names of diagnostic_context
8915         members.  Handle -fcompare-debug-second.
8916         (fast_math_flags_struct_set_p): Update names of cl_optimization
8917         members.
8918         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8919         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8920         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8921         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8922         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8923         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8924         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
8925         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8926         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8927
8928 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8929
8930         * config/picochip/picochip.c (picochip_output_internal_label):
8931         This function can now be called for debug CFI labels, which can come
8932         in the middle of a vliw instruction.  Postpone until end of vliw.
8933
8934 2010-09-29  Richard Guenther  <rguenther@suse.de>
8935
8936         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
8937         (DECL_FILE_SCOPE_P): Use it.
8938         (TYPE_FILE_SCOPE_P): New macro.
8939
8940 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8941
8942         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
8943         a CPP_NAME which is a reserved word, clearly separate cases for
8944         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
8945
8946 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8947
8948         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
8949         token->value with the canonical spelling.  Do exactly like C and
8950         C++ and leave it as it is.
8951
8952 2010-09-28  Richard Henderson  <rth@redhat.com>
8953
8954         * config/alpha/alpha.c (alpha_builtins): New.
8955         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
8956         (alpha_builtin_function): New.
8957         (alpha_add_builtins, alpha_init_builtins): Use it.
8958
8959 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
8960
8961         * doc/standards.texi (Standards): Expanded the section on
8962         Objective-C and Objective-C++.
8963
8964 2010-09-28  DJ Delorie  <dj@redhat.com>
8965
8966         PR target/45800
8967         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
8968         volatile MEMs.
8969
8970 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
8971
8972         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
8973         attributes on methods.
8974          (c_parser_objc_method_definition): Handle attributes.
8975         (c_parser_objc_methodproto): Likewise.
8976         (c_parser_objc_maybe_method_attributes): New.
8977         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
8978         missing definition, similar to that in ObjC++.
8979
8980 2010-09-28  Richard Henderson  <rth@redhat.com>
8981
8982         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
8983         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8984         (CONFIG_SJLJ_EXCEPTIONS): Remove.
8985         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
8986         (STACK_CHECK_PROTECT): Likewise.
8987         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
8988         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
8989         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
8990         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
8991         (dwarf2out_assembly_start): Likewise.
8992         * except.c (init_eh): Use targetm.except_unwind_info.
8993         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
8994         (output_one_function_exception_table): Likewise.
8995         * final.c: Unconditionally include dwarf2out.h.
8996         (final_start_function): Unconditionally call dwarf2out routines.
8997         (final_end_function, final_scan_insn): Likewise.
8998         * function.c (expand_function_end): Use targetm.except_unwind_info.
8999         * opts.c (decode_options): Use targetm.except_unwind_info.
9000         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
9001         * target.def (debug_unwind_info, except_unwind_info): New.
9002         * target.h (enum unwind_info_type): New.
9003         * targhooks.c (default_debug_unwind_info): New.
9004         (default_except_unwind_info): New.
9005         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
9006         * targhooks.h: Declare them.
9007         * tree-tailcall.c: Include "target.h"
9008         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
9009         * Makefile.in (tree-tailcall.o): Update.
9010         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
9011         (lhd_gcc_personality): Likewise.
9012
9013         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
9014         (TARGET_EXCEPT_UNWIND_INFO): New.
9015         (DWARF2_UNWIND_INFO): Update.
9016         (TARGET_DEBUG_UNWIND_INFO): New.
9017         * doc/tm.texi: Rebuild.
9018
9019         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
9020         targetm.except_unwind_info.
9021
9022         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
9023         (arm_except_unwind_info): New.
9024         (arm_compute_func_type): Use it.
9025         (arm_expand_prologue, thumb_pushpop): Likewise.
9026         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
9027         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
9028         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
9029         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
9030         (DWARF2_UNWIND_INFO): Remove.
9031         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9032         (ARM_EABI_UNWIND_TABLES): Remove.
9033
9034         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
9035         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
9036         (ia64_except_unwind_info): New.
9037         (ia64_output_function_prologue): Use it.
9038         (ia64_add_bundle_selector_before): Likewise.
9039         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
9040         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
9041         (TARGET_UNWIND_INFO): Remove.
9042
9043         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
9044
9045 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9046
9047         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
9048         (c_parser_objc_protocol_definition): Likewise.
9049         (c_parser_external_declaration): Provide dummy attribute arguments.
9050         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
9051         (c_parser_objc_class_definition): Handle attributes.
9052         (c_parser_objc_protocol_definition): Likewise.
9053
9054 2010-09-28  Tobias Burnus  <burnus@net-b.de>
9055
9056         PR fortran/40569
9057         PR fortran/40568
9058         * toplev.h (save_decoded_options, save_decoded_options_count):
9059         New global variables.
9060         * toplev.c (save_decoded_options, save_decoded_options_count):
9061         Export variables.
9062
9063 2010-09-28  Ian Lance Taylor  <iant@google.com>
9064
9065         * config/i386/i386.c (ix86_supports_split_stack): Test
9066         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
9067
9068 2010-09-28  Ian Lance Taylor  <iant@google.com>
9069
9070         PR target/45815
9071         * opts.c (decode_options): Don't test whether the target supports
9072         split stack if flag_split_stack == 0.
9073
9074 2010-09-28  Jan Hubicka  <jh@suse.cz>
9075
9076         * builtin-attrs.def (ATTR_LEAF): New attribute.
9077         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
9078         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
9079         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
9080         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
9081         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
9082         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
9083         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
9084         * sync-builtins.def: Annotate all builtins by leaf.
9085         * omp-builtins.def: Annotate all builtins by leaf.
9086         * builtins.def: Annotate relevant builtins with leaf attribute.
9087         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
9088         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
9089         leaf.
9090
9091 2010-09-28  Jan Hubicka  <jh@suse.cz>
9092
9093         * tree-ssa-ccp.c (fold_ctor_reference): New function.
9094         (fold_const_aggregate_ref): Use it.
9095         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
9096         into external static.
9097
9098 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9099
9100         PR target/44452
9101         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
9102         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
9103         (ix86_solaris_return_in_memory): Remove.
9104         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
9105         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9106         (TARGET_SUBTARGET_DEFAULT): Redefine.
9107         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
9108         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9109         (TARGET_SUBTARGET_DEFAULT): Redefine.
9110         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
9111         -mvect8-ret-in-mem.
9112         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
9113
9114 2010-09-29  Alan Modra  <amodra@gmail.com>
9115
9116         PR target/45807
9117         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
9118         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
9119         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
9120         Delete.
9121         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
9122         (rs6000_emit_prologue): Don't just create frame save info for r2,
9123         actually save r2.
9124
9125 2010-09-28  Richard Henderson  <rth@redhat.com>
9126
9127         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
9128         when 8 bytes are requested.
9129
9130 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9131
9132         * config/avr/avr.c (expand_prologue): Set
9133         current_function_static_stack_size.
9134
9135 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9136
9137         * config/alpha/alpha.md: Change the initial condition of the
9138         probing loop.
9139
9140 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
9141
9142         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
9143         Split from *avx_<maxmin:code><mode>3.
9144         (*avx_<smaxmin:code><mode>3): Ditto.
9145         * config/i386/i386.md (maxmin): Remove code iterator.
9146
9147 2010-09-27  Ian Lance Taylor  <iant@google.com>
9148
9149         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
9150         requires assembler support for CFI directives.
9151
9152 2010-09-27  Richard Henderson  <rth@redhat.com>
9153
9154         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
9155
9156 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9157
9158         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
9159         that AFTER is not in the range FROM..TO, inclusive.
9160
9161 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9162             Bernd Schmidt  <bernds@codesourcery.com>
9163
9164         PR rtl-optimization/45792
9165         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
9166         If not all insns are to be merged, for each edge, stash the
9167         next candidate after the to-be-merged insns before doing the
9168         merge, and use them for the retry at the new insertion point.
9169         Handle CC0 targets when retrying.
9170
9171 2010-09-27  Ian Lance Taylor  <iant@google.com>
9172
9173         * common.opt (fsplit-stack): New option.
9174         * opts.c (decode_options): Set flag_split_stack to final value.
9175         * target.def (supports_split_stack): New hook.
9176         * gcc.c (STACK_SPLIT_SPEC): Define.
9177         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
9178         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
9179         (Code Gen Options): Document -fsplit-stack.
9180         * doc/extend.texi (Function Attributes): Mention no_split_stack.
9181         (Function Attributes): Document no_split_stack.
9182         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
9183         TARGET_SUPPORTS_SPLIT_STACK.
9184         * doc/tm.texi: Rebuild.
9185         * function.c (thread_prologue_and_epilogue_insns): If
9186         flag_split_stack, add split stack prologue.
9187         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
9188         * varasm.c (saw_no_split_stack): New static variable.
9189         (assemble_start_function): Set saw_no_split_stack if the function
9190         has the no_split_stack attribute.
9191         (file_end_indicate_split_stack): New function.
9192         * output.h (file_end_indicate_split_stack): Declare.
9193         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
9194         and function.
9195         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
9196         routines.
9197         * config/i386/i386.c (ix86_option_override_internal): Don't set
9198         expand_builtin_va_start to NULL if -fsplit-stack.
9199         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
9200         -fsplit-stack.
9201         (ix86_va_start): If -fsplit-stack, get overflow pointer from
9202         scratch register set by prologue.
9203         (ix86_code_end): If -fsplit-stack, call
9204         file_end_indicate_split_stack.
9205         (ix86_supports_split_stack): New static function.
9206         (SPLIT_STACK_AVAILABLE): Define.
9207         (split_stack_prologue_scratch_regno): New static function.
9208         (split_stack_fn): New static variable.
9209         (ix86_expand_split_stack_prologue): New function.
9210         (ix86_live_on_entry): New static function.
9211         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
9212         (output_pic_addr_const): Likewise.
9213         (i386_asm_output_addr_const_extra): Likewise.
9214         (ix86_expand_call): Change return type to rtx.  Return the new
9215         call instruction.
9216         (TARGET_SUPPORTS_SPLIT_STACK): Define.
9217         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9218         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
9219         (split_stack_prologue, split_stack_return): New insns.
9220         (split_stack_space_check): New insn.
9221         * config/i386/i386.h (struct machine_function): Add
9222         split_stack_varargs_pointer field.
9223         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
9224         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9225         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
9226         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9227         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
9228         Declare.
9229         (ix86_expand_call): Update declaration.
9230
9231 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9232
9233         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
9234         code.  Added byref, which was missing in the list of codes.
9235         Explain that enumeration values are encoded as the integer type
9236         that the compiler uses to store them.  Explain and make examples
9237         of how 'const' interacts with pointers, and the complication of
9238         the encoding of 'const char *'.
9239         (Legacy type encoding): New subsection, explaining that GCC emits
9240         incorrect type encodings for the NeXT runtime for compatibility
9241         reasons.
9242         (@@encode): New subsection, explaining @encode and particularly
9243         that protocol qualifiers are not recognized inside an @encode()
9244         expression.
9245         (Method signatures): New subsection, explaining how method
9246         signatures are encoded.
9247
9248 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9249
9250         Merge from 'apple/trunk' branch on FSF servers.  Removed small
9251         change in build_conditional_expr that had been added when fixing
9252         PR objc/27377 and which did the same check in a less complete way.
9253
9254         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
9255
9256         Radar 4229905
9257         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9258         looking for objective-c common pointer types.
9259
9260         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
9261
9262         Radar 4154928
9263         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
9264         use their ObjC common type.
9265
9266 2010-09-27  Richard Guenther  <rguenther@suse.de>
9267
9268         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
9269
9270 2010-09-27  Jie Zhang  <jie@codesourcery.com>
9271
9272         * print-tree.c (print_node): Print in-constant-pool.
9273
9274 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
9275
9276         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
9277         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
9278         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
9279         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
9280
9281 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9282
9283         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
9284         from pro_epilogue_adjust_stack_<mode>_{1,2}.
9285         (pro_epilogue_adjust_stack_<mode>_add): Rename from
9286         pro_epilogue_adjust_stack_<mode>_3.
9287         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
9288         renamed pro_epilogue_adjust_stack_{si,di}_add.
9289         (ix86_expand_prologue): Use indirect functions.  Update for renamed
9290         pro_epilogue_adjust_stack_{si,di}_sub.
9291
9292 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9293
9294         * config/i386/i386.md (movmsk_df): New insn.
9295         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
9296         sequence for TARGET_SSE_MATH.
9297
9298 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
9299
9300         * config/mips/mips.c (mips_builtin_decls): Declare.
9301         (mips_init_builtins): Store function declarations in
9302         mips_builtin_decls.
9303         (mips_builtin_decl): New function.
9304         (TARGET_BUILTIN_DECL): Define.
9305
9306 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
9307             Richard Henderson  <rth@redhat.com>
9308
9309         * config/i386/cygwin.asm: Include auto-host.h.
9310         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
9311         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
9312         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
9313         alignment code from the 64-bit path.  Use gas local labels.
9314         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
9315         from _di_2.  Remove the useless constant integer argument.
9316         (pro_epilogue_adjust_stack_<mode>_3): New.
9317         (allocate_stack_worker_probe_<mode>): Macroize from
9318         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
9319         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
9320         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
9321         (__chkstk_ms): New function.
9322         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
9323         * config/i386/t-interix: Likewise.
9324         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
9325         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9326         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
9327         * configure, config.in: Rebuild.
9328
9329 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9330
9331         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
9332         statements because of the return slot optimization.
9333
9334 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
9335
9336         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
9337         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
9338         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9339         (class_likely_spilled_p): Rename to...
9340         (avr_class_likely_spilled_p): ...this. Make static. Change argument
9341         type to reg_class_t.
9342
9343 2010-09-24  Jan Hubicka  <jh@suse.cz>
9344
9345         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
9346         (lto_symtab_resolve_symbols): Set it.
9347         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
9348         store resolution field in cgraph/varpool.
9349         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
9350         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
9351         (cgraph_dump_node): Drop used_from_object_file.
9352         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
9353         (cgraph_function_body_availability): Use decl_replaceable_p.
9354         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
9355         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
9356         cgraph_used_from_object_file_p.
9357         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
9358         cgraph_used_from_object_file_p.
9359         (resolution_used_from_other_file_p): New functoin.
9360         (cgraph_used_from_object_file_p): New predicate.
9361         * cgraph.h: Include plugin-api.h
9362         (struct cgraph_local_info): Remove used_from_object_file.
9363         (struct cgraph_node): Add resolution field.
9364         (struct varpool_node): Likewise; remove used_from_object_file;
9365         reove const_value_known.
9366         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
9367         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
9368         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
9369         varpool_used_from_object_file_p): Declare.
9370         (varpool_get_node, varpool_extra_name_alias): Update prototype.
9371         * tree.h (DECL_REPLACEABLE_P): Remove.
9372         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
9373         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
9374         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9375         input_overwrite_node, input_node, input_varpool_node): Stream
9376         resolution.
9377         * expr.c (expand_expr_real_1): Use const_value_known_p
9378         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
9379         const_value_known.
9380         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
9381         (function_and_variable_visibility): Set resolution for local vars
9382         and functions; use varpool_used_from_object_file_p.
9383         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
9384         static functions.
9385         (default_binds_local_p_1): Use resolutoin info.
9386         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
9387         * varpool.c (varpool_get_node): Constify.
9388         (const_value_known_p): Do not use vnode->const_value_known;
9389         use decl_replaceable_p.
9390         (varpool_finalize_decl): Do not set const_value_known.
9391         (cgraph_variable_initializer_availability): Use decl_replaceable_p
9392         (varpool_extra_name_alias): Return new node.
9393         (varpool_used_from_object_file_p): New function.
9394
9395 2010-09-24  Richard Henderson  <rth@redhat.com>
9396
9397         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
9398         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
9399         (do_spill): Use REG_CFA_OFFSET.
9400         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
9401         as appropriate.
9402         (ia64_expand_epilogue): Likewise.
9403         (process_set): Split into ...
9404         (process_cfa_adjust_cfa): this,
9405         (process_cfa_register): this,
9406         (process_cfa_offset): and this new function.
9407         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
9408         instead of REG_FRAME_RELATED_EXPR.
9409
9410 2010-09-24  Olivier Hainque  <hainque@adacore.com>
9411
9412         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
9413
9414 2010-09-24  Jan Hubicka  <jh@suse.cz>
9415
9416         * doc/extend.texi: (attribute leaf): Document.
9417         * tree.c (local_define_builtin): Handle ECF_LEAF.
9418         (build_common_builtin_nodes): Set ECF_LEAF where needed.
9419         * tree.h (ECF_LEAF): New.
9420         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
9421         overwrittable and unavailable functions.
9422         (ipa_init): Put all_module_statics into optimization_summary_obstack.
9423         (copy_global_bitmap): Do not copy all_module_statics.
9424         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
9425         (propagate): Handle overwritable and unavailable leaf functions;
9426         initialize global info for overwritable and unavailable leaf functions;
9427         do not free all module statics.
9428         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
9429         local statics.
9430         * calls.c (flags_from_decl_or_type): Handle leaf.
9431         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
9432         abnormal gotos.
9433
9434 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
9435
9436         * gengtype.c: Reindented.
9437         * gengtype.h: Reindented.
9438         * gengtype-parse.c: Reindented.
9439
9440 2010-09-24  Jan Hubicka  <jh@suse.cz>
9441
9442         PR tree-optimization/45738
9443         PR tree-optimization/45741
9444         * expr.c (string_constant): Allow CONST_DECL too;
9445         check that DECL_INITIAL is set.
9446         * varpool.c (const_value_known_p): Only look into VAR_DECL
9447         and CONST_DECL.
9448
9449 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
9450
9451         * common.opt (undef): New.
9452
9453 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
9454
9455         PR middle-end/45234
9456         * rtl.h (enum global_rtl_index): Add
9457         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
9458         (LAST_VIRTUAL_POINTER_REGISTER): Define.
9459         (virtual_preferred_stack_boundary_rtx,
9460         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
9461         (LAST_VIRTUAL_REGISTER): Increase by one.
9462         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
9463         instead of LAST_VIRTUAL_REGISTER.
9464         * function.c (instantiate_new_reg): Handle
9465         virtual_preferred_stack_boundary_rtx.
9466         * emit-rtl.c (init_virtual_regs): Handle
9467         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9468         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
9469         * explow.c (round_push): If crtl->preferred_stack_boundary
9470         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
9471         virtual_preferred_stack_boundary_rtx alignment instead of
9472         crtl->preferred_stack_boundary alignment.
9473         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
9474         macros.  Never decrease crtl->preferred_stack_boundary,
9475         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
9476         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
9477         stack_pointer_delta in dynamic allocation, even when size
9478         is constant.
9479         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
9480         macro.
9481         * print-rtl.c (print_rtx): Handle
9482         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9483         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
9484         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
9485         * config/frv/frv.c (frv_emit_movsi): Likewise.
9486         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
9487         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
9488         Likewise.
9489
9490         Revert:
9491         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9492
9493         PR middle-end/45234
9494         * calls.c (expand_call): Make sure that all variable sized
9495         adjustments are multiple of preferred stack boundary after
9496         stack alignment.
9497
9498 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
9499             Dominique Dhumieres  <dominiq@lps.ens.fr>
9500
9501         PR bootstrap/45751
9502         * config/darwin-driver.c (darwin_default_min_version):
9503         Adjust size passed to memcpy in two places.
9504
9505 2010-09-24  Richard Guenther  <rguenther@suse.de>
9506
9507         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
9508         Make sure to not call set_type_context with error_mark_node.
9509         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
9510
9511 2010-09-24  Richard Guenther  <rguenther@suse.de>
9512
9513         * Makefile.in (OBJS-onestep): Remove.
9514         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
9515         (libbackend.a): Remove onestep support.
9516         (libbackend.o): Remove.
9517         * configure.ac (--enable-intermodule): Remove.
9518         * configure: Regenerate.
9519
9520 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
9521
9522         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
9523         reaching the end of a block if it occurs at a DEBUG_INSN.
9524
9525 2010-09-09  Tristan Gingold  <gingold@adacore.com>
9526
9527         PR target/44242
9528         * config/vms/vms-crt0-64.c: Removed.
9529         * config/vms/vms-crt0.c: Removed.
9530         * config/vms/vms-psxcrt0-64.c: Removed.
9531         * config/vms/vms-psxcrt0.c: Removed.
9532         * config/vms/vms-ucrt0.c: New file.
9533         * config/vms/t-vms64: Removed.
9534         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
9535         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
9536         * config.gcc (alpha-dec-vms): Use t-vms.
9537
9538 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9539
9540         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
9541         underfull hbox in DVI output.
9542         (-fobjc-class-cxx-cdtors): Same change.
9543         (-fobjc-exceptions): Tidied up documentation.  Explain what the
9544         option does, but moved the (lenghty) description of the exception
9545         syntax into objc.texi.
9546         (-fobjc-gc): Explain that the option is not useful with the GNU
9547         runtime.
9548         (-fzero-link): Explain that the GNU runtime always works in
9549         "zero-link" mode.
9550         * doc/objc.texi: All sections: simplified @node declarations
9551         removing specification of next, previous, up node.
9552         (Objective-C): Updated introduction.
9553         (Garbage Collection): Updated.  The bohem-gc library is now
9554         included in gcc itself.  Mention that this section only applies to
9555         the GNU Objective-C runtime.
9556         (compatibility_alias): Small tidy up.
9557         (Exceptions): New section mostly containing text previously in the
9558         description of the -fobjc-exception command-line option.
9559         (Synchronization): Same.
9560
9561 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
9562
9563         * config/i386/i386.md (ix86_code_end): Move the initialization of
9564         xops array near the consumer.  Use AX_REG and SP_REG instead of
9565         numerical constants.
9566
9567 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9568
9569         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
9570         method [methodname]' for an Objective-C method instead of the less
9571         satisfactory 'too many arguments to function' (with no method name).
9572
9573 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
9574
9575         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
9576         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
9577         (execute_update_addresses_taken): Remove parameter.  Execute the
9578         optimization unconditionally.
9579         * passes.c (execute_function_todo): Call execute_update_addresses_taken
9580         unconditionally if TODO_rebuild_alias is set, else only when optimizing
9581         if TODO_update_address_taken is set.
9582
9583 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
9584
9585         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9586         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
9587         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9588         (arm_output_addr_const_extra): Make static.
9589
9590 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
9591
9592         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
9593         define as unspec_volatile.
9594         ("nops"): Define as unspec_volatile. Use fputs to write to
9595         asm_out_file directly.  Output NOPs on separate lines using while loop.
9596         * config/i386/i386.c (ix86_code_end): Use fputs to write to
9597         asm_out_file directly.  Output NOPs on separate lines using while loop.
9598
9599 2010-09-23  Richard Guenther  <rguenther@suse.de>
9600
9601         PR tree-optimization/45565
9602         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9603         Make sure to adjust the fndecl before replacing the stmt.
9604
9605 2010-09-23  Richard Guenther  <rguenther@suse.de>
9606
9607         PR middle-end/45750
9608         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
9609         gimplifying MEM_REF.
9610
9611 2010-09-23  Alan Modra  <amodra@gmail.com>
9612
9613         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
9614         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
9615
9616 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
9617
9618         PR rtl-optimization/44374
9619         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
9620         * df-core.c (df_set_bb_dirty): Set it.
9621         * ifcvt.c (find_memory): Remove function.
9622         (dead_or_predicable): Use can_move_insns_across.
9623         * df.h (can_move_insns_across): Declare function.
9624         * cfgcleanup.c (block_was_dirty): New static variable.
9625         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
9626         than df_get_bb_dirty.
9627         (try_head_merge_bb): New static function.
9628         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
9629         is set.
9630         * df-problems.c: Include "target.h"
9631         (df_simulate_find_uses): New static function.
9632         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
9633         (find_memory, find_memory_store): New static functions.
9634         (can_move_insns_across): New function.
9635         * Makefile.in (df-problems.o): Update dependencies.
9636
9637 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9638
9639         PR java/44095
9640         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
9641         is specified and the suffix of the file isn't ".c".
9642         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9643
9644 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9645
9646         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
9647         * doc/cppopts.texi: Fix markup of index entry.
9648         * doc/extend.texi (Constructing Calls): Fix markup of
9649         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
9650         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
9651         (Vague Linkage, C++ Attributes): Fix markup of index entries and
9652         keywords.
9653         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
9654         avoid long lines.
9655         (C Dialect Options, C++ Dialect Options, Warning Options)
9656         (Debugging Options, Spec Files, Darwin Options)
9657         (i386 and x86-64 Options, MIPS Options)
9658         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
9659         index entries, avoid abbreviations, allow URLs to wrap, avoid
9660         long lines, avoid overlong pages from long @itemx lists.
9661         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
9662         * doc/standards.texi (Standards): Likewise.
9663         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
9664
9665 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
9666
9667         * opts-common.c (prune_options): Make static.  Work with decoded
9668         options.
9669         (decode_cmdline_options_to_array): Call prune_options.  Don't
9670         resize option array here.
9671         * opts.h (prune_options): Remove prototype.
9672         * gcc.c (process_command): Take decoded options; don't call
9673         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
9674         (main): Call decode_cmdline_options_to_array here instead of
9675         prune_options.  Update call to process_command.
9676         * config/darwin-driver.c: Include opts.h.
9677         (darwin_default_min_version): Work with decoded options.  Don't
9678         handle -b or -V here.
9679         * config/darwin.h (darwin_default_min_version): Update prototype.
9680         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
9681         darwin_default_min_version.
9682         * config/i386/cygwin.h (mingw_scan): Update prototype.
9683         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
9684         * config/i386/cygwin1.c: Include opts.h.
9685         (mingw_scan): Work with decoded options.
9686         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
9687         * config/t-darwin (darwin-driver.o): Update dependencies.
9688
9689 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
9690
9691         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
9692         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
9693         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
9694         -force-link, -force-link=, -language, -language=,
9695         -library-directory, -library-directory=, -no-canonical-prefixes,
9696         -no-standard-libraries, -no-warnings, -optimize, -output,
9697         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
9698         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
9699         -print-file-name=, -print-libgcc-file-name,
9700         -print-multi-directory, -print-multi-lib,
9701         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
9702         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
9703         -profile, -save-temps, -shared, -specs, -specs=, -static,
9704         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
9705         symbolic): New.
9706         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
9707         * gcc.c (A Short Introduction to Adding a Command-Line Option):
9708         Remove comment.
9709         (cc1_options): Correct specs for passing down --help,
9710         --target-help and --help=*.  Add spec for passing down --version.
9711         (struct option_map, option_map, target_option_translations,
9712         translate_options): Remove.
9713         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
9714         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
9715         OPT_fhelp_ and OPT_ftarget_help.
9716         (process_command): Don't call translate_options.  Call
9717         decode_cmdline_options_to_array before checking for
9718         -no-canonical-prefixes using decoded options.
9719         * opts-common.c (tm.h): Update comment on #include.
9720         (find_opt): Allow abbreviations of long options.
9721         (struct option_map, option_map): New.
9722         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
9723         and -mno handling.
9724         (target_option_translations): New.
9725         (decode_cmdline_options_to_array): Handle
9726         TARGET_OPTION_TRANSLATE_TABLE in driver.
9727         * opts.c (common_handle_option): Don't handle OPT_fhelp,
9728         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
9729
9730 2010-09-22  Richard Guenther  <rguenther@suse.de>
9731
9732         * tree-inline.c (optimize_inline_calls): Schedule cleanups
9733         only if we inlined something.  Block compaction and conditional
9734         folding are done by cfg cleanup.  Schedule update-address-taken.
9735         (tree_function_versioning): Remove redundant call to number_blocks.
9736         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
9737         folding is done by cfg cleanup.
9738         * passes.c (init_optimization_passes): Remove update-address-taken
9739         pass after IPA inlining.
9740
9741 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
9742
9743         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
9744         to update conditions. Fix reg_mode[] check.
9745
9746 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
9747
9748         * config/picochip/picochip.md (movhicc): Use expand to check whether
9749         movhicc is available and split it after reload.
9750
9751 2010-09-22  Richard Guenther  <rguenther@suse.de>
9752
9753         * tree-ssanames.c (release_dead_ssa_names): Do not remove
9754         callee edges here.
9755         * passes.c (init_optimization_passes): Remove early CFG cleanup.
9756         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
9757         (pass_cleanup_cfg): Likewise.
9758         (execute_fixup_cfg): Cleanup.
9759         * tree-pass.h (pass_cleanup_cfg): Remove.
9760
9761 2010-09-22  Martin Jambor  <mjambor@suse.cz>
9762
9763         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
9764         builtins if it is true.
9765         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
9766         parameter.
9767
9768 2010-09-22  Martin Jambor  <mjambor@suse.cz>
9769
9770         * tree-sra.c (struct access): New field grp_no_warning.
9771         (create_access_replacement): Set TREE_NO_WARNING according to
9772          grp_no_warning.
9773         (create_artificial_child_access): Use build_ref_for_model and set
9774         grp_no_warning if build_user_friendly_ref_for_offset fails.
9775         (propagate_subaccesses_across_link): Likewise.
9776
9777 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9778
9779         PR target/35664
9780         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
9781         ('f'): Likewise.
9782
9783 2010-09-22  Tristan Gingold  <gingold@adacore.com>
9784
9785         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
9786
9787 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
9788
9789         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
9790         * config/i386/i386.c (decide_alg): Update for rename.
9791
9792 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
9793
9794         PR rtl-optimization/45739
9795         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
9796         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
9797
9798 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
9799
9800         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
9801         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
9802         Remove.
9803         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
9804         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9805
9806 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9807
9808         PR objc/23710
9809         * c-parser.c (c_parser_objc_method_definition): Check the return
9810         value of objc_start_method_definition and if false is returned,
9811         parse the method definition but emit no code.
9812
9813 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9814
9815         PR objc/25965
9816         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
9817         call objc_get_interface_ivars ().
9818
9819 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
9820
9821         PR target/45694
9822         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
9823         static chain-register is used for 64-bit.
9824
9825 2010-09-21  Richard Guenther  <rguenther@suse.de>
9826
9827         * dwarf2out.c (is_cu_die): New function.
9828         (add_pubtype): Use it.
9829         (gen_subprogram_die): Likewise.
9830         (gen_struct_or_union_type_die): Likewise.
9831         (dwarf2out_finish): Likewise.
9832         (comp_unit_die): Rename to ...
9833         (single_comp_unit_die): ... this.
9834         (comp_unit_die): New function lazily constructing and
9835         returning single_comp_unit_die.
9836         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
9837         base_type_die, subrange_type_die, modified_type_die,
9838         lower_bound_default, add_bound_info, add_prototyped_attribute,
9839         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
9840         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
9841         force_decl_die, gen_namespace_die, dwarf2out_decl,
9842         dwarf2out_start_source_file, dwarf2out_end_source_file,
9843         prune_unused_types, dwarf2out_finish): Use it.
9844         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
9845         the global list of translation-unit decls.
9846         (dwarf2out_init): Do not create single_comp_unit_die here.
9847         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
9848
9849 2010-09-21  Richard Guenther  <rguenther@suse.de>
9850
9851         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
9852         for bool for C++.
9853
9854 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
9855
9856         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
9857         (qhs_extenddi_cstr): Likewise.
9858         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
9859         them for the source operand.
9860
9861 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
9862
9863         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
9864         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
9865         (ix86_split_ashr): Ditto.
9866         (ix86_split_lshr): Ditto.
9867
9868 2010-09-21  Richard Guenther  <rguenther@suse.de>
9869
9870         PR tree-optimization/45580
9871         * tree-ssa-propagate.c (substitute_and_fold): Always replace
9872         regular uses.
9873         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
9874         virtuals fold the call into a regular indirect one.
9875
9876 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9877
9878         PR rtl-optimization/42775
9879         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
9880         scheduling is enabled.
9881
9882 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9883
9884         PR rtl-optimization/45728
9885         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
9886         gen_lowpart_common first and if that fails, force_reg first
9887         before calling gen_lowpart.
9888
9889         PR middle-end/45678
9890         * cfgexpand.c (expand_one_stack_var_at): Use
9891         crtl->max_used_stack_slot_alignment as max_align, instead
9892         of maximum of that and PREFERRED_STACK_BOUNDARY.
9893         Don't call update_stack_alignment.
9894
9895 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9896
9897         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
9898         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
9899         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
9900         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
9901         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
9902         (build_nonstandard_integer_type): Likewise.
9903         (build_range_type_1): New function, built from...
9904         (build_range_type): ...this.  Call build_range_type_1.
9905         (build_nonshared_range_type): New function.
9906         (build_array_type_1): New function, built from...
9907         (build_array_type: ...this.  Call build_array_type_1.
9908         (build_nonshared_array_type): New function.
9909         * tree.h (build_nonshared_range_type): Declare.
9910         (build_nonshared_array_type): Likewise.
9911
9912 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
9913
9914         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
9915         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9916         (arm_class_likely_spilled_p): New function.
9917
9918 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
9919
9920         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
9921         indirect functions.
9922         (ix86_split_ashl): Ditto.
9923         (ix86_split_ashr): Ditto.
9924         (ix86_split_lshr): Ditto.
9925         (ix86_adjust_counter): Ditto.
9926
9927 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
9928
9929         * c-family/c-common.h (constant_string_class): Documented with
9930         comment identical to the one already in c-common.c.
9931
9932 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9933
9934         * dwarf2out.c (any_cfis_emitted): New static variable.
9935         (add_fde_cfi): Set it.
9936         (dwarf2out_frame_debug): Clear it before processing,
9937         if it is set afterwards, flush any queued reg saves.
9938
9939         PR debug/45124
9940         * dwarf2out.c (add_accessibility_attribute): Assume
9941         DW_ACCESS_private as the default for dwarf_version > 2
9942         and DW_TAG_class_type parent.
9943         (gen_inheritance_die): Assume DW_ACCESS_public as the default
9944         for dwarf_version > 2 and parent other than DW_TAG_class_type.
9945
9946 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9947
9948         PR target/45726
9949         * arm.md (arm_movt): Only enable on machines with MOVT.
9950
9951 2010-09-20  Jie Zhang  <jie@codesourcery.com>
9952
9953         * config/arm/arm.c (arm_address_offset_is_imm): New.
9954         (arm_early_store_addr_dep): New.
9955         (arm_early_load_addr_dep): New.
9956         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
9957         (arm_early_load_addr_dep): Declare.
9958         (arm_address_offset_is_imm): Declare.
9959         * config/arm/cortex-m4.md: New file.
9960         * config/arm/cortex-m4-fpu.md: New file.
9961         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
9962         (attr generic_sched): Exclude cortexm4.
9963         (attr generic_vfp): Exclude cortexm4.
9964
9965 2010-09-20  Richard Guenther  <rguenther@suse.de>
9966
9967         PR middle-end/45704
9968         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
9969
9970 2010-09-20  Jan Hubicka  <jh@suse.cz>
9971
9972         PR tree-optimize/45605
9973         * cgraph.h (const_value_known_p): Declare.
9974         (varpool_decide_const_value_known): Remove.
9975         * tree-ssa-ccp.c (get_base_constructor): Use it.
9976         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
9977         * expr.c (string_constant): Likewise.
9978         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9979         * ipa.c (ipa_discover_readonly_nonaddressable_var,
9980         function_and_variable_visibility): Likewise.
9981         * gimplify.c (gimplify_call_expr): Likewise.
9982         * gimple-fold.c (get_symbol_constant_value): Likewise.
9983         * varpool.c (varpool_decide_const_value_known): Replace by...
9984         (const_value_known_p): ... this one; handle other kinds of DECLs
9985         too and work for automatic vars.
9986         (varpool_finalize_decl): Use const_value_known_p.
9987
9988 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9989
9990         PR target/45726
9991         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
9992
9993 2010-09-20  Richard Guenther  <rguenther@suse.de>
9994
9995         PR tree-optimization/45705
9996         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
9997
9998 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9999
10000         PR rtl-optimization/45695
10001         * combine.c (try_combine): When splitting a two set pattern,
10002         make sure the pattern which will be put into i2 doesn't use REGs
10003         or MEMs set by insns in between i2 and i3.
10004
10005 2010-09-19  Jan Hubicka  <jh@suse.cz>
10006
10007         PR lto/44246
10008         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
10009         processing same node twice.
10010
10011 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
10012
10013         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
10014         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10015         (bfin_class_likely_spilled_p): New function
10016
10017 2010-09-19  Ira Rosen  <irar@il.ibm.com>
10018
10019         PR tree-optimization/45714
10020         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
10021         created in vectorizable_call instead of the original statement in
10022         def stmt updates.
10023
10024 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
10025
10026         * config/i386/i386-protos.h (split_double_mode): New prototype.
10027         (split_di, split_ti): Remove prototypes.
10028         * config/i386/i386.c (split_double_mode): New function.
10029         (split_di, split_ti): Remove.
10030         (ix86_expand_branch): Use split_double_mode.
10031         (ix86_split_to_parts): Ditto.
10032         (ix86_split_ashl): Ditto.
10033         (ix86_split_ashr): Ditto.
10034         (ix86_split_lshr): Ditto.
10035         (ix86_force_to_memory): Ditto.
10036         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
10037
10038 2010-09-18  Jan Hubicka  <jh@suse.cz>
10039
10040         PR tree-optimization/45453
10041         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
10042         virtual functions are reachable.
10043         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
10044         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
10045         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
10046         when modifying function.
10047
10048 2010-09-18  Jan Hubicka  <jh@suse.cz>
10049
10050         PR tree-optimization/45605
10051         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
10052         * gimple-fold.c (static_object_in_other_unit_p): New function.
10053         (canonicalize_constructor_val): Use it.
10054         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
10055         returning NULL.
10056         (gimple_fold_obj_type_ref_known_binfo): Use
10057         static_object_in_other_unit_p.
10058
10059 2010-09-18  Richard Guenther  <rguenther@suse.de>
10060
10061         PR tree-optimization/45709
10062         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
10063         insertions until after all PHI nodes of the block are processed.
10064
10065 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
10066
10067         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
10068
10069 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
10070
10071         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
10072
10073 2010-09-18  Richard Guenther  <rguenther@suse.de>
10074
10075         PR tree-optimization/45709
10076         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
10077
10078 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10079
10080         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
10081         (dot_deps_stmt): Same.
10082         * graphite-poly.c (dot_lst): Same.
10083         * graphite-scop-detection.c (dot_all_scops): Same.
10084         (dot_scop): Same.
10085
10086 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10087
10088         Revert:
10089         2009-12-16  Ben Elliston  <bje@au.ibm.com>
10090
10091         * tree-data-ref.c (dot_rdg_1): Added back.
10092         (dot_rdg): Same.  Added "#if 0" around system call.
10093
10094 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10095             Richard Henderson  <rth@redhat.com>
10096
10097         * config/i386/i386.c (initial_ix86_tune_features): Add
10098         X86_TUNE_PAD_SHORT_FUNCTION.
10099         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
10100         (ix86_count_insn): New.
10101         (ix86_pad_short_function): Likewise.
10102         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
10103
10104         * config/i386/i386.h (ix86_tune_indices): Add
10105         X86_TUNE_PAD_SHORT_FUNCTION.
10106         (TARGET_PAD_SHORT_FUNCTION): New.
10107
10108         * config/i386/i386.md (UNSPEC_NOPS): New.
10109         (nops): Likewise.
10110
10111 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10112
10113         PR middle-end/45234
10114         * calls.c (expand_call): Make sure that all variable sized
10115         adjustments are multiple of preferred stack boundary after
10116         stack alignment.
10117
10118 2010-09-17  DJ Delorie  <dj@redhat.com>
10119
10120         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
10121         passed an invalid value, print an error instead of ICEing.
10122         (valid_psw_flag): New.
10123         (rx_expand_builtin): Call it for setpsw/clrpsw.
10124         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
10125
10126         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
10127         (bitclr_in_memory): Likewise.
10128         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
10129
10130 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10131
10132         PR middle-end/45678
10133         * cfgexpand.c (update_stack_alignment): New.
10134         (get_decl_align_unit): Use it.
10135         (expand_one_stack_var_at): Call update_stack_alignment.
10136
10137 2010-09-17  Richard Guenther  <rguenther@suse.de>
10138
10139         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
10140         Properly copy the read string.
10141
10142 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
10143
10144         * doc/options.texi (Variable): Document.
10145         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
10146         generate target_flags declarations explicitly.  Don't define
10147         VarExists variables for the driver.
10148         * common.opt (target_flags): New Variable record.
10149         (flag_dump_unnumbered, flag_dump_unnumbered_links,
10150         flag_var_tracking, flag_var_tracking_assignments,
10151         flag_var_tracking_assignments_toggle): Don't mark variables with
10152         VarExists.
10153         * config/i386/i386.c (ix86_isa_flags): Don't define here.
10154         * config/i386/i386.opt (ix86_isa_flags): Define here.
10155         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
10156         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
10157         VarExists.
10158         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
10159         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
10160         Only define for generator programs.
10161         * rtlanal.c (target_flags): Remove.
10162         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
10163         flag_var_tracking_assignments_toggle): Remove.
10164
10165 2010-09-17  Michael Matz  <matz@suse.de>
10166
10167         PR tree-optimization/43432
10168         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10169         Accept backwards consecutive accesses.
10170         (vect_create_data_ref_ptr): If step is negative generate
10171         decreasing IVs.
10172         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
10173         (perm_mask_for_reverse, reverse_vec_elements): New functions.
10174         (vectorizable_load): Handle loads with negative steps when easily
10175         possible.
10176
10177 2010-09-03  Jan Hubicka  <jh@suse.cz>
10178
10179         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
10180
10181 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
10182
10183         * config/v850/v850.c (v850_function_value_regno_p): Make static.
10184         Adjust comments. Declare.
10185         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
10186         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
10187
10188 2010-09-17  Richard Guenther  <rguenther@suse.de>
10189
10190         * common.opt (combine): Remove.
10191         * gcc.c (default_compilers): Remove specs testing combine.
10192         The C compilers no longer can combine.
10193         (option_map): Remove -combine.
10194         (display_help): Remove -combine.
10195         (driver_handle_option): Remove OPT_combine handling.
10196         (compile_input_file_p): Remove.
10197         (do_spec): Remove code concerning combine.
10198         (main): Likewise.
10199         * doc/invoke.texi: Remove traces of -combine.
10200         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
10201
10202 2010-09-17  Richard Guenther  <rguenther@suse.de>
10203
10204         PR middle-end/45678
10205         * builtins.c (fold_builtin_memory_op): Always properly adjust
10206         alignment of memory accesses.
10207
10208 2010-09-16  Jan Hubicka  <jh@suse.cz>
10209
10210         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
10211         processing clone.
10212
10213 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
10214
10215         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
10216
10217         * config/i386/i386.c (predict_jump): Add prototype.
10218         (flag_opts): Add -m8bit-idiv.
10219         (ix86_split_idivmod): New.
10220
10221         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10222         Add 2 splitters for SI/DI mode divide.
10223         (divmod<mode>4_1): New pattern.
10224         (udivmod<mode>4_1): Likewise.
10225         (testdi_ccno_1): Likewise.
10226
10227         * config/i386/i386.opt (m8bit-idiv): New.
10228
10229         * doc/invoke.texi: Document -m8bit-idiv.
10230
10231 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
10232
10233         PR bootstrap/45680
10234         * config/i386/i386.c (min_insn_size): Moved out of the
10235         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
10236
10237 2010-09-16  Jan Hubicka  <jh@suse.cz>
10238
10239         * lto-cgraph.c (lto_output_node): Fix handling of clones.
10240         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10241         unreachable clones with reachable clones.
10242         * tree-inline.c (copy_bb): Fix sanity checking when producing
10243         unreachable clone.
10244
10245 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
10246
10247         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10248         (TARGET_MEMORY_MOVE_COST): Define.
10249         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10250
10251 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
10252
10253         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10254         maybe_tidy_empty_bb.
10255
10256         Revert:
10257         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10258         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10259
10260 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10261
10262         * target.def (target_option.optimization): New hook.
10263         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
10264         TARGET_OPTION_OPTIMIZATION hook.
10265         * doc/tm.texi: Regenerate.
10266         * hooks.c (hook_void_int_int): New.
10267         * hooks.h (hook_void_int_int): Declare.
10268         * opts.c: Don't include tm_p.h.
10269         (decode_options): Use targetm.target_option.optimization instead
10270         of OPTIMIZATION_OPTIONS.
10271         * system.h (OPTIMIZATION_OPTIONS): Poison.
10272         * config/arm/arm-protos.h (arm_optimization_options): Remove.
10273         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
10274         (arm_optimization_options): Rename to arm_option_optimization.
10275         Make static.
10276         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
10277         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
10278         (cris_option_optimization): New.
10279         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
10280         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
10281         (crx_option_optimization): New.
10282         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
10283         * config/frv/frv-protos.h (frv_optimization_options): Remove.
10284         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
10285         (frv_optimization_options): Rename to frv_option_optimization.
10286         Make static.
10287         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
10288         * config/h8300/h8300.c (h8300_option_optimization): New.
10289         (TARGET_OPTION_OPTIMIZATION): Define.
10290         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
10291         * config/i386/i386-protos.h (optimization_options): Remove.
10292         * config/i386/i386.c (optimization_options): Rename to
10293         ix86_option_optimization.  Make static.
10294         (TARGET_OPTION_OPTIMIZATION): Define.
10295         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
10296         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
10297         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
10298         (ia64_optimization_options): Rename to ia64_option_optimization.
10299         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
10300         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
10301         commented-out definition.
10302         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
10303         instead of OPTIMIZATION_OPTIONS.
10304         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
10305         (m32r_option_optimization): New.
10306         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
10307         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
10308         Remove.
10309         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
10310         (mcore_option_optimization): New.
10311         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
10312         * config/mep/mep-protos.h (mep_optimization_options): Remove.
10313         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
10314         (mep_optimization_options): Rename to mep_option_optimization.
10315         Make static.  Take unused level and size parameters.
10316         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
10317         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
10318         (mmix_option_optimization): New.
10319         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
10320         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
10321         (pdp11_option_optimization): New.
10322         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
10323         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
10324         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
10325         (optimization_options): Rename to rs6000_option_optimization.
10326         Make static.
10327         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
10328         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
10329         * config/rx/rx.c (rx_set_optimization_options): Rename to
10330         rx_option_optimization.  Make static.  Take unused level and size
10331         parameters.
10332         (TARGET_OPTION_OPTIMIZATION): Define.
10333         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
10334         * config/s390/s390-protos.h (optimization_options): Remove.
10335         * config/s390/s390.c (optimization_options): Rename to
10336         s390_option_optimization.  Make static.  Don't mark size parameter
10337         unused.
10338         (TARGET_OPTION_OPTIMIZATION): Define.
10339         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
10340         * config/sh/sh-protos.h (sh_optimization_options): Remove.
10341         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
10342         (sh_optimization_options): Rename to sh_option_optimization.  Make
10343         static.  Don't mark parameters unused.
10344         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
10345         * config/spu/spu-protos.h (spu_optimization_options): Remove.
10346         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
10347         (spu_optimization_options): Rename to spu_option_optimization.
10348         Make static.
10349         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
10350         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
10351         (v850_option_optimization): New.
10352         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
10353         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
10354         (xtensa_option_optimization): New.
10355         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
10356
10357 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10358
10359         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
10360         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
10361         * doc/tm.texi: Regenerate.
10362         * system.h (OVERRIDE_OPTIONS): Poison.
10363         * target.def (override): Default to hook_void_void.
10364         * targhooks.c (default_target_option_override): Remove.
10365         * genmodes.c, machmode.def: Update comments mentioning
10366         OVERRIDE_OPTIONS.
10367         * config/alpha/alpha-modes.def: Update comment mentioning
10368         alpha_override_options.
10369         * config/alpha/alpha-protos.h (override_options): Remove.
10370         * config/alpha/alpha.c (override_options): Rename to
10371         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
10372         (TARGET_OPTION_OVERRIDE): Define.
10373         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
10374         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
10375         of OVERRIDE_OPTIONS.
10376         * config/arc/arc-protos.h (arc_init): Remove.
10377         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
10378         (arc_init): Rename to arc_option_override.  Make static.
10379         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
10380         (OVERRIDE_OPTIONS): Remove.
10381         * config/arm/arm-protos.h (arm_override_options): Remove.
10382         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
10383         (arm_override_options): Rename to arm_option_override.  Make
10384         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10385         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
10386         * config/arm/arm.md: Update comment referring to arm_override_options.
10387         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10388         instead of OVERRIDE_OPTIONS.
10389         * config/avr/avr-protos.h (avr_override_options): Remove.
10390         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
10391         (avr_override_options): Rename to avr_option_override.  Make static.
10392         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
10393         * config/bfin/bfin-protos.h (override_options): Remove (twice).
10394         * config/bfin/bfin.c (override_options): Rename to
10395         bfin_option_override.  Make static.
10396         (TARGET_OPTION_OVERRIDE): Define.
10397         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
10398         * config/cris/cris-protos.h (cris_override_options): Remove.
10399         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
10400         (cris_override_options): Rename to cris_option_override.  Make static.
10401         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
10402         * config/frv/frv-protos.h (frv_override_options): Remove.
10403         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
10404         (frv_override_options): Rename to frv_option_override.  Make static.
10405         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
10406         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
10407         * config/h8300/h8300.c (h8300_init_once): Rename to
10408         h8300_option_override.  Make static.
10409         (TARGET_OPTION_OVERRIDE): Define.
10410         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
10411         * config/i386/i386-protos.h (override_options): Remove.
10412         * config/i386/i386.c (override_options): Rename to
10413         ix86_option_override_internal.  Make static.  Comments referring
10414         to this function and callers changed.
10415         (ix86_option_override): New.
10416         (TARGET_OPTION_OVERRIDE): Define.
10417         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
10418         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
10419         * config/ia64/ia64.c (ia64_file_start): Update comment referring
10420         to ia64_override_options.
10421         * config/iq2000/iq2000-protos.h (override_options): Remove.
10422         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
10423         (override_options): Rename to iq2000_option_override.  Make static.
10424         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
10425         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
10426         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
10427         (lm32_override_options): Rename to lm32_option_override.  Make static.
10428         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
10429         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
10430         (m32r_option_override): New.
10431         (m32r_init): Update comment.
10432         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
10433         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
10434         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
10435         (m68hc11_override_options): Rename to m68hc11_option_override.
10436         Make static.  Return void.
10437         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
10438         * config/m68k/m68k-protos.h (override_options): Remove.
10439         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
10440         (override_options): Rename to m68k_option_override.  Make static.
10441         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
10442         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
10443         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
10444         (mcore_override_options): Rename to mcore_option_override.  Make
10445         static.
10446         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
10447         * config/mep/mep-protos.h (mep_override_options): Remove.
10448         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
10449         (mep_override_options): Rename to mep_option_override.  Make static.
10450         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
10451         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
10452         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
10453         (mmix_override_options): Rename to mmix_option_override.  Make static.
10454         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
10455         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
10456         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
10457         (mn10300_override_options): Rename to mn10300_option_override.
10458         Make static.
10459         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
10460         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
10461         * config/moxie/moxie.c (moxie_override_options): Rename to
10462         moxie_option_override.  Make static.
10463         (TARGET_OPTION_OVERRIDE): Define.
10464         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
10465         * config/picochip/picochip-protos.h (picochip_override_options):
10466         Remove.  Update comment referring to picochip_override_options.
10467         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
10468         (picochip_override_options): Rename to picochip_option_override.
10469         Make static.  Update comment and definition of
10470         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
10471         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
10472         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10473         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10474         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10475         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10476         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10477         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
10478         instead of OVERRIDE_OPTIONS.
10479         * config/rs6000/rs6000-modes.def: Update comment referring to
10480         rs6000_override_options.
10481         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
10482         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
10483         (rs6000_override_options): Rename to
10484         rs6000_option_override_internal.  Make static.  Commented
10485         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
10486         (rs6000_option_override): New.
10487         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
10488         instead of OVERRIDE_OPTIONS.
10489         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10490         * config/s390/s390-protos.h (override_options): Remove.
10491         * config/s390/s390.c (override_options): Rename to
10492         s390_option_override.  Make static.
10493         (TARGET_OPTION_OVERRIDE): Define.
10494         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
10495         * config/score/score-protos.h (score_override_options): Remove.
10496         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
10497         (score_override_options): Rename to score_option_override.  Make
10498         static.
10499         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
10500         Update comment referring to override_options.
10501         * config/score/score3.c (score3_override_options): Rename to
10502         score3_option_override.
10503         * config/score/score3.h (score3_override_options): Rename to
10504         score3_option_override.
10505         * config/score/score7.c (score7_override_options): Rename to
10506         score7_option_override.
10507         * config/score/score7.h (score7_override_options): Rename to
10508         score7_option_override.
10509         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
10510         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
10511         (sparc_override_options): Rename to sparc_option_override.  Make
10512         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10513         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
10514         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10515         instead of OVERRIDE_OPTIONS.
10516         * config/spu/spu-protos.h (spu_override_options): Remove.
10517         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
10518         (spu_override_options): Rename to spu_option_override.  Make
10519         static.
10520         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
10521         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
10522         OVERRIDE_OPTIONS.
10523         * config/vax/vax-protos.h (override_options): Remove.
10524         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
10525         (override_options): Rename to vax_option_override.  Make static.
10526         Call SUBTARGET_OVERRIDE_OPTIONS.
10527         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
10528         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
10529         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
10530         * config/xtensa/xtensa-protos.h (override_options): Remove.
10531         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
10532         (override_options): Rename to xtensa_option_override.  Make static.
10533         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
10534
10535 2010-09-16  Richard Guenther  <rguenther@suse.de>
10536
10537         PR tree-optimization/45623
10538         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
10539         (get_constraint_for_component_ref): If computing a constraint
10540         for the rhs handle type punning through unions.
10541         (get_constraint_for_address_of): Adjust.
10542         (get_constraint_for_1): Likewise.
10543         (get_constraint_for): Likewise.
10544         (get_constraint_for_rhs): New function.
10545         (do_structure_copy): Adjust.
10546         (make_constraint_to): Likewise.
10547         (handle_const_call): Likewise.
10548         (find_func_aliases): Likewise.
10549         (process_ipa_clobber): Likewise.
10550         (create_variable_info_for): Likewise.
10551
10552 2010-09-16  Ira Rosen  <irar@il.ibm.com>
10553
10554         * tree-vectorizer.c: Fix documentation.
10555         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
10556         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
10557         is_pattern_stmt_p, is_loop_header_bb_p,
10558         stmt_vinfo_set_inside_of_loop_cost,
10559         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
10560         known_alignment_for_access_p): Likewise.
10561         * tree-vect-loop.c: Fix documentation.
10562         (vect_get_cost): Start function name from new line.
10563         * tree-vect-data-refs.c: Fix documentation.
10564         * tree-vect_stmts.c: Likewise.
10565         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
10566         (vectorizable_store): Free vec_oprnds if allocated.
10567         (vectorizable_condition): Initialize several variables to avoid
10568         warnings.
10569         * tree-vect-slp.c: Fix documentation.
10570
10571 2010-09-16  Richard Guenther  <rguenther@suse.de>
10572
10573         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
10574         is TS_TRANSLATION_UNIT_DECL.
10575         (initialize_tree_contains_struct): Adjust.
10576         (all_translation_units): New global vector.
10577         (build_translation_unit_decl): New function.
10578         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
10579         (struct tree_translation_unit_decl): New.
10580         (all_translation_units): Declare.
10581         (union tree_node): Add translation_unit_decl member.
10582         (build_translation_unit_decl): Declare.
10583         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
10584         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
10585         New function.
10586         (pack_value_fields): Call it.
10587         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
10588         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
10589         (lto_output_tree_pointers): Call it.
10590         * lto-streamer-in.c (lto_input_tree_ref): Handle references
10591         to TRANSLATION_UNIT_DECL.
10592         (unpack_ts_translation_unit_decl_value_fields): New function.
10593         (unpack_value_fields): Call it.
10594         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
10595         (lto_input_tree_pointers): Call it.
10596         * lto-streamer.c (check_handled_ts_structures): Adjust.
10597         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
10598         * c-decl.c (all_translation_units): Remove.
10599         (pop_scope): Use build_translation_unit_decl.
10600         (collect_all_refs): Adjust.
10601         (for_each_global_decl): Likewise.
10602         (c_write_global_declarations): Likewise.
10603
10604 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
10605
10606         PR bootstrap/45686
10607         * fold-const.c (fold_checksum_tree): Change slot from const void **
10608         to void **, use CONST_CAST_TREE to store into *slot.
10609
10610 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
10611
10612         * config/i386/i386.md: Remove unneeded empty conditions and
10613         preparation statements from expanders.
10614         * config/i386/mmx.md: Ditto.
10615         * config/i386/sse.md: Ditto.
10616
10617 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
10618
10619         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
10620
10621 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10622
10623         PR rtl-optimization/45593
10624         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
10625         insns that were in delay slots as stand-alone insns.
10626
10627 2010-09-15  Ian Lance Taylor  <iant@google.com>
10628
10629         * incpath.c (remove_duplicates): If name is not a directory, issue
10630         a warning rather than an error.
10631
10632 2010-09-15  Martin Jambor  <mjambor@suse.cz>
10633
10634         PR middle-end/45644
10635         * tree-sra.c (create_access): Check for bit-fields directly.
10636
10637 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
10638
10639         PR tree-optimization/45633
10640         * tree-cfg.c (verify_gimple_assign_binary): Allow
10641         MINUS_EXPR with lhs and rhs1 pointer vector and
10642         rhs2 sizetype vector.
10643         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
10644         or vector pointer use TER to optimize pointer subtraction.
10645
10646 2010-09-15  Jie Zhang  <jie@codesourcery.com>
10647
10648         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
10649         fcmpd to fcmps.
10650
10651 2010-09-15  Ian Lance Taylor  <iant@google.com>
10652
10653         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
10654
10655 2010-09-15  Ian Lance Taylor  <iant@google.com>
10656
10657         * function.c (get_arg_pointer_save_area): Set
10658         arg_pointer_save_area_init to true.
10659
10660 2010-09-15  Martin Jambor  <mjambor@suse.cz>
10661
10662         * tree-sra.c (generate_subtree_copies): Updated comment.
10663         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
10664         obtained from the statement iterator instead.
10665         (load_assign_lhs_subreplacements): Removed parameters lhs and
10666         right_offset, which is obtained from top_racc instead.  Parameter lacc
10667         is now expected to be the root of the processed tree rather than root's
10668         first child.  Updated all callers.
10669
10670 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
10671
10672         * config/pdp11/pdp11.c (register_move_cost): Rename to
10673         pdp11_register_move_cost.
10674         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
10675         pdp11_register_move_cost.
10676         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
10677         pdp11_register_move_cost instead of register_move_cost.
10678
10679 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
10680
10681         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
10682         pattern for vmovn. Expansion in case of non
10683         -mvectorize-with-neon-quad.
10684         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
10685         non- -mvectorize-with-neon-quad case.
10686         (move_lo_quad_<mode>): New expansion to vmov into low part.
10687         (move_hi_quad_<mode>): New expansion to vmov into high part.
10688         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
10689         (move_lo_quad_v4sf): Likewise.
10690         (move_lo_quad_v8hi): Likewise.
10691         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
10692         low part.
10693         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
10694         high part.
10695         * config/arm/iterators.md (ANY128): New mode iterator.
10696         (V_narrow_pack): New mode attribute.
10697         (V_HALF): Add attribute.
10698         (V_DOUBLE): Add attribute.
10699         (V_mode_nunits): Add attribute.
10700
10701 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10702
10703         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
10704         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
10705
10706 2010-09-15  Olivier Hainque  <hainque@adacore.com>
10707             Jose Ruiz  <ruiz@adacore.com>
10708
10709         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
10710         * config/alpha/osf5-unwind.h: New file.
10711
10712 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10713
10714         PR bootstrap/45672
10715         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
10716         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10717         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10718
10719 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10720
10721         * c-lang.h (struct lang_type): Add variable_size GTY option.
10722
10723 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10724
10725         PR bootstrap/45672
10726         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10727
10728 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10729
10730         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
10731         result isn't used in memory address.
10732
10733 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10734
10735         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
10736         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
10737         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10738         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10739         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10740         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10741
10742         * target.def: Add units_per_simd_word to vectorize.
10743
10744         * targhooks.c (default_units_per_simd_word): New.
10745         * targhooks.h (default_units_per_simd_word): Likewise.
10746         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
10747         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10748         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
10749         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10750         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10751         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10752         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10753         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10754
10755         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
10756         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
10757
10758         * tree-vect-stmts.c: Don't include "tm_p.h".
10759         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
10760         with targetm.vectorize.units_per_simd_word.
10761
10762         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
10763
10764         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
10765
10766         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
10767         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10768
10769         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
10770         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
10771
10772         * doc/tm.texi: Regenerated.
10773
10774 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10775
10776         * tree-vect-stmts.c: Include "tm_p.h".
10777
10778         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
10779         out of RTX_CODE.
10780
10781 2010-09-14  Martin Jambor  <mjambor@suse.cz>
10782
10783         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
10784         location of generated statement.  Changed all callers.
10785         (build_ref_for_model): New parameter loc which used to set location of
10786         all generated expressions.  Changed all callers.
10787         (generate_subtree_copies): Likewise.
10788         (init_subtree_with_zero): Likewise.
10789         (sra_modify_expr): Set locations of all generated statements and
10790         expressions to the location the original statement.
10791         (handle_unscalarized_data_in_subtree): Likewise.
10792         (load_assign_lhs_subreplacements): Likewise.
10793         (sra_modify_constructor_assign): Likewise.
10794         (sra_modify_assign): Likewise.
10795
10796 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
10797
10798         PR target/45277
10799         PR target/45363
10800         PR target/45407
10801         * doc/install.texi (sparc*-*-*): New section.
10802         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
10803
10804 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
10805
10806         PR middle-end/45567
10807         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
10808         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
10809         (expand_builtin): Adjust caller.
10810         (expand_builtin_unop): Only use subtarget if it has the right mode.
10811
10812 2010-09-14  Tristan Gingold  <gingold@adacore.com>
10813
10814         * configure.ac (plugins): Fix typos.
10815         * configure: Regenerate.
10816
10817 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
10818
10819         PR debug/45660
10820         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
10821         gen_type_die for function/method return type.
10822
10823 2010-09-14  Ira Rosen  <irar@il.ibm.com>
10824
10825         PR tree-optimization/45470
10826         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10827         can throw an exception.
10828         * tree-vect-stmts.c (vectorizable_call): Likewise.
10829
10830 2010-09-14  DJ Delorie  <dj@redhat.com>
10831
10832         PR target/44749
10833         * config/mep/mep-protos.h (mep_save_register_info,
10834         mep_reinit_regs, mep_init_regs): Declare.
10835
10836         * config/mep/mep.c: Move all target definitions to the end of the
10837         file to avoid the need for duplicate declarations.
10838         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
10839         (mep_reorg_erepeat): Remove unused variables.
10840         (mep_expand_builtin): Likewise.
10841
10842         * config/mep/mep-pragma.c: Don't include rtl.h.
10843         (INVALID_REGNUM): New.
10844         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
10845         functions.
10846         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
10847         Avoid enum/integer math.
10848
10849 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
10850
10851         PR target/44749
10852         * config/mep/t-mep (GTM_H): Add insn-constants.h.
10853         * config/mep/mep.c (mep_conditional_register_usage): Take no
10854         parameters.
10855         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
10856         prototype.
10857         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
10858         call to mep_conditional_register_usage.
10859
10860 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10861
10862         PR debug/43937
10863         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
10864         the DECL as well.
10865
10866 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
10867
10868         PR rtl-optimization/45617
10869         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
10870         even if low N bits of X aren't known to be zero.
10871
10872 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
10873
10874         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
10875
10876         * config/i386/i386.c (initial_ix86_tune_features): Add
10877         X86_TUNE_VECTORIZE_DOUBLE.
10878         (ix86_units_per_simd_word): New.
10879
10880         * config/i386/i386.h (ix86_tune_indices): Add
10881         X86_TUNE_VECTORIZE_DOUBLE.
10882         (TARGET_VECTORIZE_DOUBLE): New.
10883         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
10884
10885 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
10886
10887         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
10888         (new_temp_expr_table): Allocate call_cnt vector.
10889         (free_temp_expr_table): Free it.
10890         (process_replaceable): Add call_cnt parm and set in vector.
10891         (find_replaceable_in_bb): Skip replacement if def/use span a call.
10892         (debug_ter): Dump call_cnt value, remove stderr uses.
10893
10894 2010-09-13  Jan Hubicka  <jh@suse.cz>
10895
10896         * tree.c (build_zero_cst): New.
10897         * tree.h (build_zero_cst): Declare.
10898         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
10899         (get_base_constructor): Break out from ...
10900         (fold_const_aggregate_ref): Here; handle empty constructors.
10901
10902 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10903
10904         * config/arm/arm.md: (define_attr "conds"): Update comment.
10905         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
10906         conds attribute to clob.
10907         (arm_sync_compare_and_swapsi): Likewise.
10908         (arm_sync_compare_and_swap<mode>): Likewise.
10909         (arm_sync_lock_test_and_setsi): Likewise.
10910         (arm_sync_lock_test_and_set<mode>): Likewise.
10911         (arm_sync_new_<sync_optab>si): Likewise.
10912         (arm_sync_new_nandsi): Likewise.
10913         (arm_sync_new_<sync_optab><mode>): Likewise.
10914         (arm_sync_new_nand<mode>): Likewise.
10915         (arm_sync_old_<sync_optab>si): Likewise.
10916         (arm_sync_old_nandsi): Likewise.
10917         (arm_sync_old_<sync_optab><mode>): Likewise.
10918         (arm_sync_old_nand<mode>): Likewise.
10919
10920 2010-09-13  Olivier Hainque  <hainque@adacore.com>
10921
10922         * fwprop.c (forward_propagate_and_simplify): Only attach a
10923         REG_EQUAL note to an insn if the destination is a register.
10924         * gcse.c (try_replace_reg): Likewise.
10925
10926 2010-09-13  Richard Guenther  <rguenther@suse.de>
10927
10928         PR tree-optimization/45611
10929         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
10930         (copy_ref_info): Likewise.
10931
10932 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
10933
10934         PR debug/45604
10935         PR debug/45419
10936         PR debug/45408
10937         * tree-pretty-print.c (dump_generic_node): Disregard top-level
10938         types of MEM_REF pointer types to the same type.
10939
10940 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
10941
10942         PR rtl-optimization/41087
10943         * ifcvt.c (noce_get_condition): Don't allow conditions with
10944         side-effects.
10945
10946 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
10947
10948         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10949         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
10950         * config/frv/frv.c (frv_register_move_cost): Make static. Change
10951         arguments type to reg_class_t. Add mode argument.
10952         (frv_memory_move_cost): New.
10953         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
10954
10955 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
10956
10957         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
10958         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
10959
10960 2010-09-10  Jan Hubicka  <jh@suse.cz>
10961
10962         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
10963
10964 2010-09-10  Richard Guenther  <rguenther@suse.de>
10965
10966         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
10967         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
10968         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
10969         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
10970         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
10971
10972 2010-09-10  Richard Guenther  <rguenther@suse.de>
10973
10974         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
10975         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
10976         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
10977         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
10978
10979 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
10980
10981         PR middle-end/45634
10982         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
10983         of string folding is of integral type.
10984
10985 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
10986
10987         * doc/invoke.texi (-x): Fix typo.
10988
10989 2010-09-10  Richard Guenther  <rguenther@suse.de>
10990
10991         PR debug/44115
10992         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
10993         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10994         Output DECL_DEBUG_EXPR.
10995         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10996         Input DECL_DEBUG_EXPR.
10997
10998 2010-09-10  Richard Guenther  <rguenther@suse.de>
10999
11000         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
11001         (build_index_type): Implement in terms of build_range_type.
11002         (build_range_type): Do not allow NULL_TREE type, improve
11003         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
11004         if we didn't hash.
11005         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
11006         create a distinct copy of the type.
11007
11008 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
11009
11010         * configure: Regenerated.
11011         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
11012
11013 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11014
11015         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
11016         * config/arm/cortex-a9-neon.md: New and partially generated.
11017         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
11018
11019 2010-09-10  Richard Guenther  <rguenther@suse.de>
11020
11021         * tree.h (build_index_2_type): Remove.
11022         * tree.c (build_index_2_type): Remove.
11023
11024 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
11025
11026         PR bootstrap/45630
11027         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
11028         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
11029         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
11030
11031 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11032
11033         PR tree-optimization/44972
11034         * tree-sra.c: Include toplev.h.
11035         (build_ref_for_offset): Entirely reimplemented.
11036         (build_ref_for_model): New function.
11037         (build_user_friendly_ref_for_offset): New function.
11038         (analyze_access_subtree): Removed build_ref_for_offset check.
11039         (propagate_subaccesses_across_link): Likewise.
11040         (create_artificial_child_access): Use
11041         build_user_friendly_ref_for_offset.
11042         (propagate_subaccesses_across_link): Likewise.
11043         (ref_expr_for_all_replacements_p): Removed.
11044         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
11045         (sra_modify_expr): Use build_ref_for_model.
11046         (load_assign_lhs_subreplacements): Likewise.
11047         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
11048         checks for return values of build_ref_for_offset.
11049         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
11050         build_ref_for_offset.
11051         * ipa-prop.h: Include gimple.h
11052         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
11053         (ipa_analyze_indirect_call_uses): Update comment.
11054         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
11055         (IPA_PROP_H): Likewise.
11056
11057 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11058
11059         PR tree-optimization/44972
11060         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
11061         calling build_ref_for_offset.
11062
11063 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11064
11065         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
11066         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
11067         * config/arm/arm-tune.md: Regenerate.
11068         * doc/invoke.texi (ARM Options): Document it.
11069
11070 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
11071
11072         * config/i386/i386.c: Include sched-int.h.
11073         (TARGET_SCHED_DISPATCH): Defined.
11074         (TARGET_SCHED_DISPATCH_DO): Defined.
11075         (DISPATCH_WINDOW_SIZE): Defined.
11076         (MAX_DISPATCH_WINDOWS): Defined.
11077         (MAX_INSN): Defined.
11078         (MAX_IMM): Defined.
11079         (MAX_IMM_SIZE): Defined.
11080         (MAX_IMM_32): Defined.
11081         (MAX_IMM_64): Defined.
11082         (MAX_LOAD): Defined.
11083         (MAX_STORE): Defined.
11084         (BIG): Defined.
11085         (dispatch_group): New.
11086         (num_allowable_groups): New.
11087         (group_name): New.
11088         (sched_insn_info_s): New.
11089         (dispatch_windows_s): New.
11090         (imm_info_s): New.
11091         (dispatch_window_list): New.
11092         (dispatch_window_list1): New.
11093         (get_mem_group): New.
11094         (is_cmp): New.
11095         (dispatch_violation): New.
11096         (is_branch): New.
11097         (is_prefetch): New.
11098         (init_window): New.
11099         (allocate_window): New.
11100         (init_dispatch_sched): New.
11101         (is_end_basic_block): New.
11102         (process_end_window): New.
11103         (allocate_next_window): New.
11104         (find_constant_1): New.
11105         (find_constant): New.
11106         (get_num_immediates): New.
11107         (has_immediate): New.
11108         (get_insn_path): New.
11109         (get_insn_group): New.
11110         (count_num_restricted): New.
11111         (fits_dispatch_window): New.
11112         (add_insn_window): New.
11113         (add_to_dispatch_window): New.
11114         (debug_dispatch_window_file): New.
11115         (debug_dispatch_window): New.
11116         (debug_insn_dispatch_info_file): New.
11117         (debug_ready_dispatch): New.
11118         (do_dispatch): New.
11119         (has_dispatch): New.
11120         * config/i386/i386.h (debug_ready_dispatch): Declared.
11121         (debug_dispatch_window): Declared.
11122         * config/i386/i386.opt (mdispatch-scheduler): New flag.
11123         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
11124         (TARGET_SCHED_DISPATCH_DO): New.
11125         * doc/tm.texi: Regererated.
11126         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
11127         ready_remove_first_dispatch
11128         (schedule_block): Call targetm.sched.dispatch and
11129         targetm.sched.dispatch_do.
11130         (sched_init): Call targetm.sched.dispatch and
11131         targetm.sched.dispatch_do.
11132         (ready_remove_first_dispatch): New.
11133         (number_in_ready): New.
11134         (get_ready_element): New.
11135         * hooks.c (hook_bool_rtx_int_false): New.
11136         (hook_void_rtx_int): New.
11137         * hooks.h (hook_bool_rtx_int_false): Declared.
11138         (hook_void_rtx_int): Declared.
11139         * sched-int.h (IS_DISPATCH_ON): Defined.
11140         (IS_CMP): Defined.
11141         (DISPATCH_VIOLATION): Defined.
11142         (FITS_DISPATCH_WINDOW): Defined.
11143         (DISPATCH_INIT): Defined.
11144         (ADD_TO_DISPATCH_WINDOW): Defined.
11145         (get_ready_element): Declared.
11146         (number_in_ready): Declared.
11147         * target.def (dispatch): Defined.
11148         (dispatch_do): Defined.
11149
11150 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11151
11152         PR middle-end/45312
11153         * reload1.c (merge_assigned_reloads): Remove.
11154         (reload_as_needed): Don't call it.
11155
11156 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
11157
11158         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
11159         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11160         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11161
11162 2010-09-09  Matthias Klose  <doko@ubuntu.com>
11163
11164         PR bootstrap/43847
11165         * configure.ac (--enable-plugin): Enhance for cross builds.
11166         * configure: Regenerate.
11167
11168 2010-09-09  Jan Hubicka  <jh@suse.cz>
11169
11170         PR tree-optimization/45598
11171         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
11172         string folding is of integral type.
11173
11174 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11175
11176         * configure.ac (gnu_indirect_function): New test.
11177         * configure: Rebuilt.
11178         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
11179         * defaults.h (IFUNC_ASM_TYPE): Provide default.
11180
11181         * doc/extend.texi (Function Attributes): Document ifunc.
11182         * varasm.c (do_assemble_alias): Deal with ifuncs too.
11183
11184 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
11185
11186         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
11187         epilogue instruction move.
11188
11189 2010-09-09  Jan Hubicka  <jh@suse.cz>
11190
11191         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
11192         command line to allow more partitions than input files.
11193
11194 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11195
11196         PR middle-end/44554
11197         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
11198
11199 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11200
11201         PR middle-end/40386
11202         * ira.c (pseudo_for_reload_consideration_p): Don't use
11203         flag_ira_share_spill_slots.
11204
11205 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11206
11207         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
11208         point zero operands that fit into a single GPR.
11209         (s390_preferred_reload_class): Ensure we only return general-purpose
11210         register classes.
11211         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
11212         floating-point zero operands into GPRs.
11213         ("*mov<mode>_64"): Likewise.
11214         ("mov<mode>"): Likewise using lhi.
11215
11216 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11217
11218         * config/s390/s390.c (s390_symref_operand_p): Return false for
11219         literal pool references.
11220         (s390_check_qrst_address): Update caller.
11221
11222 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
11223
11224         * config/i386/predicates.md (ext_register_operand): Check that
11225         SUBREG_REG is really a register before looking for REGNO.
11226         (reg_not_xmm0_operand): Handle SUBREGs correctly.
11227         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
11228
11229 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
11230
11231         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
11232         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
11233         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
11234         * print-rtl.c (print_rtx): Likewise.
11235         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11236         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
11237         for ADDR_EXPR with non-addressable object.
11238         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
11239         (struct dw_val_struct): Add v.val_decl_ref.
11240         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11241         Handle DW_OP_GNU_implicit_pointer.
11242         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
11243         (get_ref_die_offset_label): New function.
11244         (implicit_ptr_descriptor): New function.
11245         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11246         (loc_descriptor): Likewise.
11247         (gen_variable_die): Put even definitions into decl_die_table.
11248         (resolve_addr_in_expr): Resolve still unresolved
11249         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11250         return false.
11251         (dwarf2out_finish): Call output_location_lists after outputting
11252         .debug_info and .debug_abbrev instead of before.
11253
11254 2010-09-09  Roland McGrath  <roland@redhat.com>
11255
11256         * dwarf2out.c (DWARF_REF_SIZE): Define.
11257         (size_of_loc_descr): Use it for DW_OP_call_ref.
11258
11259 2010-09-09  Alan Modra  <amodra@gmail.com>
11260
11261         * doc/invoke.text: Reinstate mcmodel=medium.
11262         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11263         CMODEL_MEDIUM as default.
11264         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
11265         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
11266         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
11267         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
11268
11269 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11270
11271         PR target/45250
11272         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
11273         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
11274         (builtin_longjmp): Likewise.
11275         (allocate_stack): Use hard_frame_pointer_rtx instead of
11276         frame_pointer_rtx.
11277         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
11278         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
11279         (pa_can_eliminate): Likewise.
11280         (TARGET_INTERNAL_ARG_POINTER): Define.
11281         (TARGET_CAN_ELIMINATE): Define.
11282         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
11283         pointer.
11284         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
11285         (pa_internal_arg_pointer, pa_can_eliminate,
11286         pa_initial_elimination_offset): New.
11287         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
11288         (HARD_FRAME_POINTER_REGNUM): Set to register three.
11289         (INITIAL_FRAME_POINTER_OFFSET): Delete.
11290         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
11291         Define.
11292         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
11293         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
11294         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
11295         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
11296         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
11297         new soft frame pointer.
11298         * config/pa/pa64-regs.h: Likewise.
11299
11300 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11301
11302         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
11303         numerical constant.
11304         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
11305
11306 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11307
11308         PR debug/45531
11309         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
11310
11311 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11312
11313         PR debug/45419
11314         PR debug/45408
11315         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11316         qualifiers in otherwise equal MEM_REF pointer types.
11317         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
11318         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
11319
11320 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11321
11322         PR target/44392
11323         * config/arm/arm.md (bswapsi2): Handle condition correctly
11324         for armv6 and optimize_size.
11325
11326 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11327
11328         PR other/18555
11329         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
11330
11331 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11332
11333         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
11334         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
11335         ix86_expand_strlen, legitimate_pic_address_disp_p,
11336         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
11337         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
11338         ix86_check_movabs, ix86_secondary_memory_needed): Change function
11339         prototype to bool.
11340         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
11341         return_in_memory_ms_64, ix86_check_movabs,
11342         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
11343         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
11344         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
11345         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
11346         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
11347         ix86_secondary_memory_needed): Change to bool.  Return
11348         "true" and "false" values.
11349         * config/i386/i386.md: Return "true" and "false" values.
11350
11351 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11352
11353         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11354         run_expensive_tests.
11355
11356 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11357
11358         * toplev.c (output_stack_usage): Use lbasename instead of basename.
11359
11360 2010-09-08  Martin Jambor  <mjambor@suse.cz>
11361
11362         PR other/45443
11363         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
11364         at -O3.
11365
11366 2010-09-08  Richard Guenther  <rguenther@suse.de>
11367
11368         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
11369         (visit): Adjust.
11370         (iterative_hash_gimple_type): Likewise.
11371         (gimple_type_hash): Likewise.
11372         (gimple_register_type): Likewise.
11373         (print_gimple_types_stats): Likewise.
11374         (free_gimple_type_tables): Likewise.
11375
11376 2010-09-08  Michael Matz  <matz@suse.de>
11377
11378         PR tree-optimization/43430
11379         * tree-vect-stmts.c (vectorizable_condition): Support multiple
11380         copies for conditional statements if it's not part of a reduction.
11381
11382 2010-09-08  Michael Matz  <matz@suse.de>
11383
11384         PR tree-optimization/33244
11385         * tree-ssa-sink.c (statement_sink_location): Don't sink into
11386         empty loop latches.
11387
11388 2010-09-08  Richard Guenther  <rguenther@suse.de>
11389
11390         PR tree-optimization/45578
11391         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
11392         Be more careful when transfering alignment information to
11393         the new induction variable.
11394         (copy_ref_info): Likewise.
11395
11396 2010-09-08  Richard Guenther  <rguenther@suse.de>
11397
11398         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
11399         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
11400
11401 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
11402
11403         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
11404         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
11405
11406 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11407
11408         PR doc/45587
11409         * doc/md.texi: Fixed modes on several standard pattern names.
11410
11411 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
11412
11413         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
11414         (ashl<mode>3): ...this.
11415         (loongson_psra<V_suffix>): Rename to...
11416         (ashr<mode>3): ...this.
11417         (loongson_psrl<V_suffix>): Rename to...
11418         (lshr<mode>3): ...this.
11419         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
11420         (CODE_FOR_loongson_psllw): Define.
11421         (CODE_FOR_loongson_psrlh): Define.
11422         (CODE_FOR_loongson_psrlw): Define.
11423         (CODE_FOR_loongson_psrah): Define.
11424         (CODE_FOR_loongson_psraw): Define.
11425
11426 2010-09-07  Richard Henderson  <rth@redhat.com>
11427
11428         * tree-vect-data-refs.c: Include tm_p.h.
11429         * Makefile.in (tree-vect-data-refs.o): Update deps.
11430         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
11431         Move delarations outside #ifdef RTX_CODE.
11432
11433 2010-09-07  Richard Henderson  <rth@redhat.com>
11434
11435         * final.c (rest_of_handle_final): Unconditionally do
11436         output_function_exception_table before assemble_end_function.
11437
11438 2010-09-07  Jan Hubicka  <jh@suse.cz>
11439
11440         * tree-inline.c (tree_inlinable_function_p): Do not test
11441         DECL_REPLACEABLE_P.
11442         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
11443         update_callee_keys, cgraph_decide_inlining): Test function availability.
11444         * cif-code.def (OVERWRITABLE): New code.
11445
11446 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
11447             Jack Howarth  <howarth@bromo.med.uc.edu>
11448
11449         PR target/36502
11450         PR target/42313
11451         PR target/44651
11452         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
11453         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
11454         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
11455         MAX macro.
11456
11457 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11458
11459         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
11460         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
11461
11462 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11463
11464         * config.gcc: Don't append t-android for Android targets.
11465
11466         * config/t-android: Removed.
11467
11468 2010-09-07  Richard Henderson  <rth@redhat.com>
11469
11470         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
11471         * doc/tm.texi.in: Add doc marker.
11472         * doc/tm.texi: Rebuild.
11473         * except.c (switch_to_exception_section): Always build.
11474         (output_one_function_exception_table): Move section switch,
11475         personality output, and label output ...
11476         (output_function_exception_table): ... here.  Use the new
11477         personality hook.
11478
11479         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
11480         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
11481         TARGET_ASM_INIT_SECTIONS): New.
11482         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
11483         make static.
11484         (TARGET_ASM_UNWIND_EMIT): Update to match.
11485         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
11486
11487         * config/arm/arm.c (arm_asm_emit_except_personality): New.
11488         (arm_asm_init_sections): New.
11489         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
11490
11491 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11492
11493         * config/arm/arm.md: Remove unused variable.
11494
11495 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
11496
11497         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11498         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
11499         (m32r_memory_move_cost): New function.
11500
11501 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11502
11503         * config.gcc: Append t-android for Android targets.
11504
11505         * config/t-android: New.
11506
11507 2010-09-07  Richard Henderson  <rth@redhat.com>
11508
11509         * target.def (unwind_emit_before_insn): New hook.
11510         * doc/tm.texi.in: Add @hook marker for it.
11511         * doc/tm.texi: Rebuild.
11512         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
11513
11514 2010-09-07  Martin Jambor  <mjambor@suse.cz>
11515
11516         PR fortran/43665
11517         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
11518         are any type attributes.
11519
11520 2010-09-07  Jan Hubicka  <jh@suse.cz>
11521
11522         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
11523         array_ref_low_bound in string access folding.
11524
11525 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
11526
11527         PR target/45206
11528         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
11529         eh_return fixup sequence.
11530
11531 2010-09-07  Jan Hubicka  <jh@suse.cz>
11532
11533         * gimple-fold.c (maybe_fold_reference): Verify that operand is
11534         gimple_min_invariant.
11535
11536 2010-09-07  Richard Guenther  <rguenther@suse.de>
11537
11538         PR middle-end/45569
11539         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
11540         nor CONSTRUCTOR can trap.
11541         * tree-complex.c (update_complex_assignment): Update EH info.
11542
11543 2010-09-07  Richard Guenther  <rguenther@suse.de>
11544
11545         PR middle-end/45569
11546         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
11547         * passes.c (execute_function_todo): Do not verify anything if
11548         we saw errors.
11549
11550 2010-09-07  Richard Guenther  <rguenther@suse.de>
11551
11552         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
11553
11554 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
11555
11556         PR target/43137
11557         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
11558         New define_mode_attrs.
11559         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
11560         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
11561         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
11562         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
11563         Remove pool_range attribute.
11564         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
11565         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
11566         pool_range and neg_pool_range attributes.
11567         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
11568         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
11569         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
11570
11571 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
11572
11573         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
11574         check glibc.
11575
11576 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
11577
11578         PR target/22152
11579         * config/i386/mmx.md (*mov<mode>_internal_rex64,
11580         *mov<mode>_internal_avx, *mov<mode>_internal,
11581         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
11582         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
11583
11584 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
11585
11586         * c-typeck.c (do_warn_double_promotion): Remove.
11587         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
11588         Objective-C++ too.
11589
11590 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
11591
11592         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
11593         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
11594         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
11595         argument type to reg_class_t. Change result type to bool.
11596         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11597
11598 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
11599
11600         PR libobjc/19850
11601         * gthr-posix.h (__gthread_objc_thread_detach): Use
11602         _objc_thread_attribs when detaching a thread.
11603         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
11604
11605 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
11606
11607         PR target/45524
11608         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
11609         * configure: Regenerated.
11610
11611 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11612
11613         * combine.c (try_combine): Set subst_low_luid to i0.
11614
11615 2010-09-06  Richard Guenther  <rguenther@suse.de>
11616
11617         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
11618         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
11619         (build_aligned_type): Declare.
11620         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
11621         (check_aligned_type): New function.
11622         (build_aligned_type): Likewise.
11623         * expr.c (expand_assignment): Handle misaligned stores via
11624         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
11625         (expand_expr_real_1): Likewise.
11626         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
11627         * tree-vect-stmts.c (vectorizable_store): Do not build
11628         MISALIGNED_INDIRECT_REF but initialize alignment information.
11629         (vectorizable_load): Likewise.
11630         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
11631         handling.
11632         * cfgexpand.c (expand_debug_expr): Likewise.
11633         * dwarf2out.c (loc_list_from_tree): Likewise.
11634         * fold-const.c (maybe_lvalue_p): Likewise.
11635         (operand_equal_p): Likewise.
11636         (build_fold_addr_expr_with_type_loc): Likewise.
11637         * gimplify.c (gimplify_addr_expr): Likewise.
11638         (gimplify_expr): Likewise.
11639         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11640         (verify_gimple_assign_single): Likewise.
11641         * tree-dump.c (dequeue_and_dump): Likewise.
11642         (tree_could_trap_p): Likewise.
11643         * tree-predcom.c (ref_at_iteration): Likewise.
11644         * tree-pretty-print.c (dump_generic_node): Likewise.
11645         (op_code_prio): Likewise.
11646         (op_symbol_code): Likewise.
11647         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11648         * tree-ssa-loop-im.c (for_each_index): Likewise.
11649         (gen_lsm_tmp_name): Likewise.
11650         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11651         (find_interesting_uses_address): Likewise.
11652         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11653         * tree-ssa-operands.c (get_expr_operands): Likewise.
11654         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11655         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11656         (ao_ref_init_from_vn_reference): Likewise.
11657         * tree.c (staticp): Likewise.
11658         (build1_stat): Likewise.
11659         (reference_alias_ptr_type): Likewise.
11660         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11661         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
11662         MISALIGNED_INDIRECT_REF handling.
11663
11664 2010-09-06  Richard Guenther  <rguenther@suse.de>
11665
11666         PR tree-optimization/45534
11667         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
11668         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
11669         on the target.
11670         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
11671         valid on the target.
11672
11673 2010-09-06  Andreas Schwab  <schwab@redhat.com>
11674
11675         * configure.ac: Quote argument of AC_MSG_WARN.
11676         * configure: Regenerate.
11677
11678 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11679
11680         * sel-sched.c (move_cond_jump): Correct arguments to
11681         maybe_tidy_empty_bb.
11682         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11683
11684 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
11685
11686         PR rtl-optimization/44919
11687         * sel-sched.c (move_cond_jump): Remove assert, check that
11688         the several blocks case can only happen with mutually exclusive
11689         insns instead.  Rewrite the movement code to support moving through
11690         several basic blocks.
11691
11692 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
11693
11694         * config/i386/i386.md (iptrsize): New mode attribute.
11695         (tp_seg): Ditto.
11696         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
11697         mode iterator.
11698         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
11699         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
11700         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
11701         (stack_tls_protect_set_<mode>): Ditto from
11702         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
11703         of thread base pointer load.
11704         (stack_tls_protect_test_<mode>): Ditto from
11705         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
11706         of thread base pointer load.
11707         (stack_protect_set): Rewrite using indirect functions.
11708         (stack_protect_test): Ditto.
11709         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
11710         (ix86_print_operand): Handle '@'.
11711
11712 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
11713
11714         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
11715         MINUS_EXPR.
11716
11717 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
11718
11719         * doc/invoke.texi: Document -Wdouble-promotion.
11720         * c-typeck.c (convert_arguments): Check for implicit conversions
11721         from float to double.
11722         (do_warn_double_promotion): New function.
11723         (build_conditional_expr): Use it.
11724         (build_binary_op): Likewise.
11725
11726 2010-09-05  Richard Guenther  <rguenther@suse.de>
11727
11728         PR tree-optimization/45535
11729         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
11730         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
11731         dereferencing it.
11732         (indirect_refs_may_alias_p): Likewise.
11733
11734 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
11735
11736         * config/sh/sh.c (sh_option_override): Make static.
11737         Adjust comments.  Declare.
11738         (sh_function_value_regno_p): Likewise.
11739         (sh_register_move_cost): Modify the arguments, make static.
11740         Adjust comments.  Declare.
11741         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
11742         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11743         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
11744         REGISTER_MOVE_COST): Delete.
11745         * config/sh/sh-protos.h (sh_override_options): Delete.
11746         (sh_register_move_cost): Delete.
11747         (sh_function_value_regno_p): Delete.
11748
11749 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
11750
11751         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
11752         m32r_function_value_regno_p): New functions.
11753         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11754         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
11755         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
11756         FUNCTION_VALUE_REGNO_P): Remove.
11757
11758 2010-09-04  Jan Hubicka  <jh@suse.cz>
11759
11760         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
11761         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
11762         fold_read_from_constant_string.
11763
11764         * gimple.h (canonicalize_constructor_val): Declare.
11765         * gimple-fold.c (canonicalize_constructor_val): New function.
11766         (get_symbol_constant_value):Use it.
11767         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
11768
11769 2010-09-04  Jan Hubicka  <jh@suse.cz>
11770
11771         * tree-switch-conversion.c (build_one_array): Set constructor to be
11772         static.
11773         * varpool.c (varpool_finalize_decl): Compute const_value_known.
11774
11775 2010-09-04  Richard Guenther  <rguenther@suse.de>
11776
11777         PR bootstrap/45519
11778         * tree-flow.h (force_gimple_operand_1): Declare.
11779         (force_gimple_operand_gsi_1): Likewise.
11780         * gimplify.c (force_gimple_operand_1): New worker taking a
11781         gimple predicate for ...
11782         (force_gimple_operand): ... which now wraps it.
11783         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
11784         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
11785         last change.
11786         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
11787         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
11788         (create_mem_ref): Likewise.
11789
11790 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
11791
11792         * config/i386/predicates.md (sse_reg_operand): New predicate.
11793         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
11794         predicate for operand 1.
11795         (XFmode push splitter): Use fp_register_operand predicate
11796         for operand 1.
11797         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
11798         (SF-DF float_extend push splitter): Add reload_completed insn
11799         predicate.
11800         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
11801         MODEF mode macro.  Add reload_completed insn predicate.
11802
11803 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
11804
11805         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
11806         (struct df_extract_ref): Remove.
11807         (union df_ref_d): Remove extract_ref member.
11808         (df_ref_create): Remove last three arguments.
11809         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
11810         * df-scan.c (df_ref_record): Remove last three arguments, do not
11811         pass them to df_ref_create_structure.
11812         (df_uses_record): Remove first and last three arguments.  Replace
11813         first argument with DF_REF_REGULAR, adjust calls to remove the
11814         width, offset and mode.  Always call recursively on the second
11815         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
11816         (df_ref_create_structure): Remove first argument.
11817         (struct df_scan_problem_data): Remove ref_extract_pool.
11818         (df_scan_free_internal): Do not free it.
11819         (df_scan_alloc): Do not allocate it.
11820         (df_ref_create): Remove last three arguments, do not pass them to
11821         df_ref_create_structure.
11822         (df_free_ref): Remove DF_REF_EXTRACT case.
11823         (df_notes_rescan): Adjust call to df_uses_record.
11824         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
11825         Remove DF_REF_EXTRACT case.
11826         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
11827         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
11828         and SUBREG definitions.
11829         (df_get_conditional_uses): Remove references to width/offset/mode,
11830         adjust call to df_ref_create_structure.
11831         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
11832         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
11833         calls to df_uses_record and df_ref_record.
11834         * fwprop.c (update_df): Remove references to width/offset/mode,
11835         adjust call to df_ref_create.
11836
11837 2010-09-03  Jan Hubicka  <jh@suse.cz>
11838
11839         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
11840         (build_cdtor_fns): Update use of build_cdtor.
11841
11842 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
11843
11844         * doc/options.texi (SeparateAlias): Document.
11845         * opt-functions.awk (switch_flags): Handle SeparateAlias.
11846         * opth-gen.awk: Generate enumeration names for options marked
11847         SeparateAlias, but not for those marked Ignore.
11848         * opts-common.c (generate_canonical_option): Don't output separate
11849         argument for options marked CL_SEPARATE_ALIAS.
11850         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
11851         * opts.h (CL_SEPARATE_ALIAS): New.
11852         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
11853         CL_COMMON): Adjust definitions.
11854         * config/i386/darwin.opt, config/mips/sde.opt: New.
11855         * common.opt (fdump-final-insns): New.
11856         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11857         i386/darwin.opt.
11858         (mips*-sde-elf*): Add mips/sde.opt.
11859         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
11860         -mno-data-in-code and -mcode-xonly here.
11861         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
11862         * gcc.c (option_map): Add "j" to --dump entry.
11863         (translate_options): Don't translate -d to -foutput-class-dir= here.
11864
11865 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
11866
11867         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
11868         DR_IS_WRITE.
11869         (compute_all_dependences): Same.
11870         (create_rdg_edge_for_ddr): Same.
11871         * tree-data-ref.h (DR_IS_WRITE): New.
11872         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
11873         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
11874         (write_memrefs_written_at_least_once): Same.
11875         * tree-predcom.c (suitable_component_p): Same.
11876         (determine_roots_comp): Same.
11877         (execute_load_motion): Same.
11878         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
11879         (vect_enhance_data_refs_alignment): Same.
11880         (vect_analyze_group_access): Same.
11881
11882 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
11883
11884         PR testsuite/42843
11885         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
11886         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
11887
11888 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
11889
11890         * dwarf2out.c (file scope): Remove #if0'd code.
11891         (gen_subprogram_die): Same.
11892
11893 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
11894
11895         PR middle-end/45484
11896         * dwarf2out.c (flush_queued_reg_saves): Rename to...
11897         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
11898         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
11899         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
11900         * config/i386/i386.c (output_set_got): Call it.
11901
11902 2010-09-03  Michael Matz  <matz@suse.de>
11903
11904         PR middle-end/45415
11905         * tree-sra.c (sra_modify_assign): If we modify the statement,
11906         say so.
11907
11908         * tree-ssa.c (verify_ssa): Check number of operands and links
11909         per statement to agree.
11910
11911 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
11912             Iain Sandoe  <iains@gcc.gnu.org>
11913
11914         PR target/45476
11915         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
11916         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
11917         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11918
11919 2010-09-03  Richard Guenther  <rguenther@suse.de>
11920
11921         * lto-streamer-out.c (output_function): Output function
11922         start and end loci.
11923         * lto-streamer-in.c (input_function): Input function start
11924         and end loci.
11925
11926 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11927
11928         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
11929         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
11930         * configure: Regenerate.
11931         * aclocal.m4: Regenerate.
11932
11933 2010-09-03  Jan Hubicka  <jh@suse.cz>
11934
11935         PR lto/44812
11936         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
11937         on functions/variables in other partition.
11938
11939 2010-09-03  Jan Hubicka  <jh@suse.cz>
11940
11941         * cgraph.h (struct varpool_node): Add const_value_known.
11942         (varpool_decide_const_value_known): Declare.
11943         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
11944         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
11945         (input_varpool_node): Restore const_value_known.
11946         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
11947         initializer folding.
11948         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11949         function_and_variable_visibility): Compute const_value_known.
11950         * gimple-fold.c (get_symbol_constant_value): Use varpool for
11951         initializer folding.
11952         * varpool.c (varpool_decide_const_value_known): New function.
11953
11954 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
11955
11956         * config/i386/i386.md: Remove empty preparation statements
11957         from splitters.
11958
11959 2010-09-03  Jan Hubicka  <jh@suse.cz>
11960
11961         * passes.c (rest_of_decl_compilation): Do not add local vars into
11962         varpool.
11963         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
11964         static or extern vars are in varpool.
11965         (varpool_finalize_decl): Sanity check that only static vars are
11966         finalized.
11967
11968 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
11969
11970         PR debug/45500
11971         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
11972         not just generic vectors with BLKmode.
11973
11974 2010-09-03  Richard Guenther  <rguenther@suse.de>
11975
11976         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
11977         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
11978         * tree.h (TMR_SYMBOL): Remove.
11979         (TMR_BASE, TMR_OFFSET): Adjust.
11980         (TMR_INDEX2): New.
11981         * alias.c (ao_ref_from_mem): Use TMR_BASE.
11982         * builtins.c (get_object_alignment): Merge TMR_BASE and
11983         TMR_SYMBOL handling.
11984         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
11985         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
11986         handling.  Also allow TARGET_MEM_REF as base address.
11987         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
11988         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
11989         base.  Gimplify TMR_INDEX2.
11990         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
11991         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11992         (get_addr_base_and_unit_offset): Likewise.
11993         * tree-eh.c (tree_could_trap_p): Likewise.
11994         * tree-pretty-print.c (dump_generic_node): Likewise.
11995         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
11996         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
11997         base to index2.
11998         (get_address_description): Reconstruct addres description
11999         from merged TMR_BASE and TMR_INDEX2.
12000         (maybe_fold_tmr): Fold propagated addresses.
12001         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
12002         MEM_REF and TARGET_MEM_REF paths.
12003         (indirect_refs_may_alias_p): Likewise.
12004         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
12005         instead of TMR_SYMBOL.
12006         * tree-ssa-operands.c (get_tmr_operands): Simplify.
12007         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
12008         according to changes ...
12009         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
12010         Split TARGET_MEM_REF into two fields plus the base.
12011         * tree.c (mem_ref_offset): Simplify.
12012         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
12013         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
12014         Strip NOPs when folding MEM_REF addresses.
12015         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
12016         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
12017         (fold_gimple_assign): ... not here.
12018
12019 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
12020
12021         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
12022         * config/mips/mips.c (mips_shift_truncation_mask): New function.
12023         (TARGET_SHIFT_TRUNCATION_MASK): Define.
12024
12025 2010-09-02  Richard Henderson  <rth@redhat.com>
12026
12027         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
12028         instead of readelf in the test.
12029         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
12030         in the .debug_frame section for coff targets.
12031         * configure: Rebuild.
12032
12033 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12034
12035         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
12036         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
12037         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12038         (m32c_class_likely_spilled_p): Make static. Change argument type to
12039         reg_class_t. Change result type to bool.
12040
12041 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12042
12043         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
12044         to convert (double)(long) into a single FRIZ instruction or not
12045         when -ffast-math is used.
12046
12047         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
12048         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
12049         or FRIZ instruction if -ffast-math.
12050         * config/rs6000/rs6000.md (friz): Ditto.
12051
12052         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
12053
12054 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12055
12056         * opth-gen.awk (quote, comma): Remove unused variables.
12057
12058 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
12059
12060         * arm.c (arm_override_options): Correct fall-back code to use
12061         SUBTARGET_CPU_DEFAULT.
12062
12063 2010-09-02  Julian Brown  <julian@codesourcery.com>
12064
12065         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
12066         unspecs.
12067         (vcond<mode>, vcondu<mode>): New expanders.
12068         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
12069         comparisons with zero.
12070         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
12071         * config/arm/constraints.md (Dz): New constraint.
12072
12073 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12074
12075         * target.def (class_likely_spilled_p): New hook.
12076         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
12077         * doc/tm.texi: Regenerate.
12078         * targhooks.c (default_class_likely_spilled_p): New function.
12079         * targhooks.h (default_class_likely_spilled_p): Declare.
12080         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
12081         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
12082         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
12083         Use fixed_reg_set instead of fixed_regs.
12084         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12085         * calls.c (avoid_likely_spilled_reg): Ditto.
12086         * ira-conflicts.c (ira_build_conflicts): Ditto.
12087         * ira.c (update_equiv_regs): Ditto.
12088         * mode-switching.c (create_pre_exit): Ditto.
12089         * regmove.c (find_matches): Ditto.
12090         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12091         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
12092         (small_register_class_p): New inline function.
12093         (push_secondary_reload, find_reusable_reload, find_reloads): Use
12094         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
12095
12096         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
12097         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
12098         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12099
12100 2010-09-02  Richard Guenther  <rguenther@suse.de>
12101
12102         PR tree-optimization/44937
12103         PR tree-optimization/45412
12104         * ipa-split.c (split_function): Properly remove PHI nodes.
12105
12106 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12107
12108         * opts.h (struct cl_option): Add warn_message field.
12109         (struct cl_decoded_option): Add warn_message field.
12110         * doc/options.texi (Ignore, Warn): Document.
12111         * opt-functions.awk (needs_state_p): Don't consider aliases or
12112         ignored options to need state saved.
12113         * optc-gen.awk: Handle Warn and Ignore.
12114         * opth-gen.awk: Output OPT_SPECIAL_ignore.
12115         * opts-common.c (decode_cmdline_option): Set warn_message field.
12116         Handle ignored options.
12117         (decode_cmdline_options_to_array, generate_option,
12118         generate_option_input_file): Set warn_message field.
12119         (read_cmdline_option): Generate warnings from warn_message field.
12120         Handle ignored options.
12121         * common.opt (Wunreachable-code, fargument-alias,
12122         fargument-noalias, fargument-noalias-global,
12123         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
12124         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
12125         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
12126         ftree-salias): Mark Ignore.
12127         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
12128         -mintel-syntax and -mno-intel-syntax here.
12129         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
12130         using Warn.
12131         * opts.c (common_handle_option): Don't handle options marked as
12132         ignored.
12133         (enable_warning_as_error): Handle ignored options.
12134
12135 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12136
12137         PR driver/44076
12138         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
12139         alias_target fields.
12140         * opt-functions.awk (opt_sanitized_name): Don't handle
12141         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
12142         * optc-gen.awk: Generate alias fields.
12143         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
12144         Don't generate such constants for aliases.
12145         * opts-common.c (generate_canonical_option): New.
12146         (decode_cmdline_option): Handle aliases.  Use
12147         generate_canonical_option for known options instead of copying the
12148         input option text.
12149         * doc/options.texi (Alias): Document.
12150         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
12151         fstack-check, specs): Mark as aliases.
12152         * gcc.c (driver_handle_option): Canonicalize -L options to joined
12153         arguments.
12154         (driver_handle_option): Don't handle OPT_specs.
12155         * opts.c (common_handle_option): Don't handle options marked as
12156         aliases.
12157         (enable_warning_as_error): Handle aliases.
12158         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
12159         OPT_Wlarger_than_eq.
12160         * tree-optimize.c (tree_rest_of_compilation): Use
12161         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
12162
12163 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12164
12165         * config/i386/i386.md (nonmemory_operand): New mode attribute.
12166         (push memory peephole2): Macroize peepholes using SWI mode iterator.
12167         (move immediate to memory peephole2): Macroize peepholes using
12168         SWI124 mode iterator.
12169         (non-pairable NOT peephole2): Macroize peepholes using SWI124
12170         mode iterator.
12171         (simple lea add peephole2): Macroize peepholes using SWI48
12172         mode iterator.
12173         (simple lea mult peephole2): Ditto.
12174         (imul by 3,5,9 to lea peephole2): Ditto.
12175         (mov $-1, reg peephole2): Macroize peepholes using SWI248
12176         mode iterator.
12177         (imul $32bit_imm,mem,reg peephole2): Ditto.
12178         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
12179
12180 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
12181
12182         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
12183
12184 2010-09-02  Olivier Hainque  <hainque@adacore.com>
12185
12186         PR middle-end/44763
12187         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
12188         (allocno_priority_compare_func): Use it instead of a straight
12189         difference computation over priorities.
12190
12191 2010-09-02  Andi Kleen  <ak@linux.intel.com>
12192
12193         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
12194
12195 2010-09-02  Ira Rosen  <irar@il.ibm.com>
12196
12197         * tree-vectorizer.h (get_later_stmt): New function.
12198         (vect_analyze_data_ref_dependences): Add argument.
12199         * tree-vect-loop.c (vect_analyze_loop): Update call to
12200         vect_analyze_data_ref_dependences.
12201         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
12202         New function.
12203         (vect_analyze_data_ref_dependence): Add argument for basic block
12204         dependencies. Check dependencies in basic block vectorization.
12205         (vect_analyze_data_ref_dependences): Add argument and update call to
12206         vect_analyze_data_ref_dependences.
12207         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
12208         (vect_bb_vectorizable_with_dependencies): New.
12209         (vect_slp_analyze_bb): Check dependencies in basic block.
12210         (vect_schedule_slp_instance): Insert stores before the last store in
12211         SLP instance.
12212
12213 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12214
12215         PR target/45476
12216         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
12217         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12218
12219 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
12220
12221         PR middle-end/45458
12222         * bb-reorder.c (add_labels_and_missing_jumps): Treat
12223         bbs ending with throwing insns like blocks ending with a call.
12224         (fix_up_fall_thru_edges): Likewise.
12225
12226 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
12227
12228         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
12229         (m32c_function_arg_advance): Delete.
12230         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12231         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
12232         comments.  Take a const_tree and a bool.  Declare.
12233         (m32c_function_arg_advance): Likewise.
12234         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12235
12236 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12237
12238         PR target/45476
12239         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
12240         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12241         * config/i386/mingw32.h: ... here.
12242
12243 2010-09-01  Andi Kleen  <ak@linux.intel.com>
12244
12245         PR lto/45475
12246         * lto-streamer-in.c (lto_input_ts_target_option): Add.
12247         (lto_input_tree_pointers): Call lto_input_ts_target_option.
12248         * lto-streamer-out (lto_output_ts_target_option): Add.
12249         (lto_output_tree_pointers): Call lto_output_ts_target_option.
12250
12251 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
12252
12253         PR/target 45452
12254         * config/i386/cygwin.h: Change order of specified import libraries.
12255         * config/i386/mingw32.h: Likewise.
12256         * config/i386/t-cygwin: Likewise.
12257         * config/i386/t-mingw32: Likewise.
12258         * config/i386/t-mingw-w32: Likewise.
12259         * config/i386/t-mingw-w64: Likewise.
12260
12261 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12262
12263         * config/arm/neon-schedgen.ml (core): New type.
12264         (allCores): List of supported cores.
12265         (availability_table): Add supported cores.
12266         (collate_bypasses): Accept core as a parameter.
12267         (worst_case_latencies_and_bypasses): Accept core as a parameter.
12268         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
12269         and coreStr to get tune attribute and prefix for functional units.
12270         (emit_bypasses): Accept core name and use it.
12271         (calculate_per_core_availability_table): New.
12272         (filter_core): New.
12273         (calculate_core_availability_table): New.
12274         (main): Use calculate_core_availablity_table.
12275         * config/arm/cortex-a8-neon.md: Update copyright year.
12276         Regenerated from ml file and merged in.
12277         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
12278         cortex_a8_neon_mrc.
12279
12280 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
12281
12282         * Makefile.in (tree-switch-conversion.o): Update dependencies.
12283
12284 2010-09-01  Richard Guenther  <rguenther@suse.de>
12285
12286         * alias.c (ao_ref_from_mem): Adjust.
12287         * builtins.c (get_object_alignment): Likewise.
12288         * cfgexpand.c (expand_debug_expr): Likewise.
12289         * gimple.c (get_base_address): Likewise.
12290         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12291         (get_addr_base_and_unit_offset): Likewise.  Fix for
12292         both TMR_SYMBOL and TMR_BASE being set.
12293         * tree-eh.c (tree_could_trap_p): Likewise.
12294         * gimplify.c (gimplify_expr): Do not attempt to gimplify
12295         TMR_SYMBOL.  Always gimplify TMR_BASE.
12296         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12297         TMR_BASE if there is a TMR_SYMBOL.
12298         * tree-pretty-print.c (dump_generic_node): Adjust.
12299         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12300         (tree_mem_ref_addr): Likewise.
12301         (create_mem_ref_raw): Likewise.
12302         (move_fixed_address_to_symbol): Likewise.
12303         (create_mem_ref): Likewise.
12304         (dump_mem_address): Likewise.
12305         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
12306         Fix for both TMR_SYMBOL and TMR_BASE being set.
12307         (indirect_refs_may_alias_p): Likewise.
12308         * tree-ssa-operands.c (get_tmr_operands): Adjust.
12309         * tree.def (TARGET_MEM_REF): Adjust documentation.
12310
12311 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12312
12313         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
12314         Rename from X86_TUNE_ADD_ESP_4.
12315         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
12316         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
12317         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
12318         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
12319         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
12320         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
12321         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
12322         * config/i386/i386.c (initial_ix86_tune_features)
12323         <X86_TUNE_SINGLE_POP>: Invert members.
12324         <X86_TUNE_DOUBLE_POP>: Ditto.
12325         <X86_TUNE_SINGLE_PUSH>: Ditto.
12326         <X86_TUNE_DOUBLE_PUSH>: Ditto.
12327         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
12328         No longer exported.
12329         (push peephole2 patterns): Macroize peepholes using P mode iterator.
12330         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
12331         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
12332         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
12333
12334 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
12335
12336         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
12337         a volatile LHS if the constructor has only one element.
12338
12339 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
12340
12341         PR bootstrap/45321
12342         * tree.c (stdarg_p): Make fntype parameter const.
12343         * tree.h (stdarg_p): Likewise.
12344         (function_args_iterator): Remove unused fntype field.
12345         (function_args_iter_init): Do not initialize fntype
12346         field.  Make fntype parameter const.
12347
12348 2010-09-01  Richard Guenther  <rguenther@suse.de>
12349
12350         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
12351         estimate.
12352         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
12353         (execute_vrp): Compute number of iteration estimates.
12354         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
12355         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12356         * tree-data-ref.c (estimated_loop_iterations): Adjust.
12357         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12358         Infer loop bounds from undefined behavior based on a new parameter.
12359         (estimate_numbers_of_iterations): Likewise.
12360         (scev_probably_wraps_p): Adjust.
12361         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12362
12363 2010-09-01  Nick Clifton  <nickc@redhat.com>
12364
12365         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
12366         where appropriate.
12367         (xstormy16_legitimate_address_p): Use true and false instead of 1
12368         and 0.
12369         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
12370         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
12371         magic constant 2.
12372         (xstormy16_expand_call): Fix comment at start of function.
12373
12374 2010-09-01  Nick Clifton  <nickc@redhat.com>
12375
12376         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
12377         when pushing accumulator register.
12378         (rx_get_stack_layout): Always save call clobbered registers inside
12379         interrupt handlers.
12380         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
12381
12382 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12383
12384         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
12385         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
12386
12387         * libgcc-std.ver (GCC_4.6.0): Define version.
12388
12389 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12390
12391         * tree-nested.c (convert_all_function_calls): Iterate until after the
12392         sum of static chains in the nest doesn't change.
12393
12394 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
12395
12396         * config/m32c/m32c.c (classes_intersect): Remove.
12397         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
12398         reg_classes_intersect_p instead of classes_intersect.
12399         (class_can_hold_mode): Change arguments type from enum reg_class to
12400         reg_class_t.  Use reg_class_contents instead of class_contents.
12401         (m32c_register_move_cost): Make static. Change arguments type from
12402         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
12403         classes_intersect. Use reg_class_contents instead of class_contents.
12404         (m32c_memory_move_cost): Make static. Change arguments type from
12405         enum reg_class to reg_class_t.
12406         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12407         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12408         * config/m32c/m32c-protos.h (m32c_register_move_cost,
12409         m32c_memory_move_cost): Remove.
12410
12411 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12412
12413         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
12414         (arm_function_arg): Delete.
12415         (arm_needs_doubleword_align): Take a const_tree.
12416         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12417         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
12418         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
12419         (arm_function_arg): Make static.  Take a const_tree and a bool.
12420         (arm_function_arg_advance): Likewise.
12421         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12422
12423 2010-08-31  Andi Kleen  <ak@linux.intel.com>
12424
12425         * common.opt (fwhopr=): Update for -fwhopr=jobserver
12426         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
12427         * lto-wrapper.c (run_gcc): Add jobserver mode.
12428         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
12429         argument.
12430
12431 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
12432
12433         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
12434         (popsi1): Ditto.
12435         (*popdi1_epilogue): Ditto.
12436         (*popsi1_epilogue): Ditto.
12437         (popsi, popdi peephole2 patterns): Update peepholes for changed
12438         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
12439
12440         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
12441         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
12442
12443         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
12444         (override_options): Do not initialize removed ix86_gen_pop1.
12445         (gen_pop): New static function.
12446         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
12447         (release_scratch_register_on_entry): Ditto.
12448         (ix86_restore_reg_using_pop): Ditto.
12449         (ix86_expand_epilogue): Ditto.
12450
12451 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
12452
12453         PR middle-end/45461
12454         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
12455
12456 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12457
12458         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
12459         semicolons.
12460
12461 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12462
12463         * doc/extend.texi: Fix documentation of the return value of
12464         __builtin_choose_expr.
12465
12466 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12467
12468         * config/v850/v850-protos.h (function_arg): Delete.
12469         * config/v850/v850.h (FUNCTION_ARG): Delete.
12470         (FUNCTION_ARG_ADVANCE): Move code to...
12471         * config/v850/v850.c (v850_function_arg_advance): ...here.
12472         (v850_function_arg): Make static.  Take a const_tree and a bool.
12473         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12474
12475 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12476
12477         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
12478         these...
12479         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12480         ...and these...
12481         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
12482         ..to here..
12483         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12484         ...and here.
12485         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12486
12487 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12488
12489         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
12490         Delete.
12491         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12492         * config/rx/rx.c (rx_function_arg_size): Make static.
12493         (rx_function_arg): Likewise.
12494         (rx_function_arg_advance): New function.
12495         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12496
12497 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
12498
12499         * config/arm/arm.c (arm_override_options): Remove superfluous test.
12500         Fix indentation.
12501
12502 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12503
12504         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
12505         (dwarf2out_decl) <CONST_DECL>: Likewise.
12506
12507 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
12508
12509         Stack usage support
12510         * common.opt (-fstack-usage): New option.
12511         * doc/invoke.texi (Debugging options): Document it.
12512         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
12513         allocate_dynamic_stack_space.
12514         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
12515         and propagate it to allocate_dynamic_stack_space.
12516         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
12517         * calls.c (initialize_argument_information): Pass TRUE as 4th
12518         argument to allocate_dynamic_stack_space.
12519         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
12520         to 1 when pushing a variable-sized argument onto the stack.  Pass
12521         TRUE as 4th argument to allocate_dynamic_stack_space.
12522         Update current_function_pushed_stack_size.
12523         (emit_library_call_value_1): Likewise.
12524         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
12525         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
12526         attempt to find an upper bound.  Remove redundant code for the
12527         SETJMP_VIA_SAVE_AREA case.
12528         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
12529         * function.h (struct stack_usage): New structure.
12530         (current_function_static_stack_size): New macro.
12531         (current_function_dynamic_stack_size): Likewise.
12532         (current_function_pushed_stack_size): Likewise.
12533         (current_function_dynamic_alloc_count): Likewise.
12534         (current_function_has_unbounded_dynamic_stack_size): Likewise.
12535         (current_function_allocates_dynamic_stack_space): Likewise.
12536         (struct function): Add new field 'su'.
12537         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
12538         add the value of the dynamic offset to the dynamic stack usage.
12539         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
12540         for variable-sized objects.
12541         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
12542         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
12543         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
12544         BUILT_IN_ALLOCA for variable-sized objects.
12545         * output.h (output_stack_usage): Declare.
12546         * toplev.c (stack_usage_file): New file pointer.
12547         (output_stack_usage): New function.
12548         (open_auxiliary_file): Likewise.
12549         (lang_dependent_init): Open file if flag_stack_usage is set.
12550         (finalize): Close file if stack_usage_file is not null.
12551         * tree.h (ALLOCA_FOR_VAR_P): New macro.
12552         * config/alpha/alpha.c (compute_frame_size): New function.
12553         (alpha_expand_prologue): Use it.
12554         (alpha_start_function): Likewise.
12555         (alpha_expand_epilogue): Likewise.  Set stack usage info.
12556         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12557         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12558         * config/mips/mips.c (mips_expand_prologue): Likewise.
12559         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12560         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12561         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12562
12563 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
12564
12565         PR tree-optimization/45427
12566         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
12567         Handle the case that the exit is never taken correctly.
12568         (number_of_iterations_ne): Pass exit_must_be_taken to
12569         number_of_iterations_ne_max.
12570
12571 2010-08-30  Catherine Moore  <clm@codesourcery.com>
12572
12573         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
12574         Infer -mdspr2 for the the 74K.
12575
12576 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
12577
12578         PR debug/45419
12579         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
12580
12581         PR middle-end/45423
12582         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
12583         and TRUTH_{AND,OR,XOR}_EXPR.
12584         * c-parser.c (c_parser_omp_atomic): Handle boolean
12585         {PRE,POST}_{INC,DEC}REMENT.
12586
12587 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
12588
12589         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
12590         (function_arg): Delete.
12591         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12592         (FUNCTION_INCOMING_ARG): Delete.
12593         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
12594         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
12595         and a bool.
12596         (function_arg): Rename to...
12597         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
12598         a bool.
12599         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
12600         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12601         (TARGET_FUNCTION_INCOMING_ARG): Define.
12602
12603 2010-08-30  Richard Guenther  <rguenther@suse.de>
12604
12605         PR tree-optimization/21602
12606         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
12607         using points-to information.
12608
12609 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
12610
12611         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
12612
12613 2010-08-30  Richard Guenther  <rguenther@suse.de>
12614
12615         PR tree-optimization/45449
12616         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
12617         variables.
12618
12619 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
12620
12621         * opts.h (CL_ERR_NEGATIVE): Define.
12622         * opts.c (unknown_option_callback): Don't postpone warnings for
12623         options marked with CL_ERR_NEGATIVE.
12624         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
12625         for negative versions of CL_REJECT_NEGATIVE options.
12626
12627 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
12628
12629         * config/i386/i386.md (zero_extendsidi2_1): Rename from
12630         zero_extendsidi2_32.
12631         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
12632         using SWI12 mode iterator.
12633         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
12634         to define_insn_and_split pattern.
12635         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
12636         using SWI24 mode iterator.
12637         (*zero_extendqi<mode>2_and): Macroize insn from
12638         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
12639         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
12640         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
12641         SWI24 mode iterator.
12642         (*zero_extendqi<mode>2_movzbl): Ditto from
12643         *zero_extendqi{hi,si}2_movzbl.
12644         (extendsidi2_1): Rename from extendsidi2_32.
12645         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
12646         SWI12 mode iterator.
12647
12648 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
12649
12650         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
12651         general purpose registers.
12652         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
12653         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
12654         with general purpose registers and memory operands.  Add associated
12655         CCImode post-reload splitter.
12656         * config/ia64/div.md: Change BImode to CCImode throughout.
12657
12658 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
12659
12660         * config/ia64/ia64.md (cstorebi4): Fix thinko.
12661
12662 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
12663
12664         * config/picochip/picochip.c (reorder_var_tracking_notes): This
12665         function was dropping debug insns which caused PR45299.
12666
12667 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
12668
12669         * config/i386/sse.md (extsuffix): New code attribute.
12670         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
12671         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
12672         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
12673         and sse4_1_zero_extendv4qiv4si2.
12674         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
12675         and sse4_1_zero_extendv2qiv2di2.
12676         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
12677         and sse4_1_zero_extendv4hiv4si2.
12678         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
12679         and sse4_1_zero_extendv2hiv2di2.
12680         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
12681         and sse4_1_zero_extendv2siv2di2
12682
12683         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
12684         using any_extend code iterator.
12685         (*avx_<s>mulv8hi3_highpart): Macroize insn from
12686         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
12687         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
12688
12689         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
12690         gen_sse4_1_sign_extend* functions.
12691         (struct builtin_description bdesc_args): Ditto.
12692
12693 2010-08-27  Xinliang David Li  <davidxl@google.com>
12694
12695         PR/45422
12696         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
12697         (iv_ca_set_no_cp): Update used inv expr count.
12698         (iv_ca_set_cp): Ditto.
12699         (iv_ca_new): Initialize new member.
12700         (iv_ca_free): Free memory.
12701
12702 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12703
12704         * config/sh/sh-protos.h (sh_function_arg): Delete.
12705         (sh_function_arg_advance): Delete.
12706         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12707         (PASS_IN_REG_P): Eliminate cast.
12708         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
12709         const_tree and a bool.
12710         (sh_function_arg): Likewise.
12711         (sh_output_mi_thunk): Call sh_function_arg_advance) and
12712         sh_function_arg.
12713         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12714
12715 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
12716             Kaz Kojima  <kkojima@gcc.gnu.org>
12717
12718         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
12719         when possible.
12720         (sh_expand_epilogue): Likewise.
12721         * config/sh/sh.md (movml_push_banked): New insn.
12722         (movml_pop_banked): Likewise.
12723
12724 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
12725
12726         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
12727         gen_regexp_oneof, gen_regexp_sequence): Use the string found
12728         in vector element 0 rather than the original string when there's
12729         only one element.
12730         (gen_regexp): Remove extra semicolon.
12731
12732         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
12733         thumb2_movsf_vfp): Set attribute "insn".
12734         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
12735         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
12736         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
12737         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
12738         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
12739         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
12740         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
12741         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
12742         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
12743         if_not_arith, if_arith_not, cond_move_not): Likewise.
12744
12745 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12746
12747         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
12748         New declaration.
12749         (rs6000_allocate_stack_temp): Ditto.
12750         (rs6000_expand_convert_si_to_sfdf): Ditto.
12751
12752         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
12753         line.  Update the options set if power6 or power7 server/embedded
12754         type options are used.  If we give a warning for no vsx under
12755         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
12756         (rs6000_allocate_stack_temp): New function to allocate a stack
12757         tempoary and adjust the address so it meets either REG+OFFSET or
12758         REG+REG addressing requirements.
12759         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
12760         that they can be used with the LFIWAX/LFIWZX instrucitons.
12761         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
12762         converting signed/unsigned SImode to either SFmode/DFmode.
12763
12764         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
12765         whether certain instructions can be generated.
12766         (TARGET_FCTIDZ): Ditto.
12767         (TARGET_STFIWX): Ditto.
12768         (TARGET_LFIWAX): Ditto.
12769         (TARGET_LFIWZX): Ditto.
12770         (TARGET_FCFIDS): Ditto.
12771         (TARGET_FCFIDU): Ditto.
12772         (TARGET_FCFIDUS): Ditto.
12773         (TARGET_FCTIDUZ): Ditto.
12774         (TARGET_FCTIWUZ): Ditto.
12775
12776         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
12777         (UNSPEC_FCTID): Ditto.
12778         (UNSPEC_LFIWAX): Ditto.
12779         (UNSPEC_LFIWZX): Ditto.
12780         (UNSPEC_FCTIWUZ): Ditto.
12781         (rreg): Use correct constraints.
12782         (SI_CONVERT_FP): New mode attribute for floating point conversion
12783         tests.
12784         (E500_CONVERT): Ditto.
12785         (lfiwax): New insns for converting from integer to floating point
12786         utilizing newer instructions.  Attempt to optimize conversions
12787         that come from memory so that we don't load the value into a GPR,
12788         spill it to the stack and reload it into a FPR.
12789         (floatsi<mode>2_lfiwax): Ditto.
12790         (floatsi<mode>2_lfiwax_mem): Ditto.
12791         (floatsi<mode>2_lfiwax_mem2): Ditto.
12792         (lfiwzx): Ditto.
12793         (floatunssi<mode>2_lfiwzx): Ditto.
12794         (floatunssi<mode>2_lfiwzx_mem): Ditto.
12795         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
12796         (floatdidf2_mem): Ditto.
12797         (floatunsdidf2_fcfidu): Ditto.
12798         (floatunsdidf2_mem): Ditto.
12799         (floatunsdisf2): Ditto.
12800         (floatunsdisf2_fcfidus): Ditto.
12801         (floatunsdisf2_mem): Ditto.
12802         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
12803         Use FCFID on 32-bit hosts that support it.
12804         (floatsidf2_internal): Ditto.
12805         (floatunssisf2): Ditto.
12806         (floatunssidf2): Ditto.
12807         (floatunssidf2_internal): Ditto.
12808         (floatsisf2): Ditto.
12809         (floatdidf2): Ditto.
12810         (floatdidf2_fpr): Ditto.
12811         (floatunsdidf2): Ditto.
12812         (floatdisf2): Ditto.
12813         (floatdisf2_fcfids): Ditto.
12814         (floatdisf2_internal1): Ditto.
12815         (fixuns_truncsfsi2): Delete, merge into common pattern for both
12816         SF/DF.  Add power7 support.
12817         (fix_truncsfsi2): Ditto.
12818         (fixuns_truncdfsi2): Ditto.
12819         (fixuns_truncdfdi2): Ditto.
12820         (fix_truncdfsi2): Ditto.
12821         (fix_truncdfsi2_internal): Ditto.
12822         (fix_truncdfsi2_internal_gfxopt): Ditto.
12823         (fix_truncdfsi2_mfpgpr): Ditto.
12824         (fctiwz): Ditto.
12825         (btruncdf2): Ditto.
12826         (btruncdf2_fpr): Ditto.
12827         (btructsf2): Ditto.
12828         (ceildf2): Ditto.
12829         (ceildf2_fpr): Ditto.
12830         (ceilsf2): Ditto.
12831         (floordf2): Ditto.
12832         (floordf2_fpr): Ditto.
12833         (floorsf2): Ditto.
12834         (rounddf2): Ditto.
12835         (rounddf2_fpr): Ditto.
12836         (roundsf2): Ditto.
12837         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
12838         (fix_trunc<mode>di2): Ditto.
12839         (fixuns_trunc<mode>si2): Ditto.
12840         (fixuns_trunc<mode>di2): Ditto.
12841         (fctiwz_<mode>): Ditto.
12842         (btrunc<mode>2): Ditto.
12843         (btrunc<mode>2_fpr): Ditto.
12844         (ceil<mode>2): Ditto.
12845         (ceil<mode>2_fpr): Ditto.
12846         (floor<mode>2): Ditto.
12847         (float<mode>2_fpr): Ditto.
12848         (round<mode>2): Ditto.
12849         (round<mode>2_fpr): Ditto.
12850         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
12851         (fixuns_trunc<mode>si2_stfiwx): Ditto.
12852         (fix_truncdfsi2_internal): Ditto.
12853         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
12854         converted value on stack, loaded into GPR, and then stored into
12855         the final destination.
12856         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
12857         FCTIDZ.
12858         (lrint<mode>di2): New insn, provide the lrint builtin functions.
12859         (ftruncdf2): Delete, unused.
12860         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
12861
12862         * config/rs6000/vsx.md (toplevel): Update copyright year.
12863         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
12864         (VSr3): Ditto.
12865
12866 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
12867             Jeremie Salvucci  <jeremie.salvucci@free.fr>
12868
12869         * gengtype.c (output_type_enum): Test the right union member.
12870
12871 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
12872
12873         PR target/41484
12874         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
12875         operands for operand 1.
12876         (sse4_1_extendv4qiv4si2): Ditto.
12877         (sse4_1_extendv2qiv2di2): Ditto.
12878         (sse4_1_extendv4hiv4si2): Ditto.
12879         (sse4_1_extendv2hiv2di2): Ditto.
12880         (sse4_1_extendv2siv2di2): Ditto.
12881         (sse4_1_zero_extendv8qiv8hi2): Ditto.
12882         (sse4_1_zero_extendv4qiv4si2): Ditto.
12883         (sse4_1_zero_extendv2qiv2di2): Ditto.
12884         (sse4_1_zero_extendv4hiv4si2): Ditto.
12885         (sse4_1_zero_extendv2hiv2di2): Ditto.
12886         (sse4_1_zero_extendv2siv2di2): Ditto.
12887         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
12888         (*sse4_1_extendv4qiv4si2): Ditto.
12889         (*sse4_1_extendv2qiv2di2): Ditto.
12890         (*sse4_1_extendv4hiv4si2): Ditto.
12891         (*sse4_1_extendv2hiv2di2): Ditto.
12892         (*sse4_1_extendv2siv2di2): Ditto.
12893         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
12894         (*sse4_1_zero_extendv4qiv4si2): Ditto.
12895         (*sse4_1_zero_extendv2qiv2di2): Ditto.
12896         (*sse4_1_zero_extendv4hiv4si2): Ditto.
12897         (*sse4_1_zero_extendv2hiv2di2): Ditto.
12898         (*sse4_1_zero_extendv2siv2di2): Ditto.
12899
12900 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12901
12902         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
12903         (mips_function_arg): Delete.
12904         (mips_function_arg_boundary): Take a const_tree.
12905         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
12906         (mips_arg_info): Likewise.
12907         (mips_setup_incoming_varargs): Call mips_function_arg_advance
12908         instead of FUNCTION_ARG_ADVANCE.
12909         (mips_function_arg_advance): Adjust prototype.  Make static.
12910         (mips_function_arg): Likewise.
12911         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12912         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
12913
12914 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12915
12916         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12917         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
12918         (function_arg): Delete.
12919         (function_arg_boundary): Take a const_tree.
12920         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
12921         (rs6000_spe_function_arg): Likewise.
12922         (rs6000_parm_start): Likewise.
12923         (rs6000_arg_size): Likewise.
12924         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
12925         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
12926         (rs6000_mixed_function_arg): Likewise.
12927         (function_arg): Rename to...
12928         (rs6000_function_arg): ...this.
12929         (function_arg_advance): Rename to...
12930         (rs6000_function_arg_advance_1): ...this
12931         (rs6000_function_arg_advance): New function.  Call it.
12932         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
12933         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
12934         (rs6000_function_value): Likewise.
12935         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12936
12937 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12938
12939         * config/arm/arm.md (enabled): Test the value of arch_enabled
12940         rather than just using it.
12941
12942 2010-08-27  Olivier Hainque  <hainque@adacore.com>
12943             Eric Botcazou  <ebotcazou@adacore.com>
12944
12945         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
12946         cover all the possible offsets from this base.
12947         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
12948
12949 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
12950
12951         PR tree-optimization/44485
12952         * calls.c (flags_from_decl_or_type): For const or pure
12953         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
12954         together with ECF_CONST resp. ECF_PURE.
12955         * builtins.c (expand_builtin): Use flags_from_decl_or_type
12956         instead of querying flags directly.
12957         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
12958         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
12959
12960 2010-08-26  Richard Guenther  <rguenther@suse.de>
12961
12962         PR tree-optimization/45255
12963         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
12964         and externals are also invariant.
12965
12966 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
12967
12968         PR rtl-optimization/44858
12969         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
12970         newi2pat, make sure they don't affect newpat.
12971
12972         PR rtl-optimization/45400
12973         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
12974         SUBREG_REG if both modes are of MODE_INT class.
12975
12976 2010-08-25  Julian Brown  <julian@codesourcery.com>
12977
12978         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
12979         * config/arm/arm.md (generic_sched): No for Cortex-A5.
12980         (generic_vfp): Likewise.
12981         (cortex-a5.md): Include.
12982         * config/arm/cortex-a5.md: New.
12983
12984 2010-08-25  Richard Guenther  <rguenther@suse.de>
12985
12986         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
12987         * gimple.c (gimple_get_alias_set): Remove special handling
12988         for pointers.
12989
12990 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12991
12992         PR middle-end/45355
12993         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
12994         dead_or_set_p when computing i0_feeds_i2_n.
12995
12996         * combine.c (find_split_point): Undo canonicalization of multiply-add
12997         to (minus x (mult)) when it seems likely that this will increase the
12998         chances of a split.
12999
13000 2010-08-25  Richard Guenther  <rguenther@suse.de>
13001
13002         PR lto/44562
13003         * lto-streamer.c (lto_record_common_node): Do not mess with
13004         TYPE_CANONICAL when not in lto.
13005         * gimple.c (gimple_register_type): Likewise.
13006
13007 2010-08-25  Richard Guenther  <rguenther@suse.de>
13008
13009         PR tree-optimization/45316
13010         * tree-ssa-pre.c (eliminate): Properly clean EH info.
13011
13012 2010-08-25  Richard Guenther  <rguenther@suse.de>
13013
13014         PR tree-optimization/45393
13015         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
13016         and clean EH info.  Avoid SSA update.
13017         (execute_cse_sincos): Cleanup the CFG if it has changed.
13018
13019 2010-08-25  Richard Guenther  <rguenther@suse.de>
13020
13021         PR middle-end/45379
13022         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
13023         TARGET_MEM_REF in alignment computation.
13024
13025 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13026
13027         PR tree-optimization/45059
13028         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
13029         type conversions from newop{1,2}.  Assert t is a comparison and
13030         newop{1,2} after the stripping are gimple vals.
13031
13032 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
13033
13034         * config/arm/iterators.md (VU, SE, V_widen_l): New.
13035         (V_unpack, US): New.
13036         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
13037         (vec_unpack<US>_lo_<mode>): Likewise.
13038         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
13039         (neon_vec_unpack<US>_lo_<mode>): Likewise.
13040         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
13041         (vec_widen_<US>mult_hi_<mode>): Likewise.
13042         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
13043         (neon_vec_<US>mult_hi_<mode>"): Likewise.
13044         (neon_unpack<US>_<mode>): Widening move intermediate step for
13045         vectorizing without -mvectorize-with-neon-quad.
13046         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
13047         for vectorizing without -mvectorize-with-neon-quad.
13048         * config/arm/predicates.md (vect_par_constant_high): Check for
13049         high-half lanes of a vector.
13050         (vect_par_constant_low): Check for low-half lanes of a vector.
13051
13052 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13053
13054         * tree-if-conv.c (struct ifc_dr): New.
13055         (IFC_DR): New.
13056         (DR_WRITTEN_AT_LEAST_ONCE): New.
13057         (DR_RW_UNCONDITIONALLY): New.
13058         (memref_read_or_written_unconditionally): Use the cached values
13059         when possible.
13060         (write_memref_written_at_least_once): Same.
13061         (if_convertible_loop_p): Initialize and free DR->aux fields.
13062
13063 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13064
13065         * gimple.c (gimple_could_trap_p_1): Not static anymore.
13066         Pass an extra bool parameter include_mem.
13067         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
13068         (gimple_assign_rhs_could_trap_p): Same.
13069         * gimple.h (gimple_could_trap_p_1): Declared.
13070         * tree-data-ref.h (same_data_refs_base_objects): New.
13071         (same_data_refs): New.
13072         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
13073         (write_memrefs_written_at_least_once): New.
13074         (ifcvt_memrefs_wont_trap): New.
13075         (operations_could_trap): New.
13076         (ifcvt_could_trap_p): New.
13077         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
13078         Gets a vector of data refs.
13079         (if_convertible_stmt_p): Same.
13080         (if_convertible_loop_p_1): New.
13081         (if_convertible_loop_p): Call if_convertible_loop_p_1.
13082
13083 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13084
13085         * common.opt (ftree-loop-if-convert-stores): New flag.
13086         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
13087         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
13088         the created statement before GSI.
13089         (if_convertible_phi_p): Allow virtual phi nodes when
13090         flag_loop_if_convert_stores is set.
13091         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
13092         Do not handle types that do not match is_gimple_reg_type.
13093         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
13094         when flag_loop_if_convert_stores is set, as LHS can contain
13095         memory refs.
13096         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
13097         to if_convertible_gimple_assign_stmt_p.
13098         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
13099         (replace_phi_with_cond_gimple_assign_stmt): Renamed
13100         predicate_scalar_phi.  Do not handle virtual phi nodes.
13101         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
13102         Call predicate_scalar_phi.
13103         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
13104         just after the labels for flag_loop_if_convert_stores, otherwise
13105         insert the predicate in the end of the BB.
13106         (predicate_mem_writes): New.
13107         (combine_blocks): Call predicate_all_scalar_phis.  When
13108         flag_loop_if_convert_stores is set, call predicate_mem_writes.
13109         (tree_if_conversion): Call mark_sym_for_renaming when
13110         flag_loop_if_convert_stores is set.
13111         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
13112         flag_loop_if_convert_stores is set.
13113
13114 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
13115
13116         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
13117         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
13118         (pa_function_value): Make static.
13119         (override_options): Rename to...
13120         (pa_option_override): ...this. Make static.
13121         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
13122         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
13123         TARGET_OPTION_OVERRIDE): Define.
13124         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
13125         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
13126         Remove.
13127         * config/pa/pa-protos.h (override_options): Remove.
13128
13129 2010-08-24  Richard Guenther  <rguenther@suse.de>
13130
13131         PR middle-end/45379
13132         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
13133         if addr->index is NULL or zero.
13134         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
13135         TARGET_MEM_REF more properly.
13136         (indirect_ref_may_alias_decl_p): Likewise.
13137         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
13138         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
13139
13140 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
13141
13142         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
13143         (m32c_override_options): Rename to...
13144         (m32c_option_override): ...this. Make static.
13145         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
13146         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
13147         Remove.
13148         * config/m32c/m32c-protos.h (m32c_override_options,
13149         m32c_function_value_regno_p): Remove.
13150
13151 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13152
13153         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
13154         Fix a typo in a previous commit.
13155
13156 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
13157
13158         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
13159         Pre-initialize innerloop_iters to one.
13160
13161 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13162
13163         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
13164         existing static function global.
13165
13166         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
13167         is changed to global.
13168
13169         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
13170         may_be_nonaddressable_p on base, and don't collect this reference
13171         if the address of the base could not be taken.
13172
13173 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13174
13175         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
13176         enable the compiler to autovectorize mathmetical functions for
13177         power7 using the Mathematical Acceleration Subsystem library.
13178
13179         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
13180         handle which vector math library we have.
13181         (rs6000_override_options): Add -mveclibabi=mass support.
13182         (rs6000_builtin_vectorized_libmass): New function to handle auto
13183         vectorizing math functions that are in the MASS library.
13184         (rs6000_builtin_vectorized_function): Call it.
13185
13186         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13187         -mveclibabi=mass.
13188
13189 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13190
13191         PR boehm-gc/34544
13192         * gthr-posix.h (__gthread_active_init): Delete.
13193         (__gthread_active_p): Do activity check here.
13194         Don't include errno.h on hppa-hpux.  Update comment.
13195         * gthr-posix95.h (__gthread_active_init): Delete.
13196         (__gthread_active_p): Do activity check here.
13197         Don't include errno.h on hppa-hpux.  Update comment.
13198         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
13199         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
13200         add -lpthread when -mt or -pthread is specified.
13201         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
13202         (LINK_GCC_C_SEQUENCE_SPEC): Define.
13203         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
13204         (stublib.c, pthread_default_stacksize_np-stub.o,
13205         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
13206         $(T)libgcc_stub.a): Add methods.
13207         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
13208         (stublib.c, pthread_default_stacksize_np-stub.o,
13209         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
13210         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13211         pthread_mutex_unlock): New stubs.
13212
13213 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
13214
13215         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
13216         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
13217         options.
13218         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
13219         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
13220         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
13221         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
13222         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
13223         "-l".
13224         * cppspec.c: Include opts.h.
13225         (lang_specific_driver): Use cl_decoded_option structures.
13226         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
13227         * doc/tm.texi: Regenerate.
13228         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
13229         (driver_handle_option): Allow driver options needing no special
13230         processing.
13231         (process_command): Decode options before call to
13232         lang_specific_driver.  Pass decoded options to
13233         lang_specific_driver.
13234         * gcc.h (lang_specific_driver): Update prototype.
13235         * gccspec.c: Include opts.h.
13236         (lang_specific_driver): Use cl_decoded_option structures.
13237         * opts-common.c (option_ok_for_language, generate_option,
13238         generate_option_input_file): New.
13239         (decode_cmdline_option): Use option_ok_for_language.
13240         (decode_cmdline_options_to_array): Use generate_option_input_file.
13241         (handle_generated_option): Use generate_option.
13242         * opts.h (generate_option, generate_option_input_file): Declare.
13243
13244 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
13245
13246         * config/mips/mips.c (mips_override_options): Rename to...
13247         (mips_option_override): ...this. Make static.
13248         (TARGET_OPTION_OVERRIDE): Define.
13249         (mips_in_small_data_p): Update comment.
13250         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13251         (FIXED_REGISTERS): Update comment.
13252         * config/mips/mips-protos.h (mips_override_options): Remove.
13253
13254 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13255
13256         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13257
13258 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13259
13260         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
13261         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
13262
13263 2010-08-20  Jan Hubicka  <jh@suse.cz>
13264
13265         * tree-pass.h (pass_ipa_cdtor_merge): New function.
13266         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
13267         heap allocated.
13268         (record_cdtor_fn): Move to ipa.c; do not test for
13269         have_ctors_dtors.
13270         (build_cdtor): Move to ipa.c; add code avoiding construction
13271         when target have ctors/dtors and there is only one ctor/dtor at given
13272         priority.
13273         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
13274         sort; reverse order of constructors.
13275         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
13276         (cgraph_finalize_function): Do not call record_cdtor_fn.
13277         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
13278         (cgraph_build_static_cdtor): Move to ipa.c.
13279         * ipa.c: Include target.h and tree-iterator.h.
13280         (cgraph_build_static_cdtor, static_ctors, static_dtors,
13281         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
13282         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
13283         pass_ipa_cdtor_merge): New.
13284         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
13285         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
13286         bounds access.
13287
13288 2010-08-20  Jan Hubicka  <jh@suse.cz>
13289
13290         PR c++/45307
13291         PR c++/17736
13292         * cgraph.h (cgraph_only_called_directly_p,
13293         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
13294         static cdtors.
13295         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
13296         are not needed.
13297         (cgraph_finalize_function): Static cdtors are reachable.
13298         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
13299
13300 2010-08-20  Jan Hubicka  <jh@suse.cz>
13301
13302         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
13303         flag_wpa.
13304         * lto-streamer-out.c (lto_output): Likewise.
13305         * passes.c (ipa_write_optimization_summaries): Initialize statement
13306         uids.
13307
13308 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13309
13310         * tree.h (alias_diag_flags): New enum.
13311         (alias_pair): Add an 'emitted_diags' field.
13312         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
13313         (assemble_alias): Initialize emitted_diags of new pairs.
13314
13315 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
13316
13317         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13318         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13319         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13320         (STACK_CHECK_PROTECT): Define.
13321         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
13322         (output_probe_stack_range): Likewise.
13323         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
13324         builtin stack checking is enabled.
13325         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
13326         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13327         (probe_stack_range): New insn.
13328
13329 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
13330
13331         PR target/45336
13332         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
13333         short first.
13334
13335         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
13336         char first.
13337
13338 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13339
13340         PR target/45336
13341         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
13342         to cover zero extension into 64-bit register.
13343         (*sse2_pextrw): Likewise.
13344         (*sse4_1_pextrd_zext): New insn.
13345
13346 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13347
13348         revert r163410, partially revert r163267.
13349         * config/rs6000/darwin.h (LIB_SPEC): Remove.
13350         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
13351         Darwin versions.
13352
13353 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13354
13355         PR middle-end/44974
13356         * builtins.c (expand_builtin): Don't optimize away
13357         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
13358
13359 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
13360
13361         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
13362         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
13363         alternative 1 of operand 2.
13364
13365 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13366             Paolo Bonzini  <bonzini@gnu.org>
13367
13368         * simplify-rtx.c (simplify_unary_operation_1): Optimize
13369         (sign_extend (zero_extend (...)) and
13370         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
13371
13372 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13373
13374         PR rtl-optimization/45353
13375         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
13376         after bb_note is a BARRIER.
13377
13378 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13379
13380         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
13381         linking libgcc.a.
13382
13383 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13384             Michael Matz  <matz@suse.de>
13385
13386         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
13387
13388 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13389
13390         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
13391         (ggc_mark_roots): ...here.
13392
13393 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13394
13395         * vec.h (FOR_EACH_VEC_ELT): Define.
13396         * c-decl.c: Use it.
13397         * cfgloop.c: Likewise.
13398         * cfgloopmanip.c: Likewise.
13399         * cgraph.c: Likewise.
13400         * cgraphunit.c: Likewise.
13401         * combine.c: Likewise.
13402         * config/bfin/bfin.c: Likewise.
13403         * config/mips/mips.c: Likewise.
13404         * config/rs6000/rs6000.c: Likewise.
13405         * dbxout.c: Likewise.
13406         * df-scan.c: Likewise.
13407         * dominance.c: Likewise.
13408         * dse.c: Likewise.
13409         * dwarf2out.c: Likewise.
13410         * except.c: Likewise.
13411         * expr.c: Likewise.
13412         * function.c: Likewise.
13413         * gcse.c: Likewise.
13414         * genattr.c: Likewise.
13415         * ggc-common.c: Likewise.
13416         * gimplify.c: Likewise.
13417         * graphite-blocking.c: Likewise.
13418         * graphite-clast-to-gimple.c: Likewise.
13419         * graphite-dependences.c: Likewise.
13420         * graphite-interchange.c: Likewise.
13421         * graphite-poly.c: Likewise.
13422         * graphite-scop-detection.c: Likewise.
13423         * graphite-sese-to-poly.c: Likewise.
13424         * graphite.c: Likewise.
13425         * haifa-sched.c: Likewise.
13426         * ifcvt.c: Likewise.
13427         * implicit-zee.c: Likewise.
13428         * ipa-prop.c: Likewise.
13429         * ipa-struct-reorg.c: Likewise.
13430         * ipa.c: Likewise.
13431         * ira-build.c: Likewise.
13432         * ira-color.c: Likewise.
13433         * ira-emit.c: Likewise.
13434         * lambda-code.c: Likewise.
13435         * loop-invariant.c: Likewise.
13436         * loop-unroll.c: Likewise.
13437         * lower-subreg.c: Likewise.
13438         * lto-cgraph.c: Likewise.
13439         * lto-opts.c: Likewise.
13440         * lto-streamer-in.c: Likewise.
13441         * lto-streamer-out.c: Likewise.
13442         * lto-streamer.c: Likewise.
13443         * lto-symtab.c: Likewise.
13444         * matrix-reorg.c: Likewise.
13445         * opts.c: Likewise.
13446         * predict.c: Likewise.
13447         * print-tree.c: Likewise.
13448         * sdbout.c: Likewise.
13449         * sel-sched-dump.c: Likewise.
13450         * sel-sched-ir.c: Likewise.
13451         * sel-sched.c: Likewise.
13452         * sese.c: Likewise.
13453         * stor-layout.c: Likewise.
13454         * tree-cfg.c: Likewise.
13455         * tree-cfgcleanup.c: Likewise.
13456         * tree-chrec.c: Likewise.
13457         * tree-data-ref.c: Likewise.
13458         * tree-emutls.c: Likewise.
13459         * tree-inline.c: Likewise.
13460         * tree-into-ssa.c: Likewise.
13461         * tree-loop-distribution.c: Likewise.
13462         * tree-loop-linear.c: Likewise.
13463         * tree-mudflap.c: Likewise.
13464         * tree-outof-ssa.c: Likewise.
13465         * tree-parloops.c: Likewise.
13466         * tree-predcom.c: Likewise.
13467         * tree-pretty-print.c: Likewise.
13468         * tree-scalar-evolution.c: Likewise.
13469         * tree-ssa-live.c: Likewise.
13470         * tree-ssa-loop-im.c: Likewise.
13471         * tree-ssa-loop-ivcanon.c: Likewise.
13472         * tree-ssa-loop-ivopts.c: Likewise.
13473         * tree-ssa-loop-manip.c: Likewise.
13474         * tree-ssa-loop-niter.c: Likewise.
13475         * tree-ssa-loop-prefetch.c: Likewise.
13476         * tree-ssa-phiprop.c: Likewise.
13477         * tree-ssa-pre.c: Likewise.
13478         * tree-ssa-reassoc.c: Likewise.
13479         * tree-ssa-sccvn.c: Likewise.
13480         * tree-ssa-structalias.c: Likewise.
13481         * tree-ssa.c: Likewise.
13482         * tree-vect-data-refs.c: Likewise.
13483         * tree-vect-loop-manip.c: Likewise.
13484         * tree-vect-loop.c: Likewise.
13485         * tree-vect-patterns.c: Likewise.
13486         * tree-vect-slp.c: Likewise.
13487         * tree-vect-stmts.c: Likewise.
13488         * tree-vrp.c: Likewise.
13489         * tree.c: Likewise.
13490         * value-prof.c: Likewise.
13491         * var-tracking.c: Likewise.
13492         * varasm.c: Likewise.
13493         * vmsdbgout.c: Likewise.
13494
13495 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
13496             Richard Guenther  <richard.guenther@gmail.com>
13497
13498         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
13499         copy the src value and return a copy.
13500         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
13501         (C++ Volatiles): Adjust to describe C++ semantics only.
13502
13503 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
13504
13505         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
13506         be zero or nonzero.
13507         * doc/tm.texi: Regenerate.
13508         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
13509         * df-scan.c (df_get_exit_block_use_set), reginfo.c
13510         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
13511         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
13512         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
13513         to 1.
13514
13515 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13516
13517         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
13518         an extra nop past a sibling call at the very end.
13519
13520 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
13521
13522         PR bootstrap/45350
13523         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
13524         a comment.
13525
13526 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
13527
13528         * target.def (function_arg, function_incoming_arg): Remove const
13529         qualifier on CUMULATIVE_ARGS parameter.
13530         * targhooks.h (default_function_arg, default_function_incoming_arg):
13531         Likewise.
13532         * targhooks.c (default_function_arg, default_function_incoming_arg):
13533         Likewise.
13534         * config/i386/i386.c (ix86_function_arg): Likewise.
13535
13536 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
13537
13538         PR target/45336
13539         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
13540         SIGN_EXTENDs or ZERO_EXTENDs.
13541
13542 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
13543
13544         PR target/42172
13545         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
13546         Take its cost into account if nonnull.
13547         (insn_a_feeds_b): New static function.
13548         (combine_instructions): Look for four-insn combinations.
13549         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
13550         them into account when computing all_adjacent and looking for other
13551         uses.
13552         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
13553         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
13554         (try_combine): New arg I0.  Handle four-insn combinations.
13555         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
13556         like ELIM_I1.
13557
13558 2010-08-19  Jason Merrill  <jason@redhat.com>
13559
13560         PR c++/45307
13561         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
13562         if ctor is empty.
13563         (gimplify_modify_expr_rhs): Adjust.
13564
13565 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
13566
13567         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
13568         bitmap_bit_p.
13569         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
13570         * dominance.c (iterate_fix_dominators): Likewise.
13571         * dse.c (set_usage_bits): Likewise.
13572         (set_position_unneeded, record_store): Likewise.
13573         * gimple-fold.c (get_maxval_strlen): Likewise.
13574         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
13575         * ipa-inline.c (update_caller_keys): Likewise.
13576         * ipa-split.c (verify_non_ssa_vars): Likewise.
13577         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
13578         (close_type_exposed_parameter, close_type_full_escape): Likewise.
13579         (close_addressof_down): Likewise.
13580         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
13581         (setup_allocno_left_conflicts_size): Likewise.
13582         (ira_reassign_conflict_allocnos): Likewise.
13583         (ira_reassign_pseudos): Likewise.
13584         * ira-emit.c (change_loop): Likewise.
13585         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
13586         * lto-streamer-out.c (write_symbol): Likewise.
13587         * predict.c (expr_expected_value_1): Likewise.
13588         * regstat.c (regstat_bb_compute_ri): Likewise.
13589         * sel-sched.c (create_block_for_bookkeeping): Likewise.
13590         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
13591         * stmt.c (expand_case): Likewise.
13592         * tree-eh.c (emit_eh_dispatch): Likewise.
13593         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
13594         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
13595         Likewise.
13596         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
13597         (rdg_build_components): Likewise.
13598         * tree-object-size.c (collect_object_sizes_for): Likewise.
13599         * tree-sra.c (convert_callers): Likewise.
13600         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
13601         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
13602         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
13603
13604 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
13605
13606         * config/i386/i386.md (*lea_1): Use P mode iterator.
13607         (lea add splitter): Also handle DImode operands.
13608         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
13609         predicate.  Do not use ix86_lea_for_add_ok.
13610         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
13611         (lea ashift splitter): Also handle DImode operands.
13612         (DImode lea ashift splitter): Remove splitter.
13613
13614 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
13615
13616         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
13617         ix86_binary_operator_ok.
13618
13619 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
13620
13621         PR rtl-optimization/44691
13622         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
13623         is not a register.
13624
13625 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
13626
13627         PR target/45070
13628         * config/arm/arm.c (arm_output_epilogue): Ensure that return
13629          value of size 1-3 is handled correctly.
13630
13631 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
13632
13633         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
13634         type for the conditional has wide enough range.
13635
13636 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
13637
13638         PR target/45327
13639         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
13640         ix86_binary_operator_ok.
13641
13642 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
13643
13644         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
13645         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
13646         code to output insn mnemonic.  Fix comment.
13647         (*addsi_1_zext): Add r-r-0 alternative 1.
13648         <TYPE_LEA>: Split insn to lea.
13649         <default>: Handle alternative 1.
13650         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
13651         multi-level if_then_else RTX to set "type" attribute.
13652         <default>: Handle alternative 2.
13653         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
13654         Use cond RTX instead of multi-level if_then_else RTX to set
13655         "type" attribute.
13656         <default>: Handle alternatives 2 and 4.
13657         (lea splitters): Update calls to ix86_lea_for_add_ok.
13658
13659         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
13660         argument.
13661         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
13662
13663 2010-08-18  Richard Guenther  <rguenther@suse.de>
13664
13665         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
13666         use operand helpers.
13667
13668 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
13669
13670         PR middle-end/45292
13671         * optabs.c (expand_bool_compare_and_swap): Expand pending
13672         pops before trying the optab.
13673
13674 2010-08-18  Yao Qi  <yao@codesourcery.com>
13675
13676         PR target/45094
13677         * config/arm/arm.c (output_move_double): Fix typo generating
13678         instructions ('ldr'->'str').
13679
13680 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
13681
13682         PR rtl-optimization/42575
13683         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
13684         live ranges.
13685
13686 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13687
13688         * config/arm/arm-protos.h (arm_expand_sync): New.
13689         (arm_output_memory_barrier, arm_output_sync_insn): New.
13690         (arm_sync_loop_insns): New.
13691         * config/arm/arm.c (FL_ARCH7): New.
13692         (FL_FOR_ARCH7): Include FL_ARCH7.
13693         (arm_arch7): New.
13694         (arm_print_operand): Support %C markup.
13695         (arm_legitimize_sync_memory): New.
13696         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
13697         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
13698         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
13699         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
13700         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
13701         (arm_process_output_sync_insn, arm_output_sync_insn): New.
13702         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
13703         * config/arm/arm.h (struct arm_sync_generator): New.
13704         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
13705         (TARGET_HAVE_MEMORY_BARRIER): New.
13706         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
13707         * config/arm/arm.md: Include sync.md.
13708         (UNSPEC_MEMORY_BARRIER): New.
13709         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
13710         (VUNSPEC_SYNC_OP):New.
13711         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
13712         (sync_result, sync_memory, sync_required_value): New attributes.
13713         (sync_new_value, sync_t1, sync_t2): Likewise.
13714         (sync_release_barrier, sync_op): Likewise.
13715         (length): Add logic to length attribute defintion to call
13716         arm_sync_loop_insns when appropriate.
13717         * config/arm/sync.md: New file.
13718
13719 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
13720
13721         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
13722         ENABLE_TREE_CHECKING.
13723         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
13724         and GCC >= 4.3.
13725
13726 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
13727
13728         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
13729         or optimizing for size, always avoid lea if possible.
13730
13731         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
13732
13733 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
13734
13735         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
13736         Dunmmy function with NULL return unless the target is
13737         OSX >= 10.6 (Darwin10).
13738
13739 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
13740
13741         * gcc.c (spec_function): Add remove-outfile.
13742         (remove_outfile_spec_function): New function.
13743         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
13744         * invoke.texi (replace-outfile): Document.
13745
13746 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
13747
13748         PR target/45296
13749         * reginfo.c (globalize_reg): Reject stack registers.
13750
13751 2010-08-17  Richard Guenther  <rguenther@suse.de>
13752
13753         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
13754         list of conditional equivalences.
13755         (free_all_edge_infos): Adjust.
13756         (record_equivalences_from_incoming_edge): Likewise.
13757         (record_cond): Likewise.
13758         (build_and_record_new_cond): Likewise.
13759         (record_conditions): Likewise.
13760         (dom_opt_leave_block): Likewise.
13761
13762 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
13763
13764         * doc/invoke.texi (ms-extension): Add documentation.
13765
13766 2010-08-17  Richard Guenther  <rguenther@suse.de>
13767
13768         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
13769
13770 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
13771
13772         PR c/40563
13773         * c-decl.c (diagnose_uninitialized_cst_member): New function.
13774         (finish_decl): Use it to issue a -Wc++-compat warning about
13775         uninitialized const field in struct or union.
13776
13777         (finish_struct): Use strip_array_types.
13778
13779 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
13780
13781         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
13782         functions.
13783         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
13784         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
13785         call block_nreverse here.
13786         (blocks_nreverse): Rename decl temporary to block.
13787
13788 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
13789
13790         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
13791         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
13792         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
13793         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
13794         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
13795         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
13796         thumb2_iorsi3): Delete.
13797         (orsi_notsi_si): No longer a named pattern.
13798         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
13799         * config/arm/predicates.md (shift_amount_operand): New.
13800         (mult_operator): New.
13801         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
13802         attr enabled): New.
13803         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
13804         arch matches t2.
13805         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
13806         (not_shiftsi_compare0): Likewise, renamed from
13807         arm_notsi_shiftsi_compare0.
13808         (not_shiftsi_compare0_scratch): Likweise, renamed from
13809         arm_notsi_shiftsi_compare0_scratch.
13810         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
13811         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
13812         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
13813         so that the register alternative is disabled when the shift_operator
13814         is MULT.  Use "M" as the constraint for constants.
13815         (arith_shiftsi splitter): Enable for TARGET_32BIT.
13816         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
13817         constraint for constants.
13818         (arith_shiftsi_compare0_scratch): Likewise.
13819         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
13820         Handle Thumb2 alternative.
13821
13822 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
13823
13824         * doc/options.texi (NoDriverArg): Document.
13825         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
13826         -MDX and -MMDX.
13827         * opt-functions.awk (switch_flags): Handle NoDriverArg.
13828         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
13829         marking for CL_NO_DRIVER_ARG options when in the driver.
13830         * opts.h (CL_NO_DRIVER_ARG): Define.
13831         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13832         CL_COMMON): Update values.
13833
13834 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
13835
13836         * common.opt: Add driver options.
13837         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
13838         * doc/options.texi (Driver, RejectDriver): Document.
13839         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
13840         print_prog_name, print_multi_directory, print_sysroot,
13841         print_multi_os_directory, print_multi_lib,
13842         print_sysroot_headers_suffix, report_times, combine_flag,
13843         use_pipes, wrapper_string): Remove.
13844         (save_switch, driver_unknown_option_callback,
13845         driver_wrong_lang_callback, driver_post_handling_callback,
13846         driver_handle_option): New.
13847         (spec_lang, last_language_n_infiles): Make file-scope static
13848         instead of local to process_command.
13849         (process_command): Use decode_cmdline_options_to_array and
13850         read_cmdline_option for option processing.  Compute have_c in
13851         prescan of decoded options.
13852         * opt-functions.awk (switch_flags): Handle Driver and
13853         RejectDriver.
13854         (var_type, var_type_struct): Handle Separate options as generating
13855         const char * variables.
13856         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
13857         CL_TARGET to be passed by caller if required.
13858         (decode_cmdline_options_to_array): Update comment.
13859         * opts.c (complain_wrong_lang): Handle options only valid for the
13860         driver.
13861         (decode_options): Update call to decode_cmdline_options_to_array.
13862         (print_filtered_help): Ignore driver-only options.
13863         (print_specific_help): Ignore CL_DRIVER.
13864         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
13865         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
13866         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
13867         Update values.
13868
13869 2010-08-16  Richard Guenther  <rguenther@suse.de>
13870
13871         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13872         TARGET_MEM_REF a bit.
13873         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
13874         (create_mem_ref_raw): Always create TMR_OFFSET, store the
13875         alias pointer type via it.
13876         (copy_mem_ref_info): Adjust.
13877         (maybe_fold_tmr): Likewise.
13878         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
13879         (reference_alias_ptr_type): Likewise.
13880         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
13881         adjust documentation of TMR_OFFSET operand.
13882         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
13883         use the alias pointer type.
13884         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
13885         initialize mem attrs but the TMR itself.
13886         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
13887         similar to MEM_REF.
13888         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
13889         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
13890         (unshare_and_remove_ssa_names): Likewise.
13891         (copy_ref_info): Adjust.
13892         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
13893         TARGET_MEM_REF case.
13894         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
13895         at TMR_ORIGINAL.
13896         * tree.h (TMR_ORIGINAL): Remove.
13897         * gimple.c (get_base_address): For TARGET_MEM_REF with a
13898         symbol return that.
13899         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
13900         with a symbol.
13901         (get_addr_base_and_unit_offset): Likewise.
13902         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
13903         TARGET_MEM_REFs.
13904         (indirect_ref_may_alias_decl_p): Likewise.
13905         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
13906
13907 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
13908
13909         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
13910         with GCC version 4.6, the default setting (when not optimizing
13911         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
13912         been changed to -fomit-frame-pointer.
13913
13914 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
13915
13916         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
13917         Darwin10.  Do not link libgcc.a for Darwin >= 9.
13918
13919 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
13920
13921         * doc/invoke.texi (Warning Options): Fix terminology and markup
13922         in the description of how unknown warning options are handled.
13923
13924 2010-08-15  Ira Rosen  <irar@il.ibm.com>
13925
13926         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
13927         in basic blocks.
13928         (vect_supportable_dr_alignment): Check alignment for basic blocks.
13929         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
13930         data references.
13931         (vect_bb_vectorization_profitable_p): New function.
13932         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
13933         check if it's worthwhile to vectorize the basic block.
13934
13935 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
13936
13937         * reload.h (register_move_cost, memory_move_secondary_cost,
13938         secondary_reload_class): Adjust prototype.
13939         * rtl.h (reg_class_subset_p): Adjust prototype.
13940         * reload.c (secondary_reload_class): Change arguments type from
13941         enum reg_class to reg_class_t. Change result type to reg_class_t.
13942         * reginfo.c (register_move_cost, reg_class_subset_p): Change
13943         arguments type from enum reg_class to reg_class_t.
13944         (memory_move_secondary_cost): Change arguments type from
13945         enum reg_class to reg_class_t. Change type of saved_flags to
13946         reg_class_t.
13947
13948         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13949         Remove macros.
13950         (mips_cost): Remove.
13951         (struct mips_rtx_cost_data): Moved to mips.c.
13952         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
13953         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
13954         (mips_cost): Make static.
13955         (mips_canonicalize_move_class): Change argument type to reg_class_t.
13956         Change result type to reg_class_t.
13957         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
13958         type from enum reg_class to reg_class_t.
13959         (mips_register_move_cost): Make static. Change arguments
13960         type from enum reg_class to reg_class_t.
13961         (mips_memory_move_cost): New function.
13962         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13963
13964 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
13965
13966         PR rtl-optimization/43358
13967         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
13968         of a single hard register, using simplify_subreg_regno to decide
13969         what that register should be.
13970
13971 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
13972
13973         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
13974         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
13975         (loongson_pmull<V_suffix>): Rename to...
13976         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
13977
13978 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
13979
13980         * configure.ac: Enable -fomit-frame-pointer on darwin
13981         which support dwarf2.
13982         * config/i386/i386.c (override_options): Same.
13983
13984 2010-08-13  Jie Zhang  <jie@codesourcery.com>
13985
13986         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
13987
13988 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
13989
13990         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
13991         -MMD.
13992
13993 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
13994
13995         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
13996         up dot_prod pattern searching if a stmt is outside the loop.
13997
13998 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
13999             Uros Bizjak  <ubizjak@gmail.com>
14000
14001         * config.gcc: Handle --enable-frame-pointer.
14002
14003         * configure.ac: Add --enable-frame-pointer.
14004         * configure: Regenerated.
14005
14006         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
14007         (override_options): If not configured with --enable-frame-pointer,
14008         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
14009         optimizing for size), -fasynchronous-unwind-tables and
14010         -maccumulate-outgoing-args by default.
14011
14012 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14013
14014         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
14015
14016         PR middle-end/45262
14017         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
14018         -a overflows.  Normalize the range.
14019
14020 2010-08-12  Richard Guenther  <rguenther@suse.de>
14021
14022         PR tree-optimization/45232
14023         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
14024         for types with undefined overflow.
14025         (reassociate_bb): Allow re-associating of bit and min/max
14026         operations for types with undefined overflow.
14027         * tree-ssa-forwprop.c (associate_plusminus): New function.
14028         (tree_ssa_forward_propagate_single_use_vars): Call it.
14029
14030 2010-08-12  Richard Guenther  <rguenther@suse.de>
14031
14032         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
14033         * tree-ssa-alias.c (get_ptr_info): Move ...
14034         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
14035         align and misalign fields conservatively.
14036         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
14037         derive alignment information.
14038         (evaluate_stmt): Derive alignment information from memory
14039         allocation functions.
14040         * tree.h (get_pointer_alignment): Make unsigned.
14041         * builtins.c (get_object_alignment): Use alignment information we
14042         have computed for pointers.
14043         (get_pointer_alignment): Likewise.  Make conservative, return
14044         and unsigned value.
14045         (expand_builtin_strlen): Adjust.
14046         (expand_builtin_memcmp): Likewise.
14047         (expand_builtin_strcmp): Likewise.
14048         (expand_builtin_strncmp): Likewise.
14049         (get_builtin_sync_mem): Use at least mode alignment.
14050         (fold_builtin_memset): Adjust.
14051         (fold_builtin_memory_op): Likewise.
14052         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
14053         information also dump pointer alignment knowledge.
14054         (dump_gimple_stmt): Likewise.
14055
14056 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
14057
14058         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
14059         (EMPTY_FIELD_BOUNDARY): Remove.
14060         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
14061
14062 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14063
14064         PR debug/45259
14065         * caller-save.c (save_call_clobbered_regs): Only swap notes with
14066         DEBUG_INSNs if n_regs_saved.
14067
14068 2010-08-12  Wei Guozhi  <carrot@google.com>
14069
14070         PR target/44999
14071         * config/arm/arm.md (andsi3): Change to zero extension if possible.
14072         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
14073
14074 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
14075
14076         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
14077
14078         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
14079
14080 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14081
14082         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
14083         the case removed in the previous patch, when the only phi argument
14084         is defined in the same loop as the phi node itself.  Handle it
14085         separately from the invariant case by both propagating it outside
14086         the region and replacing the phi node with an assign.
14087
14088 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14089
14090         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
14091         constant phi nodes with one argument are is_gimple_min_invariant
14092         and SSA_NAME_IS_DEFAULT_DEF.
14093
14094 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14095
14096         * graphite-cloog-util.c (oppose_constraint):
14097         Extend loop counter's value range (CLOOG_ORG).
14098         (cloog_matrix_to_ppl_constraint): Same.
14099         (new_Constraint_System_from_Cloog_matrix): Same.
14100         * graphite-cloog-compat.h (matrix_num_type): New.
14101
14102 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14103
14104         * graphite.c (graphite_initialize): Do not initialize
14105         CLooG and initialize the Parma Polyhedra Library
14106         manually when using CLOOG_ORG.
14107         (graphite_finalize): Do not finalize CLooG and finalize
14108         the Parma Polyhedra Library manually when using CLOOG_ORG.
14109         * graphite-cloog-compat.h (cloog_initialize): Hide function
14110         when using CLOOG_ORG.
14111         (cloog_finalize): Same.
14112
14113 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14114
14115         * graphite-clast-to-gimple.c (free_scattering): Change
14116         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
14117         (CLOOG_ORG).
14118         (build_cloog_prog): Same.
14119         * graphite-cloog-compat.h (cloog_domain): Removed.
14120         (cloog_scattering): New.
14121         (cloog_set_domain): Removed.
14122         (cloog_set_scattering): New.
14123         (cloog_next_domain): Removed.
14124         (cloog_next_scattering): New.
14125         (cloog_set_next_domain): Removed.
14126         (cloog_set_next_scattering): New.
14127         (CloogScatteringList): New.
14128         (CloogScattering): New.
14129         (cloog_scattering_free): New.
14130         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
14131         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
14132         New.
14133
14134 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14135
14136         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
14137         CloogState.
14138         (set_cloog_options): Same.
14139         (print_clast_stmt): Same.
14140         (scop_to_clast): Same.
14141         (print_generated_program): Same.
14142         (gloog): Same.
14143         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
14144         (scop_to_clast): Extend with CloogState.
14145         * graphite-cloog-util.c: Include graphite-cloog-compat.h
14146         (new_Cloog_Domain_from_ppl_Polyhedron):
14147         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
14148         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
14149         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14150         * graphite-cloog-util.h (build_cloog_prog): Same.
14151         * graphite-cloog-copat.h (build_cloog_prog): New.
14152         (CloogState): New.
14153         (cloog_state_malloc): New.
14154         (cloog_state_free): New.
14155         (cloog_loop_malloc): New.
14156         (cloog_options_malloc): New.
14157         (cloog_statement_alloc): New.
14158         (cloog_domain_from_cloog_matrix): New.
14159         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
14160         (new_Cloog_Domain_from_ppl_Polyhedron): New.
14161
14162 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14163
14164         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
14165         type of NAME now depends on used CLooG version.
14166         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
14167         (gcc_type_for_clast_expr): Same.
14168         (print_clast_stmt): Replace pprint with clast_pprint.
14169         * graphite-cloog-compat.h: Provide compatibility macros for
14170         CLooG Legacy.
14171         (clast_name_p): New.
14172         (clast_expr_term): New.
14173         (clast_expr_red): New.
14174         (clast_expr_bin): New.
14175         (clast_pprint): New.
14176
14177 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14178
14179         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
14180         compatible to newer CLooG releases (CLOOG_ORG).
14181         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
14182         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
14183         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
14184         (build_cloog_prog) : New.
14185         (cloog_program_extract_scalars): New.
14186         (cloog_program_scatter): New.
14187
14188 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14189
14190         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
14191         conditionally (CLOOG_ORG).
14192         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
14193         (cloog_statement_usr): New.
14194         (cloog_domain): Same.
14195         (cloog_set_domain): Same.
14196         (cloog_next_domain): Same.
14197         (cloog_set_next_domain): Same.
14198         (cloog_program_nb_scattdims): Same.
14199         (cloog_program_set_nb_scattdims): Same.
14200         (cloog_program_names): Same.
14201         (cloog_program_set_names): Same.
14202         (cloog_program_set_context): Same.
14203         (cloog_program_set_loop): Same.
14204         (cloog_program_blocklist): Same.
14205         (cloog_program_set_blocklist): Same.
14206         (cloog_program_scaldims): Same.
14207         (cloog_program_set_scaldims): Same.
14208         (cloog_names_nb_parameters): Same.
14209         (cloog_names_set_nb_parameters): Same.
14210         (cloog_names_parameters): Same.
14211         (cloog_names_set_parameters): Same.
14212         (cloog_names_set_nb_iterators): Same.
14213         (cloog_names_set_iterators): Same.
14214         (cloog_names_set_nb_scattering): Same.
14215         (cloog_names_set_scattering): Same.
14216         (cloog_statement_set_usr): Same.
14217         (cloog_loop_set_next): Same.
14218         (cloog_loop_set_domain): Same.
14219         (cloog_loop_set_block): Same.
14220         (cloog_block_list_next): Same.
14221         (cloog_block_list_set_next):
14222         (cloog_block_list_set_block): Same.
14223
14224 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14225
14226         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
14227         a bool.
14228         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
14229         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
14230         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
14231         when something has been changed.
14232         (rewrite_commutative_reductions_out_of_ssa): Same.
14233
14234 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14235
14236         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
14237         handle the case when def is in the sese region.
14238         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
14239         for invariant expressions.
14240         (rewrite_cross_bb_phi_deps): Removed.
14241         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14242         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14243         rewrite_cross_bb_phi_deps.
14244
14245 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14246
14247         * graphite-sese-to-poly.c
14248         (rewrite_commutative_reductions_out_of_ssa_loop): Call
14249         scev_analyzable_p only on is_gimple_reg
14250
14251 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14252
14253         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14254         (rewrite_close_phi_out_of_ssa): Propagate constant values or
14255         parametric expressions outside the scop region.
14256         (rewrite_cross_bb_scalar_deps): Same.
14257         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14258
14259 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14260
14261         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
14262         SSA_NAME_DEF_STMT only on SSA_NAMEs.
14263
14264 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14265
14266         * tree-scalar-evolution.c (instantiate_scev_name): Do not
14267         instantiate default definitions.
14268
14269 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
14270             Sebastian Pop  <sebastian.pop@amd.com>
14271
14272         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
14273         (loop_exits_from_bb_p): New.
14274         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
14275         (loop_exits_from_bb_p): Declared.
14276         * graphite-scop-detection.c (scopdet_basic_block_info): Call
14277         loop_exits_to_bb_p.
14278
14279 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14280
14281         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
14282         extra parameter for the region.  Call scev_analyzable_p.
14283         (rewrite_reductions_out_of_ssa): Update call to
14284         rewrite_close_phi_out_of_ssa.
14285         (rewrite_cross_bb_phi_deps): Same.
14286         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
14287         parameter for the region.  Call scev_analyzable_p.
14288         (rewrite_commutative_reductions_out_of_ssa): Update call to
14289         rewrite_commutative_reductions_out_of_ssa_loop.
14290
14291 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14292
14293         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
14294
14295 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14296
14297         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
14298         SSA scalar phi nodes that can be scev_analyzable_p.
14299
14300 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14301
14302         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
14303         handle SSA_NAME_IS_DEFAULT_DEF.
14304
14305 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14306
14307         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
14308
14309 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14310
14311         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
14312         case non close-phi nodes with one argument.
14313
14314 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14315
14316         * sese.h (scev_analyzable_p): Scevs could be expressions without
14317         chrecs and still be scev_analyzable_p.
14318
14319 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14320
14321         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14322
14323 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14324
14325         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
14326         * cfgloop.h (struct loop): Remove single_iv field.
14327         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
14328         (scop_canonicalize_loops): Removed.
14329         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
14330         over all the loop phi nodes in loop->header.
14331         (build_poly_scop): Remove use of scop_canonicalize_loops.
14332
14333 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14334
14335         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
14336         handle GIMPLE_CALL.
14337
14338 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14339
14340         * tree-chrec.c (chrec_apply): Should only apply to the specified
14341         variable.  Also handle multivariate chains of recurrences that
14342         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
14343
14344 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14345
14346         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
14347         (debug_clast_name_indexes_1): Removed.
14348         (debug_clast_name_indexes): Removed.
14349         (pbb_to_depth_to_oldiv): Removed.
14350         (build_iv_mapping): Replace the use of rename_map with iv_map.
14351         (translate_clast_user): Remove uses of rename_map.  Allocate and
14352         free iv_map.
14353         (translate_clast_for_loop): Remove uses of rename_map.
14354         (translate_clast_for): Same.
14355         (translate_clast_guard): Same.
14356         (translate_clast): Same.
14357         (gloog): Same.
14358         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
14359         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
14360         * sese.c (set_rename): Now static.
14361         (rename_variables_in_stmt): Removed.
14362         (rename_uses): New.
14363         (is_parameter): Removed.
14364         (is_iv): Removed.
14365         (expand_scalar_variables_call): Removed.
14366         (expand_scalar_variables_ssa_name): Removed.
14367         (expand_scalar_variables_expr): Removed.
14368         (expand_scalar_variables_stmt): Removed.
14369         (expand_scalar_variables): Removed.
14370         (rename_variables): Removed.
14371         (remove_condition): Removed.
14372         (get_true_edge_from_guard_bb): Removed.
14373         (get_false_edge_from_guard_bb): Removed.
14374         (struct igp): Removed.
14375         (default_before_guard): Removed.
14376         (convert_for_phi_arg): Removed.
14377         (add_guard_exit_phis): Removed.
14378         (insert_guard_phis): Removed.
14379         (graphite_copy_stmts_from_block): Now also uses iv_map and a
14380         region.  Do not copy conditions.  Do not copy induction variables.
14381         Call rename_uses.
14382         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
14383         the translated statement.  Use the iv_map for the induction
14384         variable renaming.
14385         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
14386         (set_rename): Removed declaration.
14387         (scev_analyzable_p): ...here.
14388         * tree-chrec.c (chrec_apply_map): New.
14389         * tree-chrec.h (chrec_apply_map): Declared.
14390
14391 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14392
14393         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
14394         insert_loop_close_phis.
14395         * sese.c (name_defined_in_loop_p): Removed.
14396         (expr_defined_in_loop_p): Removed.
14397         (alive_after_loop): Removed.
14398         (close_phi_not_yet_inserted_p): Removed.
14399         (struct alep): Removed.
14400         (add_loop_exit_phis): Removed.
14401         (insert_loop_close_phis): Removed.
14402
14403 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14404
14405         * graphite-cloog-util.c
14406         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
14407         * graphite-poly.c
14408         (psct_scattering_dim_for_loop_depth): Same.
14409
14410 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14411
14412         * graphite-cloog-util.h: Added cloog.h.
14413         * graphite-blocking.c: Removed cloog.h.
14414         * graphite-dependences.c: Same.
14415         * graphite-interchange.c: Same.
14416         * graphite-poly.c: Same.
14417         * graphite-ppl.c: Same.
14418         * graphite-scop-detection.c: Same.
14419         * graphite-sese-to-poly.c:
14420         Removed cloog.h.
14421         Removed graphite-clast-to-gimple.h.
14422         (check_poly_representation): Removed (unused).
14423         * graphite-sese-to-poly.h
14424         (check_poly_representation): Removed (unused).
14425
14426 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14427
14428         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
14429         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
14430         (graphite-cloog-util.o): New.
14431         (graphite-ppl.o): Added graphite-cloog-util.h.
14432         * graphite-clast-to-gimple.c:
14433         Added graphite-cloog-util.h to include statements.
14434         * graphite-cloog-util.c: New.
14435         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
14436         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14437         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14438         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14439         (insert_constraint_into_matrix): Same.
14440         (ppl_Constrain_System_number_of_constraints): Same.
14441         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14442         (oppose_constraint): Same.
14443         (cloog_matrix_to_ppl_constraint): Same.
14444         (new_Constraint_System_from_Cloog_Matrix): Same.
14445         * graphite-cloog-util.h: New.
14446         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
14447         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14448         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14449         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14450         (insert_constraint_into_matrix): Same.
14451         * graphite-ppl.c:
14452         Added graphite-cloog-util.h to include statements.
14453         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
14454         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14455         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14456         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14457         (insert_constraint_into_matrix): Same.
14458         (ppl_Constrain_System_number_of_constraints): Same.
14459         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14460         (oppose_constraint): Same.
14461         (cloog_matrix_to_ppl_constraint): Same.
14462         (new_Constraint_System_from_Cloog_Matrix): Same.
14463         * graphite-ppl.h:
14464         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
14465         graphite-cloog-util.h.
14466         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14467         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14468         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14469         (insert_constraint_into_matrix): Same.
14470
14471 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14472
14473         * graphite-clast-to-gimple.c
14474         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
14475         (precision_for_interval): Same.
14476         (gcc_type_for_interval): Same.
14477         (compute_type_for_level): Same.
14478         * graphite-interchange.c
14479         (lst_interchange_profitable_p): Same.
14480         * graphite-poly.c
14481         (psct_scattering_dim_for_loop_depth): Same.
14482         * graphite-ppl.c
14483         (ppl_max_for_le_pointset): Same.
14484         (ppl_min_for_le_pointset): Same.
14485
14486 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14487
14488         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
14489         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
14490
14491 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14492
14493         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
14494         rewrite_close_phi_out_of_ssa.
14495
14496 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14497
14498         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
14499
14500 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14501
14502         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
14503         rename_map.
14504         * sese.c (debug_rename_map): Same.
14505         (get_rename): Same.
14506         (set_rename): Same.
14507         (rename_variables_in_stmt): Same.
14508         (expand_scalar_variables_call): Same.
14509         (expand_scalar_variables_ssa_name): Same.
14510         (expand_scalar_variables_expr): Same.
14511         (expand_scalar_variables_stmt): Same.
14512         (expand_scalar_variables): Same.
14513         (rename_variables): Same.
14514         (graphite_copy_stmts_from_block): Same.
14515         (copy_bb_and_scalar_dependences): Same.
14516
14517 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14518
14519         * graphite-clast-to-gimple.c (copy_renames): Removed.
14520         (translate_clast_for): Do not call copy_renames.
14521         (translate_clast_guard): Same.
14522
14523 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14524
14525         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
14526         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
14527         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
14528         before rewrite_cross_bb_scalar_deps.
14529
14530 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14531
14532         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
14533         Early return in when flag_associative_math is not set.
14534
14535 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14536
14537         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
14538         of SSA copies on edges except for loop->latch.
14539
14540 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14541
14542         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
14543         Split out of rewrite_reductions_out_of_ssa.
14544         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
14545         Declared.
14546         * graphite.c (graphite_transform_loops): Call it.
14547
14548 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14549
14550         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
14551
14552 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
14553
14554         * dbgcnt.def (graphite_scop): New counter.
14555         * graphite.c: Include dbgcnt.h.
14556         (graphite_transform_loops): Use new counter to limit transformations.
14557         * Makefile.in (graphite.o): Depend on DBGCNT_H.
14558
14559 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14560
14561         * passes.c (init_optimization_passes): Add pass_graphite.
14562         Schedule a pass_copy_prop before pass_graphite_transforms.
14563         * timevar.def (TV_GRAPHITE): Declared.
14564         * tree-pass.h (pass_graphite): Declared.
14565         * tree-ssa-loop.c (pass_graphite): New.
14566
14567 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14568
14569         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
14570         Remove calls to rename_nb_iterations and rename_sese_parameters.
14571         * graphite-clast-to-gimple.h (gloog): Update declaration.
14572         * graphite.c (graphite_transform_loops): Update call to gloog.
14573         * sese.c (rename_variables_in_expr): Removed.
14574         (rename_nb_iterations): Removed.
14575         (rename_sese_parameters): Removed.
14576         * sese.h (rename_nb_iterations): Removed.
14577         (rename_sese_parameters): Removed.
14578
14579 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14580
14581         * graphite-clast-to-gimple.c (gloog): Remove call to
14582         sese_adjust_liveout_phis.
14583         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
14584         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
14585         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
14586         rewrite_phi_out_of_ssa.
14587         * sese.c (get_vdef_before_sese): Removed.
14588         (sese_adjust_vphi): Removed.
14589         (sese_adjust_liveout_phis): Removed.
14590         * sese.h (sese_adjust_liveout_phis): Removed.
14591
14592 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14593
14594         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
14595         argument for the place after which to insert the out of SSA copy.
14596         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
14597         (rewrite_phi_out_of_ssa): Same.
14598         (rewrite_cross_bb_scalar_deps): Same.
14599         (insert_copyout): Removed.
14600         (insert_copyin): Removed.
14601         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
14602         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
14603         insert_copyin.
14604
14605 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14606
14607         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
14608         (rewrite_reductions_out_of_ssa): Same.
14609         (rewrite_commutative_reductions_out_of_ssa): Same.
14610         (build_poly_scop): Do not call these functions.
14611         * graphite-sese-to-poly.h (build_poly_scop): Declared.
14612         (rewrite_reductions_out_of_ssa): Declared.
14613         (rewrite_commutative_reductions_out_of_ssa): Declared.
14614         * graphite.c (graphite_transform_loops): Call on every scop
14615         rewrite_commutative_reductions_out_of_ssa before calling
14616         rewrite_reductions_out_of_ssa and build_scop_bbs.
14617
14618 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14619
14620         * graphite-dependences.c (dot_deps): Make system call to dotty run
14621         in background.
14622         (dot_deps_stmt): Same.
14623         * graphite-poly.c (dot_lst): Same.
14624
14625 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14626
14627         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
14628         phi_arg_in_outermost_loop.
14629         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
14630         (remove_invariant_phi): Same.
14631
14632 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
14633
14634         * target.def (output_addr_const_extra): New hook.
14635         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
14636         * doc/tm.texi: Regenerate.
14637         * targhooks.c (default_asm_output_addr_const_extra): New function.
14638         * targhooks.h (default_asm_output_addr_const_extra): Declare.
14639         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
14640         target hook.
14641
14642         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14643         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
14644         * config/i386/i386.h (output_addr_const_extra): Rename to...
14645         (i386_asm_output_addr_const_extra): ...this. Make static.
14646         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14647
14648 2010-08-11  Richard Henderson  <rth@redhat.com>
14649
14650         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
14651
14652 2010-08-11  Nick Clifton  <nickc@redhat.com>
14653
14654         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
14655         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
14656         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
14657         stormy16-lib2-cmpsi.c.
14658
14659         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
14660         -O2.
14661
14662 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
14663
14664         * opts.h (struct cl_option_handler_func): Make handler take
14665         cl_decoded_option structure as parameter, not individual elements.
14666         (struct cl_option_handlers): Make callbacks take cl_decoded_option
14667         structure as parameter, not individual elements.
14668         (handle_option): Take cl_decoded_option structure as parameter,
14669         not individual elements.
14670         (handle_generated_option): Declare.
14671         * opts-common.c (handle_option): Take cl_decoded_option structure
14672         as parameter, not individual elements.  Update calls to callback
14673         and handler functions.
14674         (handle_generated_option): New.
14675         (read_cmdline_option): Update calls to callback functions and
14676         handle_option.
14677         * opts.c (common_handle_option, complain_wrong_lang,
14678         unknown_option_callback, post_handling_callback,
14679         lang_handle_option, target_handle_option): Take cl_decoded_option
14680         structure as parameter, not individual elements.
14681         (lang_handle_option, target_handle_option, common_handle_option):
14682         Assert option has at most one argument.
14683         (enable_warning_as_error): Call handle_generated_option instead of
14684         handle_option.  Do not pass -Werror argument as argument of
14685         generated option.
14686
14687 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14688
14689         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14690         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14691         (SUBWORD_BOOL_CAS): Likewise.
14692         (SUBWORD_SYNC_OP): Likewise.
14693         (SUBWORD_TEST_AND_SET): Likewise.
14694         (FETCH_AND_OP_WORD): Parenthesise INF_OP
14695         (SUBWORD_SYNC_OP): Likewise.
14696         (OP_AND_FETCH_WORD): Likewise.
14697
14698 2010-08-10  Xinliang David Li  <davidxl@google.com>
14699
14700         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
14701         compute max/min offset in address.
14702
14703 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
14704
14705         * ira-live.c: Include sbitmap.h.
14706         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
14707         Compress live ranges even more.
14708
14709 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14710
14711         * coverage.c (ctr_labels): Delete.
14712
14713 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
14714
14715         PR bootstrap/45177
14716         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
14717         test here from arm_gen_load_multiple_1.
14718         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
14719         multiple_operation_profitable_p.
14720
14721 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14722
14723         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
14724         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
14725
14726 2010-08-10  Richard Henderson  <rth@redhat.com>
14727
14728         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
14729         after saving registers.  Assert that SSE registers are only saved
14730         with a sufficiently aligned frame.
14731         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
14732         remove stack_realign_fp handling.
14733         (ix86_expand_prologue): Save int registers before stack_realign_fp,
14734         and do not mark the stack alignment as frame related.
14735         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
14736
14737         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
14738         saves when re-aligning the stack.
14739
14740 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14741
14742         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
14743         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
14744         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
14745
14746 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14747
14748         * dwarf2out.c (struct die_struct): Move die_tag to the end.
14749
14750 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
14751
14752         * config/arm/iterators.md: New file.
14753         * config/arm/arm.md: Include iterators.md.
14754         (QHSI): Move to new file.
14755         (LTUGEU, cnb, optab, ior_xor): Likewise.
14756         * config/arm/iwmmxt.md (VMMX): Move to new file.
14757         (VSHFT, MMX_char): Likewise.
14758         * config/arm/neon.md (VD): Move to new file.
14759         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
14760         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
14761         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
14762         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
14763         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
14764         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
14765         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
14766         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
14767         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
14768         (Is_d_reg, V_mode_nunits): Likewise.
14769         * config/arm/vec-common.md (VALL): Move to new file.
14770         (VALLW, VINT, VINTW): Likewise.
14771
14772 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
14773
14774         PR middle-end/45182
14775         * combine.c (make_compound_operation): Don't try to convert
14776         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
14777
14778 2010-08-10  Richard Guenther  <rguenther@suse.de>
14779
14780         * tree.h (get_object_alignment): Adjust prototype.
14781         * builtins.c (get_object_alignment): Return unsigned int,
14782         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
14783         and TARGET_MEM_REF properly.
14784         (get_pointer_alignment): Adjust.
14785         * emit-rtl.c (get_mem_align_offset): Adjust comment.
14786         (set_mem_attributes_minus_bitpos): Adjust.
14787         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
14788
14789 2010-08-10  Richard Guenther  <rguenther@suse.de>
14790
14791         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
14792         (copy_prop_visit_assignment): Simplify.
14793         (copy_prop_visit_stmt): Also visit assignments from
14794         constants.
14795         (copy_prop_visit_phi_node): Use operand_equal_p.
14796
14797 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14798
14799         * ipa-split.c (find_split_points): Free stack.
14800
14801 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14802
14803         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
14804         * tree.c (tree_node_kind): Delete corresponding entries.
14805
14806 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
14807
14808         * alias.c (may_alias_p): Remove unused ret.
14809
14810 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
14811
14812         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
14813         alias_sets_conflict_p.
14814         (walk_mems_1): Moved from alias.c.
14815         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
14816         in alias.c.
14817         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
14818         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
14819         * alias.c (walk_mems_2): Moved to ddg.c.
14820         (walk_mems_1): Ditto.
14821         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
14822         to ddg.c.
14823         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
14824         disambiguation.
14825         *(may_alias_p): New function to check whether two memory expression
14826         may alias or not. Currently used in buidling inter-iteration memory
14827         dependence.
14828         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
14829         (insn_alias_sets_conflict_p): Removed
14830         *rtl.h (may_alias_p): New function prototype.
14831
14832 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14833
14834         * tree.c (nreverse): Assert that we don't have a BLOCK.
14835
14836 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14837
14838         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
14839         * config/arm/arm.c (arm_get_pcs_model): Likewise.
14840         * config/avr/avr.c (init_cumulative_args): Likewise.
14841         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
14842         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
14843         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
14844         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
14845         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
14846         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14847         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
14848         * dwarf2out.c (gen_subprogram_die): Likewise.
14849         * function.c (allocate_struct_function): Likewise.
14850         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
14851         (deserves_ellipsis): Delete.
14852
14853 2010-08-09  Richard Guenther  <rguenther@suse.de>
14854
14855         * tree-ssa-copy.c (cached_last_copy_of): Remove.
14856         (valueize_val): New function.
14857         (get_last_copy_of): Remove.
14858         (set_copy_of_val): Simplify.
14859         (dump_copy_of): Likewise.
14860         (copy_prop_visit_cond_stmt): Use valueize_val.
14861         (copy_prop_visit_phi_node): Properly handle unvisited names.
14862         Drop code managing copy-of chains.
14863         (init_copy_prop): Adjust.
14864         (fini_copy_prop): Likewise.
14865         (execute_copy_prop): Remove obsolete comment.
14866
14867 2010-08-09  Richard Guenther  <rguenther@suse.de>
14868
14869         PR middle-end/44632
14870         * function.c (gimplify_parameters): Do not clear addressable
14871         bit of the original parameter.
14872
14873 2010-08-09  Richard Guenther  <rguenther@suse.de>
14874
14875         PR middle-end/45212
14876         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
14877         alignment from MEM_REF offset only if we took it from the
14878         base object.
14879
14880 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
14881
14882         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
14883
14884 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14885
14886         * c-tree.h (build_arg_info): Declare.
14887         * c-decl.c (build_arg_info): Define.
14888         (get_parm_info): Call it.  Delete initialization code.
14889         * c-parser.c (c_parser_parms_declarator): Likewise.
14890         (c_parser_parms_list_declaractor): Likewise.
14891
14892 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14893
14894         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
14895         (struct c_arg_info): Change type of tags field.
14896         * c-decl.c (grokdeclarator): Update for changed type of tags field.
14897         (get_parm_info): Likewise.
14898         (store_parm_decls_newstyle): Likewise.
14899
14900 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14901
14902         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
14903         (branch_island_list): Delete.
14904         (branch_islands): Declare.
14905         (add_compiler_branch_island): Adjust for branch_islands instead of
14906         branch_island_list.
14907         (macho_branch_islands): Likewise.
14908         (no_previous_def): Likewise.
14909         (get_prev_label): Likewise.
14910
14911 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14912
14913         PR boehm-gc/34544
14914         * gthr-posix.h (__gthread_start): Delete.
14915         (__gthread_active_init): Use pthread_default_stacksize_np instead of
14916         pthread_create to determine if hpux pthreads are active.
14917         * gthr-posix95.h (__gthread_start): Delete.
14918         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
14919
14920 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
14921
14922         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
14923         _WIN64 not expanded.
14924
14925 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
14926             H.J. Lu  <hongjiu.lu@intel.com>
14927
14928         PR target/45213
14929         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
14930         to output 32bit SFmode immediate as 8 byte sign extended value.
14931
14932 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14933
14934         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14935         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14936         (SUBWORD_BOOL_CAS): Likewise.
14937         (SUBWORD_SYNC_OP): Likewise.
14938         (SUBWORD_TEST_AND_SET): Likewise.
14939         (FETCH_AND_OP_WORD): Parenthesise INF_OP
14940         (SUBWORD_SYNC_OP): Likewise.
14941         (OP_AND_FETCH_WORD): Likewise.
14942
14943 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14944
14945         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
14946         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
14947         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
14948         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
14949         generic part.
14950         (cortex_a9_sched_adjust_cost): New function.
14951         (xscale_sched_adjust_cost): New function.
14952         * config/arm/arm-protos.h (struct tune_params): New field
14953         sched_adjust_cost.
14954         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
14955
14956 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
14957
14958         PR target/44942
14959         * config/sparc/sparc.c (function_arg_advance): Always take into account
14960         the padding, if any.
14961
14962 2010-08-06  Richard Guenther  <rguenther@suse.de>
14963
14964         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
14965         (dump_lattice_value): Dump it.
14966         (get_default_value): Adjust.
14967         (get_constant_value): Likewise.
14968         (set_value_varying): Likewise.
14969         (set_lattice_value): Make sure to not go up the lattice
14970         with bitwise constant values.
14971         (get_value_for_expr): Handle ADDR_EXPRs.
14972         (value_to_double_int): New function.
14973         (get_value_from_alignment): Likewise.
14974         (do_dbg_cnt): Adjust.
14975         (ccp_lattice_meet): Handle partially constant values.
14976         (bit_value_unop_1): New function.
14977         (bit_value_binop_1): Likewise.
14978         (bit_value_unop): Likewise.
14979         (bit_value_binop): Likewise.
14980         (evaluate_stmt): Track partially constant values if
14981         flag_tree_bit_ccp is set.
14982         (ccp_fold_stmt): Dump if we folded a predicate.
14983         (ccp_visit_stmt): Adjust.
14984         * common.opt (ftree-bit-ccp): New flag.
14985         * doc/invoke.texi (ftree-bit-ccp): Document.
14986         * opts.c (decode_options): Enable bit-CCP at -O1.
14987
14988 2010-08-06  Alan Modra  <amodra@gmail.com>
14989
14990         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
14991         and -mrelocatable-lib description.
14992
14993 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
14994
14995         From Martin Thuresson  <martint@google.com>
14996         * postreload.c (reload_cse_simplify_operands): Use
14997         SET_REGNO_RAW instead of SET_REGNO.
14998         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
14999         SET_REGNO.
15000         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
15001         instead of SET_REGNO.
15002         * rtl.h (SET_REGNO_RAW): New macro.
15003
15004 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
15005
15006         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
15007         computations.  Fix formatting issues.
15008         (num_sign_bit_copies1): Likewise.
15009         (canonicalize_condition): Likewise.
15010
15011 2010-08-05  Richard Henderson  <rth@redhat.com>
15012
15013         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
15014         (floor_log2): Use clz_hwi.
15015         (exact_log2): Use ctz_hwi.
15016         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
15017         * builtins.c (fold_builtin_bitop): Use them.
15018         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
15019         * combine.c (get_pos_from_mask): Use ctz_hwi.
15020         * double-int.c (double_int_ctz): Likewise.
15021         * explow.c (force_reg): Likewise.
15022         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
15023
15024 2010-08-05  Richard Henderson  <rth@redhat.com>
15025
15026         PR target/45189
15027         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
15028         the alignment constant is properly sign-extended.
15029
15030 2010-08-05  Richard Guenther  <rguenther@suse.de>
15031
15032         * expr.c (store_expr): Use emit_block_move only if both
15033         source and target are MEMs.  Use store_bit_field if only
15034         the target is a MEM.
15035
15036 2010-08-05  Richard Henderson  <rth@redhat.com>
15037
15038         PR debug/45188
15039         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
15040         (INCOMING_RETURN_ADDR_RTX): Likewise.
15041         (dwarf2out_do_frame): Remove conditional compilation.
15042         (dwarf2out_frame_init): Likewise.
15043
15044 2010-08-05  Nicolas Setton  <setton@adacore.com>
15045
15046         * gcov.c (flag_display_progress): New static variable.
15047         (main): Display progress info on standard output if requested.
15048         (options): Add -d/--display-progress.
15049         (print_usage): Print them.
15050         (process_args): Handle them.
15051         * doc/gcov.texi: Document them.
15052
15053 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15054
15055         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
15056         (ipcp_insert_stage): Redirect only edges not flagged with
15057         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
15058         discovered constants.
15059
15060 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15061
15062         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
15063         (struct ipa_param_descriptor): New fields types and
15064         cannot_devirtualize.
15065         (ipa_param_cannot_devirtualize_p): New function.
15066         (ipa_param_types_vec_empty): Likewise.
15067         (ipa_make_edge_direct_to_target): Declare.
15068         * ipa-cp.c: Fixed first stage driver name in initial comment,
15069         described devirtualization there too.
15070         (ipcp_analyze_node): Call ipa_analyze_params_uses.
15071         (ipcp_print_all_lattices): Print devirtualization info.
15072         (ipa_set_param_cannot_devirtualize): New function.
15073         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
15074         lattice to BOTTOM.
15075         (ipcp_init_stage): Merged into...
15076         (ipcp_generate_summary): ...its caller.
15077         (ipcp_change_tops_to_bottom): Also process type lists.
15078         (ipcp_add_param_type): New function.
15079         (ipcp_copy_types): Likewise.
15080         (ipcp_propagate_types): Likewise.
15081         (ipcp_propagate_stage): Also propagate types.
15082         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
15083         Also return true if propagated types require it.
15084         (ipcp_update_callgraph): Dump redirection info.
15085         (ipcp_process_devirtualization_opportunities): New function.
15086         (ipcp_const_param_count): Include known type information.
15087         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
15088         on new node.  Fixed formatting.
15089         * ipa-prop.c (make_edge_direct_to_target): Renamed to
15090         ipa_make_edge_direct_to_target and changed all callers.  Made
15091         externally visible.
15092         (ipa_node_duplication_hook): Duplicate types vector.
15093         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
15094         redirect outgoing calls for which we can't get a decl from the
15095         statement.  Check that we can get a decl from the call statement.
15096         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15097         ipa_analyze_params_uses only when ipa-cp is disabled.
15098         * tree-inline.c (get_indirect_callee_fndecl): Removed.
15099         (expand_call_inline): Do not call get_indirect_callee_fndecl.
15100         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
15101         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
15102
15103 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15104
15105         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
15106         temporary. Emit move from temporary to accum, so REG_EQUAL note will
15107         be attached to this insn in correct mode.
15108
15109 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15110
15111         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
15112         using REGNO of base_reg directly.
15113
15114 2010-08-05  Jie Zhang  <jie@codesourcery.com>
15115
15116         PR tree-optimization/45144
15117         * tree-sra.c (type_consists_of_records_p): Return false
15118         if the record contains bit-field.
15119
15120 2010-08-04  Richard Henderson  <rth@redhat.com>
15121
15122         * config/i386/i386.c (struct ix86_frame): Remove padding and
15123         to_allocate members.
15124         (ix86_compute_frame_layout): Don't store them.
15125         (ix86_can_use_return_insn_p): Use a more direct and more obviously
15126         correct condition for the position of the stack pointer.
15127         (ix86_expand_prologue): Compute remaining stack allocation based
15128         on the ultimate stack pointer offset.
15129         (ix86_expand_epilogue): Use more obvious expressions testing for
15130         the stack pointer already pointing to the saved registers.
15131
15132         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
15133         duplication deconstructing the frame pointer.  Simplify
15134         deallocation of the local stack frame.
15135
15136         * reg-notes.def (CFA_EXPRESSION): New.
15137         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
15138         (dwarf2out_frame_debug_cfa_expression): New.
15139         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
15140
15141         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
15142         * config/i386/i386.c (ix86_expand_prologue): Set it.
15143         (ix86_expand_epilogue): Clear it.
15144         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
15145         context, add REG_CFA_EXPRESSION notes.
15146
15147         * config/i386/i386.h (struct machine_frame_state): Rename from
15148         machine_cfa_state.  Add members tracking SP and FP regardless
15149         of the current CFA register.
15150         (ix86_cfa_state): Remove.
15151         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
15152         and sse_reg_save_offset members.
15153         (ix86_compute_frame_layout): Set them.
15154         (gen_push): Increment sp_offset too.
15155         (choose_baseaddr_len, choose_baseaddr): New.
15156         (ix86_emit_save_reg_using_mov): New.
15157         (ix86_emit_save_regs_using_mov): Use it.
15158         (ix86_emit_save_sse_regs_using_mov): Likewise.
15159         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
15160         compare vs the saved red_zone_offset.
15161         (pro_epilogue_adjust_stack): Adjust sp_offset.
15162         (ix86_adjust_stack_and_probe): Likewise.
15163         (ix86_expand_prologue): Set up, use, and validate the new
15164         frame_state_info members.  Use gen_frame_mem.
15165         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
15166         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
15167         new frame_state_info members.
15168         (ix86_emit_leave): Likewise.
15169         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
15170         out-of-range stack pointer offsets here.
15171         (ix86_emit_restore_sse_regs_using_mov): Likewise.
15172         (ix86_expand_epilogue): Use and validate the new frame_state_info
15173         members.  Break up and simplify the logic selecting the
15174         restore_regs_via_mov code path.  Ensure that there will be no
15175         out-of-range stack pointer offsets.
15176
15177         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
15178
15179         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
15180         argument name to reflect the expected tree; fix indentation.
15181         (ix86_asm_output_function_label): Output the entire 32-bit
15182         ms_hook here as bytes ...
15183         (ix86_expand_prologue): ... not here as insns.  Attach the
15184         unwind info for the ms_hook to a blockage insn.
15185         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
15186         (ix86_ms_bitfield_layout_p): Fix indentation.
15187         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
15188
15189         * config/i386/i386.c (ix86_using_red_zone): New.
15190         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
15191         ix86_expand_prologue, ix86_force_to_memory): Use it.
15192
15193         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
15194         saving the int registers.
15195
15196         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
15197         and DWARF2_UNWIND_INFO conditional compilation.
15198
15199 2010-08-04  Richard Henderson  <rth@redhat.com>
15200
15201         PR debug/45171
15202         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
15203         an is_naming_typedef_decl.
15204
15205 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
15206
15207         PR rtl-optimization/45162
15208         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
15209         * dce.c (word_dce_process_block): Likewise.
15210
15211 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
15212
15213         PR target/44583
15214         * config/ia64/constraints.md (Z): New.
15215         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
15216         (xfreg_or_signed_fp01_operand): New.
15217         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
15218         with fr_reg_or_signed_fp01_operand and constraint G with Z.
15219         (subsf3): Ditto.
15220         (*maddsf4): Ditto.
15221         (*msubsf4): Ditto.
15222         (adddf3): Ditto.
15223         (adddf3_trunc): Ditto.
15224         (subdf3): Ditto.
15225         (*subdf3_trunc): Ditto.
15226         (*madddf4): Ditto.
15227         (*madddf4_trunc): Ditto.
15228         (*msubdf4): Ditto.
15229         (*msubdf4_trunc): Ditto.
15230         (addxf3): Replace xfreg_or_fp01_operand with
15231         xfreg_or_signed_fp01_operand and constraint G with Z.
15232         (*addxf3_truncsf): Ditto.
15233         (*addxf3_truncdf): Ditto.
15234         (subxf3): Ditto.
15235         (*subxf3_truncsf): Ditto.
15236         (*subxf3_truncdf): Ditto.
15237         (*maddxf4): Ditto.
15238         (*maddxf4_truncsf): Ditto.
15239         (*maddxf4_truncdf): Ditto.
15240         (*msubxf4): Ditto.
15241         (*msubxf4_truncsf): Ditto.
15242         (*msubxf4_truncdf): Ditto.
15243
15244 2010-08-04  Richard Guenther  <rguenther@suse.de>
15245
15246         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15247         if either alias-set is zero.
15248
15249 2010-08-04  Richard Guenther  <rguenther@suse.de>
15250
15251         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15252         * tree-ssa-ccp.c: ... here.
15253         * tree-ssa-copy.c: ... and here.
15254         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15255         value_range_t): Move ...
15256         * tree-vrp.c: ... here.
15257         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15258         (substitute_and_fold): Adjust prototype.
15259         * tree-ssa-propagate.c (replace_uses_in): Adjust.
15260         (replace_phi_args_in): Likewise.
15261         (substitute_and_fold): Take callback to query lattice instead
15262         of pointer to lattice.  Replace SSA name defs with lattice
15263         values first.
15264         * tree-ssa-ccp.c (ccp_finalize): Adjust.
15265         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
15266         (get_value): New function.
15267         (fini_copy_prop): Adjust.
15268         * tree-vrp.c (vrp_finalize): Adjust.
15269
15270 2010-08-04  Richard Guenther  <rguenther@suse.de>
15271
15272         PR middle-end/45176
15273         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
15274         points-to set for original MEM_REF.
15275
15276 2010-08-04  Richard Guenther  <rguenther@suse.de>
15277
15278         * tree-ssa-ccp.c (get_constant_value): New function.
15279         (get_rhs_assign_op_for_ccp): Remove.
15280         (valueize_op): New function.
15281         (ccp_fold): Use get_constant_value and valueize_op.
15282         (fold_const_aggregate_ref): Likewise.
15283         (ccp_fold_stmt): Likewise.
15284         (visit_assignment): Simplify.
15285
15286 2010-08-04  Richard Guenther  <rguenther@suse.de>
15287
15288         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
15289         * double-int.h (double_int_ctz): Declare.
15290         * double-int.c (double_int_ctz): New function.
15291
15292 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15293
15294         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
15295         Define.
15296         picochip_expand_movmemhi : Expand movmem pattern.
15297         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
15298         Declare.
15299         * config/picochip/picochip.md (movmemhi) : New pattern.
15300
15301 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15302
15303         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
15304
15305 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
15306
15307         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
15308         NEG as operand of a MULT by merging it with the other operand.
15309         * combine.c (make_compound_operation): Use trunc_int_for_mode when
15310         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
15311         MULT.
15312         * config/arm/constraints.md (M): Examine only 32 bits of a
15313         HOST_WIDE_INT.
15314         * config/arm/predicates.md (power_of_two_operand): Likewise.
15315
15316 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15317
15318         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
15319         non-NOTE insns.
15320
15321 2010-08-03  Jan Hubicka  <jh@suse.cz>
15322
15323         * ipa-split.c (struct split_point): Add split_part_set_retval.
15324         (find_retval): Forward declare.
15325         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
15326         (consider_split): Compute current->split_part_set_retval.
15327         (visit_bb): Do not look into return value.
15328         (split_function): Handle !split_part_set_retval
15329
15330 2010-08-03  Martin Jambor  <mjambor@suse.cz>
15331
15332         * tree-sra.c (completely_scalarize_record): New parameter REF, create
15333         its own access->expr intead of using build_ref_for_offset.
15334
15335 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
15336
15337         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
15338         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
15339         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
15340         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
15341         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
15342         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
15343         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
15344         DEFAULT_SWITCH_TAKES_ARG.
15345         * config/rx/rx.opt (-patch=): Remove option.
15346         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
15347         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
15348         * doc/invoke.texi (RX Options): Remove -patch=.
15349         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
15350         (option_map): Remove --profile-blocks, --quiet and --silent.
15351
15352 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15353
15354         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
15355         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
15356         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
15357         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15358         Update calls to ix86_expand_compare and ix86_expand_branch.
15359         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
15360         ix86_expand_compare.
15361         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
15362         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15363         Make static.
15364         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
15365         and ix86_compare_op1.  Update calls to ix86_expand_compare.
15366         (ix86_expand_int_movcc): Ditto.
15367         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
15368         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
15369         (ix86_expand_setcc): Ditto.
15370         (ix86_expand_compare): Remove prototype.
15371         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
15372         ix86_compare_op0 and ix86_compare_op1.  Update calls
15373         to ix86_expand_branch to directly pass operands[1] and operands[2].
15374         (cbranchxf4): Ditto.
15375         (cbranch<MODEF:mode>4): Ditto.
15376         (cbranchcc4): Ditto.
15377         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
15378         Update calls to ix86_expand_setcc to directly pass operands[2] and
15379         operands[3].
15380         (cstorexf4): Ditto.
15381         (cstore<MODEF:mode>4): Ditto.
15382         (cstorecc4): Ditto.
15383
15384 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15385
15386         PR target/45063
15387         * caller-save.c (save_call_clobbered_regs): Remove regs from
15388         hard_regs_saved when they are set.
15389
15390 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
15391
15392         PR target/41089
15393         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
15394         as volatile.
15395
15396 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
15397
15398         * common.opt (ftree-loop-distribute-patterns): New.
15399         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
15400         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
15401         at -O3.
15402         * tree-data-ref.c (stores_zero_from_loop): New.
15403         * tree-data-ref.h (stores_zero_from_loop): Declared.
15404         * tree-loop-distribution.c (tree_loop_distribution): Call
15405         stores_zero_from_loop.
15406         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
15407
15408 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15409
15410         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
15411         into account.
15412
15413         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
15414         * config/arm/arm.c (thumb1_code): New variable.
15415         (arm_override_options): Set it.
15416         (thumb1_final_prescan_insn): Keep track of condition code status.
15417         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
15418         jumps that depend on them.
15419         * config/arm/arm.h (thumb1_code): Declare variable.
15420         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
15421         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
15422         thumb1_cc_mode.
15423         (CC_STATUS_INIT): New macro.
15424         * config/arm/constraints.md (Pd): New constraint.
15425         * config/arm/predicates.md (noov_comparison_operator): New predicate.
15426         * config/arm/arm.md (is_thumb1): New define_attr.
15427         (conds): Set default to "clob" when generating Thumb1 code.
15428         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
15429         code are set.  Use two-operand assembly syntax.
15430         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
15431         pattern.
15432         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
15433         codes are set.  Use two-operand assembly syntax.
15434         (zero_extendhisi splitter): Remove constraints.
15435         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
15436         thumb1_movsf_insn): Set conds attribute as appropriate.
15437         (cbranchsi4_insn): Use condition code status from struct
15438         machine_function to determine whether the comparison can be eliminated.
15439         Discourage the alternative using high registers.
15440         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
15441         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
15442         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
15443         subsi3_cbranch): Delete.
15444         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
15445         one subtract and one cbranch insn.
15446
15447         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
15448         thumb2_movdf_soft_insn): Delete patterns.
15449         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
15450         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
15451         (pool_range, neg_pool_range): Use them to define defaults.
15452         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
15453         and allow for TARGET_32BIT.
15454
15455         PR target/40457
15456         * config/arm/arm.h (arm_regs_in_sequence): Declare.
15457         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
15458         load_multiple_sequence, store_multiple_sequence): Delete
15459         declarations.
15460         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
15461         declarations.
15462         * config/arm/ldmstm.md: New file.
15463         * config/arm/arm.c (arm_regs_in_sequence): New array.
15464         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
15465         CHECK_REGS.  All callers changed.
15466         If SAVED_ORDER is nonnull, copy the computed order into it.
15467         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
15468         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
15469         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
15470         If SAVED_ORDER is nonnull, copy the computed order into it.
15471         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
15472         like REGS.  Handle Thumb mode.
15473         (arm_gen_load_multiple_1): New function, broken out of
15474         arm_gen_load_multiple.
15475         (arm_gen_store_multiple_1): New function, broken out of
15476         arm_gen_store_multiple.
15477         (arm_gen_multiple_op): New function, with code from
15478         arm_gen_load_multiple and arm_gen_store_multiple moved here.
15479         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
15480         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
15481         changed.
15482         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
15483         * config/arm/predicates.md (commutative_binary_operator): New.
15484         (load_multiple_operation, store_multiple_operation): Handle more
15485         variants of these patterns with different starting offsets.  Handle
15486         Thumb-1.
15487         * config/arm/arm.md: Include "ldmstm.md".
15488         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
15489         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
15490         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
15491         peepholes): Delete.
15492         * config/arm/ldmstm.md: New file.
15493         * config/arm/arm-ldmstm.ml: New file.
15494
15495         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
15496         if statement which adds extra costs to frame-related expressions.
15497
15498 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15499
15500         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
15501
15502 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
15503
15504         PR target/45142
15505         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
15506         alternative 2.
15507         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
15508         split V4SI operands.
15509
15510 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
15511
15512         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15513         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
15514         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
15515         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
15516
15517 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
15518
15519         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
15520         LOCAL_INCLUDE_DIR.
15521
15522 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
15523
15524         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
15525         used in the call to optab_for_tree_code.  Fix the second
15526         is_widening_mult_p call.  Check that both unwidened operands
15527         have the same sign.
15528
15529 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
15530
15531         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
15532
15533 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
15534
15535         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15536
15537 2010-07-30  DJ Delorie  <dj@redhat.com>
15538
15539         * config/rx/predicates.md (rx_constshift_operand): New.
15540         * config/rx/rx.md (zs_cond): New.
15541         (cbranchsi4): Remove mode.
15542         (*cbranchsi4_<code>): Likewise.
15543         (*tstbranchsi4_<code>): New.
15544         (*tstbranchsi4r_<code>): New.
15545         (*tstbranchsi4m_eq): New.
15546         (*tstbranchsi4m_ne): New.
15547         (cbranchsf4): Remove mode.
15548         (*cbranchsf4_<code>): Likewise.
15549
15550 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
15551
15552         * rtlanal.c (simplify_subreg_regno): Don't treat
15553         HARD_FRAME_POINTER_REGNUM specially.
15554
15555 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
15556
15557         * common.opt (-G): Don't define option here.
15558         * config/g.opt: New.
15559         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
15560         rs6000/powerpc and score targets.
15561         * opts.c (common_handle_option): Don't handle -G here.
15562         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
15563         * config/frv/frv.c (frv_handle_option): Handle -G.
15564         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
15565         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
15566         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
15567         * config/mips/mips.c (mips_handle_option): Handle -G.
15568         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
15569         * config/score/score.c (score_handle_option): Handle -G.
15570
15571 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
15572
15573         * config/mmix/mmix.c: Include basic-block.h.
15574
15575 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
15576
15577         PR debug/45055
15578         PR rtl-optimization/45137
15579         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
15580         prototypes.
15581         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
15582         New functions.
15583         * combine.c (next_nonnote_nondebug_insn): Removed.
15584         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
15585         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
15586         * sched-deps.c (sched_analyze_insn): Likewise.
15587         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
15588         * rtlanal.c (canonicalize_condition): Likewise.
15589         * postreload.c (reload_combine_recognize_pattern): Likewise.
15590         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
15591
15592 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
15593
15594         * config/i386/i386.md (int_cond): Remove code iterator.
15595         (fp_cond): Ditto.
15596         (cbranch<mode>4): Use ordered_comparison_operator predicate
15597         for operator0.
15598         (cstore<mode>4): Ditto for operator1.
15599         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
15600         (add<mode>cc): ditto.
15601
15602 2010-07-30  Richard Guenther  <rguenther@suse.de>
15603
15604         PR middle-end/45141
15605         * expr.c (expand_expr_real_1): Check for not handled base address.
15606
15607 2010-07-30  Richard Guenther  <rguenther@suse.de>
15608
15609         * ipa-prop.c (ipa_modify_formal_parameters): Use
15610         build_distinct_type_copy.
15611
15612 2010-07-30  Anthony Green  <green@moxielogic.com>
15613
15614         * config/moxie/rtems.h: New file.
15615         * config.gcc: Add moxie-rtems support.
15616
15617 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15618
15619         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
15620         df flags as in run_fast_df_dce.
15621
15622 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
15623
15624         Revert:
15625         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15626
15627         * rtl.def (NOTE): Swap operands 4 and 5.
15628         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
15629         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
15630         Adjust accordingly.
15631         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
15632
15633 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
15634
15635         PR debug/45110
15636         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
15637         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
15638         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
15639         formal parameters.
15640         (gen_decl_die): Change return type to dw_die_ref, return what
15641         gen_formal_parameter_die returned.
15642
15643 2010-07-29  Martin Jambor  <mjambor@suse.cz>
15644
15645         * dbgcnt.def (eipa_sra): New counter.
15646         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
15647
15648 2010-07-29  Xinliang David Li  <davidxl@google.com>
15649
15650         PR bootstrap/45119
15651         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
15652         in revision 162652.
15653
15654 2010-07-29  Richard Guenther  <rguenther@suse.de>
15655
15656         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
15657         (TV_TREE_STORE_CCP): Likewise.
15658         (TV_TREE_REDPHI): Likewise.
15659
15660 2010-07-29  Richard Guenther  <rguenther@suse.de>
15661
15662         * double-int.h (double_int_and_not): New function.
15663         * combine.c (try_combine): Use it.
15664         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
15665
15666 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15667
15668         PR rtl-optimization/42575
15669         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
15670         Argument AU removed.  All callers changed.  Ignore artificial refs.
15671         Use return value of df_word_lr_simulate_defs to decide whether an insn
15672         is necessary.
15673         (fast_dce): Rename arg to WORD_LEVEL.
15674         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
15675         static.
15676         (pass_fast_rtl_byte_dce): Delete.
15677         * dce.h (run_word_dce): Declare.
15678         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
15679         All callers changed.  Simplify code to only deal with two-word regs.
15680         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
15681         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
15682         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
15683         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
15684         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
15685         (df_word_lr_mark_ref): Declare.
15686         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
15687         df_word_lr_simulate_uses): Declare or rename from byte variants.
15688         (df_byte_lr_simulate_artificial_refs_at_top,
15689         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15690         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
15691         declarations.
15692         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
15693         (enum df_mm): Delete.
15694         * df-byte-scan.c: Delete file.
15695         * df-problems.c (df_word_lr_problem_data): Renamed from
15696         df_byte_lr_problem_data, all members deleted except for
15697         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
15698         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
15699         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15700         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
15701         df_byte_lr_confluence_0): Delete functions.
15702         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
15703         callers changed.
15704         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
15705         Don't initialize members that were deleted, don't try to discover data
15706         about registers.  Ignore hard regs.
15707         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
15708         (df_word_lr_mark_ref): New function.
15709         (df_word_lr_bb_local_compute): Renamed from
15710         df_byte_bb_lr_local_compute; all callers changed.  Use
15711         df_word_lr_mark_ref.  Assert that artificial refs don't include
15712         pseudos.  Ignore hard registers.
15713         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
15714         Assert that exit block uses don't contain pseudos.
15715         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
15716         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
15717         callers changed.  Ignore hard regs.
15718         (df_word_lr_transfer_function): Renamed from
15719         df_byte_lr_transfer_function; all callers changed.
15720         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
15721         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
15722         changed.
15723         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
15724         callers changed.
15725         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
15726         confluence operator 0 set to NULL.
15727         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
15728         callers changed.
15729         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
15730         Return bool, true if bitmap changed or insn otherwise necessary.
15731         All callers changed.  Simplify using df_word_lr_mark_ref.
15732         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
15733         all callers changed.  Simplify using df_word_lr_mark_ref.
15734         * lower-subreg.c: Include "dce.h"
15735         (decompose_multiword_subregs): Call run_word_dce if df available.
15736         * Makefile.in (lower-subreg.o): Adjust dependencies.
15737         (df-byte-scan.o): Delete.
15738         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
15739
15740 2010-07-29  Richard Guenther  <rguenther@suse.de>
15741
15742         * tree.c (build_vector): Assert that the vector constant
15743         has enough elements.
15744         (build_vector_from_ctor): Pad with trailing zeros.
15745
15746 2010-07-29  Richard Guenther  <rguenther@suse.de>
15747
15748         PR tree-optimization/45120
15749         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15750         Handle offset in DEREFs properly.
15751         (get_constraint_for_1): Handle MEM_REF offset properly.
15752
15753 2010-07-29  Richard Guenther  <rguenther@suse.de>
15754
15755         PR middle-end/45034
15756         * convert.c (convert_to_integer): Always use an unsigned
15757         type for narrowed negate and bitwise not.
15758
15759 2010-07-29  Ira Rosen  <irar@il.ibm.com>
15760
15761         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
15762         to outer loop when creating reduction epilogue for double reduction,
15763         and switch back to the inner loop when updating the phi nodes.
15764         Update uses of outer loop exit phi nodes in double reduction (instead
15765         of uses of reduction).
15766
15767 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
15768
15769         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
15770         popcount on power7 and parity on power6 systems.
15771         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
15772         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
15773         instructions.
15774
15775         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
15776         (UNSPEC_PARITY): Ditto.
15777         (SFDF): New iterator for SF/DF.
15778         (rreg2): New mode attribute for floating register constraint.
15779         (TARGET_FLOAT): New mode attribute for whether single/double float
15780         is supported.
15781         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
15782         pattern.
15783         (parity<mode>2_cmpb): New insn for parity on power6 and newer
15784         machines.
15785         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
15786         pattern.  Add support for fcpsgn instruction added in power6.
15787         (copysignsf3): Delete.
15788         (copysigndf3): Delete.
15789         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
15790         instead of if_then_else in RTL to avoid problems with -0.
15791
15792         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
15793         of if_then_else to mirror scalar code.
15794         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
15795         rs6000.md.
15796
15797         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
15798         instead of if_then_else.
15799
15800 2010-07-28  Xinliang David Li  <davidxl@google.com>
15801
15802         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
15803         (dump_cand): Dump var_before/after.
15804         (htab_inv_expr_eq): New function.
15805         (htab_inv_expr_hash): New function.
15806         (tree_ssa_iv_optimize_init): Support pseudo invariants.
15807         (add_candidate_1): consider base type precision.
15808         (set_use_iv_cost): New parameter.
15809         (adjust_setup_cost): Use profile information.
15810         (get_address_cost): Do not hard code width in computing address
15811         offset limits.
15812         (compare_aff_trees): New function.
15813         (get_loop_invariant_expr_id): New function.
15814         (get_computation_cost_at): New parameter and use profile information.
15815         (get_computation_cost): New parameter.
15816         (determine_use_iv_cost_generic): Pass new parameter.
15817         (determine_use_iv_cost_address): Ditto.
15818         (determine_use_iv_cost_condition): Ditto.
15819         (autoinc_possible_for_pair): Ditto.
15820         (determine_use_iv_costs): More dumps.
15821         (iv_ca_get_num_inv_exprs): New function.
15822         (iv_ca_recount_cost): Consider loop invariants in register pressure
15823         cost.
15824         (iv_ca_add_use): New parameter.
15825         (iv_ca_dump): Better dumping.
15826         (iv_ca_extend): New parameter.
15827         (try_add_cand_for): Attempt to get better partial solution.
15828         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
15829         (create_new-ivs): More dumps.
15830         (rewrite_use_compare): Ditto.
15831         (free_loop_data): More cleanup.
15832         (treee_ssa_iv_optimize_finalize): Ditto.
15833
15834 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
15835
15836         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
15837         * config/i386/i386.c (ix86_profile_before_prologue): New.
15838         (override_options): Add special handling for -mfentry.
15839         (ix86_function_regparm): Likewise.
15840         (ix86_function_sseregparm): Likewise.
15841         (ix86_frame_pointer_required): Likewise.
15842         (ix86_expand_prologue): Check for ms_hook_prologue.
15843         (x86_function_profiler): Adjust mcount output.
15844         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
15845         * config/i386/i386.opt (mfentry): New.
15846         * doc/invoke.texi (mfentry): Add documentation.
15847         * doc/tm.texi: Regenerated..
15848         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
15849         * final.c (final_start_function): Replace macro
15850         PROFILE_BEFORE_PROLOGUE by target hook.
15851         * function.c (thread_prologue_and_epilogue_insns): Likewise.
15852         * target.def (profile_before_prologue): New hook.
15853         * targhooks.c (default_profile_before_prologue): New.
15854         * targhooks.h (default_profile_before_prologue): New.
15855
15856 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
15857
15858         PR debug/45105
15859         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
15860
15861         PR debug/45103
15862         * dwarf2out.c (dwarf2out_var_location): Always consider
15863         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
15864
15865 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15866
15867         PR rtl-optimization/45107
15868         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
15869
15870 2010-07-28  Richard Guenther  <rguenther@suse.de>
15871
15872         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
15873         (set_lattice_value): Do not query an old default value.
15874         (get_value_for_expr): New function.  Properly canonicalize
15875         float values.
15876         (ccp_visit_phi_node): Use it.
15877
15878 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
15879
15880         * config/arm/arm.c (arm_pcs_default): Remove static.
15881         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
15882         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
15883         (arm_pcs_default): Declare.
15884
15885 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
15886
15887         * config/rs6000/rs6000.c (rs6000_override_options):
15888         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
15889         ... to darwin_rs6000_override_options.
15890         (rs6000_return_in_memory): Update preceding comment for darwin
15891         64 bit ABI.  Use TARGET_MACHO inline.
15892         (rs6000_darwin64_struct_check_p): New.
15893         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
15894         (function_arg): Likewise.
15895         (rs6000_arg_partial_bytes): Likewise.
15896         (rs6000_function_value): Likewise.
15897
15898 2010-07-28  Andi Kleen  <ak@linux.intel.com>
15899
15900         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
15901
15902 2010-07-28  Richard Guenther  <rguenther@suse.de>
15903
15904         PR middle-end/44903
15905         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
15906         targets try harder to not generate unaligned accesses.
15907
15908 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15909
15910         PR rtl-optimization/45101
15911         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
15912         for gcse-las.
15913
15914 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
15915
15916         PR tree-optimization/44885
15917         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
15918         with non-aliased component.
15919
15920 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
15921
15922         * config/darwin-driver.c (SWITCH_TAKES_ARG,
15923         WORD_SWITCH_TAKES_ARG): Remove.
15924         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
15925         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
15926         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
15927         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
15928         definitions from gcc.c.
15929         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
15930         defaults.h.
15931         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
15932         Move to defaults.h.
15933         * opts-common.c: Include tm.h.
15934         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
15935         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
15936         Handle more than one argument.  Set canonical_option_num_elements.
15937         (decode_cmdline_options_to_array): Set
15938         canonical_option_num_elements and trailing elements of
15939         canonical_option.
15940         * opts.h (struct cl_decoded_option): Allow four elements in
15941         canonical_option.  Add field canonical_option_num_elements.
15942         * Makefile.in (opts-common.o): Update dependencies.
15943
15944 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
15945
15946         PR middle-end/44790
15947         PR middle-end/44993
15948         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
15949         sure the base has address_mode before adding the offset.
15950
15951 2010-07-27  Xinliang David Li  <davidxl@google.com>
15952
15953         * tree-flow.h (create_mem_ref): Add one new parameter.
15954         * tree-ssa-address.c (create_mem_ref): New parameter.
15955         (addr_to_parts): Ditto.
15956         (move_variant_to_index): New function.
15957         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
15958
15959 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15960
15961         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
15962         4 and 5.
15963         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
15964         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
15965         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
15966         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
15967         CODE_LABELs and NOTEs.
15968         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
15969         * combine.c (try_combine): Likewise.
15970         * ira.c (setup_prohibited_mode_move_regs): Likewise.
15971         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
15972
15973 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15974
15975         * coretypes.h (struct cl_option_handlers): Declare.
15976         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
15977         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
15978         * langhooks-def.h (lhd_handle_option): Declare.
15979         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
15980         * langhooks.c (lhd_handle_option): New.
15981         * langhooks.h (struct lang_hooks): Update prototype and return
15982         value type of handle_option hook.
15983         * optc-gen.awk: Generate target_flags_explicit definition for the
15984         driver.
15985         * opts-common.c: Include diagnostic.h.
15986         (handle_option): Move from opts.c.  Update prototype and return
15987         value type.  Use handlers structure.
15988         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
15989         handlers structure.
15990         (set_option): Move from opts.c.
15991         * opts.c (common_handle_option): Update prototype and return value
15992         type.  Update calls to handle_option and enable_warning_as_error.
15993         (unknown_option_callback, post_handling_callback,
15994         lang_handle_option, target_handle_option): New.
15995         (handle_option, read_cmdline_option): Move to opts-common.c.
15996         (read_cmdline_options): Update prototype.  Update call to
15997         read_cmdline_option.
15998         (decode_options): Initialize and use handlers structure.
15999         (set_option): Move to opts-common.c.
16000         (enable_warning_as_error): Update prototype.  Update call to
16001         handle_option.
16002         * opts.h (struct cl_option_handler_func, struct
16003         cl_option_handlers): New.
16004         (handle_option, enable_warning_as_error): Update prototypes.
16005         (read_cmdline_option): Declare.
16006         * Makefile.in (opts-common.o): Update dependencies.
16007
16008 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16009
16010         * config/arm/arm.c (params.h): Include.
16011         (arm_override_options): Tune gcse-unrestricted-cost.
16012         * config/arm/t-arm (arm.o): Define dependencies.
16013
16014 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16015
16016         PR target/42495
16017         PR middle-end/42574
16018         * basic-block.h (get_dominated_to_depth): Declare.
16019         * dominance.c (get_dominated_to_depth): New function, use
16020         get_all_dominated_blocks as a base.
16021         (get_all_dominated_blocks): Use get_dominated_to_depth.
16022
16023         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
16024         (hoist_exprs): Remove.
16025         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
16026         (compute_code_hoist_vbeinout): Add debug print outs.
16027         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
16028
16029         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
16030         quadratic behavior.
16031         * params.h (MAX_HOIST_DEPTH): New macro.
16032         * doc/invoke.texi (max-hoist-depth): Document.
16033
16034 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16035
16036         PR rtl-optimization/40956
16037         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
16038         constants.
16039
16040 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16041
16042         PR target/42495
16043         PR middle-end/42574
16044         * config/arm/arm.c (legitimize_pic_address): Use
16045         gen_calculate_pic_address pattern to emit calculation of PIC address.
16046         (will_be_in_index_register): New function.
16047         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
16048         (thumb1_legitimate_address_p): Use it provided !strict_p.
16049         * config/arm/arm.md (calculate_pic_address): New expand and split.
16050
16051 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16052
16053         PR target/42495
16054         PR middle-end/42574
16055         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
16056         * config/arm/arm.md (define_split "J", define_split "K"): Make
16057         IRA/reload friendly.
16058
16059 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16060
16061         * gcse.c (insert_insn_end_basic_block): Update signature, remove
16062         unused checks.
16063         (pre_edge_insert, hoist_code): Update.
16064
16065 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16066
16067         PR target/42495
16068         PR middle-end/42574
16069         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
16070
16071 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16072
16073         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
16074
16075 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16076
16077         PR rtl-optimization/40956
16078         PR target/42495
16079         PR middle-end/42574
16080         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
16081         for hoisting.
16082         (hoist_code): Count occurences in current block too.
16083
16084 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16085
16086         * gcse.c (struct expr:max_distance): New field.
16087         (doing_code_hoisting_p): New static variable.
16088         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
16089         simple expressions, don't change behavior for PRE.  Set max_distance.
16090         (insert_expr_in_table): Set new max_distance field.
16091         (hash_scan_set): Update.
16092         (hoist_expr_reaches_here_p): Stop search after max_distance
16093         instructions.
16094         (find_occr_in_bb): New static function.  Use it in ...
16095         (hoist_code): Calculate sizes of basic block before any changes are
16096         done.  Pass max_distance to hoist_expr_reaches_here_p.
16097         (one_code_hoisting_pass): Set doing_code_hoisting_p.
16098
16099         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
16100         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
16101         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
16102         macros.
16103         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
16104         Document.
16105
16106 2010-07-27  Jeff Law  <law@redhat.com>
16107             Maxim Kuvyrkov  <maxim@codesourcery.com>
16108
16109         * gcse.c (compute_transpout, transpout): Remove, move logic
16110         to prune_expressions.
16111         (compute_pre_data): Move pruning of trapping expressions ...
16112         (prune_expressions): ... here.  New static function.
16113         (compute_code_hoist_data): Use it.
16114         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
16115
16116 2010-07-27  Xinliang David Li  <davidxl@google.com>
16117
16118         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
16119         (rewrite_use_address): Adjust iv update position when needed.
16120
16121 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16122
16123         * dbgcnt.def (hoist_insn): New debug counter.
16124         * gcse.c (hoist_code): Use it.
16125
16126 2010-07-27  Xinliang David Li  <davidxl@google.com>
16127
16128         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
16129         (niter_for_single_dom_exit): Passes additional parameter.
16130         (iv_period): Fix comments.
16131         (may_eliminate_iv): Handles multiple exit loops properly.
16132         (free_tree_niter_desc): New function.
16133         (free_loop_data): Frees up loop iteration descriptors.
16134
16135 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16136
16137         PR target/44542
16138         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
16139         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
16140         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
16141         (expand_one_var): Don't consider DECL_ALIGN for variables for
16142         which expand_one_stack_var_at has been already called.
16143
16144         PR testsuite/44701
16145         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
16146         constraints on IA-64.
16147
16148 2010-07-27  Jie Zhang  <jie@codesourcery.com>
16149
16150         PR target/44290
16151         Revert:
16152         2010-07-23  Jie Zhang  <jie@codesourcery.com>
16153
16154         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16155         false if ! tree_versionable_function_p.
16156
16157 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16158
16159         * dwarf2out.c (add_data_member_location_attribute): Use
16160         add_AT_unsigned instead of add_AT_int if offset is non-negative.
16161
16162 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16163
16164         * postreload.c (try_replace_in_use): New static function.
16165         (reload_combine_recognize_const_pattern): Use it here.  Allow
16166         substituting into a final add insn, and substituting into a memory
16167         reference in an insn that sets the reg.
16168
16169 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16170
16171         * common.opt (o): Add MissingArgError.
16172         * doc/options.texi (MissingArgError): Document.
16173         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
16174         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
16175         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
16176         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
16177         * langhooks.h (struct lang_hooks): Remove missing_argument.
16178         * optc-gen.awk: Handle MissingArgError and output new structure
16179         field initializers.
16180         * opts.c (read_cmdline_option): Use missing_argument_error field
16181         instead of missing_argument langhook.
16182         * opts.h (struct cl_option): Add missing_argument_error field.
16183         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
16184
16185 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16186
16187         PR target/29090
16188         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
16189         Darwin64 ABI, for zero-sized objects.
16190
16191 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16192
16193         PR target/35491
16194         PR target/29090
16195
16196         Merge from Apple local 4.2.1.
16197         2005-05-11  Stan Shebs  <shebs@apple.com>
16198         Fix 64-bit varargs for Darwin (Radar 4028089).
16199         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
16200         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
16201         Add argument, add case for 8-byte register half-filled with a float.
16202         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
16203         single-precision floats specially.
16204
16205 2010-07-27  Ira Rosen  <irar@il.ibm.com>
16206
16207         PR tree-optimization/44152
16208         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
16209         complex numbers for further check.
16210         (vect_supported_load_permutation_p): Check nodes with
16211         complex numbers.
16212
16213 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16214
16215         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
16216         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
16217         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
16218         (LANG_HOOKS_INITIALIZER): Add new hooks.
16219         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
16220         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
16221         and complain_wrong_lang_p.  Update init_options prototype.
16222         * c-objc-common.c (c_initialize_diagnostics): First call
16223         c_common_initialize_diagnostics.
16224         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
16225         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
16226         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
16227         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
16228         (hook_uint_void_0): New.
16229         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
16230         (hook_uint_void_0): New.
16231         * opts-common.c (decode_cmdline_option,
16232         decode_cmdline_options_to_array): Also fill in canonical_option field.
16233         * opts.c (complain_wrong_lang): Use langhook to determine whether
16234         to complain instead of special-casing LTO.
16235         (decode_options): Separate lang_mask determination with
16236         option_lang_mask hook from call of init_options hook.
16237         * opts.h (struct cl_decoded_option): Add canonical_option.
16238
16239 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16240
16241         PR tree-optimization/45083
16242         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16243
16244 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16245
16246         * postreload.c (reload_combine_recognize_const_pattern): Move test
16247         for limiting the insn movement to the right scope.
16248
16249         PR rtl-optimization/45051
16250         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16251         than reg_mentioned_p.
16252
16253 2010-07-26  Richard Henderson  <rth@redhat.com>
16254
16255         PR target/44132
16256         * tree-emutls.c: New file.
16257         * Makefile.in (OBJS-common): Add it.
16258         * tree-pass.h (pass_ipa_lower_emutls): Declare.
16259         * passes.c (init_optimization_passes): Add it.
16260
16261         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
16262         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
16263         * expr.c (emutls_var_address): Delete.
16264         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
16265         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
16266         (emutls_finish): Delete.
16267         * toplev.c (compile_file): Don't call it.
16268         * tree.h (emutls_decl): Delete.
16269         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
16270         (emutls_finish, emutls_finalize_control_var): Delete.
16271         (emutls_object_type): Move to tree-emutls.c.
16272         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
16273         default_emutls_var_fields, get_emutls_object_type,
16274         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
16275         default_emutls_var_init): Likewise.
16276         (get_variable_section): Don't special case emutls.
16277         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
16278         default_elf_select_section, default_unique_section,
16279         default_encode_section_info): Likewise.
16280         * varpool.c (decide_is_variable_needed): Likewise.
16281         * gimple-iterator.c (update_call_edge_frequencies): New
16282         (gsi_insert_on_edge_immediate): Use it.
16283         (gsi_insert_seq_on_edge_immediate): Likewise.
16284         (gsi_commit_one_edge_insert): Likewise.
16285
16286         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
16287         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
16288         (x86_64_elf_unique_section): Likewise.
16289
16290 2010-07-26  Jan Hubicka  <jh@suse.cz>
16291
16292         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
16293         GTY((skip)).
16294
16295 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
16296
16297         * target.def (output_source_filename): New hook.
16298         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
16299         * doc/tm.texi: Regenerate.
16300         * toplev.c (output_file_directive) Remove function.
16301         * toplev.h (output_file_directive) Remove.
16302         * output.h (default_asm_output_source_filename,
16303         output_file_directive): Declare.
16304         * varasm.h (default_asm_output_source_filename,
16305         output_file_directive): New functions.
16306
16307         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16308         * config/mips/mips-protos.h (mips_output_filename): Remove.
16309         * config/mips/mips.c (mips_output_filename): Make Static.
16310         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16311
16312 2010-07-26  Richard Guenther  <rguenther@suse.de>
16313
16314         PR tree-optimization/43784
16315         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
16316         if the destination is used by the call.
16317
16318 2010-07-26  Richard Guenther  <rguenther@suse.de>
16319
16320         PR middle-end/45073
16321         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
16322         SSA updating on being in SSA form.
16323
16324 2010-07-26  Richard Guenther  <rguenther@suse.de>
16325
16326         PR middle-end/45056
16327         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
16328
16329 2010-07-26  Richard Guenther  <rguenther@suse.de>
16330
16331         PR tree-optimization/45071
16332         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
16333         adjust op->opcode.
16334
16335 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
16336
16337         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
16338         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
16339         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
16340         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
16341         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
16342         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
16343         save_r31, return_r31, save_interrupt, return_interrupt,
16344         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
16345         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
16346         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
16347         new ABI requirements.
16348         (save_r6_r9, L_callt_save_r6_r9): Remove.
16349         * config/v850/predicates.md (even_reg_operand, disp23_operand,
16350         const_float_1_operand const_float_0_operand): New Predicates.
16351         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
16352         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
16353         * config/v850/t-v850: Update multilibs for new target variants.
16354         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
16355         * config/v850/t-v850e: Likewise.
16356         * config/v850/v850.c (v850_issue_rate): New.
16357         (v850_strict_argument_naming): New.
16358         (function_arg): Modify to generate a different ABI.
16359         (print_operand): Update case 'z' to support float modes.
16360         (output_move_single): Modify to generate appropriate and better
16361         assembly.
16362         (v850_float_z_comparison_operator, v850_select_cc_mode,
16363         v850_float_nz_comparison_operator,  v850_gen_float_compare,
16364         v850_gen_compare): New functions to support comparison of float values.
16365         (ep_memory_offset): Add support for V850E2 targets.
16366         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
16367         (INTERRUPT_REGPARM_NUM): Remove.
16368         (compute_register_save_size): Add extra case to save/restore long call.
16369         (use_prolog_function): New function to support prologue.
16370         (expand_prologue): Add support for V850E2 targets and modified
16371         as per the current ABI requirements.
16372         (expand_epilogue): Likewise.
16373         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
16374         (construct_save_jarl): Likewise.
16375         (construct_dispose_instruction): Update as per the current ABI
16376         requirements.
16377         (construct_prepare_instruction): Likewise.
16378         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
16379         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
16380         (CPP_SPEC): Updated to support v850e2 targets.
16381         (STRICT_ALIGNMENT): Modified.
16382         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
16383         (FIXED_REGISTERS): Likewise.
16384         (CALL_USED_REGISTERS): Likewise.
16385         (CONDITIONAL_REGISTER_USAGE): Updated.
16386         (HARD_REGNO_MODE_OK): Updated.
16387         (reg_class): Updated to add even registers.
16388         (REG_CLASS_NAMES): Likewise.
16389         (REG_CLASS_CONTENTS): Likewise.
16390         (REGNO_REG_CLASS): Updated for CC registers.
16391         (REG_CLASS_FROM_LETTER): Added support for even registers.
16392         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
16393         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
16394         ARG_POINTER_REGNUM): Updated.
16395         (FUNCTION_ARG_ADVANCE): Define.
16396         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
16397         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
16398         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
16399         (GO_IF_LEGITIMATE_ADDRESS): Updated.
16400         (SELECT_CC_MODE): Define.
16401         (REGISTER_NAMES): Updated to add psw and fcc registers.
16402         (ADDITIONAL_REGISTER_NAMES): Updated.
16403         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
16404         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
16405         * config/v850/v850.md (define_constants): Define new constants.
16406         (type): Update store,bit1,macc,div,fpu and single attributes.
16407         (cpu): New attribute.
16408         (cc): Add set_z attribute.
16409         (unsign23byte_load, sign23byte_load, unsign23hword_load,
16410         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
16411         23word_store): New instructions for 23-bit displacement load and store.
16412         (movqi_internal, movhi_internal): Update the attributes.
16413         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
16414         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
16415         the attributes.
16416         (v850_tst1): Modified using CC_REGNUM.
16417         (tstsi): Remove.
16418         (cmpsi): Modified as define_expand from define_insn.
16419         (cmpsi_insn, cmpsf, cmpdf): New instructions.
16420         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
16421         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
16422         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
16423         one_cmplsi2): Clobber the CC_REGNUM register.
16424         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
16425         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
16426         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
16427         (setf_insn, set_z_insn, set_nz_insn): New instructions for
16428         v850e2v3 target.
16429         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
16430         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
16431         targets.
16432         (sasf_1, sasf_2): Remove.
16433         (sasf): New instruction.
16434         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
16435         targets. CC_REGNUM register is clobbered and attributes are
16436         updated.
16437         (branch_z_normal, branch_z_invert, branch_nz_normal,
16438         branch_nz_invert): New branch related instructions.
16439         (jump): Updated the attributes.
16440         (switch): Update to support new targets. CC_REGNUM register is
16441         clobbered and attributes are updated.
16442         (call_internal_short, call_internal_long, call_value_internal_short,
16443         call_value_internal_long): Updated the attributes.
16444         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
16445         clobbered and attributes are updated.
16446         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
16447         Update to support new targets. CC_REGNUM register is clobbered.
16448         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
16449         instructions.
16450         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
16451         are updated.
16452         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
16453         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
16454         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
16455         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
16456         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
16457         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
16458         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
16459         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
16460         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
16461         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
16462         point instructions defined for V850e2v3 target.
16463         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
16464         Add support for V850E2 targets and CC_REGNUM register is clobbered.
16465         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
16466         support for new targets.
16467         * config/v850/v850-modes.def: New file.
16468         * config/v850/v850.opt(mstrict-align): Remove.
16469         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
16470         mv850e2v3): New command line options for V850.
16471         * config.gcc: Update the newly added files.
16472         * doc/invoke.texi: Update the newly added command line options for
16473         V850 target.
16474
16475 2010-07-26  Richard Guenther  <rguenther@suse.de>
16476
16477         PR tree-optimization/45052
16478         * ipa-pure-const.c (check_stmt): Check volatileness.
16479
16480 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16481
16482         PR target/44707
16483         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
16484         * config/sparc/sparc.c: Include reload.h.
16485         (legitimize_tls_address): Rename into...
16486         (sparc_legitimize_tls_address): ...this.
16487         (legitimize_pic_address): Rename into...
16488         (sparc_legitimize_pic_address): ...this.
16489         (sparc_expand_move): Adjust to above renaming.
16490         (sparc_tls_referenced_p): Likewise.
16491         (sparc_legitimize_tls_address): Likewise.
16492         (sparc_legitimize_pic_address): Likewise.
16493         (sparc_legitimize_address): Likewise.
16494         (sparc_output_mi_thunk): Likewise.
16495         (sparc_legitimize_reload_address): New global function.  Recognize
16496         (lo_sum (high ...) ...) patterns generated by earlier passes.
16497         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
16498
16499 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16500
16501         PR target/44484
16502         * config/sparc/predicates.md (memory_reg_operand): Delete.
16503         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
16504         (*sync_compare_and_swap): Encode the address form in the pattern.
16505         (*sync_compare_and_swapdi_v8plus): Likewise.
16506
16507 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
16508
16509         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
16510         Streamline paragraph on compatibility with the system compiler.
16511
16512 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
16513
16514         PR middle-end/45035
16515         * alias.c (true_dependence_1): Fix thinko in merge of old
16516         true_dependence and canon_true_dependence.
16517
16518 2010-07-23  Jan Hubicka  <jh@suse.cz>
16519
16520         * lto-streamer-out.c (write_symbol): Fix visibilities of external
16521         references.
16522
16523 2010-07-23  Le-Chun Wu  <lcwu@google.com>
16524
16525         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
16526         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
16527         and an unnecessary assignment.
16528         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
16529         self-assign warning.
16530         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
16531         unnecessary self-init.
16532
16533 2010-07-23  Richard Guenther  <rguenther@suse.de>
16534
16535         PR lto/43071
16536         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
16537         for -flto and -fwhopr.
16538
16539 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
16540
16541         PR target/41943
16542         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
16543         (stmp-int-hdrs): Prefix/postfix headers by include_next.
16544         * config.gcc (user_headers_inc_next_pre): New.
16545         (user_headers_inc_next_post): Likewise.
16546         (*-w64-mingw*): Use for float.h post-fixing, and for
16547         stddef.h/stdarg.h pre-fixing by include_next.
16548         * configure.ac (user_headers_inc_next_post): New.
16549         (user_headers_inc_next_pre): New.
16550         * configure: Regenerated.
16551
16552 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16553
16554         * configure.ac: Don't disable TLS on Solaris 8/9 by default
16555         Set tga_func for Solaris 2/x86 resp. SPARC.
16556         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
16557         (LIB_THREAD_LDFLAGS_SPEC): Define.
16558         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
16559         * configure: Regenerate.
16560         * config.in: Regenerate.
16561         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
16562         -pthread, -threads, LIB_TLS_SPEC with -pthread.
16563         * doc/install.texi (Specific, *-*-solaris2*): Document use of
16564         alternate thread libraries on Solaris 8.
16565         Document TLS patch requirements.
16566         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
16567         Document tls.
16568
16569         PR target/18788
16570         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
16571         -shared.
16572
16573 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
16574
16575         * tree.h (struct tree_base): Add nameless_flag bitfield.
16576         (TYPE_NAMELESS, DECL_NAMELESS): Define.
16577         * omp-low.c (create_omp_child_function, scan_omp_parallel,
16578         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
16579         DECL_ARTIFICIAL where needed.
16580         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
16581         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
16582         has DECL_NAMELESS set.
16583
16584 2010-07-23  Martin Jambor  <mjambor@suse.cz>
16585
16586         PR tree-optimization/44915
16587         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
16588         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
16589         (analyze_function): Likewise.
16590
16591 2010-07-23  Martin Jambor  <mjambor@suse.cz>
16592
16593         PR tree-optimization/44914
16594         * tree-sra.c (sra_modify_function_body): Return true if CFG was
16595         changed, add purging dead eh edges.
16596         (ipa_sra_modify_function_body): Return true if CFG was changed,
16597         simplify purging dead eh edges.
16598         (modify_function): Return true if CFG was changed.
16599         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
16600         was changed.
16601         (ipa_early_sra): Likewise.
16602
16603 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16604
16605         PR target/44290
16606         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
16607         if "naked".
16608         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16609         false if ! tree_versionable_function_p.
16610
16611 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
16612
16613         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
16614         * ipa-pure-const.c (special_builtlin_state): Remove
16615         BUILT_IN_ARGS_INFO case.
16616         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
16617         * builtins.c (expand_builtin): Likewise.
16618         (expand_builtin_args_info): Remove.
16619         * doc/tm.texi (__builtin_args_info): Remove.
16620         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
16621         * doc/tm.text.in: Likewise.
16622
16623 2010-07-23  Richard Guenther  <rguenther@suse.de>
16624
16625         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
16626         (lto_symtab_merge_decls_2): Likewise.
16627         * tree-ssa.c (useless_type_conversion_p): Likewise.
16628         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16629         * gimple.c (gtc_visited2, gtc_ob2): Remove.
16630         (struct type_pair_d): Make same_p an array indexed by mode.
16631         Update comment.
16632         (lookup_type_pair): Update initialization.
16633         (struct sccs): Adjust same_p type.
16634         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
16635         Adjust.
16636         (print_gimple_types_stats): Likewise.
16637         * gimple.h (enum gtc_mode): New.
16638         (gimple_types_compatible_p): Adjust prototype.
16639
16640 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
16641
16642         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
16643         again after processing insn.
16644
16645 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16646
16647         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
16648         proper words when !tree_versionable_function_p.
16649
16650 2010-07-23  Richard Guenther  <rguenther@suse.de>
16651
16652         PR tree-optimization/45037
16653         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
16654
16655 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16656
16657         * doc/extend.texi: Remove IP2K from the description of naked attribute.
16658         Add MCORE instead.
16659
16660 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16661
16662         PR lto/44992
16663         * lto-opts.c (lto_write_options): Add NULL file_data argument to
16664         lto_get_section_name.
16665         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16666         * lto-streamer-out.c (produce_asm): Likewise.
16667         (copy_function): Likewise.
16668         (produce_symtab): Likewise.
16669         (produce_asm_for_decls): Likewise.
16670         * lto-streamer.c (lto_get_section_name): Add file_data argument.
16671         Rewrite to add random postfix to LTO sections.
16672         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
16673         (lto_get_section_name): Add file_data argument to prototype.
16674
16675 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16676
16677         * lto-section-in.c (lto_section_name): Synchronize names
16678         with lto_get_section_name.
16679
16680 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16681
16682         * lto-opts.c (lto_read_file_options): Check for missing section.
16683
16684 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16685
16686         * ira.c (check_allocation): Correctly handle the case where an allocno
16687         with two objects was allocated to a single reg.
16688
16689 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
16690
16691         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
16692         (is_widening_mult_p): Likewise.
16693         (convert_to_widen): Use them.
16694         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
16695         well as integer ones.
16696
16697 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
16698
16699         * alias.c (true_dependence_1): New function, merged version of
16700         true_dependence and canon_true_dependence.
16701         (true_dependence): Simplify.
16702         (canon_true_dependence): Simplify.
16703
16704 2010-07-22  Richard Henderson  <rth@redhat.com>
16705
16706         PR target/45027
16707         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
16708         of V4SFmode for the SSE saves; increase stack alignment if needed.
16709         (ix86_gimplify_va_arg): Don't increase stack alignment here.
16710
16711 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
16712
16713         PR bootstrap/45028
16714         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
16715         call cprop_find_used_regs again via note_uses.
16716
16717 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
16718
16719         * alias.c (get_alias_set): Fix formatting issues.
16720
16721 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
16722
16723         PR middle-end/44878
16724         * stmt.c (expand_value_return):  Call promote_function_mode with
16725         a for_return argument of 2 when returning by reference.
16726
16727 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
16728
16729         PR debug/45024
16730         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
16731         unit DIE if we can find the scope DIE.
16732
16733 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16734
16735         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
16736         changed.  Initialize OBJECT_SUBWORD.
16737         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
16738         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
16739         all callers changed.
16740         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
16741         (finish_allocno): Likewise.
16742         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
16743         (remove_low_level_allocnos): Likewise.
16744         (update_bad_spill_attribute): Likewise.
16745         (setup_min_max_allocno_live_range_point): Likewise.
16746         (sort_conflict_id_map): Likewise.
16747         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
16748         (ior_hard_reg_conflicts): New function.
16749         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
16750         (compress_conflict_vecs): Iterate over objects, not allocnos.
16751         (ira_add_live_range_to_object): New function.
16752         (object_range_compare_func): Renamed from allocno_range_compare_func.
16753         All callers changed.
16754         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
16755         subobjects, widen the min/max range of the lowest-order object to
16756         potentially include all other such low-order objects.
16757         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
16758         (check_allocation): Likewise.  Use more fine-grained tests for register
16759         conflicts.
16760         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
16761         allocno subobjects.
16762         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
16763         choices about which bits to set in each set.  Don't use
16764         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
16765         using the multiple sets we computed.
16766         (push_allocno_to_stack): Iterate over allocno subobjects.
16767         (all_conflicting_hard_regs_coalesced): New static function.
16768         (setup_allocno_available_regs_num): Use it.
16769         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
16770         subobjects.
16771         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
16772         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16773         by ALLOCNO_NUM_OBJECTS.
16774         (calculate_spill_cost): Likewise.
16775         (color_pass): Express if statement in a more normal way.
16776         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
16777         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
16778         (setup_slot_coalesced_allocno_live_ranges): Likewise.
16779         (allocno_reload_assign): Likewise.
16780         (ira_reassign_pseudos): Likewise.
16781         (fast_allocation): Likewise.
16782         * ira-conflicts.c (build_conflict_bit_table): Likewise.
16783         (print_allocno_conflicts): Likewise.
16784         (ira_build_conflicts): Likewise.
16785         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
16786         callers changed.  Test subword 0 of each allocno for conflicts.
16787         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
16788         callers changed.  Iterate over allocno subobjects.
16789         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
16790         * ira-int.h (struct ira_allocno): New member: num_objects.
16791         Rename object to objects and change it into an array.
16792         (ALLOCNO_OBJECT): Add new argument N.
16793         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
16794         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
16795         (ior_hard_reg_conflicts): Declare.
16796         (ira_add_live_range_to_object): Declare.
16797         (ira_allocno_object_iterator): New.
16798         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
16799         (FOR_EACH_ALLOCNO_OBJECT): New macro.
16800         * ira-lives.c (objects_live): Renamed from allocnos_live; all
16801         uses changed.
16802         (allocnos_processed): New sparseset.
16803         (make_object_born): Renamed from make_allocno_born; take an
16804         ira_object_t argument.  All callers changed.
16805         (make_object_dead): Renamed from make_allocno_dead; take an
16806         ira_object_t argument.  All callers changed.
16807         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
16808         All callers changed.
16809         (mark_pseudo_regno_live): Iterate over allocno subobjects.
16810         (mark_pseudo_regno_dead): Likewise.
16811         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
16812         functions.
16813         (mark_ref_live): Detect subword accesses and call
16814         mark_pseudo_regno_subword_live as appropriate.
16815         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
16816         (process_bb_nodes_live): Deal with object-related updates first; set
16817         and test bits in allocnos_processed to avoid computing allocno
16818         statistics more than once.
16819         (create_start_finish_chains): Iterate over objects, not allocnos.
16820         (print_object_live_ranges): New function.
16821         (print_allocno_live_ranges): Use it.
16822         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
16823         and objects_live.
16824
16825 2010-07-22  Richard Guenther  <rguenther@suse.de>
16826
16827         PR lto/42451
16828         * gimple.c (gtc_next_dfs_num): New global.
16829         (struct sccs): Make value a union, add integer same_p member.
16830         (gtc_visit): New function.
16831         (gimple_types_compatible_p_1): New function, split out from ...
16832         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
16833         (iterative_hash_gimple_type): Adjust for sccs change.
16834
16835 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16836
16837         PR tree-optimization/44891
16838         * tree-sra.c: Include gimple-pretty-print.h.
16839         (replace_uses_with_default_def_ssa_name): Renamed to
16840         get_repl_default_def_ssa_name, return the new SSA name instead of
16841         replacing the old one.
16842         (sra_modify_assign): Dump a message when removing a load, if the LHS
16843         is an SSA_NAME, do not do any propagation, just set the RHS to a
16844         default definition SSA NAME, type convert if necessary.
16845         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
16846
16847 2010-07-22  Richard Guenther  <rguenther@suse.de>
16848
16849         PR tree-optimization/45017
16850         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
16851         TYPE_PRECISION of integral types in addition to size.
16852
16853 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
16854
16855         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
16856         when no C library is specified.
16857
16858 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16859
16860         * ipa-prop.h (struct ipa_node_params): Updated comment.
16861         (struct ipa_edge_args): Likewise.
16862         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
16863
16864 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16865
16866         * cgraphunit.c (verify_edge_count_and_frequency): New function.
16867         (verify_cgraph_node): Verify frequencies of indirect edges.
16868         * tree-inline.c (tree_function_versioning): Update frequencies of
16869         indirect edges.
16870
16871 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16872
16873         PR target/43698
16874         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
16875         Set *arm_rev to be predicable.
16876
16877 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
16878
16879         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
16880         (LINK_COMMAND_SPEC_A): New.
16881         (DSYMUTIL): New.
16882         (DSYMUTIL_SPEC): New.
16883         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
16884         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
16885
16886 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
16887
16888         * calls.c (load_register_parameters): Move check for zero
16889         sized items so that only the call to
16890         mem_overlaps_already_clobbered_arg_p () is protected.
16891
16892 2010-07-22  Jan Hubicka  <jh@suse.cz>
16893
16894         * ipa-pure-const.c (varying_state): Break out from ...
16895         (get_function_state): ... here; always return varying_state
16896         when state would be NULL otherwise.
16897         (remove_node_data): Do not free varying state.
16898
16899 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16900
16901         PR bootstrap/44970
16902         PR middle-end/45009
16903         * postreload.c: Include "target.h".
16904         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
16905         into account.
16906         (fixup_debug_insns): Don't copy the rtx.
16907         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
16908         Don't copy when replacing.  Call fixup_debug_insns in the case where
16909         we merged one add with another.
16910         (reload_combine_recognize_pattern): Fail if there aren't any uses.
16911         Try harder to determine whether we're picking a valid index register.
16912         Don't set store_ruid for an insn we're going to scan in the
16913         next iteration.
16914         (reload_combine): Remove unused code.
16915         (reload_combine_note_use): When updating use information for
16916         an old insn, ignore a use that occurs after store_ruid.
16917         * Makefile.in (postreload.o): Update dependencies.
16918
16919         * function.c (record_hard_reg_sets): Restrict the previous change
16920         to cases where the incoming nominal mode is the same as the
16921         incoming promoted mode and everything happens in MODE_INT.
16922
16923 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16924
16925         PR debug/45015
16926         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
16927         ASM_OPERANDS_OUTPUT_IDX.
16928         (adjust_insn): For inline asm with multiple sets ensure first
16929         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
16930         the insn.
16931
16932 2010-07-21  Richard Henderson  <rth@redhat.com>
16933
16934         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
16935         comparison for avoiding xmm register saves.  Emit the xmm register
16936         saves explicitly.
16937         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
16938         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
16939         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
16940         Remove patterns and the associated splitters.
16941
16942 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
16943
16944         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
16945         and imagine parts of a complex, so that they can have the same
16946         base and fall into the same group.
16947
16948 2010-07-21  Richard Guenther  <rguenther@suse.de>
16949
16950         PR lto/45018
16951         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
16952         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
16953         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
16954
16955 2010-07-21  Martin Jambor  <mjambor@suse.cz>
16956
16957         PR tree-optimization/44900
16958         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
16959         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
16960
16961 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
16962
16963         PR middle-end/44738
16964         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
16965
16966 2010-07-21  Richard Guenther  <rguenther@suse.de>
16967
16968         PR middle-end/45013
16969         * tree-ssa.c (useless_type_conversion_p): Dispatch to
16970         gimple_types_compatible_p only when in lto.
16971         * gimple.c (gimple_types_compatible_p): Use canonical types
16972         to speed up comparison.
16973
16974 2010-07-21  Richard Guenther  <rguenther@suse.de>
16975
16976         * tree-flow.h (referenced_var): Move define ...
16977         * tree-flow-inline.h (referenced_var): ... here as an inline
16978         function.  Assert here ...
16979         * tree-dfa.c (referenced_var_lookup): ... instead of here.
16980         * tree-ssa.c (maybe_optimize_var): Check if the variable
16981         is in referenced vars.
16982         (execute_update_addresses_taken): Remove old broken check.
16983         * gimple-pretty-print.c (pp_points_to_solution): Use
16984         referenced_var_lookup.
16985         * tree-into-ssa.c (dump_decl_set): Likewise.
16986
16987 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16988
16989         PR debug/45003
16990         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
16991         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
16992         ZERO_EXTEND here.
16993
16994 2010-07-20  Richard Henderson  <rth@redhat.com>
16995
16996         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
16997
16998 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16999
17000         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
17001         computing the sum of the stack pointer and a large constant.
17002         * config/arm/constraints.md (M): Remove superfluous parentheses.
17003         (Pc): New constraint.
17004
17005 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17006
17007         PR debug/45006
17008         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
17009         operand's type if exp is tcc_unary class tree.
17010
17011 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17012
17013         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
17014         Reverse sense of if_then_else condition.
17015
17016 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17017
17018         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
17019         * config/rs6000/rs6000.c (rs6000_override_options): Set
17020         rs6000_block_move_inline_limit appropriately.
17021         (expand_block_move): Use rs6000_block_move_inline_limit.
17022         * doc/invoke.texi (mblock-move-inline-limit): Document.
17023
17024 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17025
17026         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
17027         FROM and TO.  All callers changed.  Don't look for tracked uses,
17028         just scan the RTL for DEBUG_INSNs and substitute.
17029         (reload_combine_recognize_pattern): Call fixup_debug_insns.
17030         (reload_combine): Ignore DEBUG_INSNs.
17031
17032 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17033
17034         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
17035         depth to 8 from 5.
17036
17037         PR debug/45003
17038         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
17039         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
17040         instead of the result's type.
17041
17042 2010-07-20  Richard Guenther  <rguenther@suse.de>
17043
17044         PR tree-optimization/44977
17045         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
17046         SSA form.
17047
17048 2010-07-20  Richard Guenther  <rguenther@suse.de>
17049
17050         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
17051         (lto_symtab_merge_decls_2): Likewise.
17052         * gimple.h (gimple_types_compatible_p): Declare.
17053         * gimple.c (gimple_queue_type_fixup): Remove.
17054         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
17055         (gimple_compatible_complete_and_incomplete_type_p): New function.
17056         (gimple_types_compatible_p): Adjust.
17057         (gimple_register_type): Remove type fixup code.
17058         (print_gimple_types_stats): Adjust.
17059         (free_gimple_type_tables): Likewise.
17060         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
17061         * tree-ssa.c (useless_type_conversion_p): Likewise.
17062
17063 2010-07-20  Richard Guenther  <rguenther@suse.de>
17064
17065         PR middle-end/44971
17066         PR middle-end/44988
17067         * tree-ssa.c (maybe_optimize_var): New function split out from ...
17068         (execute_update_addresses_taken): ... here.
17069         (non_rewritable_mem_ref_base): Likewise.
17070         (execute_update_addresses_taken): Do not iterate over all referenced
17071         vars but just all local decls and parms.
17072         Properly check call and asm arguments and rewrite call arguments.
17073
17074 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
17075
17076         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
17077         to top level.
17078         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
17079         definitions ...
17080         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
17081         New macro.
17082         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
17083
17084 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17085
17086         * gengtype.c (start_root_entry): New function, split out from
17087         write_root.  Check whether V is null and raise an error if so.
17088         (write_field_root): Check for V being null.  Don't raise an error here;
17089         set V to null instead.
17090         (write_root): Update comment above function.  Use start_root_entry.
17091
17092 2010-07-19  Xinliang David Li  <davidxl@google.com>
17093
17094         PR testsuite/44932
17095         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
17096         def edges.
17097         (find_uninit_use): Add dump.
17098         (is_use_properly_guarded): Ditto.
17099         (warn_uninitialized_phi): Ditto.
17100         (execute_late_warn_uninitialized): Ditto.
17101
17102 2010-07-19  Richard Guenther  <rguenther@suse.de>
17103
17104         PR middle-end/44941
17105         * expr.c (emit_block_move_hints): Move zero size check first.
17106         Move asserts to more useful places.
17107         * calls.c (load_register_parameters): Check for zero size.
17108
17109 2010-07-19  Richard Henderson  <rth@redhat.com>
17110
17111         * tree-optimize.c (execute_all_early_local_passes): New.  Change
17112         cgraph_state here ...
17113         (execute_early_local_optimizations): ... not here.  Remove.
17114         (pass_early_local_passes, pass_all_early_optimizations): Update.
17115
17116 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
17117
17118         * postreload.c (reload_combine_closest_single_use): Ignore the
17119         number of uses for DEBUG_INSNs.
17120         (fixup_debug_insns): New static function.
17121         (reload_combine_recognize_const_pattern): Use it.  Don't let the
17122         main loop be affected by DEBUG_INSNs.
17123         Really disallow moving adds past a jump insn.
17124         (reload_combine_recognize_pattern): Don't update use_ruid here.
17125         (reload_combine_note_use): Do it here.
17126         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
17127
17128 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
17129
17130         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
17131         of a loop.
17132         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
17133
17134 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
17135
17136         * config/i386/darwin.h: Define darwin_emit_branch_islands.
17137         (TARGET_MACHO_BRANCH_ISLANDS): New.
17138         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
17139         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
17140         default value.
17141         * config/i386/i386.c (output_pic_addr_const): Do not emit
17142         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
17143         (x86_output_mi_thunk): Adjust symbol creation.
17144         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
17145         Remove out of date comment.
17146         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
17147         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17148         (DARWIN_GENERATE_ISLANDS): Ditto.
17149         (output_call):  Do not emit branch islands unless
17150         darwin_emit_branch_islands is set.
17151         * config/darwin.c: Declare darwin_emit_branch_islands.
17152         (machopic_indirect_data_reference): Do not emit unless
17153         darwin_emit_branch_islands is set.
17154         (darwin_override_options): Set darwin_emit_branch_islands
17155         where it is needed.
17156         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17157
17158 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17159
17160         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17161         sse_runtime, sse2_runtime.
17162
17163 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
17164
17165         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
17166         low half of a single-register SCmode return value before ORing
17167         it with the high half.
17168         * config/mips/mips16.S (MERGE_GPRf): Likewise.
17169
17170 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17171
17172         PR target/44805
17173         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
17174         on all targets.
17175
17176 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
17177
17178         PR target/42235
17179         * postreload.c (reload_cse_move2add): Return bool, true if anything.
17180         changed.  All callers changed.
17181         (move2add_use_add2_insn): Likewise.
17182         (move2add_use_add3_insn): Likewise.
17183         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
17184         reload_combine.
17185         (RELOAD_COMBINE_MAX_USES): Bump to 16.
17186         (last_jump_ruid): New static variable.
17187         (struct reg_use): New members CONTAINING_MEM and RUID.
17188         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
17189         (reload_combine_split_one_ruid, reload_combine_split_ruids,
17190         reload_combine_purge_insn_uses, reload_combine_closest_single_use
17191         reload_combine_purge_reg_uses_after_ruid,
17192         reload_combine_recognize_const_pattern): New static functions.
17193         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
17194         is true for our reg and that we have available index regs.
17195         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
17196         callers changed.  Use them to initialize fields in struct reg_use.
17197         (reload_combine): Initialize last_jump_ruid.  Be careful when to
17198         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
17199         Call reload_combine_recognize_const_pattern.
17200         (reload_combine_note_store): Update REAL_STORE_RUID field.
17201
17202 2010-07-16  Jason Merrill  <jason@redhat.com>
17203
17204         * Makefile.in (opts-common.o): Depend on options.h.
17205
17206 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17207
17208         * tree.c (build_common_builtin_nodes): Use build_function_type_list
17209         instead of build_function_type.
17210         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
17211         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
17212
17213 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17214
17215         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
17216         do all the work.
17217         (rs6000_emit_int_cmove): Use function pointers for insn generation.
17218         Don't force values into registers unnecessarily.
17219         (output_isel): Assert that we're not given conditions we can't handle.
17220         Delete corresponding code.
17221         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
17222         scc_comparison_operator constraint.  Permit 0 for the consequent
17223         operand.  Permit any GPR for the alternative operand.
17224         (isel_unsigned_<mode>): Likewise.
17225
17226 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
17227
17228         PR target/44942
17229         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
17230         argument to const_tree.
17231         * config/i386/i386.c (function_arg_advance): If padding needs to be
17232         inserted before argument, increment cum->words by number of padding
17233         words as well.
17234         (contains_aligned_value_p): Change argument to const_tree.
17235         (ix86_function_arg_boundary): Change second argument to const_tree.
17236
17237 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
17238
17239         PR target/42235
17240         * function.c (record_hard_reg_sets): New static function.
17241         (assign_parm_setup_reg): If an optab for extending exists and the
17242         generated code clobbbers no hard regs, emit the insn directly and
17243         create a REG_EQUIV note.
17244
17245 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17246
17247         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17248         TREE_CHAIN.
17249         * c-typeck.c (push_init_level): Likewise.
17250         (process_init_element): Likewise.
17251
17252 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
17253
17254         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17255         (integer_three_node): Add.
17256         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17257         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17258         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17259         of call build_int_cst.
17260         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
17261         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
17262         (find_interesting_uses_address): Ditto.
17263         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
17264         * tree-eh.c (lower_eh_constructs_2): Ditto.
17265         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
17266         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
17267         * expmed.c (expand_divmod): Ditto.
17268         * tree-mudflap.c (mx_register_decls): Ditto.
17269         * varasm.c (array_size_for_constructor): Ditto.
17270         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
17271         * c-parser.c (c_parser_postfix_expression): Ditto.
17272
17273 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
17274
17275         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
17276         New static variables.
17277         (reload_combine_recognize_pattern): New static function, broken out
17278         of reload_combine.
17279         (reload_combine): Use it.  Only initialize first_index_reg and
17280         last_index_reg once.
17281
17282 2010-07-15  Richard Henderson  <rth@redhat.com>
17283
17284         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
17285         when done.
17286
17287 2010-07-15  Jan Hubicka  <jh@suse.cz>
17288
17289         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
17290         comdats for broken gold.
17291         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
17292
17293 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17294
17295         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
17296
17297 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17298
17299         * tree.h (DECL_CHAIN): Define.
17300         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
17301         * c-decl.c: Likewise.
17302         * c-parser.c: Likewise.
17303         * c-typeck.c: Likewise.
17304         * cfgexpand.c: Likewise.
17305         * cgraph.c: Likewise.
17306         * cgraphunit.c: Likewise.
17307         * combine.c: Likewise.
17308         * config/alpha/alpha.c: Likewise.
17309         * config/arm/arm.c: Likewise.
17310         * config/frv/frv.c: Likewise.
17311         * config/i386/i386.c: Likewise.
17312         * config/i386/winnt-cxx.c: Likewise.
17313         * config/ia64/ia64.c: Likewise.
17314         * config/iq2000/iq2000.c: Likewise.
17315         * config/mep/mep.c: Likewise.
17316         * config/mips/mips.c: Likewise.
17317         * config/pa/som.h: Likewise.
17318         * config/rs6000/rs6000.c: Likewise.
17319         * config/s390/s390.c: Likewise.
17320         * config/sh/sh.c: Likewise.
17321         * config/sh/symbian-cxx.c: Likewise.
17322         * config/sparc/sparc.c: Likewise.
17323         * config/spu/spu.c: Likewise.
17324         * config/stormy16/stormy16.c: Likewise.
17325         * config/vxworks.c: Likewise.
17326         * config/xtensa/xtensa.c: Likewise.
17327         * coverage.c: Likewise.
17328         * dbxout.c: Likewise.
17329         * dwarf2out.c: Likewise.
17330         * emit-rtl.c: Likewise.
17331         * expr.c: Likewise.
17332         * function.c: Likewise.
17333         * gimple-low.c: Likewise.
17334         * gimple-pretty-print.c: Likewise.
17335         * gimplify.c: Likewise.
17336         * integrate.c: Likewise.
17337         * ipa-inline.c: Likewise.
17338         * ipa-prop.c: Likewise.
17339         * ipa-split.c: Likewise.
17340         * ipa-struct-reorg.c: Likewise.
17341         * ipa-type-escape.c: Likewise.
17342         * langhooks.c: Likewise.
17343         * lto-cgraph.c: Likewise.
17344         * omp-low.c: Likewise.
17345         * stor-layout.c: Likewise.
17346         * tree-cfg.c: Likewise.
17347         * tree-complex.c: Likewise.
17348         * tree-dfa.c: Likewise.
17349         * tree-dump.c: Likewise.
17350         * tree-inline.c: Likewise.
17351         * tree-mudflap.c: Likewise.
17352         * tree-nested.c: Likewise.
17353         * tree-object-size.c: Likewise.
17354         * tree-pretty-print.c: Likewise.
17355         * tree-sra.c: Likewise.
17356         * tree-ssa-live.c: Likewise.
17357         * tree-ssa-loop-niter.c: Likewise.
17358         * tree-ssa-math-opts.c: Likewise.
17359         * tree-ssa-reassoc.c: Likewise.
17360         * tree-ssa-sccvn.c: Likewise.
17361         * tree-ssa-structalias.c: Likewise.
17362         * tree-tailcall.c: Likewise.
17363         * tree-vrp.c: Likewise.
17364         * tree.c: Likewise.
17365         * var-tracking.c: Likewise.
17366         * varasm.c: Likewise.
17367
17368 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17369
17370         PR target/44877
17371         * config/spu/spu.c (spu_expand_builtin_1): Allow references
17372         (as well as pointers) as argument to mask_for_load builtins.
17373
17374 2010-07-15  Richard Guenther  <rguenther@suse.de>
17375
17376         PR tree-optimization/44946
17377         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
17378         with accessing only padding properly.
17379
17380 2010-07-15  Jan Hubicka  <jh@suse.cz>
17381
17382         * ipa.c (function_and_variable_visibility): Variables marked as used
17383         should not be localized.
17384
17385 2010-07-15  Jan Hubicka  <jh@suse.cz>
17386
17387         * cgraph.c: Include lto-streamer.h
17388         (change_decl_assembler_name): Work when assembler name hash is at place.
17389         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
17390         be sure to rename it to avoid name clash.
17391         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
17392         Localize hidden symbols only when locally defined.
17393
17394 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
17395
17396         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
17397
17398 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
17399             Kevin F. Quinn  <kevquinn@gentoo.org>
17400
17401         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
17402         * common.opt: Add -Wtrampolines.
17403         * doc/invoke.texi: Add -Wtrampolines.
17404
17405 2010-07-15  Jie Zhang  <jie@codesourcery.com>
17406
17407         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
17408         cortex_a8_issue_ls.
17409
17410 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
17411
17412         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
17413         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
17414
17415 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17416
17417         * config/spu/spu.c (reg_names): Remove prototype.
17418         (call_used_regs): Likewise.
17419
17420 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
17421
17422         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
17423         "unused" with attribute "used".
17424         (__JCR_END__): Likewise.
17425         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
17426         "used" attribute.
17427         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
17428
17429 2010-07-14  Richard Guenther  <rguenther@suse.de>
17430
17431         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
17432         (maybe_fixup_decls): Likewise.
17433         (input_gimple_stmt): Do not fixup anything.
17434         * lto-streamer-out.c (output_gimple_stmt): Make sure all
17435         non-automatic variable uses are wrapped inside a MEM_REF.
17436
17437 2010-07-14  Richard Henderson  <rth@redhat.com>
17438
17439         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
17440         for functions.
17441         * varasm.c (assemble_variable): Remove early exit for functions;
17442         assert that we're given a variable.
17443
17444 2010-07-14  Jie Zhang  <jie@codesourcery.com>
17445
17446         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
17447         cortex_a8_default when neon_type is not none.
17448
17449 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17450
17451         * lower-subreg.c (subreg_context): New static bitmap.
17452         (decompose_multiword_subregs): Allocate and free it.
17453         (find_decomposable_subregs): Set a bit in it for a register that
17454         occurs in a subreg that changes mode but not size.
17455         (can_decompose_p): Test it instead of non_decomposable_context.
17456
17457 2010-07-14  Richard Guenther  <rguenther@suse.de>
17458
17459         PR tree-optimization/44824
17460         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
17461         is_gimple_mem_ref_addr.
17462         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
17463         non-decl_address_invariant_p addresses.
17464
17465 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17466
17467         * reload.c (find_reloads): Revert code to penalize small register
17468         classes that was brought in with the IRA merge.
17469
17470 2010-07-14  Richard Guenther  <rguenther@suse.de>
17471
17472         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
17473         as base of ARRAY_REFs.
17474
17475 2010-07-14  Richard Guenther  <rguenther@suse.de>
17476
17477         PR middle-end/44930
17478         * tree-pretty-print.c (do_niy): Do not print a newline.
17479
17480 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17481
17482         * ira-int.h (struct ira_object): New.
17483         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
17484         (struct ira_allocno): Remove members min, max,
17485         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
17486         conflict_allocnos_num and conflict_vec_p.  Add new member object.
17487         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
17488         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
17489         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
17490         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
17491         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
17492         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
17493         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
17494         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
17495         an ira_object_t rather than ira_allocno_t.  All uses changed.
17496         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17497         contains a vector of ira_object_t; all uses changed.
17498         (ira_objects_num): Declare variable.
17499         (ira_create_allocno_object): Declare function.
17500         (ira_conflict_vector_profitable_p): Adjust prototype.
17501         (ira_allocate_conflict_vec): Renamed from
17502         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
17503         (ira_allocate_object_conflicts): Renamed from
17504         ira_allocate_allocno_conflicts; first arg now ira_object_t.
17505         (struct ira_object_iterator): New.
17506         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
17507         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
17508         to conflict_vec_p.  All uses changed.
17509         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
17510         Changed to take into account that conflicts are now tracked for
17511         objects.
17512         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
17513         Args changed to accept ira_object_t.  All uses changed.
17514         (allocnos_conflict_p): New static function.
17515         (collected_conflict_objects): Renamed from collected_allocno_objects;
17516         now a vector of ira_object_t.  All uses changed.
17517         (build_conflict_bit_table): Changed to take into account that
17518         conflicts are now tracked for objects.
17519         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
17520         (print_allocno_conflicts, ira_build_conflicts): Likewise.
17521         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
17522         setup_allocno_left_conflicts_size, allocno_reload_assign,
17523         fast_allocation): Likewise.
17524         * ira-lives.c (make_hard_regno_born, make_allocno_born)
17525         process_single_reg_class_operands, process_bb_node_lives): Likewise.
17526         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
17527         Likewise.
17528         * ira-build.c (ira_objects_num): New variable.
17529         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17530         contains a vector of ira_object_t; all uses changed.
17531         (ira_object_id_map_vec): Corresponding change.
17532         (object_pool): New static variable.
17533         (initiate_allocnos): Initialize it.
17534         (finish_allocnos): Free it.
17535         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
17536         New functions.
17537         (ira_create_allocno): Don't set members that were removed.
17538         (ira_set_allocno_cover_class): Don't change conflict hard regs.
17539         (merge_hard_reg_conflicts): Changed to take into account that
17540         conflicts are now tracked for objects.
17541         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
17542         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
17543         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
17544         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
17545         setup_min_max_conflict_allocno_ids, ):  Likewise.
17546         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
17547         to ira_object_t; all callers changed.
17548         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
17549         to ira_object_t, all callers changed.
17550         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
17551         to ira_object_t, all callers changed.
17552         (conflict_check, curr_conflict_check_tick): Renamed from
17553         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
17554         changed.
17555         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
17556         arg changed to ira_object_t, all callers changed.
17557         (create_cap_allocno): Call ira_create_allocno_object.
17558         (finish_allocno): Free the corresponding object.
17559         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
17560         callers changed.  Adjusted for dealing with objects.
17561         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
17562         dealing with objects.
17563         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
17564
17565         * ira-int.h (struct live_range): Rename allocno member to object
17566         and change type to ira_object_t.
17567         (struct ira_object): New member live_ranges.
17568         (struct ira_allocno): Remove member live_ranges.
17569         (ALLOCNO_LIVE_RANGES): Remove.
17570         (OBJECT_LIVE_RANGES): New macro.
17571         (ira_create_live_range, ira_copy_live_range_list,
17572         ira_merge_live_range_list, ira_live_ranges_intersect_p,
17573         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
17574         * ira-build.c (ira_create_object): Initialize live ranges here.
17575         (ira_create_allocno): Not here.
17576         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
17577         changed to ira_object_t, all callers changed.
17578         (copy_live_range): Rename from copy_allocno_live_range, all callers
17579         changed.
17580         (ira_copy_live_range_list): Rename from
17581         ira_copy_allocno_live_range_list, all callers changed.
17582         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
17583         all callers changed.
17584         (ira_live_ranges_intersect_p): Rename from
17585         ira_allocno_live_ranges_intersect_p, all callers changed.
17586         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
17587         callers changed.
17588         (ira_finish_live_range_list): Rename from
17589         ira_finish_allocno_live_range_list, all callers changed.
17590         (change_object_in_range_list): Rename from change_allocno_in_range_list,
17591         last arg changed to ira_object_t, all callers changed.
17592         (finish_allocno): Changed to expect live ranges in the allocno's object.
17593         (move_allocno_live_ranges, copy_allocno_live_ranges,
17594         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
17595         ira_flattening, ira_build): Likewise.
17596         * ira-color.c (allocnos_have_intersected_live_ranges_p,
17597         slot_coalesced_allocno_live_ranges_intersect,
17598         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
17599         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17600         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
17601         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
17602         make_allocno_dead, create_start_finish_chains,
17603         remove_some_program_points_and_update_live_ranges,
17604         ira_debug_live_range_list): Likewise.
17605
17606         * ira-int.h (ira_object_conflict_iterator): Rename from
17607         ira_allocno_conflict_iterator.
17608         (ira_object_conflict_iter_init): Rename from
17609         ira_allocno_conflict_iter_init, second arg changed to
17610         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
17611         FOR_EACH_ALLOCNO_CONFLICT.
17612         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
17613         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
17614         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
17615         * ira-conflicts.c (print_allocno_conflicts): Likewise.
17616
17617 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
17618
17619         PR other/44874
17620         * tree-dump.c (dump_options): Add enumerate_locals entry.
17621         Add TDF_NOID exclusion to all entry.
17622         * tree-dump.h (dump_enumerated_decls): Declare.
17623         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
17624         Don't display type uid.
17625         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
17626         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
17627         * tree-ssa-live.c: Include gimple.h.
17628         (numbered_tree_d): New struct.
17629         (numbered_tree): New typedef.
17630         (DEF_VEC_O (numbered_tree): New.
17631         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
17632         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
17633         (dump_enumerated_decls): Likewise.
17634         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
17635         debug info and flag_dump_final_insns, call dump_enumerated_decls.
17636         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
17637         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
17638
17639 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
17640
17641         * expmed.h (MAX_BITS_PER_WORD): Move to...
17642         * defaults.h (MAX_BITS_PER_WORD): ...here.
17643
17644 2010-07-13  DJ Delorie  <dj@redhat.com>
17645
17646         * config/h8300/h8300.c (h8300_init_once): Default to
17647         -fstrict_volatile_bitfields.
17648
17649         * config/sh/sh.c (sh_override_options): Default to
17650         -fstrict_volatile_bitfields.
17651
17652         * config/rx/rx.c (rx_option_override): New.
17653
17654         * config/m32c/m32c.c (m32c_override_options): Default to
17655         -fstrict_volatile_bitfields.
17656
17657 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
17658
17659         * tree.h (build_function_call_expr): Delete.
17660         (build_call_expr_loc_array): New function.
17661         (build_call_expr_loc_vec): New function.
17662         * tree-flow.h (struct omp_region): Change type of ws_args field
17663         to a VEC.
17664         * builtins.c (build_function_call_expr): Delete.
17665         (build_call_expr_loc_array): New function.
17666         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
17667         (build_call_expr): Likewise.
17668         (build_call_expr_loc_vec): New function.
17669         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
17670         build_function_call_expr.
17671         * expr.c (emutls_var_address): Likewise.
17672         * varasm.c (emutls_common_1): Likewise.
17673         * omp-low.c (expand_omp_atomic_mutex): Likewise.
17674         (expand_omp_taskreg): Adjust for new type of region->ws_args.
17675         (get_ws_args_for): Return a VEC instead of a tree.
17676         (expand_parallel_call): Call build_call_expr_loc_vec instead of
17677         build_function_call_expr.
17678         * stor-layout.c (self_referential_size): Likewise.
17679
17680 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
17681
17682         PR testsuite/44701
17683         * recog.c (constrain_operands): Allow side-effects in memory
17684         operands if either < or > constraint is used, rather than if
17685         both < and > is used.
17686
17687 2010-07-13  Richard Guenther  <rguenther@suse.de>
17688
17689         PR middle-end/44911
17690         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
17691         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
17692         without name.
17693
17694 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
17695
17696         PR target/44761
17697         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
17698         to variable emited.
17699         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
17700         * config/sh/sh.md (symGOT_load): Likewise.
17701         (symDTPOFF2reg): Likewise.
17702         (symTPOFF2reg): Likewise.
17703
17704 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17705
17706         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
17707         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
17708
17709 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17710
17711         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
17712         explanation.
17713         Find ucontext_t * on Solaris 11.
17714         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
17715         Handle new Solaris 11 __sighndlr patterns.
17716
17717 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
17718
17719         PR debug/44901
17720         * vec.h (VEC_block_remove): Fix comment.
17721         * tree-ssa-live.c (remove_unused_locals): Don't use
17722         VEC_unordered_remove on local_decls, instead replace a single
17723         vector element in each iteration if at least one element had
17724         to be removed and VEC_truncate at the end.
17725         * omp-low.c (expand_omp_taskreg): Likewise.
17726
17727 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17728
17729         * c-decl.c (finish_function): Fix typo in comment.
17730
17731 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
17732
17733         PR bootstrap/44921
17734         * postreload.c (move2add_use_add3_insn): Silence gcc warning
17735         on min_regno.
17736
17737 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
17738
17739         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
17740         (simplify_stmt_using_ranges): Use it.
17741
17742 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17743
17744         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
17745         member.  Do not mark as GTY(()).
17746         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
17747         (spu_builtin_decls): New static variable.
17748         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
17749         (spu_init_builtins): Likewise.
17750         (spu_builtin_mul_widen_even): Likewise.
17751         (spu_builtin_mul_widen_odd): Likewise.
17752         (spu_builtin_mask_for_load): Likewise.
17753         (spu_builtin_vec_perm): Likewise.
17754         * config/spu/spu-c.c: Include "target.h".
17755         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
17756         of using spu_builtins[].fndecl.
17757
17758 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17759
17760         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
17761         imply -minterlink-mips16.
17762
17763 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17764
17765         * config/mips/mips.h (mips16_globals): Declare.
17766         (SWITCHABLE_TARGET): Define.
17767         * config/mips/mips.c: Include target-globals.h.
17768         (mips16_globals): New variable.
17769         (mips_set_mips16_mode): Use save_target_globals and
17770         restore_target_globals instead of target_reinit.
17771
17772 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17773
17774         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
17775         to say that the function can be called more than once.
17776         * target-globals.c (save_target_globals): Call init_reg_sets.
17777
17778 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17779
17780         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
17781         * bb-reorder.h: New file.
17782         * bb-reorder.c (default_target_bb_reorder): New variable.
17783         (this_target_bb_reorder): New conditional variable.
17784         (uncond_jump_length): Redefine as a macro.
17785         * target-globals.h (this_target_bb_reorder): Declare.
17786         (target_globals): Add a bb_reorder field.
17787         (restore_target_globals): Copy the bb_reorder field to
17788         this_target_bb-reorder.
17789         * target-globals.c: Include bb-reorder.h.
17790         (default_target_globals): Initialize the bb_reorder field.
17791         (save_target_globals): Likewise.
17792
17793 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17794
17795         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
17796         * gcse.h: New file.
17797         * gcse.c: Include gcse.h.
17798         (default_target_gcse): New variable.
17799         (this_target_gcse): New conditional variable.
17800         (can_copy): Redefine as a macro.
17801         (can_copy_init_p): New macro.
17802         (can_copy_p): Remove can_copy_init_p.
17803         * target-globals.h (this_target_gcse): Declare.
17804         (target_globals): Add a gcse field.
17805         (restore_target_globals): Copy the gcse field to this_target_gcse.
17806         * target-globals.c: Include gcse.h.
17807         (default_target_globals): Initialize the gcse field.
17808         (save_target_globals): Likewise.
17809
17810 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17811
17812         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
17813         and x_ira_prohibited_mode_move_regs_initialized_p.
17814         (ira_prohibited_mode_move_regs): Redefine as a macro.
17815         * ira.c (ira_prohibited_mode_move_regs): Delete.
17816         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
17817
17818 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17819
17820         * reload.h (target_reload): Add x_cached_reg_save_code and
17821         x_cached_reg_restore_code.
17822         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
17823         Redefine as macros.
17824
17825 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17826
17827         * Makefile.in (target-globals.o): Depend on builtins.h.
17828         * builtins.h: New file.
17829         * builtins.c: Include builtins.h.
17830         (default_target_builtins): New variable.
17831         (this_target_builtins): New conditional variable.
17832         (apply_args_mode, apply_result_mode): Redefine as macros.
17833         * target-globals.h (this_target_builtins): Declare.
17834         (target_globals): Add a builtins field.
17835         (restore_target_globals): Copy the builtins field to
17836         this_target_builtins.
17837         * target-globals.c: Include builtins.h.
17838         (default_target_globals): Initialize the builtins field.
17839         (save_target_globals): Likewise.
17840
17841 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17842
17843         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
17844         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
17845         from expmed.c.
17846         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
17847         (alg_hash, alg_hash_used_p): New macros.
17848         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
17849         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
17850         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
17851
17852 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17853
17854         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
17855         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
17856         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
17857         (this_op_costs, costs_classes): Redefine as macros.
17858         (record_reg_classes): Don't take op_costs as a parameter.
17859         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
17860         (scan_one_insn): Update call to record_operand_costs.
17861
17862 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17863
17864         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
17865         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
17866         (target_ira_int): New structure.
17867         (default_target_ira_int): Declare.
17868         (this_target_ira_int): Declare as a variable or define as a macro.
17869         (ira_reg_mode_hard_regset, ira_register_move_cost)
17870         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
17871         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
17872         (prohibited_class_mode_regs, ira_important_classes_num)
17873         (ira_important_classes, ira_reg_class_intersect)
17874         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
17875         (ira_reg_class_union): Redefine as macros.
17876         * ira.h (target_ira): New structure.
17877         (default_target_ira): Declare.
17878         (this_target_ira): Declare as a variable or define as a macro.
17879         (ira_available_class_regs, ira_hard_regno_cover_class)
17880         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
17881         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
17882         (ira_class_hard_regs_num): Redefine as macros.
17883         * ira.c (default_target_ira, default_target_ira_int): New variables.
17884         (this_target_ira, this_target_ira_int): New conditional variables.
17885         (ira_reg_mode_hard_regset, ira_memory_move_cost)
17886         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
17887         (ira_class_subset_p): Delete.
17888         (no_unit_alloc_regs): Redefine as a macro.
17889         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
17890         (ira_class_hard_regs_num, ira_class_hard_reg_index)
17891         (ira_available_class_regs): Delete.
17892         (alloc_reg_class_subclasses): Redefine as a macro.
17893         (ira_reg_class_cover_size, ira_reg_class_cover)
17894         (ira_important_classes_num, ira_important_classes)
17895         (ira_important_class_nums, ira_class_translate): Delete.
17896         (cover_class_order): Document the variable's lifetime.
17897         (reorder_important_classes): Don't set ira_important_class_nums.
17898         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
17899         (ira_reg_class_super_classes, ira_reg_class_union)
17900         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
17901         Delete.
17902         (setup_reg_class_nregs): Don't set ira_max_regs.
17903         (prohibited_class_mode_regs): Delete.
17904         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
17905         (target_globals): Add ira and ira_int fields.
17906         (restore_target_globals): Copy the ira field to this_target_ira
17907         and the ira_int field to this_target_ira_int.
17908         * target-globals.c: Include ira-int.h.
17909         (default_target_globals): Initialize the ira and ira_int fields.
17910         (save_target_globals): Likewise.
17911
17912 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17913
17914         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
17915         * cfgloop.h (target_cfgloop): New structure.
17916         (default_target_cfgloop): Declare.
17917         (this_target_cfgloop): Declare as a variable or define as a macro.
17918         (target_avail_regs, target_clobbered_regs, target_res_regs)
17919         (target_reg_cost, target_spill_cost): Redefine as macros.
17920         * cfgloopanal.c (default_target_cfgloop): New variable.
17921         (this_target_cfgloop): New conditional variable.
17922         (target_avail_regs, target_clobbered_regs, target_res_regs)
17923         (target_reg_cost, target_spill_cost): Delete.
17924         * target-globals.h (this_target_cfgloop): Declare.
17925         (target_globals): Add a cfgloop field.
17926         (restore_target_globals): Copy the cfgloop field to
17927         this_target_cfgloop.
17928         * target-globals.c: Include cfgloop.h.
17929         (default_target_globals): Initialize the cfgloop field.
17930         (save_target_globals): Likewise.
17931
17932 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17933
17934         * regs.h (target_regs): Add x_direct_load, x_direct_store and
17935         x_float_extend_from_mem.
17936         (direct_load, direct_store, float_extend_from_mem): New macros.
17937         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
17938
17939 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17940
17941         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
17942         (target-globals.o): Depend on $(LIBFUNCS_H).
17943         * libfuncs.h: Include hashtab.h.
17944         (libfunc_entry): Moved from optabs.c.
17945         (target_libfuncs): New structure.
17946         (default_target_libfuncs): Declare.
17947         (this_target_libfuncs): Declare as a variable or define as a macro.
17948         (libfunc_table): Redefine as a macro.
17949         * optabs.c (default_target_libfuncs): New variable.
17950         (this_target_libfuncs): New conditional variable.
17951         (libfunc_table): Delete.
17952         (libfunc_entry): Moved to optabs.h.
17953         (libfunc_hash): Redefine as a macro.
17954         (hash_libfunc, eq_libfunc): Fix comments.
17955         (init_optabs): Use libfunc_hash to detect cases where the function
17956         has already been called.  Clear the hash table instead of
17957         recreating it.
17958         * target-globals.h (this_target_libfuncs): Declare.
17959         (target_globals): Add a libfuncs field.
17960         (restore_target_globals): Copy the libfuncs field to
17961         this_target_libfuncs.
17962         * target-globals.c: Include libfuncs.h.
17963         (default_target_globals): Initialize the libfuncs field.
17964         (save_target_globals): Likewise.
17965
17966 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17967
17968         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
17969         in all dependency lists.
17970
17971 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17972
17973         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
17974         * optabs.h (target_optabs): New structure.
17975         (default_target_optabs): Declare.
17976         (this_target_optabs): Declare as a variable or define as a macro.
17977         (optab_table, convert_optab_table, direct_optab_table): Redefine
17978         as macros.
17979         * optabs.c (default_target_optabs): New variable.
17980         (this_target_optabs): New conditional variable.
17981         (optab_table, convert_optab_table, direct_optab_table): Delete.
17982         * target-globals.h (this_target_optabs): Declare.
17983         (target_globals): Add a optabs field.
17984         (restore_target_globals): Copy the optabs field to
17985         this_target_optabs.
17986         * target-globals.c: Include expr.h and optabs.h.
17987         (default_target_globals): Initialize the optabs field.
17988         (save_target_globals): Likewise.
17989
17990 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17991
17992         * flags.h (target_flagstate): Add x_flag_excess_precision.
17993         (flag_excess_precision): Redefine as a macro.
17994         * toplev.c (flag_excess_precision): Delete.
17995
17996 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17997
17998         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
17999         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
18000         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
18001         (no_caller_save_reg_set): Redefine as a macro.
18002         * reload.h (target_reload): Add x_caller_save_initialized_p and
18003         x_regno_save_mode.
18004         (caller_save_initialized_p): Redefine as a macro.
18005         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
18006         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
18007         (regno_save_mode): Redefine as a macro.
18008
18009 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18010
18011         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
18012         * expmed.h: New file.
18013         * expmed.c (default_target_costs): New variable.
18014         (this_target_costs): New conditional variable.
18015         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
18016         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
18017         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
18018         * target-globals.h (this_target_expmed): Declare.
18019         (target_globals): Add a expmed field.
18020         (restore_target_globals): Copy the expmed field to
18021         this_target_expmed.
18022         * target-globals.c: Include expmed.h.
18023         (default_target_globals): Initialize the expmed field.
18024         (save_target_globals): Likewise.
18025
18026 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18027
18028         * Makefile.in (target-globals.o): Depend on reload.h.
18029         * reload.h (target_reload): New structure.
18030         (default_target_reload): Declare.
18031         (this_target_reload): Declare as a variable or define as a macro.
18032         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
18033         * reload1.c (default_target_reload): New variable
18034         (this_target_reload): New conditional variable.
18035         (indirect_symref_ok, double_reg_address_ok): Delete.
18036         (spill_indirect_levels): Redefine as a macro.
18037         * target-globals.h (this_target_reload): Declare.
18038         (target_globals): Add a reload field.
18039         (restore_target_globals): Copy the reload field to
18040         this_target_reload.
18041         * target-globals.c: Include hard-reg-set.h.
18042         (default_target_globals): Initialize the reload field.
18043         (save_target_globals): Likewise.
18044
18045 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18046
18047         * rtl.h (target_rtl): Add x_static_reg_base_value.
18048         * alias.c (static_reg_base_value): Redefine as a macro.
18049
18050 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18051
18052         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
18053         (GTFILES): Remove reginfo.c.
18054         * rtl.h (target_rtl): Add x_top_of_stack.
18055         (top_of_stack): New macro.
18056         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
18057         (top_of_stack): Delete.
18058
18059 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18060
18061         * regs.h (target_regs): Add x_hard_regs_of_mode,
18062         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
18063         x_may_move_out_cost and x_last_mode_for_init_move_cost.
18064         (have_regs_of_mode, contains_reg_of_mode, move_cost)
18065         (may_move_in_cost, may_move_out_cost): Redefine as macros.
18066         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
18067         (may_move_in_cost, may_move_out_cost): Delete.
18068         (last_mode_for_init_move_cost): Redefine as a macro.
18069
18070 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18071
18072         * hard-reg-set.h (target_hard_regs): New structure.
18073         (default_target_hard_regs): Declare.
18074         (this_target_hard_regs): Declare as a variable or define as a macro.
18075         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
18076         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
18077         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
18078         (reg_class_size, reg_class_subclasses, reg_class_subunion)
18079         (reg_class_superunion, reg_names): Redefine as macros.
18080         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
18081         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
18082         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
18083         (reg_class_contents, reg_class_size, reg_class_subclasses)
18084         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
18085         (default_target_hard_regs): New variable
18086         (this_target_hard_regs, initial_call_really_used_regs)
18087         (initial_reg_alloc_order): New conditional variables.
18088         (initial_reg_names): New variable.
18089         (init_reg_sets): Assert that initial_call_really_used_regs,
18090         initial_reg_alloc_order and initial_reg_names
18091         are all the same size as their variable counterparts.  Use them to
18092         initialize those counterparts.
18093         * target-globals.h (this_target_hard_regs): Declare.
18094         (target_globals): Add a hard_regs field.
18095         (restore_target_globals): Copy the hard_regs field to
18096         this_target_hard_regs.
18097         * target-globals.c: Include hard-reg-set.h.
18098         (default_target_globals): Initialize the hard_regs field.
18099         (save_target_globals): Likewise.
18100
18101 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18102
18103         * Makefile.in (target-globals.o): Depend on $(RTL_H).
18104         * rtl.h (target_rtl): New structure.
18105         (default_target_rtl): Declare.
18106         (this_target_rtl): Declare as a variable or define as a macro.
18107         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
18108         Redefine as macros.
18109         * emit-rtl.c (default_target_rtl): New variable.
18110         (this_target_rtl): New conditional variable.
18111         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
18112         (return_address_pointer_rtx): Delete.
18113         (initial_regno_reg_rtx): New macro.
18114         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
18115         (init_emit_regs): Likewise.
18116         * target-globals.h (this_target_rtl): Declare.
18117         (target_globals): Add a rtl field.
18118         (restore_target_globals): Copy the rtl field to this_target_rtl.
18119         * target-globals.c: Include rtl.h.
18120         (default_target_globals): Initialize the rtl field.
18121         (save_target_globals): Likewise.
18122
18123 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18124
18125         * Makefile.in (target-globals.o): Depend on $(REGS_H).
18126         * regs.h (target_reg_modes): New structure.
18127         (default_target_reg_modes): Declare.
18128         (this_target_reg_modes): Declare as a variable or define as a macro.
18129         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
18130         * reginfo.c (default_target_reg_modes): New variable.
18131         (this_target_reg_modes): New conditional variable.
18132         (hard_regno_nregs, reg_raw_mode): Delete.
18133         * target-globals.h (this_target_regs): Declare.
18134         (target_globals): Add a regs field.
18135         (restore_target_globals): Copy the regs field to this_target_regs.
18136         * target-globals.c: Include regs.h.
18137         (default_target_globals): Initialize the regs field.
18138         (save_target_globals): Likewise.
18139
18140 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18141
18142         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
18143         * doc/tm.texi: Regenerate.
18144         * Makefile.in (OBJS-common): Add target-globals.o.
18145         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
18146         and target-globals.h.
18147         (target-globals.o): New rule.
18148         (GTFILES): Include $(srcdir)/target-globals.h.
18149         * defaults.h (SWITCHABLE_TARGET): Define.
18150         * gengtype.c (open_base_files): Add target-globals.h to the
18151         list of includes.
18152         * target-globals.h: New file.
18153         * target-globals.c: Likewise.
18154
18155         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
18156         * flags.h (target_flag_state): New structure.
18157         (default_target_flag_state): Declare.
18158         (this_target_flag_state): Declare as a variable or define as a macro.
18159         (align_loops_log): Redefine as a macro.
18160         (align_loops_max_skip, align_jumps_log): Likewise.
18161         (align_jumps_max_skip, align_labels_log): Likewise.
18162         (align_labels_max_skip, align_functions_log): Likewise.
18163         * toplev.c (default_target_flag_state): New variable.
18164         (this_target_flag_state): New conditional variable.
18165         (align_loops_log): Delete.
18166         (align_loops_max_skip, align_jumps_log): Likewise.
18167         (align_jumps_max_skip, align_labels_log): Likewise.
18168         (align_labels_max_skip, align_functions_log): Likewise.
18169         * target-globals.h (this_target_flag_state): Declare.
18170         (target_globals): Add a flag_state field.
18171         (restore_target_globals): Copy the flag_state field to
18172         this_target_flag_state.
18173         * target-globals.c: Include flags.h.
18174         (default_target_globals): Initialize the flag_state field.
18175         (save_target_globals): Likewise.
18176
18177 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18178
18179         * postreload.c (reg_symbol_ref[]): New.
18180         (move2add_use_add2_insn): New.
18181         (move2add_use_add3_insn): New.
18182         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
18183         (move2add_note_store): Likewise.
18184
18185 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
18186
18187         PR rtl-optimization/44752
18188         * genautomata.c (main): Don't emit an empty file even if there
18189         is no automaton.
18190
18191 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18192
18193         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
18194         ix86_solaris_return_in_memory.
18195         * config/i386-protos.h: Reflect this.
18196         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18197         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18198         Move ...
18199         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
18200
18201 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18202
18203         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
18204         align the stack when it's going to be saved.
18205
18206 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18207
18208         PR pch/14940
18209         * config/host-solaris.c (mmap_fixed): New function.
18210         (sol_gt_pch_get_address): Use it.
18211         (sol_gt_pch_use_address): Likewise.
18212
18213 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18214
18215         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18216         pentiumpro on Solaris 8 and 9/x86.
18217         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
18218         Document SSE/SSE2 support.
18219         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
18220
18221 2010-07-12  Andi Kleen  <ak@linux.intel.com>
18222
18223         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
18224         instead of gcc_assert to print better error message for multiple
18225         prevailing defs.
18226
18227 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
18228
18229         * config/i386/i386.c (ix86_asm_output_function_label): Change format
18230         string placeholder from 0x%x to %#x.
18231         (ix86_code_end): Use putc to output '\n'.
18232         (ix86_print_operand) <case ';'>: Use putc to output ';'.
18233
18234 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
18235
18236         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
18237         in directive -export.
18238
18239 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
18240
18241         * reginfo.h (reg_classes_intersect_p): Change arguments type to
18242         reg_class_t.
18243         * rtl.h (reg_classes_intersect_p): Adjust prototype.
18244
18245         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18246         Remove macros.
18247         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18248         rs6000_memory_move_cost): Remove
18249         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18250         TARGET_MEMORY_MOVE_COST): Define.
18251         (rs6000_register_move_cost): Make static. Change arguments type from
18252         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18253         (rs6000_memory_move_cost): Make static. Change arguments type from
18254         'enum reg_class' to reg_class_t.
18255
18256 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
18257
18258         PR middle-end/42505
18259         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18260         lookup code into....
18261         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
18262         new functions.
18263         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
18264         * cfgloopanal.c (target_clobbered_regs): Define.
18265         (init_set_costs): Initialize target_clobbered_regs.
18266         (estimate_reg_pressure_cost): Add call_p argument.  When true,
18267         adjust the number of available registers to exclude the
18268         call-clobbered registers.
18269         * cfgloop.h (target_clobbered_regs): Declare.
18270         (estimate_reg_pressure_cost): Adjust declaration.
18271         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
18272         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
18273         (determine_set_costs): Dump target_clobbered_regs.
18274         (loop_body_includes_call): New function.
18275         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
18276         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
18277         call_p flag through.
18278         (best_gain_for_invariant): Likewise.
18279         (find_invariants_to_move): Likewise.
18280         (move_single_loop_invariants): Likewise, using already-computed
18281         has_call field.
18282
18283 2010-07-10  Richard Guenther  <rguenther@suse.de>
18284             Joern Rennecke  <joern.rennecke@embecosm.com>
18285
18286         PR debug/44832
18287         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
18288         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
18289         unless they have DECL_IGNORED_P set.
18290
18291 2010-07-10  Richard Guenther  <rguenther@suse.de>
18292
18293         PR lto/44889
18294         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
18295         helper function.
18296         (gimple_types_compatible_p): Similar to pointed-to
18297         types allow and merge a mix of complete and incomplete aggregate.
18298         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
18299         (iterative_hash_gimple_type): Adjust for that.
18300
18301 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
18302
18303         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
18304
18305 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
18306
18307         PR objc/44140
18308         * config/darwin.c (output_objc_section_asm_op): Save and restore
18309         section when outputting ObjC section list.
18310
18311 2010-07-09  Jan Hubicka  <jh@suse.cz>
18312
18313         * lto-streamer-out.c (produce_symtab): Do not write alias
18314         cgraph/varpool nodes.
18315
18316 2010-07-09  Jan Hubicka  <jh@suse.cz>
18317
18318         * tree-inline.c (declare_return_variable): Fix ICE while
18319         inlining DECL_BY_VALUE function not in SSA form
18320
18321 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
18322
18323         PR tree-optimization/44576
18324         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
18325         New.  Pull out from is_loop_prefetching_profitable to implement
18326         the trip count to ahead ratio heuristic.
18327         (mem_ref_count_reasonable_p): New.  Pull out from
18328         is_loop_prefetching_profitable to implement the instruction to
18329         memory reference ratio heuristic.  Also consider not reasonable if
18330         the memory reference count is above a threshold (to avoid
18331         explosive compilation time.
18332         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
18333         is_loop_prefetching_profitable to implement the instruction to
18334         prefetch ratio heuristic.
18335         (is_loop_prefetching_profitable): Removed.
18336         (loop_prefetch_arrays): Distribute the cost analysis across the
18337         function to allow early exit of the prefetch analysis.
18338         is_loop_prefetching_profitable is splitted into three functions,
18339         with each one called as early as possible.
18340         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
18341         number of memory references in a loop is considered too many.
18342
18343 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18344
18345         * reload.c (find_reloads): Don't clear badop if we have a winreg
18346         alternative, but not win, and the class only has fixed regs.
18347         * hard-reg-set.h (class_only_fixed_regs): Declare.
18348         * reginfo.c (class_only_fixed_regs): New array.
18349         (init_reg_sets_1): Initialize it.
18350         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
18351         discourage alternatives using the stack pointer.
18352
18353         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
18354
18355         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
18356
18357         * config/arm/arm.md (cbranchqi4): Fix array size.
18358         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
18359         calculating length.
18360
18361 2010-07-09  Richard Guenther  <rguenther@suse.de>
18362
18363         * gimple.c (struct type_fixup_s): New struct and VEC type.
18364         (gimple_register_type_fixups): New static global.
18365         (gimple_queue_type_fixup): New function.
18366         (gimple_types_compatible_p): Queue type fixups instead of
18367         applying them here.
18368         (gimple_register_type): Apply queued fixups for the
18369         canonical type.  Empty the type fixup queue.
18370
18371 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18372
18373         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
18374         * configure: Regenerate.
18375         * config.in: Ditto.
18376
18377 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18378             Denys Vlasenko  <dvlasenk@redhat.com>
18379             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18380
18381         PR tree-optimization/28632
18382         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
18383         (extract_range_from_binary_expr): Further optimize
18384         BIT_AND_EXPR and BIT_IOR_EXPR.
18385
18386 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
18387
18388         * tree-if-conv.c (fold_or_predicates): New.
18389         (add_to_predicate_list): Call it.
18390
18391 2010-07-09  Richard Guenther  <rguenther@suse.de>
18392
18393         PR middle-end/44890
18394         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
18395         if base is a pointer.
18396         * tree-cfg.c (verify_expr): Update MEM_REF checking.
18397
18398 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18399
18400         PR target/44877
18401         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
18402         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
18403         builtin mask for load/store builtins.
18404
18405 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18406
18407         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
18408         for "lock addl".
18409         * configure: Regenerate.
18410         * config/i386/i386.c (ix86_print_operand) <case ';'>:
18411         Remove TARGET_MACHO.
18412
18413 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
18414
18415         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
18416         default ISA flags.
18417         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
18418
18419 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
18420
18421         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
18422
18423 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
18424
18425         * config/picochip/picochip.md (commsTestPort): Emit more
18426         efficient sequence for tstport instruction.
18427
18428 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18429
18430         * config/i386/i386.c (ix86_veclib_handler): Make static.
18431
18432 2010-07-09  Richard Guenther  <rguenther@suse.de>
18433
18434         PR tree-optimization/44852
18435         * tree-ssa-alias.c: Include toplev.h for exact_log2.
18436         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
18437         in MEM_REF.
18438         (indirect_refs_may_alias_p): Likewise.
18439         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
18440
18441 2010-07-09  Richard Guenther  <rguenther@suse.de>
18442
18443         PR tree-optimization/44882
18444         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
18445         sets do conflict.
18446         (vectorizable_load): Likewise.
18447
18448 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18449
18450         PR target/40657
18451         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
18452         All callers changed.
18453         Handle the case when we're called for the epilogue.
18454         (thumb_unexpanded_epilogue): Use it.
18455         (thumb1_expand_epilogue): Likewise.
18456
18457 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18458
18459         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
18460         both ranges are range_int_cst_p with non-negative minimum,
18461         try harder to derive smaller range.
18462
18463 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18464
18465         * genrecog.c: Include diagnostic-core.h before toplev.h.
18466         * genoutput.c: Likewise.
18467         * genextract.c: Likewise.
18468         * genautomata.c: Likewise.
18469         * genemit.c: Likewise.
18470         * genpeep.c: Likewise.
18471         * genattrtab.c: Likewise.
18472         * genconditions.c: Likewise.
18473         * genpreds.c: Likewise.
18474
18475 2010-07-08  Andi Kleen  <ak@linux.intel.com>
18476
18477         * lto-section-in.c (lto_section_name): Add missing comma.
18478
18479 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
18480
18481         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
18482         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
18483         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
18484         (ia64_override_options): Rename to...
18485         (ia64_option_override): ... this one. Make static.
18486
18487 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18488
18489         PR middle-end/44843
18490         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
18491         pointed-to type of the offset in a MEM_REF to compute the alignment.
18492
18493 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
18494
18495         * final.c (final_scan_insn): Replace
18496         TARGET_UNWIND_INFO macro check by unwind_emit
18497         hook NULL check.
18498         * targhooks.c (default_unwind_emit): Removed.
18499         * targhooks.h (default_unwind_emit): Likewise.
18500         * target.def (unwind_emit): Set default value to NULL.
18501
18502         * config/i386/i386-protos.h (ix86_asm_output_function_label):
18503         New prototype.
18504         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
18505         for NULL fntype argument and allow 64-bit targets.
18506         (ix86_asm_output_function_label): New function.
18507         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
18508         (ix86_handle_fndecl_attribute): Likewise.
18509         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
18510         * doc/doc/tm.texi: Regenerated.
18511         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
18512         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
18513         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
18514         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
18515         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18516         * config/elfos.h: Likewise.
18517         * config/i386/cygming.h: Likewise.
18518         * config/netbsd-aout.h: Likewise.
18519         * config/openbsd.h: Likewise.
18520         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
18521         by ix86_asm_output_function_label function call.
18522         * varasm.c (assemble_start_function): Use
18523         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18524
18525 2010-07-08  Jan Hubicka  <jh@suse.cz>
18526
18527         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
18528         New function.
18529         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
18530         Declare.
18531         * ipa-cp.c (ipcp_estimate_growth): Use it.
18532         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
18533         Likewise.
18534
18535 2010-07-08  Jan Hubicka  <jh@suse.cz>
18536
18537         * tree-inline.c (declare_return_variable): Allocate annotation for new
18538         temporary.
18539
18540 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18541
18542         PR tree-optimization/44710
18543         * tree-if-conv.c (parse_predicate): New.
18544         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
18545         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
18546
18547 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18548
18549         * common.opt (ftree-loop-if-convert): New flag.
18550         * doc/invoke.texi (ftree-loop-if-convert): Documented.
18551         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
18552         when flag_tree_loop_if_convert is set.
18553
18554 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
18555
18556         * config/i386/i386.c: Use short syntax for function calls
18557         through function pointers.
18558         * config/i386/i386.md: Ditto.
18559
18560 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18561
18562         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
18563
18564 2010-07-08  Richard Guenther  <rguenther@suse.de>
18565
18566         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
18567         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
18568
18569 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
18570
18571         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
18572         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
18573         (loc_list_from_tree): Likewise.
18574         (output_loc_operands): Handle outputting DW_OP_const[48]u
18575         with loc->dtprel set.
18576         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
18577
18578 2010-07-08  Jan Hubicka  <jh@suse.cz>
18579
18580         * ipa.c: Include pointer-set.h
18581         (cgraph_externally_visible_p): New attribute ALIASED;
18582         when in LTO, hidden symbols are local unless they are aliased.
18583         (function_and_variable_visibility): Compute aliased nodes;
18584         handle LTO and hidden symbol on functions and vars.
18585         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
18586         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
18587
18588 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18589
18590         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18591         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18592         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18593         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18594         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18595         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
18596         (ix86_gen_probe_stack_range): Likewise.
18597         (override_options): Set them.
18598         (ix86_target_stack_probe): New function.
18599         (ix86_compute_frame_layout): Force use of push instructions to
18600         save registers if stack checking with probes is enabled.
18601         (get_scratch_register_on_entry): New function.
18602         (release_scratch_register_on_entry): Likewise.
18603         (ix86_adjust_stack_and_probe): Likewise.
18604         (output_adjust_stack_and_probe): Likewise.
18605         (ix86_emit_probe_stack_range): Likewise.
18606         (output_probe_stack_range): Likewise.
18607         (ix86_expand_prologue): Emit stack checking code if static built-in
18608         stack checking is enabled.
18609         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
18610         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
18611         (output_adjust_stack_and_probe): Likewise.
18612         (output_probe_stack_range): Likewise.
18613         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18614         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
18615         TARGET_STACK_PROBE.
18616         (allocate_stack_worker_64): Likewise.
18617         (allocate_stack): Likewise.
18618         (adjust_stack_and_probe): New insn.
18619         (probe_stack_range): Likewise.
18620
18621 2010-07-08  Richard Guenther  <rguenther@suse.de>
18622
18623         PR tree-optimization/44831
18624         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
18625         a MEM_REF preserving TBAA info of the original dereference.
18626         Dereference the original pointer if the address is not invariant.
18627         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
18628         at least one invariant address that we are going to dereference.
18629
18630 2010-07-08  Richard Guenther  <rguenther@suse.de>
18631
18632         PR tree-optimization/44861
18633         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
18634         information when building MEM_REFs.
18635         (vectorizable_load): Likewise.
18636         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
18637
18638 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18639
18640         * config/sol2-c.c: Do not include diagnostic-core.h.
18641
18642 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18643
18644         PR bootstrap/44768
18645         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
18646         with respect to current_function_decl. Pass decl of the function.
18647         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
18648         * ipa-inline.c (compute_inline_parameters): Pass decl to
18649         estimated_stack_frame_size.
18650
18651 2010-07-08  Richard Guenther  <rguenther@suse.de>
18652
18653         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
18654         New function.
18655         (valueize_refs): Call it.
18656
18657 2010-07-08  Richard Guenther  <rguenther@suse.de>
18658
18659         PR rtl-optimization/44838
18660         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
18661         SSA form do not use pointer equivalence.
18662
18663 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18664
18665         * dwarf2out.c (AT_linkage_name): Delete.
18666         (add_linkage_attr): New function.
18667         (add_linkage_name): Call it to emit the linkage attribute.
18668         (dwarf2out_finish): Likewise.
18669         (move_linkage_attr): Explicitly accept both attribute variants.
18670
18671 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18672
18673         * toplev.h: Do not include diagnostic-core.h.
18674         Include diagnostic-core.h in every file that includes toplev.h.
18675         * c-tree.h: Do not include toplev.h.
18676         * pretty-print.h: Update comment.
18677         * Makefile.in: Update dependencies.
18678         * alias.c: Include diagnostic-core.h in every file that includes
18679         toplev.h.
18680         * attribs.c: Likewise.
18681         * auto-inc-dec.c: Likewise.
18682         * bb-reorder.c: Likewise.
18683         * bt-load.c: Likewise.
18684         * caller-save.c: Likewise.
18685         * calls.c: Likewise.
18686         * cfg.c: Likewise.
18687         * cfganal.c: Likewise.
18688         * cfgbuild.c: Likewise.
18689         * cfgcleanup.c: Likewise.
18690         * cfghooks.c: Likewise.
18691         * cfgloop.c: Likewise.
18692         * combine.c: Likewise.
18693         * config/alpha/alpha.c: Likewise.
18694         * config/arc/arc.c: Likewise.
18695         * config/arm/arm.c: Likewise.
18696         * config/arm/pe.c: Likewise.
18697         * config/avr/avr.c: Likewise.
18698         * config/bfin/bfin.c: Likewise.
18699         * config/cris/cris.c: Likewise.
18700         * config/crx/crx.c: Likewise.
18701         * config/darwin-c.c: Likewise.
18702         * config/darwin.c: Likewise.
18703         * config/fr30/fr30.c: Likewise.
18704         * config/frv/frv.c: Likewise.
18705         * config/h8300/h8300.c: Likewise.
18706         * config/host-darwin.c: Likewise.
18707         * config/i386/i386.c: Likewise.
18708         * config/i386/netware.c: Likewise.
18709         * config/i386/nwld.c: Likewise.
18710         * config/i386/winnt-cxx.c: Likewise.
18711         * config/i386/winnt-stubs.c: Likewise.
18712         * config/i386/winnt.c: Likewise.
18713         * config/ia64/ia64-c.c: Likewise.
18714         * config/ia64/ia64.c: Likewise.
18715         * config/iq2000/iq2000.c: Likewise.
18716         * config/lm32/lm32.c: Likewise.
18717         * config/m32c/m32c-pragma.c: Likewise.
18718         * config/m32c/m32c.c: Likewise.
18719         * config/m32r/m32r.c: Likewise.
18720         * config/m68hc11/m68hc11.c: Likewise.
18721         * config/m68k/m68k.c: Likewise.
18722         * config/mcore/mcore.c: Likewise.
18723         * config/mep/mep-pragma.c: Likewise.
18724         * config/mep/mep.c: Likewise.
18725         * config/mmix/mmix.c: Likewise.
18726         * config/mn10300/mn10300.c: Likewise.
18727         * config/moxie/moxie.c: Likewise.
18728         * config/pa/pa.c: Likewise.
18729         * config/pdp11/pdp11.c: Likewise.
18730         * config/picochip/picochip.c: Likewise.
18731         * config/rs6000/rs6000-c.c: Likewise.
18732         * config/rs6000/rs6000.c: Likewise.
18733         * config/rx/rx.c: Likewise.
18734         * config/s390/s390.c: Likewise.
18735         * config/score/score.c: Likewise.
18736         * config/score/score3.c: Likewise.
18737         * config/score/score7.c: Likewise.
18738         * config/sh/sh.c: Likewise.
18739         * config/sh/symbian-base.c: Likewise.
18740         * config/sh/symbian-c.c: Likewise.
18741         * config/sh/symbian-cxx.c: Likewise.
18742         * config/sol2-c.c: Likewise.
18743         * config/sol2.c: Likewise.
18744         * config/sparc/sparc.c: Likewise.
18745         * config/spu/spu.c: Likewise.
18746         * config/stormy16/stormy16.c: Likewise.
18747         * config/v850/v850-c.c: Likewise.
18748         * config/v850/v850.c: Likewise.
18749         * config/vax/vax.c: Likewise.
18750         * config/vxworks.c: Likewise.
18751         * config/xtensa/xtensa.c: Likewise.
18752         * convert.c: Likewise.
18753         * cse.c: Likewise.
18754         * cselib.c: Likewise.
18755         * dbgcnt.c: Likewise.
18756         * dbxout.c: Likewise.
18757         * ddg.c: Likewise.
18758         * dominance.c: Likewise.
18759         * emit-rtl.c: Likewise.
18760         * explow.c: Likewise.
18761         * expmed.c: Likewise.
18762         * fixed-value.c: Likewise.
18763         * fold-const.c: Likewise.
18764         * fwprop.c: Likewise.
18765         * gcse.c: Likewise.
18766         * ggc-common.c: Likewise.
18767         * ggc-page.c: Likewise.
18768         * ggc-zone.c: Likewise.
18769         * gimple-low.c: Likewise.
18770         * gimplify.c: Likewise.
18771         * graph.c: Likewise.
18772         * haifa-sched.c: Likewise.
18773         * ifcvt.c: Likewise.
18774         * implicit-zee.c: Likewise.
18775         * integrate.c: Likewise.
18776         * ira-build.c: Likewise.
18777         * ira-color.c: Likewise.
18778         * ira-conflicts.c: Likewise.
18779         * ira-costs.c: Likewise.
18780         * ira-lives.c: Likewise.
18781         * ira.c: Likewise.
18782         * lists.c: Likewise.
18783         * loop-doloop.c: Likewise.
18784         * loop-iv.c: Likewise.
18785         * lto-opts.c: Likewise.
18786         * lto-symtab.c: Likewise.
18787         * main.c: Likewise.
18788         * modulo-sched.c: Likewise.
18789         * optabs.c: Likewise.
18790         * params.c: Likewise.
18791         * plugin.c: Likewise.
18792         * postreload-gcse.c: Likewise.
18793         * postreload.c: Likewise.
18794         * predict.c: Likewise.
18795         * profile.c: Likewise.
18796         * real.c: Likewise.
18797         * regcprop.c: Likewise.
18798         * reginfo.c: Likewise.
18799         * regmove.c: Likewise.
18800         * reorg.c: Likewise.
18801         * resource.c: Likewise.
18802         * rtl.c: Likewise.
18803         * rtlanal.c: Likewise.
18804         * sched-deps.c: Likewise.
18805         * sched-ebb.c: Likewise.
18806         * sched-rgn.c: Likewise.
18807         * sdbout.c: Likewise.
18808         * sel-sched-dump.c: Likewise.
18809         * sel-sched-ir.c: Likewise.
18810         * simplify-rtx.c: Likewise.
18811         * stmt.c: Likewise.
18812         * stor-layout.c: Likewise.
18813         * store-motion.c: Likewise.
18814         * targhooks.c: Likewise.
18815         * tree-cfg.c: Likewise.
18816         * tree-cfgcleanup.c: Likewise.
18817         * tree-dump.c: Likewise.
18818         * tree-eh.c: Likewise.
18819         * tree-inline.c: Likewise.
18820         * tree-nomudflap.c: Likewise.
18821         * tree-object-size.c: Likewise.
18822         * tree-optimize.c: Likewise.
18823         * tree-outof-ssa.c: Likewise.
18824         * tree-phinodes.c: Likewise.
18825         * tree-profile.c: Likewise.
18826         * tree-ssa-ccp.c: Likewise.
18827         * tree-ssa-coalesce.c: Likewise.
18828         * tree-ssa-live.c: Likewise.
18829         * tree-ssa-loop-niter.c: Likewise.
18830         * tree-ssa-loop-prefetch.c: Likewise.
18831         * tree-ssa-loop.c: Likewise.
18832         * tree-ssa-structalias.c: Likewise.
18833         * tree-ssa-uninit.c: Likewise.
18834         * tree-ssa.c: Likewise.
18835         * tree-vect-data-refs.c: Likewise.
18836         * tree-vect-loop-manip.c: Likewise.
18837         * tree-vect-loop.c: Likewise.
18838         * tree-vect-patterns.c: Likewise.
18839         * tree-vect-stmts.c: Likewise.
18840         * tree-vrp.c: Likewise.
18841         * varasm.c: Likewise.
18842         * vec.c: Likewise.
18843         * web.c: Likewise.
18844         * xcoffout.c: Likewise.
18845
18846 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
18847
18848         * gengtype.c (write_field_root): New function.
18849         (write_root): Use it.
18850
18851 2010-07-07  Wei Guozhi  <carrot@google.com>
18852
18853         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18854         of lowest bits to lshift/compare): Add a missing line.
18855
18856 2010-07-07  Wei Guozhi  <carrot@google.com>
18857
18858         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18859         of lowest bits to lshift/compare): New.
18860
18861 2010-07-07  Tom Tromey  <tromey@redhat.com>
18862
18863         * doc/tm.texi: Update.
18864         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
18865         Add @hook.
18866         * target.def (want_debug_pub_sections): New hook.
18867         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
18868         * dwarf2out.c (add_pubname_string): Check
18869         targetm.want_debug_pub_sections.
18870         (add_pubname): Likewise.
18871         (add_pubtype): Likewise.
18872
18873 2010-07-07  Jie Zhang  <jie@codesourcery.com>
18874
18875         * genautomata.c (output_automata_list_min_issue_delay_code):
18876         Correctly decompress min_issue_delay.
18877
18878 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18879
18880         PR rtl-optimization/44404
18881         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
18882         possible, use reg_overlap_mentioned_p instead.
18883
18884 2010-07-07  Duncan Sands  <baldrick@free.fr>
18885
18886         PR middle-end/41355
18887         * tree.c (build_function_type_skip_args): Copy the original type using
18888         build_distinct_type_copy rather than copy_node.
18889
18890 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18891
18892         PR target/44850
18893         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
18894         revision 161876.
18895         (ix86_expand_prologue): Likewise.
18896         (ix86_handle_fndecl_attribute): Likewise.
18897         (ix86_asm_declare_function_name): Likewise.
18898         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18899         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18900         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
18901         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
18902         * doc/extend.texi: Likewise.
18903
18904 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18905
18906         PR target/44844
18907         * config/i386/i386.md (rdrand<mode>): Changed to expand to
18908         retry if the carry flag isn't valid.
18909         (rdrand<mode>_1): New.
18910
18911 2010-07-07  Richard Guenther  <rguenther@suse.de>
18912
18913         PR middle-end/44790
18914         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
18915         for expanding the constant offset for MEM_REFs.
18916
18917 2010-07-07  Richard Guenther  <rguenther@suse.de>
18918
18919         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
18920         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
18921         * gimple.h (is_gimple_operand): Remove.
18922         * gimple.c (is_gimple_operand): Likewise.
18923         (walk_gimple_op): Fix wi->val_only setting for calls.
18924         * tree-cfg.c (verify_gimple_call): Fix argument validation.
18925         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
18926         invalid gimple calls.
18927
18928 2010-07-06  Jan Hubicka  <jh@suse.cz>
18929
18930         * lto-cgraph.c (output_cgraph): Add missing declaration.
18931
18932 2010-07-06  Jan Hubicka  <jh@suse.cz>
18933
18934         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
18935         partition.
18936
18937 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
18938
18939         * doc/gimple.texi (GIMPLE_DEBUG): Document.
18940         * doc/rtl.texi (Debug Information): New node.
18941         (NOTE_INSN_VAR_LOCATION): Document.
18942         (debug_insn): Likewise.
18943         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
18944
18945 2010-07-07  Jan Hubicka  <jh@suse.cz>
18946
18947         With parts by Richard Guenther.
18948
18949         PR middle-end/44813
18950         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
18951         for functions passed by reference.
18952         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
18953         in memory when passed by reference.
18954         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
18955         beggining.
18956         * ipa-split.c (split_function): Cleanup way return value is passed;
18957         handle SSA DECL_BY_REFERENCE retvals.
18958         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
18959         DECL_BY_REFERENCE is set.
18960         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
18961         find_what_p_points_to): Handle RESULT_DECL.
18962         * tree-inline.c (declare_return_variable): Get new entry_block argument;
18963         when passing by reference ensure that RESULT_DECL is gimple_val.
18964         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
18965         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
18966
18967 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18968
18969         PR rtl-optimization/44787
18970         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
18971         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
18972
18973 2010-07-06  Jan Hubicka  <jh@suse.cz>
18974
18975         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
18976         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
18977         with body can prevail.
18978         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
18979         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
18980         * cgraph.c (cgraph_get_node_or_alias): New function.
18981         * cgraph.h (cgraph_get_node_or_alias): Declare.
18982
18983 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
18984
18985         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
18986         support.
18987         (ix86_expand_prologue): Likewise.
18988         (ix86_handle_fndecl_attribute): Likewise.
18989         (ix86_asm_declare_function_name): New function for
18990         ASM_DECLARE_FUNCTION_NAME.
18991         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
18992         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
18993         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
18994         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
18995         * doc/extend.texi: Adjust documentation about ms_hook_prologue
18996         attribute.
18997
18998 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18999
19000         * config/i386/i386.md (immediate_operand): New mode attribute.
19001
19002         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
19003         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
19004         using P mode iterator.
19005         (pro_epilogue_adjust_stack_di_2): Rename from
19006         pro_epilogue_adjust_stack_rex64_2.
19007
19008         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
19009
19010 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19011
19012         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
19013         through gen_mov_insv_1 function pointer.
19014         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
19015         gen_truncxf<mode>2 through gen_truncxf function pointer.
19016         (remainder<mode>3): Ditto.
19017         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
19018         (allocate_stack): Call gen_allocate_stack_worker_64 or
19019         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
19020         function pointer.
19021         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
19022         function pointer.
19023
19024 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19025
19026         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
19027         operand constraint instead of <r><i>m.
19028
19029 2010-07-06  Richard Guenther  <rguenther@suse.de>
19030
19031         PR middle-end/44828
19032         * convert.c (convert_to_integer): Watch out for overflowing
19033         MULT_EXPR as well.
19034
19035 2010-07-05  Jan Hubicka  <jh@suse.cz>
19036
19037         * lto-streamer.c (write_symbol_vec): Rename to ...
19038         (write_symbol) ... this one; write only symbol given and when
19039         present in cache. Sanity check that what is defined is present
19040         in cgraph/varpool with body/finalized decl.
19041         (write_symbols_of_kind): Remove.
19042         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
19043         pairs to produce symtab.
19044         (produce_asm_for_decls): Update call of produce_symtab; don't do so
19045         when doing WPA streaming.
19046
19047 2010-07-05  Jan Hubicka  <jh@suse.cz>
19048
19049         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
19050         function is still available to fold into.
19051
19052 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19053
19054         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
19055         * function.h (struct_function): Change type of local_decls field
19056         to a VEC.
19057         (add_local_decl): New function.
19058         (FOR_EACH_LOCAL_DECL): New macro.
19059         * cfgexpand.c (init_vars_expansion): Adjust for new type of
19060         cfun->local_decls.
19061         (estimated_stack_frame_size): Likewise.
19062         (expand_used_vars): Likewise.
19063         * cgraphbuild.c (build_cgraph_edges): Likewise.
19064         * function.c (instantiate_decls_1): Likewise.
19065         * ipa-struct-reorg.c (build_data_structure): Likewise.
19066         * ipa-type-escape.c (analyze_function): Likewise.
19067         * lto-streamer-in.c (input_function): Likewise.
19068         * lto-streamer-out.c (output_function): Likewise.
19069         * tree-ssa-live.c (remove_unused_locals): Likewise.
19070         * tree.c (free_lang_data_in_decl): Likewise.
19071         (find_decls_types_in_node): Likewise.
19072         * omp-low.c (remove_exit_barrier): Likewise.
19073         (expand_omp_taskreg): Likewise.
19074         (list2chain): Rename to...
19075         (vec2chain): ...this.  Adjust.
19076         * cgraphunit.c (assemble_thunk): Call add_local_decl.
19077         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
19078         * gimple-low.c (record_vars_into): Likewise.
19079         * tree-inline.c (remap_decls): Likewise.
19080         (declare_return_variable): Likewise.
19081         (declare_inline_vars): Likewise.
19082         (copy_forbidden): Adjust for new type of cfun->local_decls.
19083         (add_local_variables): New function.
19084         (expand_call_inline): Call it.
19085         (tree_function_versioning): Likewise.
19086
19087 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19088
19089         AVX Programming Reference (June, 2010)
19090         * config/i386/cpuid.h (bit_F16C): New.
19091         (bit_RDRND): Likewise.
19092         (bit_FSGSBASE): Likewise.
19093
19094         * config/i386/i386-builtin-types.def: Add
19095         "DEF_FUNCTION_TYPE (UINT16)", function types for
19096         float16 <-> float conversions and
19097         "DEF_FUNCTION_TYPE (VOID, UINT64)".
19098
19099         * config/i386/i386-c.c (ix86_target_macros_internal): Support
19100         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
19101         OPTION_MASK_ISA_F16C.
19102
19103         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
19104         (OPTION_MASK_ISA_RDRND_SET): Likewise.
19105         (OPTION_MASK_ISA_F16C_SET): Likewise.
19106         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
19107         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
19108         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
19109         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
19110         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
19111         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
19112         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
19113         (override_options): Handle them.
19114         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
19115         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
19116         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
19117         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
19118         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
19119         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
19120         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
19121         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
19122         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
19123         (bdesc_args): Likewise.
19124         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
19125         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
19126         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
19127         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
19128         Handle non-memory store.
19129
19130         * config/i386/i386.h (TARGET_FSGSBASE): New.
19131         (TARGET_RDRND): Likewise.
19132         (TARGET_F12C): Likewise.
19133
19134         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
19135         (UNSPEC_VCVTPS2PH): Likewise.
19136         (UNSPECV_RDFSBASE): Likewise.
19137         (UNSPECV_RDGSBASE): Likewise.
19138         (UNSPECV_WRFSBASE): Likewise.
19139         (UNSPECV_WRGSBASE): Likewise.
19140         (UNSPECV_RDRAND): Likewise.
19141         (rdfsbase<mode>): Likewise.
19142         (rdgsbase<mode>): Likewise.
19143         (wrfsbase<mode>): Likewise.
19144         (wrgsbase<mode>): Likewise.
19145         (rdrand<mode>): Likewise.
19146
19147         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
19148
19149         * config/i386/immintrin.h (_rdrand_u16): New.
19150         (_rdrand_u32): Likewise.
19151         (_readfsbase_u32): Likewise.
19152         (_readfsbase_u64): Likewise.
19153         (_readgsbase_u32): Likewise.
19154         (_readgsbase_u64): Likewise.
19155         (_writefsbase_u32): Likewise.
19156         (_writefsbase_u64): Likewise.
19157         (_writegsbase_u32): Likewise.
19158         (_writegsbase_u64): Likewise.
19159         (_rdrand_u64): Likewise.
19160         (_cvtsh_ss): Likewise.
19161         (_mm_cvtph_ps): Likewise.
19162         (_mm256_cvtph_ps): Likewise.
19163         (_cvtss_sh): Likewise.
19164         (_mm_cvtps_ph): Likewise.
19165         (_mm256_cvtps_ph): Likewise.
19166
19167         * config/i386/sse.md (vcvtph2ps): New.
19168         (*vcvtph2ps_load): Likewise.
19169         (vcvtph2ps256): Likewise.
19170         (vcvtps2ph): Likewise.
19171         (*vcvtps2ph): Likewise.
19172         (*vcvtps2ph_store): Likewise.
19173         (vcvtps2ph256): Likewise.
19174
19175         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
19176
19177         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
19178
19179 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
19180
19181         PR bootstrap/44512
19182         * genenums.c (main): Output include of insn-constants.h
19183         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
19184
19185 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
19186
19187         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
19188         (override_options): Initialize it.
19189         (ix86_expand_prologue): Use it.
19190
19191 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19192
19193         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
19194
19195 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19196
19197         * double-int.h (fit_double_type): Remove declaration.
19198         * double-int.c (fit_double_type): Remove function.
19199         * tree.h (int_fits_type_p): Adjust prototype.
19200         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
19201         instead of fit_double_type.
19202         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
19203         instead of fit_double_type and build_int_cst_wide.
19204         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
19205         instead of fit_double_type and build_int_cst_wide.
19206         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
19207         of fit_double_type.
19208
19209 2010-07-05  Jan Hubicka  <jh@suse.cz>
19210
19211         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
19212         in_other_partition.
19213         * lto-cgraph.c (referenced_from_other_partition_p,
19214         reachable_from_other_partition_p): Use in_other_partition flags.
19215         (output_node, output_varpool_node): COMDAT nodes always have private
19216         copies and thus are never used from other partition.
19217
19218 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19219
19220         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19221         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
19222         * config/ia64/ia64.c Include reload.h.
19223         (ia64_memory_move_cost): New function.
19224         (TARGET_MEMORY_MOVE_COST): Define.
19225         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
19226         memory_move_cost.
19227
19228 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
19229
19230         PR middle-end/42505
19231         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
19232         comments about cost model.
19233         (try_add_cand_for):  Add second strategy for choosing initial set
19234         based on original IVs, controlled by ORIGINALP argument.
19235         (get_initial_solution): Add ORIGINALP argument.
19236         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
19237         (find_optimal_iv_set): Try two different strategies for choosing
19238         the IV set, and return the one with lower cost.
19239
19240 2010-07-05  Richard Guenther  <rguenther@suse.de>
19241
19242         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19243
19244 2010-07-05  Richard Guenther  <rguenther@suse.de>
19245
19246         * tree.c (reference_alias_ptr_type): New function.
19247         * tree.h (reference_alias_ptr_type): Declare.
19248         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19249         allow non-TARGET_MEM_REF new refs.
19250         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19251         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19252         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19253         (create_mem_ref): Get alias pointer type.  Adjust calls to
19254         create_mem_ref_raw.
19255         (maybe_fold_tmr): Likewise.
19256         * tree-flow.h (create_mem_ref): Adjust prototype.
19257
19258 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19259
19260         PR c++/44808
19261         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
19262         *from_p is VAR_DECL.
19263
19264 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19265
19266         * tree.h (build_call_list): Remove.
19267         * tree.c (build_call_list): Remove.
19268
19269 2010-07-05  Richard Guenther  <rguenther@suse.de>
19270
19271         * double-int.h (double_int_sub): Declare.
19272         * double-int.c (double_int_sub): New function.
19273         * dwarf2out.c (field_byte_offset): Use it.
19274         * fixed-value.c (do_fixed_add): Likewise.
19275         (do_fixed_multiply): Likewise.
19276         (do_fixed_divide): Likewise.
19277         * tree-predcom.c (add_ref_to_chain): Likewise.
19278         (determine_roots_comp): Likewise.
19279         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
19280
19281 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19282
19283         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
19284         implementations.
19285
19286 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
19287
19288         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
19289         * arm-modes.def (CC_NOTB): Don't define.
19290         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
19291         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
19292         (LTUGEU): New code_iterator.
19293         (cnb, optab): New corresponding code_attrs.
19294         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
19295         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
19296         using LTUGEU.
19297         (addsi3_carryin_shift_<optab>): Likewise.
19298         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
19299         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
19300         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
19301         (subsi3_compare): Renamed from subsi3_compare0_c.
19302         Change CC_NOTB to CC.
19303         (arm_subsi3_insn): Allow constants for operand 0.
19304         (compare_scc peephole for eq case): New.
19305         (compare_scc splitters): Change CC_NOTB to CC.
19306
19307 2010-07-05  Richard Guenther  <rguenther@suse.de>
19308
19309         * tree-ssa-loop-im.c (for_each_index): Do not handle
19310         ALIGN_INDIRECT_REF.
19311         (gen_lsm_tmp_name): Likewise.
19312         * tree-dump.c (dequeue_and_dump): Likewise.
19313         * tree-pretty-print.c (dump_generic_node): Likewise.
19314         (op_code_prio): Likewise.
19315         (op_symbol_code): Likewise.
19316         * tree.c (staticp): Likewise.
19317         (build1_stat): Likewise.
19318         * tree.h (INDIRECT_REF_P): Likewise.
19319         * fold-const.c (maybe_lvalue_p): Likewise.
19320         (operand_equal_p): Likewise.
19321         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19322         (ao_ref_init_from_vn_reference): Likewise.
19323         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
19324         (find_interesting_uses_address): Likewise.
19325         * dwarf2out.c (loc_list_from_tree): Likewise.
19326         * gimplify.c (gimplify_expr): Likewise.
19327         * tree-eh.c (tree_could_trap_p): Likewise.
19328         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
19329         * cfgexpand.c (expand_debug_expr): Likewise.
19330         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
19331         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
19332         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
19333         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
19334         * tree-ssa-operands.c (get_expr_operands): Likewise.
19335         * expr.c (safe_from_p): Likewise.
19336         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
19337         * tree-vect-data-refs.c (vect_setup_realignment): Build
19338         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
19339         * tree-vect-stmts.c (vectorizable_load): Likewise.
19340         * tree.def (ALIGN_INDIRECT_REF): Remove.
19341
19342 2010-07-05  Richard Guenther  <rguenther@suse.de>
19343
19344         PR tree-optimization/44784
19345         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
19346         for inserted stmts.
19347         (find_or_generate_expression): Fix SCCVN insertion check.
19348
19349 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
19350
19351         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
19352         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
19353         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
19354         directives.
19355
19356 2010-07-05  Ira Rosen  <irar@il.ibm.com>
19357
19358         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
19359         statements that are not vectorized.
19360         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
19361         in INSIDE_COST.
19362
19363 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
19364
19365         PR bootstrap/44820
19366         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
19367
19368 2010-07-05  Richard Guenther  <rguenther@suse.de>
19369
19370         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
19371         RESULT_DECLs properly.
19372
19373 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
19374
19375         PR rtl-optimization/44695
19376         * config/i386/i386.md (extract_code): Removed.
19377         (<u>divmodqi4): Likewise.
19378         (divmodqi4): New.
19379         (udivmodqi4): Likewise.
19380         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
19381         (udivmodhiqi3): Likewise.
19382
19383 2010-07-04  Jan Hubicka  <jh@suse.cz>
19384
19385         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
19386
19387 2010-07-04  Jan Hubicka  <jh@suse.cz>
19388
19389         * cgraphunit.c (init_cgraph): Only initialize dump file if it
19390         is not already initialized.
19391
19392 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19393
19394         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
19395         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
19396         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
19397         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
19398         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
19399         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
19400         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
19401         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
19402         (sync_new_nand_optab): Redefine as macros.
19403         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
19404         Delete.
19405         (direct_optab_index): New enum.
19406         (direct_optab_d): New structure.
19407         (direct_optab): New typedef.
19408         (direct_optab_table): Declare.
19409         (direct_optab_handler, set_direct_optab_handler): New functions.
19410         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
19411         (sync_lock_release_optab): New macros.
19412         * optabs.c (direct_optab_table): New variable.
19413         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
19414         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
19415         cmpstr_optab and cmpstrn_optab.
19416         (emit_conditional_move): Likewise for movcc_optab.
19417         (can_conditionally_move_p): Likewise for movcc_gen_code.
19418         (init_insn_codes): Clear direct_optab_table.
19419         (init_optabs): Don't initialize the new "direct optabs" here.
19420         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
19421         vcond_gen_code.
19422         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
19423         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
19424         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
19425         (expand_sync_operation): Likewise other sync_*_optabs.
19426         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
19427         to sync_compare_and_swap_optab.
19428         (expand_sync_lock_test_and_set): Use direct_optab_handler for
19429         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
19430         to the names of both.
19431         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
19432         cmpstr_optab and cmpstrn_optab.
19433         (expand_builtin_lock_release): Likewise sync_lock_release.
19434         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
19435         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
19436         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
19437         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
19438         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
19439         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
19440         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
19441         (sync_lock_test_and_set, sync_lock_release): Delete.
19442         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
19443         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
19444         * genopinit.c (optabs): Use set_direct_optab_handler for the new
19445         macro optabs.
19446         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
19447         the "optab" local variable.  Use direct_optab_handler for optab and
19448         sync_compare_and_swap_optab.
19449         * reload1.c (reload_in_optab, reload_out_optab): Delete.
19450         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
19451         reload_in_optab and reload_out_optab.
19452         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19453         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
19454         * config/pa/pa.c (pa_secondary_reload): Likewise.
19455         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
19456         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
19457         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
19458         (VMSupportsCS8_builtin): Likewise.
19459
19460 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19461
19462         * optabs.h (optab_handlers): Change type of insn_code to int.
19463         (optab_handler, set_optab_handler, convert_optab_handler)
19464         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
19465         CODE_FOR_nothing".
19466         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
19467         (init_insn_codes): Zero both the above arrays.
19468         (init_optabs): Never call init_insn_codes first time around.
19469
19470 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19471
19472         * optabs.h (optab_handler, convert_optab_handler): Turn into
19473         inline functions that return an insn code.
19474         (set_optab_handler, set_convert_optab_handler): New functions.
19475         * builtins.c: Replace optab_handler(X)->insn_code with
19476         optab_handler or set_optab_handler thoughout.  Likewise
19477         convert_optab_handler(X)->insn_code with convert_optab_handler
19478         and set_convert_optab_handler.
19479         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
19480         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
19481         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
19482         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
19483         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
19484         config/spu/spu.c: Likewise.
19485
19486 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
19487
19488         PR target/44531
19489         * config.gcc (sh*-*-*): Use regular expressions instead of
19490         the 'i' modifier for sed substitutions.
19491
19492 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
19493
19494         * gimple.c (gimple_body): Comments added.
19495
19496 2010-07-04  Richard Guenther  <rguenther@suse.de>
19497
19498         PR middle-end/44809
19499         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
19500         of an INDIRECT_REF.
19501
19502 2010-07-04  Richard Guenther  <rguenther@suse.de>
19503
19504         PR tree-optimization/44479
19505         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
19506         extra SSA name copy statements which preserves points-to
19507         information.
19508         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19509         Copy points-to information for all pointers.  Properly handle
19510         MEM_REFs.
19511         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
19512         copy statements.
19513         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
19514         dependency.
19515
19516 2010-07-04  Richard Guenther  <rguenther@suse.de>
19517
19518         PR middle-end/44785
19519         * tree-inline.c (initialize_inlined_parameters): Do not
19520         re-use pointer-map slot over remap_type call.
19521
19522 2010-07-04  Richard Guenther  <rguenther@suse.de>
19523
19524         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
19525
19526 2010-07-04  Richard Guenther  <rguenther@suse.de>
19527
19528         PR tree-optimization/44656
19529         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
19530         again after value-replacing in the defintions lhs.
19531
19532 2010-07-04  Ira Rosen  <irar@il.ibm.com>
19533             Revital Eres  <eres@il.ibm.com>
19534
19535         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
19536         Document new arguments.
19537         * doc/tm.texi: Regenerate.
19538         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
19539         Handle unaligned store.
19540         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
19541         * target.def (builtin_vectorization_cost): Add new arguments.
19542         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
19543         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
19544         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
19545         (vect_vfa_segment_size): Fix indentation.
19546         * tree-vectorizer.h (struct _vect_peel_info): New.
19547         (struct _vect_peel_extended_info): New.
19548         (struct _loop_vec_info): Add new field for peeling hash table and a
19549         macro for its access.
19550         (VECT_MAX_COST): Define.
19551         (vect_get_load_cost): Declare.
19552         (vect_get_store_cost, vect_get_known_peeling_cost,
19553         vect_get_single_scalar_iteraion_cost): Likewise.
19554         (vect_supportable_dr_alignment): Add new argument.
19555         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
19556         field.
19557         (destroy_loop_vec_info): Free peeling hash table.
19558         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
19559         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
19560         vect_analyze_slp. Fix indentation.
19561         (vect_get_single_scalar_iteraion_cost): New function.
19562         (vect_get_known_peeling_cost): Likewise.
19563         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
19564         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
19565         statement. Move outside cost calculation inside unknown peeling case.
19566         Call vect_get_known_peeling_cost for known amount of peeling.
19567         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
19568         reference to the print message of forced alignment.
19569         (vect_verify_datarefs_alignment): Update call to
19570         vect_supportable_dr_alignment.
19571         (vect_get_data_access_cost): New function.
19572         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
19573         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
19574         vect_peeling_hash_choose_best_peeling): Likewise.
19575         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
19576         to store all the accesses in the loop and find best possible access to
19577         align using peeling for known alignment case. For unknown alignment
19578         check if stores are preferred or if peeling is worthy.
19579         (vect_find_same_alignment_drs): Analyze pairs of loads too.
19580         (vect_supportable_dr_alignment): Add new argument and check aligned
19581         accesses according to it.
19582         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
19583         (cost_for_stmt): Call vect_get_stmt_cost.
19584         (vect_model_simple_cost): Likewise.
19585         (vect_model_store_cost): Call vect_get_stmt_cost. Call
19586         vect_get_store_cost to calculate the cost of the statement.
19587         (vect_get_store_cost): New function.
19588         (vect_model_load_cost): Call vect_get_stmt_cost. Call
19589         vect_get_load_cost to calculate the cost of the statement.
19590         (vect_get_load_cost): New function.
19591         (vectorizable_store): Update call to vect_supportable_dr_alignment.
19592         (vectorizable_load): Likewise.
19593         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
19594         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
19595         arguments. Handle unaligned store.
19596         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
19597         (rs6000_builtin_support_vector_misalignment): Return true for word and
19598         double word alignments for VSX.
19599         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
19600         vect_supportable_dr_alignment and builtin_vectorization_cost.
19601
19602 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19603
19604         PR target/44597
19605         * config/pa/predicates.md (prefetch_cc_operand): Remove.
19606         (prefetch_nocc_operand): Likewise.
19607         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
19608         (prefetch_20): New insn.
19609         (prefetch_cc): Remove.
19610         (prefetch_nocc): Likewise.
19611
19612 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19613
19614         * expr.c (vector_mode_valid_p): Move to c-common.c.
19615         * expr.h (vector_mode_valid_p): Do not declare here.
19616         * system.h: Poison GCC_EXPR_H in front-ends.
19617         * Makefile.in: Update dependencies.
19618
19619 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19620
19621         PR target/44705
19622         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
19623
19624 2010-07-03  Jan Hubicka  <jh@suse.cz>
19625
19626         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
19627         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
19628         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
19629         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
19630         Likewise.
19631
19632         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
19633         Update timevars.V
19634         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
19635         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
19636         TV_IPA_LTO_DECL_OUT): New.
19637         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
19638
19639 2010-07-03  Jan Hubicka  <jh@suse.cz>
19640
19641         * ipa-inline.c (update_edge_key): Break out from ...
19642         update_callers_keys): ... here;
19643         (update_callee_keys): Update only the edges from caller to callee.
19644         (update_all_calle_keys): Do what update_calle_keys did.
19645         (decide_inlining_of_small_functions): Avoid recomputing of all
19646         callees when badness increase.
19647
19648 2010-07-03  Jie Zhang  <jie@codesourcery.com>
19649
19650         * config/arm/arm.c (arm_attr_length_move_neon): New.
19651         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
19652         * config/arm/neon.md (define_mode_attr V_slen): Remove.
19653         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
19654         to compute length attribute.
19655
19656 2010-07-03  Jie Zhang  <jie@codesourcery.com>
19657
19658         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
19659         as predicate for operand 1 and remove its constraint.
19660         * config/arm/predicates.md (vfp_register_operand): New.
19661         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
19662         (*push_fp_multi): Likewise.
19663
19664 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
19665
19666         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
19667
19668 2010-07-03  Jan Hubicka  <jh@suse.cz>
19669
19670         * config/i386/i386.c (override_options): Revert accidental commit.
19671
19672 2010-07-02  Le-Chun Wu  <lcwu@google.com>
19673
19674         PR c++/44128
19675         * doc/invoke.texi: Update documentation of -Wshadow.
19676
19677 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
19678             Julian Brown  <julian@codesourcery.com>
19679             Sandra Loosemore  <sandra@codesourcery.com>
19680
19681         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
19682         comparisons.  Adjust to take both operands.
19683         (arm_select_cc_mode): Handle DImode comparisons.
19684         (arm_gen_compare_reg): Generate a scratch register for DImode
19685         comparisons which require one.  Use xor for Thumb equality checks.
19686         (arm_const_double_by_immediates): New.
19687         (arm_print_operand): Allow 'Q' and 'R' for constants.
19688         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
19689         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
19690         arm_canonicalize_comparison.
19691         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
19692         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
19693         prototype.
19694         (arm_const_double_by_immediates): Declare.
19695         * config/arm/constraints.md (Di): New constraint.
19696         * config/arm/predicates.md (arm_immediate_di_operand)
19697         (arm_di_operand, cmpdi_operand): New.
19698         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
19699         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
19700         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
19701         (cstoredi4): Handle non-Cirrus also.
19702
19703 2010-07-02  Julian Brown  <julian@codesourcery.com>
19704             Sandra Loosemore  <sandra@codesourcery.com>
19705
19706         PR target/43703
19707         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
19708         (smax<mode>3): Disable for NEON float modes when
19709         flag_unsafe_math_optimizations is false.
19710         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
19711         (*mul<mode>3_neon)
19712         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
19713         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
19714         for NEON float modes when flag_unsafe_math_optimizations is false.
19715         (quad_halves_<code>v4sf): Only enable if
19716         flag_unsafe_math_optimizations is true.
19717         * doc/invoke.texi (ARM Options): Add note about floating point
19718         vectorization requiring -funsafe-math-optimizations.
19719
19720 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19721             Julian Brown  <julian@codesourcery.com>
19722
19723         * config/arm/neon.md (UNSPEC_VABA): Delete.
19724         (UNSPEC_VABAL): Delete.
19725         (UNSPEC_VABS): Delete.
19726         (UNSPEC_VMUL_N): Delete.
19727         (adddi3_neon): New.
19728         (subdi3_neon): New.
19729         (mul<mode>3add<mode>_neon): Make the pattern named.
19730         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
19731         (neon_vadd<mode>): Replace with define_expand, and move the remaining
19732         unspec parts...
19733         (neon_vadd<mode>_unspec): ...to this.
19734         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
19735         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
19736         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
19737         (neon_vaba<mode>): Rewrite in terms of vabd.
19738         (neon_vabal<mode>): Rewrite in terms of vabdl.
19739         (neon_vabs<mode>): Rewrite without unspec.
19740         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
19741         (*arm_subdi3): Likewise.
19742         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
19743         No_op attribute to disable assembly output checks.
19744         * config/arm/arm_neon.h: Regenerated.
19745         * doc/arm-neon-intrinsics.texi: Regenerated.
19746
19747 2010-07-02  Jan Hubicka  <jh@suse.cz>
19748
19749         * ipa-split.c (split_function): For aggregate values, set the return
19750         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
19751         *<retval> = fncall.part ().
19752         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
19753
19754 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19755
19756         * config/arm/neon.md (UNSPEC_VAND): Delete.
19757         (UNSPEC_VBIC): Delete.
19758         (UNSPEC_VCLZ): Delete.
19759         (UNSPEC_VCNT): Delete.
19760         (UNSPEC_VEOR): Delete.
19761         (UNSPEC_VORN): Delete.
19762         (UNSPEC_VORR): Delete.
19763         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
19764         core registers too.
19765         (anddi3_neon): Likewise.
19766         (orndi3_neon): Likewise.
19767         (bicdi3_neon): Likewise.
19768         (xordi3_neon): Likewise.
19769         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
19770         rid of unspec and handle unused operand.
19771         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
19772         * config/arm/predicates.md (imm_for_neon_logic_operand):
19773         Require TARGET_NEON.
19774         (imm_for_neon_inv_logic_operand): Likewise.
19775         * config/arm/arm.md (define_split for logical_binary_operator):
19776         Disable for NEON registers.
19777         (anddi3): Add new define_expand, and rename the insn.  Disable
19778         this insn for NEON, where anddi3_neon now applies.
19779         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
19780         (iordi3): As for anddi3.
19781         (xordi3): Likewise.
19782         * config/arm/neon.ml (Vand): Split DImode variants and mark them
19783         as No_op to disable testing for exact instruction match.
19784         (Vorr): Likewise.
19785         (Veor): Likewise.
19786         (Vbic): Likewise.
19787         (Vorn): Likewise.
19788         * config/arm/arm_neon.h: Regenerated.
19789         * doc/arm-neon-intrinsics.texi: Regenerated.
19790
19791 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19792
19793         * expr.h (emit_stack_probe): Declare.
19794         * explow.c (emit_stack_probe): Make global.
19795         (anti_adjust_stack_and_probe): Fix comments.
19796         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19797         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19798         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19799         * config/sparc/sparc.c: Include except.h.
19800         (sparc_emit_probe_stack_range): New function.
19801         (output_probe_stack_range): Likewise.
19802         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
19803         built-in stack checking is enabled.
19804         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
19805         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19806         (probe_stack_range): New insn.
19807
19808 2010-07-02  Richard Guenther  <rguenther@suse.de>
19809
19810         PR target/43958
19811         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
19812         for argument alignment.
19813
19814 2010-07-02  Jan Hubicka  <jh@suse.cz>
19815
19816         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
19817         walk backwards from entry_bb to check only those basic block of header
19818         that might lead to execution of split part.
19819         (consider_split) ... here.
19820         (find_return_bb): Allow assignment in return BB.
19821         (find_retval): New.
19822         (split_function): Fix name of cloned function; take care of updating
19823         return value in return_bb containing move.
19824
19825 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
19826
19827         PR target/44771
19828         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
19829         used variable insn.
19830
19831 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19832
19833         * implicit-zee.c (combine_reaching_defs): Fix long lines.
19834         (is_set_with_extension_DI): Delete.
19835         (struct zero_extend_info): New structure.
19836         (add_removable_zero_extend): New function.
19837         (find_removable_zero_extends): Use note_stores to find SETs.
19838         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
19839
19840 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
19841
19842         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
19843         is_miss_rate_acceptable. Pull total_positions computation
19844         out of the loops.  Early return if miss_positions exceeds
19845         the acceptable threshold.
19846         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
19847         is_miss_rate_acceptable after renaming of compute_miss_rate.
19848
19849 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
19850
19851         PR middle-end/44576
19852         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
19853         of 1000) for miss rate if the address diference is greater than or
19854         equal to the cache line size (the two reference will never hit the
19855         same cache line).
19856
19857 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
19858
19859         PR target/42835
19860         * config/arm/arm-modes.def (CC_NOTB): New mode.
19861         * config/arm/arm.c (get_arm_condition_code): Handle it.
19862         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
19863         * config/arm/arm.md (subsi3_compare0_c): New pattern.
19864         (compare_scc): Now a define_and_split.  Add a number of extra
19865         splitters before it.
19866
19867         PR target/42172
19868         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
19869         and ZERO_EXTEND.
19870         (arm_rtx_costs_1): Likewise.
19871         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
19872         * config/arm/arm.md (is_arch6): New attribute.
19873         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
19874         extendqisi2): Tighten the code somewhat, avoiding invalid
19875         RTL to occur in the expander patterns.
19876         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
19877         (thumb1_zero_extendhisi2_v6): Delete.
19878         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
19879         (thumb1_extendhisi2_v6): Delete.
19880         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
19881         (thumb1_extendqisi2_v6): Delete.
19882         (zero_extendhisi2 for register input splitter): New.
19883         (zero_extendqisi2 for register input splitter): New.
19884         (thumb1_extendhisi2 for register input splitter): New.
19885         (extendhisi2 for register input splitter): New.
19886         (extendqisi2 for register input splitter): New.
19887         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
19888         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
19889         and add support for a register alternative requiring a split.
19890         (thumb1_zero_extendqisi2): Likewise.
19891         (arm_zero_extendqisi2): Likewise.
19892         (arm_extendhisi2): Likewise.
19893         (arm_extendqisi2): Likewise.
19894
19895 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19896
19897         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
19898         instead of an unspec.
19899         (neon_expand_vector_init): Likewise.
19900         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
19901         (UNSPEC_VDUP_LANE): Delete.
19902         (UNSPEC VDUP_N): Delete.
19903         (UNSPEC_VGET_HIGH): Delete.
19904         (UNSPEC_VGET_LANE): Delete.
19905         (UNSPEC_VGET_LOW): Delete.
19906         (UNSPEC_VMVN): Delete.
19907         (UNSPEC_VSET_LANE): Delete.
19908         (V_double_vector_mode): New.
19909         (vec_set<mode>_internal): Make code emitted match that for the
19910         corresponding intrinsics.
19911         (vec_setv2di_internal): Likewise.
19912         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
19913         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
19914         (neon_vset_lane<mode>): Combine double and quad patterns and
19915         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
19916         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
19917         (neon_vdup_n<mode>): Rewrite RTL without unspec.
19918         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
19919         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
19920         with neon_vdup_lanev2di, adjusting the pattern from the latter
19921         to be predicable for consistency.
19922         (neon_vdup_lane<mode>_internal): New.
19923         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
19924         to avoid using an unspec.
19925         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
19926         (neon_vdup_lanev2di): Turn into a define_expand.
19927         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
19928         (neon_vget_high<mode>): Replace with....
19929         (neon_vget_highv16qi): New pattern using canonical RTL.
19930         (neon_vget_highv8hi): Likewise.
19931         (neon_vget_highv4si): Likewise.
19932         (neon_vget_highv4sf): Likewise.
19933         (neon_vget_highv2di): Likewise.
19934         (neon_vget_low<mode>): Replace with....
19935         (neon_vget_lowv16qi): New pattern using canonical RTL.
19936         (neon_vget_lowv8hi): Likewise.
19937         (neon_vget_lowv4si): Likewise.
19938         (neon_vget_lowv4sf): Likewise.
19939         (neon_vget_lowv2di): Likewise.
19940
19941         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
19942         test for this emitting vmov.
19943         (Vset_lane): Likewise.
19944         (Vdup_n): Likewise.
19945         (Vmov_n): Likewise.
19946
19947         * doc/arm-neon-intrinsics.texi: Regenerated.
19948
19949 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19950
19951         * config/arm/neon.md (vec_extractv2di): Correct error in register
19952         numbering to reconcile with neon_vget_lanev2di.
19953
19954 2010-07-02  Richard Guenther  <rguenther@suse.de>
19955
19956         * tree-ssa-structalias.c (pt_solution_set_var): New function.
19957         * tree-ssa-alias.h (pt_solution_set_var): Declare.
19958         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
19959         points-to information.
19960
19961 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
19962
19963         * config/s390/s390.c (override_options): Adopt prefetching
19964         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
19965
19966 2010-07-02  Jan Hubicka  <jh@suse.cz>
19967
19968         * df-problems.c (df_kill_notes): Do not collect dead  notes.
19969         (df_set_note): Just call add_reg_note.
19970         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
19971         df_create_unused_note): Do not deal with lists of old notes.
19972         (df_note_bb_compute): Likewise.
19973
19974 2010-07-02  Richard Guenther  <rguenther@suse.de>
19975
19976         * tree-ssa-structalias.c (find_func_aliases): Handle
19977         pointer alignment via BIT_AND_EXPR.
19978         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
19979
19980 2010-07-02  Richard Guenther  <rguenther@suse.de>
19981
19982         * tree-data-ref.c (initialize_data_dependence_relation): Handle
19983         mismatching number of dimensions properly.
19984
19985 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19986
19987         PR target/44707
19988         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
19989         (lo_sum (high ...) ...) patterns generated by earlier passes.
19990
19991 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19992
19993         * doc/install.texi (Prerequisites): Document Perl requirement on
19994         Solaris 2.
19995         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
19996
19997 2010-07-02  Richard Guenther  <rguenther@suse.de>
19998
19999         PR middle-end/44777
20000         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
20001
20002 2010-07-02  Jan Hubicka  <jh@suse.cz>
20003
20004         PR middle-end/44706
20005         * predict.c (predict_paths_for_bb): Handle case when control dependence
20006         BB has only abnormal edges.
20007
20008 2010-07-02  Richard Guenther  <rguenther@suse.de>
20009
20010         PR tree-optimization/44748
20011         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
20012         the embedded conversion in MEM_REFs.
20013
20014 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
20015
20016         * reload.c: Include toplev.h.
20017         * recog.c:  Likewise.
20018         * Makefile.in: Adjust dependencies.
20019
20020 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
20021
20022         PR debug/44694
20023         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
20024         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
20025
20026 2010-07-01  Richard Guenther  <rguenther@suse.de>
20027
20028         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
20029         types for offsets.
20030
20031 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
20032
20033         PR target/44732
20034         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
20035         Fix argument types.
20036
20037 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
20038
20039         PR target/44727
20040         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20041         Make sure operand 0 dies.
20042
20043 2010-07-01  Richard Guenther  <rguenther@suse.de>
20044
20045         PR middle-end/42834
20046         PR middle-end/44468
20047         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
20048         * doc/generic.texi (References to storage): Document MEM_REF.
20049         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
20050         (print_call_name): Likewise.
20051         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
20052         (build_simple_mem_ref_loc): New function.
20053         (mem_ref_offset): Likewise.
20054         * tree.h (build_simple_mem_ref_loc): Declare.
20055         (build_simple_mem_ref): Define.
20056         (mem_ref_offset): Declare.
20057         * fold-const.c: Include tree-flow.h.
20058         (operand_equal_p): Handle MEM_REF.
20059         (build_fold_addr_expr_with_type_loc): Likewise.
20060         (fold_comparison): Likewise.
20061         (fold_unary_loc): Fold
20062         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
20063         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
20064         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
20065         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
20066         (ptr_deref_may_alias_ref_p_1): Likewise.
20067         (ao_ref_base_alias_set): Properly differentiate base object for
20068         offset and TBAA.
20069         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
20070         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
20071         (indirect_refs_may_alias_p): Likewise.
20072         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
20073         chasing code.
20074         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
20075         (call_may_clobber_ref_p_1): Likewise.
20076         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
20077         * expr.c (expand_assignment): Handle MEM_REF.
20078         (store_expr): Handle MEM_REFs from STRING_CSTs.
20079         (store_field): If expanding a MEM_REF of a non-addressable
20080         decl use bitfield operations.
20081         (get_inner_reference): Handle MEM_REF.
20082         (expand_expr_addr_expr_1): Likewise.
20083         (expand_expr_real_1): Likewise.
20084         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
20085         * alias.c (ao_ref_from_mem): Handle MEM_REF.
20086         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
20087         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
20088         (dr_analyze_indices): Likewise.
20089         (dr_analyze_alias): Likewise.
20090         (object_address_invariant_in_loop_p): Likewise.
20091         * gimplify.c (mark_addressable): Handle MEM_REF.
20092         (gimplify_cond_expr): Build MEM_REFs.
20093         (gimplify_modify_expr_to_memcpy): Likewise.
20094         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
20095         (gimple_fold_indirect_ref): Adjust.
20096         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
20097         * tree.def (MEM_REF): New tree code.
20098         * tree-dfa.c: Include toplev.h.
20099         (get_ref_base_and_extent): Handle MEM_REF.
20100         (get_addr_base_and_unit_offset): New function.
20101         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
20102         * gimple-fold.c (may_propagate_address_into_dereference): Handle
20103         MEM_REF.
20104         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
20105         accesses if the array has just one dimension.  Remove always true
20106         parameter.  Do not require type compatibility here.
20107         (maybe_fold_offset_to_component_ref): Remove.
20108         (maybe_fold_stmt_indirect): Remove.
20109         (maybe_fold_reference): Remove INDIRECT_REF handling.
20110         Fold back to non-MEM_REF.
20111         (maybe_fold_offset_to_address): Simplify.  Deal with type
20112         mismatches here.
20113         (maybe_fold_reference): Likewise.
20114         (maybe_fold_stmt_addition): Likewise.  Also handle
20115         &ARRAY + I in addition to &ARRAY[0] + I.
20116         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
20117         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
20118         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
20119         * tree-ssa.c (useless_type_conversion_p): Make most pointer
20120         conversions useless.
20121         (warn_uninitialized_var): Handle MEM_REF.
20122         (maybe_rewrite_mem_ref_base): New function.
20123         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
20124         to SSA form.
20125         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
20126         INDIRECT_REF handling.
20127         (copy_tree_body_r): Handle MEM_REF.
20128         * gimple.c (is_gimple_addressable): Adjust.
20129         (is_gimple_address): Likewise.
20130         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
20131         invariant base are invariant.
20132         (is_gimple_min_lval): Adjust.
20133         (is_gimple_mem_ref_addr): New function.
20134         (get_base_address): Handle MEM_REF.
20135         (count_ptr_derefs): Likewise.
20136         (get_base_loadstore): Likewise.
20137         * gimple.h (is_gimple_mem_ref_addr): Declare.
20138         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
20139         * tree-cfg.c (verify_address): New function, split out from ...
20140         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
20141         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
20142         INDIRECT_REFs.
20143         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
20144         INDIRECT_REF.  Allow conversions.
20145         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
20146         a register does not change its size.
20147         (verify_types_in_gimple_reference): Verify MEM_REF.
20148         (verify_gimple_assign_single): Disallow INDIRECT_REF.
20149         Handle MEM_REF.
20150         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
20151         New.
20152         (mark_address_taken): Handle MEM_REF.
20153         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
20154         (get_asm_expr_operands): Pass opf_not_non_addressable.
20155         (get_expr_operands): Handle opf_[not_]non_addressable.
20156         Handle MEM_REF.  Remove INDIRECT_REF handling.
20157         * tree-vrp.c (check_array_ref): Handle MEM_REF.
20158         (search_for_addr_array): Likewise.
20159         (check_array_bounds): Likewise.
20160         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
20161         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
20162         (ref_always_accessed_p): Likewise.
20163         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
20164         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
20165         Handle MEM_REF.
20166         * cgraphbuild.c (mark_load): Properly check for NULL result
20167         from get_base_address.
20168         (mark_store): Likewise.
20169         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
20170         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
20171         handling for MEM_REF.
20172         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
20173         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
20174         * builtins.c (stabilize_va_list_loc): Use the function ABI
20175         valist type if we couldn't canonicalize the argument type.
20176         Always dereference with the canonical va-list type.
20177         (maybe_emit_free_warning): Handle MEM_REF.
20178         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
20179         memmove to memcpy.
20180         * builtins.c (fold_builtin_memory_op): Use ref-all types
20181         for all memcpy foldings.
20182         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
20183         (build_outer_var_ref): Likewise.
20184         (scan_omp_1_op): Likewise.
20185         (lower_rec_input_clauses): Likewise.
20186         (lower_lastprivate_clauses): Likewise.
20187         (lower_reduction_clauses): Likewise.
20188         (lower_copyprivate_clauses): Likewise.
20189         (expand_omp_atomic_pipeline): Likewise.
20190         (expand_omp_atomic_mutex): Likewise.
20191         (create_task_copyfn): Likewise.
20192         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
20193         Remove old union trick.  Initialize constant offsets.
20194         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
20195         INDIRECT_REF.  Init base_alias_set properly.
20196         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
20197         (vn_reference_fold_indirect): Adjust for MEM_REFs.
20198         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
20199         for ARRAY_REFs.
20200         (may_insert): Remove.
20201         (visit_reference_op_load): Do not test may_insert.
20202         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
20203         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
20204         a field to store the constant offset this op applies.
20205         (run_scc_vn): Adjust prototype.
20206         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
20207         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
20208         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
20209         bother about volatile qualifiers on pointers.
20210         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
20211         * tree-ssa-loop-ivopts.c
20212         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
20213         (strip_offset_1): Likewise.
20214         (find_interesting_uses_address): Replace INDIRECT_REF handling with
20215         MEM_REF handling.
20216         (get_computation_cost_at): Likewise.
20217         * ipa-pure-const.c (check_op): Handle MEM_REF.
20218         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
20219         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
20220         and constants.
20221         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
20222         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
20223         (eliminate_local_variables_1): Likewise.
20224         (create_call_for_reduction_1): Likewise.
20225         (create_loads_for_reductions): Likewise.
20226         (create_loads_and_stores_for_name): Likewise.
20227         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
20228         (ssa_accessed_in_tree): Handle MEM_REF.
20229         (ssa_accessed_in_assign_rhs): Likewise.
20230         (update_type_size): Likewise.
20231         (analyze_accesses_for_call_stmt): Likewise.
20232         (analyze_accesses_for_assign_stmt): Likewise.
20233         (transform_access_sites): Likewise.
20234         (transform_allocation_sites): Likewise.
20235         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
20236         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
20237         not handle INDIRECT_REF.
20238         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
20239         (cond_store_replacement): Likewise.
20240         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20241         MEM_REF, no not handle INDIRECT_REFs.
20242         (insert_into_preds_of_block): Properly initialize avail.
20243         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
20244         for ARRAY_REFs.  Properly handle reference lookups that
20245         require a bit re-interpretation.
20246         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
20247         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20248         (build_ref_for_offset_1): Remove.
20249         (build_ref_for_offset): Build MEM_REFs.
20250         (gate_intra_sra): Disable for now.
20251         (sra_ipa_modify_expr): Handle MEM_REF.
20252         (ipa_early_sra_gate): Disable for now.
20253         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20254         MEM_REF handling.
20255         (disqualify_base_of_expr): Likewise.
20256         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20257         MEM_REF handling.
20258         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20259         Use mem_ref_offset.  Remove bogus folding.
20260         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
20261         (make_fancy_name_1): Add support for MEM_REF.
20262         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
20263         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
20264         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
20265         (compute_complex_ancestor_jump_func): Likewise.
20266         (ipa_analyze_virtual_call_uses): Likewise.
20267         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
20268         INDIRECT_REF folding with more generalized MEM_REF folding.
20269         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
20270         (forward_propagate_addr_into_variable_array_index): Also handle
20271         &ARRAY + I in addition to &ARRAY[0] + I.
20272         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
20273         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
20274         creates assignments with overlap.
20275         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
20276         (get_frame_field): Likewise.
20277         (get_nonlocal_debug_decl): Likewise.
20278         (convert_nonlocal_reference_op): Likewise.
20279         (struct nesting_info): Add mem_refs pointer-set.
20280         (create_nesting_tree): Allocate it.
20281         (convert_local_reference_op): Insert to be folded mem-refs.
20282         (fold_mem_refs): New function.
20283         (finalize_nesting_tree_1): Perform defered folding of mem-refs
20284         (free_nesting_tree): Free the pointer-set.
20285         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
20286         (vectorizable_load): Likewise.
20287         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
20288         (propagate_with_phi): Likewise.
20289         * tree-object-size.c (addr_object_size): Handle MEM_REFs
20290         instead of INDIRECT_REFs.
20291         (compute_object_offset): Handle MEM_REF.
20292         (plus_stmt_object_size): Handle MEM_REF.
20293         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
20294         for &MEM_REF.
20295         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
20296         (symbol_marked_for_renaming): Likewise.
20297         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
20298         (fold-const.o): Add $(TREE_FLOW_H).
20299         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
20300         (find_func_clobbers): Likewise.
20301         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
20302         (decompose_access): Likewise.
20303         (replace_field_acc): Likewise.
20304         (replace_field_access_stmt): Likewise.
20305         (insert_new_var_in_stmt): Likewise.
20306         (get_stmt_accesses): Likewise.
20307         (reorg_structs_drive): Disable.
20308         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
20309         (ix86_canonical_va_list_type): Likewise.
20310
20311 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20312
20313         PR other/44566
20314         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
20315         * target.def (struct gcc_target): Replace enum reg_class with
20316         reg_class_t in hook argument / return types.
20317         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
20318         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
20319         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
20320         * targhooks.h (default_branch_target_register_class): Likewise.
20321         (default_ira_cover_classes, default_secondary_reload): Likewise.
20322         (default_memory_move_cost, default_register_move_cost): Likewise.
20323         * targhooks.c (default_branch_target_register_class): Likewise.
20324         (default_ira_cover_classes, default_secondary_reload): Likewise.
20325         (default_memory_move_cost, default_register_move_cost): Likewise.
20326         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
20327         * bt-load.c (branch_target_load_optimize): Likewise.
20328         * ira.c (setup_cover_and_important_classes): Likewise.
20329         * ira-costs.c (copy_cost): Likewise.
20330         * reload1.c (emit_input_reload_insns): Likewise.
20331         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20332         * config/frv/frv.c (frv_secondary_reload): Likewise.
20333         * config/s390/s390.c (s390_secondary_reload): Likewise.
20334         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
20335         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
20336         (ix86_register_move_cost): Likewise.
20337         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
20338         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
20339         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
20340         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
20341         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
20342         (rs6000_ira_cover_classes): Likewise.
20343         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
20344         * config/picochip/picochip-protos.h (picochip_secondary_reload):
20345         Likewise.
20346         * config/pa/pa.c (pa_secondary_reload): Likewise.
20347         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
20348         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
20349         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
20350         * doc/tm.texi: Regenerate.
20351
20352 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
20353
20354         PR bootstrrap/44726
20355         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
20356         use.
20357         (build_alias_set_optimal_p): Likewise.
20358         (build_base_obj_set_for_drs): Likewise.
20359
20360 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20361
20362         * target.def: Remove comment about licensing problems of function
20363         declarations.
20364
20365         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
20366         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
20367         * doc/tm.texi: Regenerate.
20368
20369         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
20370         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
20371
20372         * target.def (enum_va_list_p): Use DEFHOOK.
20373         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
20374         Rename ptype to ptree.
20375         * doc/tm.texi: Regenerate.
20376
20377         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
20378         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
20379         * doc/tm.texi: Regenerate.
20380
20381         * target.def (memory_move_cost): Use DEFHOOK.
20382         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
20383         Rename regclass AKA class to rclass.
20384         * doc/tm.texi: Regenerate.
20385
20386         * target.def (pragma_parse): Use DEFHOOK.
20387         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
20388         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
20389         * doc/tm.texi: Regenerate.
20390
20391         * target.def (pass_by_reference): Use DEFHOOK.
20392         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
20393         * doc/tm.texi: Regenerate.
20394
20395         * target.def (resolve_overloaded_builtin): Rename params to arglist.
20396         Use DEFHOOK.
20397         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
20398         * doc/tm.texi: Regenerate.
20399
20400         * target.def (return_pops_args): Use DEFHOOK.
20401         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
20402         Rename stack-size to size.
20403         * doc/tm.texi: Regenerate.
20404
20405         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
20406         last-sched_cycle to last_clock, cur_cycle to clock.
20407         * doc/tm.texi.in: Use @hook.
20408         * doc/tm.texi: Regenerate.
20409
20410         * target.def (print_operand, print_operand_address): Update comment.
20411         (print_operand_punct_valid_p): Likewise.
20412
20413 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20414
20415         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
20416         to rtl.h.
20417         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
20418         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
20419         * rtl-error.h: New.
20420         * regrename.c: Do not include toplev.h. Include rtl-error.h.
20421         * rtl-error.c: Likewise.
20422         * reload.c: Likewise.
20423         * recog.c:  Likewise.
20424         * sel-sched.c: Likewise.
20425         * function.c: Likewise.
20426         * reg-stack.c: Likewise.
20427         * cfgrtl.c: Likewise.
20428         * reload1.c: Likewise.
20429         * final.c: Include rtl-error.
20430         * Makefile.in: Adjust dependencies.
20431
20432 2010-06-30  Jan Hubicka  <jh@suse.cz>
20433
20434         PR middle-end/PR44706
20435         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
20436         to return the value.
20437
20438 2010-06-30  Michael Matz  <matz@suse.de>
20439
20440         PR bootstrap/44699
20441         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
20442         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
20443         a gimple reg, attach the original VDEF to the last store in the
20444         sequence.
20445
20446 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
20447
20448         PR other/44034
20449         * config/darwin.c (darwin_override_options): Use renamed
20450         targetm.asm_out.emit_unwind_label.
20451
20452 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20453
20454         PR tree-optimization/39799
20455         * tree-inline.c (remap_ssa_name): Initialize variable only if
20456         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
20457
20458 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
20459
20460         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
20461
20462 2010-06-30  Richard Guenther  <rguenther@suse.de>
20463
20464         PR target/44722
20465         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
20466         against oscillation with reverse peephole2.
20467
20468 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
20469
20470         PR target/44721
20471         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20472         Fix last commit.
20473
20474 2010-06-30  Nick Clifton  <nickc@redhat.com>
20475
20476         * config/rx/rx-modes.def: New file.
20477         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
20478         (CC_REGNUM): Define.
20479         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
20480         register.
20481         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
20482         (SELECT_CC_MODE): Define.
20483         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
20484         (reg:CC CC_REG) instead of (cc0).
20485         (attr "cc"): Delete.
20486         (cbranchsi4): Do not split compare and branch here. Instead move
20487         it to...
20488         (cbranchsi4_<code>): ... here.  New patterns.
20489         (cmpsi): Call rx-compare_redundant to find out if it is necessary
20490         to emit the compare instruction.
20491         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
20492         cc_status flags.
20493         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
20494         FIRST_PSEUDO_REGNUM.
20495         (rx_expand_prologue, rx_expand_epilogue): Likewise.
20496         (rx_notice_update_cc): Delete.
20497         (rx_cc_modes_compatible): New function.
20498         (flags_needed_for_conditional): New function.
20499         (flags_from_mode): New function.
20500         (rx_compare_redundant): New function - scans backwards through
20501         insn list to find out if condition flags are already set correctly.
20502         (TARGET_CC_MODES_COMPATIBLE): Define.
20503         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
20504
20505         * config/rx/rx.h (BRANCH_COST): Define.
20506         (REGISTER_MOVE_COST): Define.
20507         * config/rx/predicates (rx_source_operand): Allow all constant types.
20508         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
20509         (tstsi4): New pattern.
20510         * config/rx/rx.c (rx_memory_move_cost): Define.
20511         (TARGET_MEMORY_MOVE_COST): Define.
20512
20513 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20514
20515         * tree.h (block_may_fallthru): Declare here.
20516         * tree-flow.h (block_may_fallthru): Do not declare here.
20517         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
20518         bitmap.h
20519         * Makefile.in (c-typeck.o): Update dependencies.
20520
20521 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
20522
20523         PR debug/44694
20524         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
20525         * cselib.c (cfa_base_preserved_regno): New static variable.
20526         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
20527         of REGNO (cfa_base_preserved_val->locs->loc).
20528         (cselib_preserve_cfa_base_value): Add regno argument, set
20529         cfa_base_preserved_regno to it.
20530         (cselib_invalidate_regno): Allow removal of registers other than
20531         cfa_base_preserved_regno from cfa_base_preserved_val.
20532         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
20533         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
20534         of MEM addresses, if not on LHS.
20535         (reverse_op): Don't add reverse ops for cfa_base_rtx.
20536         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
20537
20538 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20539
20540         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
20541         static variables.
20542         (peep2_buf_position): New static function.
20543         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
20544         peephole2_optimize): Use it.
20545         (peep2_attempt, peep2_update_life): New static functions, broken out
20546         of peephole2_optimize.
20547         (peep2_fill_buffer): New static function.
20548         (peephole2_optimize): Change the main loop to try to fill the buffer
20549         with the maximum number of insns before matching them against
20550         peepholes.  Use a forward scan.  Remove special case for targets with
20551         conditional execution.
20552         * genrecog.c (change_state): Delete dead code.
20553         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20554         Rewrite so as not to expect the second insn to have had a peephole
20555         applied yet.
20556
20557 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20558
20559         * genhooks.c (emit_findices): Cast field precision to int.
20560         (emit_documentation): Likewise.
20561
20562 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
20563
20564         PR tree-optimization/43801
20565         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
20566         if old_decl was DECL_ONE_ONLY.
20567
20568         PR debug/44668
20569         * dwarf2out.c (add_accessibility_attribute): New function.
20570         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
20571         instead of adding DW_AT_accessibility manually.
20572         (gen_enumeration_type_die, gen_struct_or_union_type_die,
20573         gen_typedef_die): Use it.
20574
20575 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20576
20577         * vmsdbgout.c (full_name): Just output the file name if not native.
20578
20579 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20580
20581         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
20582         (funcnam_table): New static table.
20583         (funcnum_table): New static table.
20584         (write_rtnbeg): Write value saved in funcnum_table.
20585         (write_rtnend): Write value saved in funcnum_table.
20586         (vmsdbgout_begin_function): Save current function info in
20587         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
20588         (vmsdbgout_finish): Iterate over funcnum_table.
20589
20590 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20591
20592         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
20593         (vmsdbgout_type_decl): Declare
20594         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
20595         (FUNC_EPILOGUE_LABEL): New macro
20596         (vmsdbgout_begin_epilogue): New function.
20597         (vmsdbgout_type_decl): New function.
20598
20599 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20600
20601         * vmsdbg.h: Update copyright.
20602
20603 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20604
20605         * vmsdbg.h (DST_K_TBG): New DST constant.
20606         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
20607         (write_modbeg): Cast module_language to avoid warning.
20608         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
20609
20610 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20611
20612         PR other/44034
20613         * target.def, doc/tm.texi.in, genhooks.c: New files.
20614         * target.h: Instead of defining individual hook members,
20615         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
20616         include target.def.
20617         * target-def.h: Instead of defining individual hook initializers,
20618         include target-hooks-def.h.
20619         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
20620         targetm.live_on_entry -> targetm.extra_live_on_entry
20621         targetm.sched.md_finish ->targetm.sched.finish
20622         targetm.sched.md_init -> targetm.sched.init
20623         targetm.sched.md_init_global -> targetm.sched.init_global
20624         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
20625         targetm.asm_out.except_table_label ->
20626           targetm.asm_out.emit_except_table_label
20627         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
20628         targetm.target_help -> targetm.help
20629         targetm.vectorize.builtin_support_vector_misalignment ->
20630           targetm.vectorize.support_vector_misalignment
20631         targetm.file_start_app_off -> targetm.asm_file_start_app_off
20632         targetm.file_start_file_directive ->
20633          targetm.asm_file_start_file_directive
20634         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
20635         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
20636         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
20637         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
20638           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
20639         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
20640           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
20641         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
20642         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
20643         * Makefile.in (TARGET_H): Depend on target.def.
20644         (TARGET_DEF_H): Depend on target-hooks-def.h.
20645         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
20646         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
20647         * doc/tm.texi: Regenerate.
20648
20649         * Makefile.in (s-tm-texi): Remove stray tab / rule.
20650
20651         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
20652         (targetm.sched.init): Likewise.
20653
20654 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20655
20656         PR bootstrap/44713
20657         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
20658         (function_arg_advance_32): Const-ify TYPE parameter.
20659         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
20660         (ix86_function_arg_advance): Change type of NAMED to bool.
20661         (function_arg_32): Const-ify CUM and TYPE parameters.
20662         (function_arg_64): Likewise.  Change type of NAMED to bool.
20663         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
20664         to bool.
20665         (ix86_function_arg): Change type of NAMED to bool.
20666         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
20667         last argument as a bool.
20668
20669 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20670
20671         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
20672         (OVERRIDE_OPTIONS): Add note of obsolescence.
20673         Replace references with references to TARGET_OPTION_OVERRIDE.
20674         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
20675          the macro).
20676         * targhooks.c (default_target_option_override): New function.
20677         * targhooks.h (default_target_option_override): Declare.
20678         * target.h (struct gcc_target): Add override member to
20679         target_option member.
20680         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
20681         targetm.target_option.override call.
20682         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
20683         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
20684
20685 2010-06-29  Jan Hubicka  <jh@suse.cz>
20686
20687         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
20688
20689 2010-06-29  Jan Hubicka  <jh@suse.cz>
20690
20691         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
20692         unreachable.
20693         (rebuild_frequencies): New function.
20694         * predict.h (rebuild_frequencies): Declare.
20695         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
20696         entry block and edge reaching new_entry.
20697         (tree_function_versioning): When doing partial cloning, rebuild
20698         frequencies when done.
20699         * passes.c (execute_function_todo): Use rebild_frequencies.
20700
20701 2010-06-29  Richard Guenther  <rguenther@suse.de>
20702
20703         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
20704         * tree-flow.h (enum noalias_state): Remove.
20705         (struct var_ann_d): Remove noalias_state member.
20706
20707 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
20708
20709         PR target/43902
20710         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
20711         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
20712         (maddhidi4): Likewise.
20713
20714         Revert parts of the change for PR25130.
20715         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
20716         MEM_ALIAS_SET.
20717
20718 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20719
20720         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
20721         targetm.calls.function_incoming_arg, and
20722         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
20723         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
20724         * target.h (struct gcc_target): Add function_arg_advance,
20725         function_arg, and function_incoming_arg fields.
20726         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
20727         (TARGET_FUNCTION_INCOMING_ARG): Define.
20728         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
20729         and TARGET_FUNCTION_INCOMING_ARG.
20730         * targhooks.h (default_function_arg_advance): Declare.
20731         (default_function_arg, default_function_incoming_arg): Declare.
20732         * targhooks.c (default_function_arg_advance): New function.
20733         (default_function_arg, default_function_incoming_arg): New function.
20734         * config/i386/i386.c (function_arg_advance): Rename to...
20735         (ix86_function_arg_advance): ...this.  Make static.
20736         (function_arg): Rename to...
20737         (ix86_function_arg): ...this.  Make static.
20738         (TARGET_FUNCTION_ARG_ADVANCE): Define.
20739         (TARGET_FUNCTION_ARG): Define.
20740         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
20741         (FUNCTION_ARG): Delete.
20742         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
20743         (function_arg): Delete prototype.
20744
20745 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20746
20747         * reginfo.c (init_reg_sets_1): Adjust comments.
20748         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
20749         * calls.c (prepare_call_address): Likewise.
20750         (emit_call_1): Use targetm.calls.return_pops_args.
20751         (expand_call): Likewise.
20752         * function.c (assign_parms): Likewise.
20753         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
20754         * target.h (struct gcc_target) [struct calls]: Add
20755         return_pops_args field.
20756         * targhooks.h (default_return_pops_args): Declare.
20757         * targhooks.c (default_return_pops_args): Define.
20758         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
20759         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
20760         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
20761         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
20762         documentation.
20763         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
20764         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
20765         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
20766         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
20767         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
20768         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
20769         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
20770         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
20771         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
20772         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
20773         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
20774         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
20775         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
20776         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
20777         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
20778         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
20779         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
20780         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
20781         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
20782         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
20783         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
20784         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
20785         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
20786         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
20787         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
20788         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
20789         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
20790         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
20791         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
20792         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
20793         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
20794         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
20795         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
20796         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
20797         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
20798         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
20799         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
20800         * config/i386/i386.c (ix86_return_pops_args): Make static.
20801         Constify arguments.
20802         (TARGET_RETURN_POPS_ARGS): Define.
20803         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
20804         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
20805         (TARGET_RETURN_POPS_ARGS): Define.
20806         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
20807         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
20808         (TARGET_RETURN_POPS_ARGS): Define.
20809
20810 2010-06-29  Richard Guenther  <rguenther@suse.de>
20811
20812         PR middle-end/44667
20813         * tree-inline.c (initialize_inlined_parameters): Make sure
20814         to remap the inlined parameter variable substitutions types.
20815
20816 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
20817
20818         PR rtl-optimization/44659
20819         * combine.c (make_compound_operation) <SUBREG>: Do not return the
20820         result of force_to_mode if it partially re-expanded the compound.
20821
20822 2010-06-28  Jan Hubicka  <jh@suse.cz>
20823
20824         PR middle-end/44671
20825         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
20826         RESULT_DECL.
20827
20828 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
20829
20830         * double-int.h (force_fit_type_double): Remove declaration.
20831         * double-int.c (force_fit_type_double): Move to tree.c.
20832         * tree.h (force_fit_type_double): Declare.
20833         * tree.h (force_fit_type_double): Moved from double-int.c. Use
20834         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
20835         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
20836         * convert.c (convert_to_pointer): Adjust call to
20837         force_fit_type_double.
20838         * tree-vrp.c (extract_range_from_assert,
20839         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
20840         * fold-const.c: Update comment.
20841         (int_const_binop, fold_convert_const_int_from_int,
20842         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
20843         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
20844         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
20845         round_up_loc): Adjust call to force_fit_type_double.
20846
20847 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20848
20849         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
20850
20851 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20852
20853         * tree-sra.c (convert_callers): New parameter, change fndecls of
20854         recursive calls.
20855         (modify_function): Pass the old decl to convert_callers.
20856
20857 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20858
20859         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
20860         ipa_check_create_node_params and ipa_initialize_node_params with
20861         checking asserts they are not necessary.
20862
20863 2010-06-28  Jan Hubicka  <jh@suse.cz>
20864
20865         PR tree-optimization/44687
20866         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
20867
20868 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20869
20870         PR c++/44535
20871         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
20872         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
20873         instead of BINFO_BASE_BINFO.
20874
20875 2010-06-28  Michael Matz  <matz@suse.de>
20876
20877         PR middle-end/44592
20878         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
20879         proper VDEF chain for intermediate stores in the sequence.
20880
20881 2010-06-28  Jan Hubicka  <jh@suse.cz>
20882
20883         PR tree-optimization/44357
20884         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
20885         uninlinable functions.
20886
20887 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20888
20889         * config.gcc (powerpc*-*-*): Handle titan.
20890         * config/rs6000/rs6000.c (titan_cost): New costs.
20891         (rs6000_override_options): Add "titan" to processor_target_table.
20892         Add Titan to branch alignment logic.
20893         Correctly set rs6000_cost for titan.
20894         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
20895         * config/rs6000/titan.md: New file.
20896         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
20897
20898 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
20899
20900         * tree-browser.c (TB_history_stack): Convert to a VEC.
20901         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
20902         (TB_history_prev): Likewise.
20903
20904 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
20905
20906         * vec.h (vec_heap_free): Add parentheses around free.
20907
20908 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
20909
20910         * system.h: Poison GCC_EXCEPT_H for front-end files.
20911
20912         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
20913         langhook.
20914         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
20915         Define to NULL by default.
20916         * except.h: Define GCC_EXCEPT_H.
20917         (doing_eh): Remove prototype.
20918         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
20919         (lang_protect_cleanup_actions): Remove.
20920         * except.c (lang_protect_cleanup_actions): Remove.
20921         (doing_eh): Remove.
20922         (gen_eh_region): Don't check doing_eh here.
20923         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
20924         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
20925         instead of lang_protect_cleanup_actions.
20926         * omp-low.c (maybe_catch_exception): Likewise.
20927         * Makefile.in: Update dependencies.
20928
20929 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
20930
20931         * cgraph.h (struct varpool_node): new used_from_object_file flag.
20932         (struct cgraph_local_info): new used_from_object_file flag.
20933         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
20934         (cgraph_clone_node): initialize used_from_object_file.
20935         (cgraph_create_virtual_clone): initialize used_from_object_file.
20936         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
20937         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
20938         when compiling with -fwhole-program.
20939         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
20940         internal resolver.
20941         * ipa.c (function_and_variable_visibility): Set externally_visible
20942         flag of varpool_node if used_from_object_file flag is set.
20943         (cgraph_externally_visible_p): check used_from_object_file flag.
20944         * doc/invoke.texi (-fwhole-program option): Change description of
20945         externally_visible attribute accordingly.
20946         * doc/extend.texi (externally_visible): Ditto.
20947
20948 2010-06-27  Jan Hubicka  <jh@suse.cz>
20949
20950         * params.def (max-inline-insns-auto): Default to 40.
20951         * doc/invoke.texi (max-inline-insns-auto): Document the change.
20952
20953 2010-06-27  Jan Hubicka  <jh@suse.cz>
20954
20955         PR middle-end/44671
20956         PR middle-end/44686
20957         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
20958         signature change.
20959         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
20960         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
20961
20962 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
20963
20964         * target.h (struct gcc_target): Add register_move_cost field.
20965         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
20966         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
20967         * targhooks.c (default_register_move_cost): New function.
20968         * targhooks.h (default_register_move_cost): Declare function.
20969         * defaults.h (REGISTER_MOVE_COST): Delete.
20970         * ira-int.h (ira_register_move_cost): Update comment.
20971         * ira.c (ira_register_move_cost): Update comment.
20972         * reload.h (register_move_cost): Declare.
20973         * reginfo.c (register_move_cost): New function.
20974         (move_cost): Update comment.
20975         (init_move_cost, memory_move_secondary_cost): Replace
20976         REGISTER_MOVE_COST with register_move_cost.
20977         * postreload.c (reload_cse_simplify_set): (Ditto.).
20978         * reload.c (find_valid_class, find_reloads): (Ditto.).
20979         * reload1.c (choose_reload_regs): (Ditto.).
20980         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
20981         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
20982         * doc/md.texi (can_create_pseudo_p): Update documentation.
20983
20984         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
20985         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
20986         * config/i386/i386.h (ix86_memory_move_cost): Make static.
20987         (TARGET_MEMORY_MOVE_COST): Define.
20988
20989         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20990         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
20991         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
20992         (TARGET_MEMORY_MOVE_COST): Define.
20993
20994 2010-06-27  Richard Guenther  <rguenther@suse.de>
20995
20996         PR tree-optimization/44683
20997         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
20998         false edge from the inverted condition.
20999
21000 2010-06-27  Richard Guenther  <rguenther@suse.de>
21001
21002         PR middle-end/44684
21003         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
21004         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
21005         for register LHS.  Or non-store assignments.
21006
21007 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
21008
21009         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
21010         (sparc_emit_set_const64): Likewise.  Remove disabled code.
21011         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
21012         (sparc_emit_set_const64): Likewise.
21013
21014 2010-06-26  Catherine Moore  <clm@codesourcery.com>
21015
21016         * config/mips/mips.md (alu_type): New attribute.
21017         (type): Infer type from alu_type.
21018         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
21019         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
21020         *subsi3_extended, negsi2, negdi2, *low<mode>,
21021         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
21022         xor<mode>3, *nor<mode>3,
21023         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
21024         *zero_extendhi_truncqi):  Set alu_type instead of type.
21025
21026 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
21027
21028         * config/alpha/alpha.c (alpha_need_linkage): Adjust
21029         splay_tree_new_ggc call.
21030         (alpha_use_linkage): Likewise.
21031
21032 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21033
21034         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
21035         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
21036         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
21037         (static_specs): Remove switches_need_spaces.
21038         (process_command, do_self_spec): Hardcode handling "-o" instead of
21039         checking switches_need_spaces.
21040         * system.h (SWITCHES_NEED_SPACES): Poison.
21041
21042 2010-06-26  Richard Guenther  <rguenther@suse.de>
21043
21044         PR tree-optimization/44393
21045         * tree-loop-distribution.c (generate_loops_for_partition): Fix
21046         stmt removal and VOP renaming.
21047         (generate_memset_zero): Remove redundant stmt updating.
21048         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
21049         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
21050
21051 2010-06-26  Jan Hubicka  <jh@suse.cz>
21052
21053         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
21054         edges comming from header are equivalent.
21055         (visit_bb): Handle PHIs correctly.
21056         * tree-inline.c (copy_phis_for_bb): Be able to copy
21057         PHI from entry edge.
21058         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
21059
21060 2010-06-26  Richard Guenther  <rguenther@suse.de>
21061
21062         PR middle-end/44674
21063         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
21064         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
21065
21066 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21067
21068         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
21069         add_infile, alloc_switch): New.
21070         (process_command): Remove variable lang_n_infiles.  Process
21071         options in a single pass.  Use new functions for allocating
21072         infiles and switches arrays.  Properly skip operands of
21073         -Xpreprocessor and -Xassembler.
21074
21075 2010-06-26  Jan Hubicka  <jh@suse.cz>
21076
21077         PR middle-end/44671
21078         * cgraphunit.c (cgraph_function_versioning): Remove wrong
21079         cgraph_make_decl_local call; fix typo copying RTL data.
21080
21081 2010-06-25  DJ Delorie  <dj@redhat.com>
21082
21083         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
21084         (m32c_output_aligned_common): Likewise.
21085         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
21086         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
21087         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
21088         (m32c_register_pragmas): Register it.
21089         * config/m32c/m32c.c (m32c_get_pragma_address): New.
21090         (m32c_insert_attributes): Set #pragma address decls volatile.
21091         (pragma_entry_eq): New.
21092         (pragma_entry_hash): New.
21093         (m32c_note_pragma_address): New.
21094         (m32c_get_pragma_address): New.
21095         (m32c_output_aligned_common): New.
21096         * doc/extend.texi: Document the new pragma.
21097
21098         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
21099         also.
21100         * config/m32c/predicates.md (m32c_any_operand): Check the code
21101         instead of memory_operand so as to allow matching volatile MEMs.
21102         (m32c_nonimmediate_operand): Likewise.
21103         (mra_operand): Allow volatiles.
21104
21105 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
21106
21107         PR debug/44610
21108         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
21109         address if the offset is unknown.
21110
21111 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
21112
21113         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
21114         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
21115         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
21116         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
21117         to ia64_start_function. Invoke it.
21118         * config/ia64/ia64.c (ia64_start_function): Call new function
21119         dwarf2out_vms_debug_main_pointer.
21120
21121 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21122
21123         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
21124         statements computing the true predicate.
21125
21126 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21127
21128         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
21129         to boolean_true_node.
21130         (reset_bb_predicate): New.
21131         (predicate_bbs): Call reset_bb_predicate.
21132
21133 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21134
21135         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
21136         (tree_if_conversion): Returns true when something has been changed.
21137         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
21138         changed something.
21139
21140 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21141
21142         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
21143         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
21144         * tree-if-conv.c: Include dbgcnt.h.
21145         (tree_if_conversion): Use if_conversion_tree to count the number of
21146         if-convertible loops.
21147
21148 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
21149
21150         * common.opt (fprefetch-loop-arrays): Re-define
21151         -fprefetch-loop-arrays as a tri-state option with the initial
21152         value of -1.
21153         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
21154         pass only when flag_prefetch_loop_arrays > 0.
21155         * toplev.c (process_options): Note that, with tri-states,
21156         flag_prefetch_loop_arrays>0 means prefetching is enabled.
21157         * config/i386/i386.c (override_options): Enable prefetching at -O3
21158         for a set of CPUs that sw prefetching is helpful.
21159         (software_prefetching_beneficial_p): New.  Return TRUE if software
21160         prefetching is beneficial for the given CPU.
21161
21162 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21163
21164         PR rtl-optimization/44326
21165         * implicit-zee.c (find_removable_zero_extends): Replace
21166         INSN_P with NONDEBUG_INSN_P.
21167
21168 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21169
21170         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
21171         (struct ipa_node_params): Removed the modification_analysis_done flag.
21172         (ipa_is_param_modified): Removed.
21173         (ipa_analyze_node): Declare.
21174         (ipa_compute_jump_functions): Remove declaration.
21175         (ipa_count_arguments): Likewise.
21176         (ipa_detect_param_modifications): Likewise.
21177         (ipa_analyze_params_uses): Likewise.
21178         * ipa-prop.c (struct param_analysis_info): New type.
21179         (visit_store_addr_for_mod_analysis): Removed.
21180         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
21181         moved down in the file.
21182         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
21183         (ipa_count_arguments): Made static.
21184         (mark_modified): New function.
21185         (is_parm_modified_before_call): New function.
21186         (compute_pass_through_member_ptrs): New parameter parms_info, call
21187         is_parm_modified_before_call instead of ipa_is_param_modified.
21188         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
21189         it to compute_pass_through_member_ptrs.
21190         (ipa_compute_jump_functions): New parameter parms_info, pass it to
21191         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
21192         on the callee if it is analyzed.  Made static.
21193         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
21194         is_parm_modified_before_call instead of ipa_is_param_modified.
21195         (ipa_analyze_call_uses): New parameter parms_info, pass it to
21196         ipa_analyze_indirect_call_uses.
21197         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
21198         ipa_analyze_call_uses.
21199         (ipa_analyze_params_uses): New parameter parms_info, pass it to
21200         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
21201         (ipa_analyze_node): New function.
21202         (ipa_print_node_params): Do not dump the modified flag.
21203         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
21204         it.  Do not stream the modified parameter flag.
21205         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
21206         it.  Do not stream the modified parameter flag.
21207         * ipa-cp.c (ipcp_analyze_node): Removed.
21208         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
21209         with only a call to ipa_analyze_node.
21210         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
21211         node with only a call to ipa_analyze_node.
21212
21213 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21214
21215         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
21216
21217 2010-06-25  Jan Hubicka  <jh@suse.cz>
21218
21219         * tree-pass.h (pass_split_functions): Declare.
21220         * opts.c (decode_options): Enable function splitting at -O2
21221         * timevar.def (TV_IPA_FNSPLIT): New macro.
21222         * ipa-split.c: New file.
21223         * common.opt (-fpartial-inlining): New flag.
21224         * Makefile.in (ipa-split.o): New object file.
21225         * passes.c (init_optimization_passes): Add ipa-split.
21226         * params.def (partial-inlining-entry-probability): New parameters.
21227         * doc/invoke.texi (-fpartial-inlining): New.
21228
21229 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21230
21231         PR 44665
21232         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
21233         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
21234         (gimplify_expr): Likewise.
21235
21236 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21237
21238         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
21239         statements instead of bailing out on them.
21240         (ipa_analyze_indirect_call_uses): Do not require that loads from the
21241         parameter are in the same BB as the condition.  Update comments.
21242
21243 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
21244
21245         PR middle-end/43866
21246         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21247         true or always false, return NULL_TREE.
21248         (tree_unswitch_single_loop): Optimize conditions even when reaching
21249         max-unswitch-level parameter.  If num > 0, optimize first all conditions
21250         using entry checks, then do still reachable block discovery and consider
21251         only conditions in still reachable basic blocks in the loop.
21252
21253         PR tree-optimization/44539
21254         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21255         the call doesn't have LHS, but has VDEF.
21256
21257 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21258
21259         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21260         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
21261         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
21262         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
21263         * system.h (MODIFY_TARGET_NAME): Poison.
21264
21265 2010-06-25  Alan Modra  <amodra@gmail.com>
21266
21267         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
21268         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
21269         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
21270         CMODEL_LARGE as default.
21271         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
21272         (offsettable_ok_by_alignment): Delete.
21273         (rs6000_emit_move): Remove mcmodel=medium optimization.
21274
21275 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21276
21277         With large parts from Jim Wilson:
21278         PR target/43902
21279         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
21280         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21281         * optabs.c (optab_for_tree_code): Likewise.
21282         (expand_widen_pattern_expr): Likewise.
21283         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
21284         out of execute_optimize_widening_mul.
21285         (convert_plusminus_to_widen): New function.
21286         (execute_optimize_widening_mul): Use the two new functions.
21287         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
21288         Remove code to generate widening multiply-accumulate.  Add support
21289         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21290         * gimple-pretty-print.c (dump_ternary_rhs): New function.
21291         (dump_gimple_assign): Call it when appropriate.
21292         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
21293         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
21294         (expand_gimple_stmt_1): Likewise.
21295         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
21296         WIDEN_MULT_MINUS_EXPR.
21297         * tree-ssa-operands.c (get_expr_operands): Likewise.
21298         * tree-inline.c (estimate_operator_cost): Likewise.
21299         * gimple.c (extract_ops_from_tree_1): Renamed from
21300         extract_ops_from_tree.  Add new arg for a third operand; fill it.
21301         (gimple_build_assign_stat): Support operations with three operands.
21302         (gimple_build_assign_with_ops_stat): Likewise.
21303         (gimple_assign_set_rhs_from_tree): Likewise.
21304         (gimple_assign_set_rhs_with_ops_1): Renamed from
21305         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
21306         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
21307         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
21308         WIDEN_MULT_MINUS_EXPR.
21309         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
21310         (extract_ops_from_tree_1): Adjust declaration.
21311         (gimple_assign_set_rhs_with_ops_1): Likewise.
21312         (gimple_build_assign_with_ops): Pass NULL for last operand.
21313         (gimple_build_assign_with_ops3): New macro.
21314         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
21315         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
21316         functions.
21317         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
21318         (verify_gimple_assign): Call it.
21319         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
21320         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
21321         functions for dealing with three-operand statements.
21322         * tree.c (commutative_ternary_tree_code): New function.
21323         * tree.h (commutative_ternary_tree_code): Declare it.
21324         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
21325         ternary statements.
21326         (gimple_assign_nonzero_warnv_p): Likewise.
21327         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
21328         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
21329         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
21330         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
21331         (struct hashtable_expr): New member ternary in the union.
21332         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
21333         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
21334         (iterative_hash_hashable_expr): Likewise.
21335         (print_expr_hash_elt): Handle EXPR_TERNARY.
21336         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
21337         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
21338         statements.  Handle GIMPLE_TERNARY_RHS.
21339
21340 2010-06-25  Jan Hubicka  <jh@suse.cz>
21341
21342         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
21343
21344 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
21345
21346         PR c/44517
21347         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
21348         parameters are not good.
21349         (c_parser_parameter_declaration): Error unknown type name if the type
21350         name can't start declaration specifiers.
21351
21352 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21353
21354         * gcc.c (translate_options): Don't mention +e in comment.
21355         (process_command): Don't handle +e specially.
21356
21357 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21358
21359         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
21360
21361         * ira-build.c (merge_hard_reg_conflicts): New function.
21362         (create_cap_allocno, copy_info_to_removed_store_destinations,
21363         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
21364         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
21365         (remove_unnecessary_allocnos, remove_low_level_allocnos)
21366         copy_nifo_to_removed_store_destination): Use them.
21367         * ira-lives.c (make_hard_regno_born): New function, split out of
21368         make_regno_born.
21369         (make_allocno_born): Likewise.
21370         (make_hard_regno_dead): New function, split out of make_regno_dead.
21371         (make_allocno_dead): Likewise.
21372         (inc_register_pressure): New function, split out of set_allocno_live.
21373         (dec_register_pressure): New function, split out of clear_allocno_live.
21374         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
21375         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
21376         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
21377         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
21378         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
21379         mark_pseudo_regno_live.
21380         (process_bb_node_lives): Use mark_pseudo_regno_live,
21381         make_hard_regno_born and make_allocno_dead.
21382         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
21383         set_allocno_live, clear_allocno_live): Delete functions.
21384
21385         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
21386         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
21387         functions.
21388         (ira_flattening): Use ira_parent_allocno.
21389         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
21390         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
21391
21392         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
21393         statement.
21394
21395         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
21396         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
21397         minmax_set_iter_cond, minmax_set_iter_next,
21398         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
21399         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
21400         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
21401         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
21402         uses changed.
21403
21404         * ira-int.h (struct live_range, live_range_t): Renamed from struct
21405         ira_allocno_live_range and allocno_live_range_t; all uses changed.
21406         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
21407         All uses changed.
21408
21409 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
21410
21411         * thumb2.md (thumb2_tlobits_cbranch): Delete.
21412         (peephole2 to convert zero_extract/compare of single bit to
21413          lshift/compare): New.
21414
21415 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
21416
21417         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
21418         recursive call and call to 'int_const_binop'.
21419         (build_range_check, fold_cond_expr_with_comparison, unextend,
21420         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
21421         multiple_of_p): Adjust call to const_binop.
21422
21423 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
21424
21425         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
21426         determine size of XFmode operand.
21427         (XFmode extended DFmode push splitter): Ditto.
21428         (XFmode extended SFmode push splitter): Ditto.
21429
21430 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
21431
21432         PR target/44588
21433         * config/i386/i386.md (extract_code): New.
21434         (<u>divmodqi4): Likewise.
21435         (divmodhiqi3): Likewise.
21436         (udivmodhiqi3): Likewise.
21437         (<u>divqi3): Remvoved.
21438
21439 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
21440
21441         PR middle-end/44492
21442         * recog.h (struct recog_data): Add is_asm field.
21443         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
21444         present in constraints of inline-asm operand and memory operand
21445         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
21446         (extract_insn): Initialize recog_data.is_asm.
21447         * doc/md.texi (Constraints): Document operand side-effect rules.
21448
21449 2010-06-24  Andi Kleen  <ak@linux.intel.com>
21450
21451         * c-parser.c (c_parser_conditional_expression): Call
21452         warn_for_omitted_condop.
21453         * doc/invoke.texi: Document omitted condop warning.
21454
21455 2010-06-24  Nick Clifton<nickc@redhat.com>
21456
21457         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
21458         insn in the sequence is a jump insn before setting its label.
21459
21460 2010-06-24  Alan Modra  <amodra@gmail.com>
21461
21462         * collect2.c (main): Match exactly --version and --help.
21463
21464 2010-06-24  DJ Delorie  <dj@redhat.com>
21465
21466         * config/m32c/m32c-pragma.c: Don't include rtl.h.
21467
21468 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
21469
21470         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
21471         using X87MODEF mode iterator.
21472         (pushsf splitter): Macroize splitter using P mode iterator.
21473         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
21474         mode iterator.
21475
21476         (*movxf_internal): Rename from *movxf_integer.
21477         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
21478         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
21479         (*movdf_internal): Rename from *movdf_integer.
21480         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
21481         (*movsf_internal): Rename from *movdf_1.
21482
21483 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
21484
21485         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
21486         (const_gimple_seq_node): Removed typedefs.
21487
21488         * gimple.h (gimple_seq_node_d, gimple_seq_node)
21489         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
21490
21491 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
21492
21493         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
21494         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
21495         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
21496         and CODE_FOR_vec_extract_lo_v4df.
21497
21498         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
21499         Changed to define_insn_and_split.
21500         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
21501         (vec_extract_lo_v16hi): Likewise.
21502         (vec_extract_lo_v32qi): Likewise.
21503         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
21504         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
21505
21506 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
21507
21508         PR target/44640
21509         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
21510         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
21511         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
21512         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
21513         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
21514
21515         PR target/44640
21516         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
21517
21518         PR other/44644
21519         * df-core.c (struct df): Rename to df_d.
21520         * df.h (struct df): Likewise.
21521         * dse.h (struct df): Remove forward declaration.
21522         * recog.h (struct insn_data): Rename to:
21523         (struct_insn_data_d).  Adjusted all users.
21524
21525 2010-06-23  Arnaud Charlet  <charlet@adacore.com
21526
21527         PR ada/22220
21528         * doc/install.texi: Update requirements to build GNAT.
21529
21530 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
21531
21532         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
21533         enum type.
21534         (m68k_sched_attr_opx_type): Remove unreachable return.
21535         (m68k_sched_attr_opy_type): Likewise.
21536         (m68k_sched_attr_size): Likewise.
21537         (sched_get_opxy_mem_type): Likewise.
21538         (m68k_sched_attr_op_mem): Likewise.
21539
21540 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
21541
21542         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
21543         new statement and adjust VDEF only if necessary.  Remove superfluous
21544         call to maybe_clean_or_replace_eh_stmt.
21545         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
21546         copy the flags.
21547         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
21548         * tree-inline.c (copy_bb): ...and not there.
21549
21550 2010-06-22  Cary Coutant  <ccoutant@google.com>
21551
21552         * dwarf2out.c (is_nested_in_subprogram): New function.
21553         (should_move_die_to_comdat): Use it.
21554         (copy_ancestor_tree): Don't mark DIEs here.
21555         (copy_decls_walk): Start walk from root of newly-added tree;
21556         mark DIEs here instead.
21557
21558 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
21559
21560         * config/i386/i386.md (unit): Also check sseishft1.
21561
21562 2010-06-22  Jan Hubicka  <jh@suse.cz>
21563
21564         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
21565         enabled.
21566
21567 2010-06-22  Jan Hubicka  <jh@suse.cz>
21568
21569         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
21570         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
21571         Return true if something changed.
21572         * df.h (df_confluence_function_n): Return bool.
21573         * df-core.c (df_worklist_propagate_forward,
21574         df_worklist_propagate_backward): Track changes and ages.
21575         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
21576         track ages.
21577         * dse.c (dse_confluence_n): Return always true.
21578
21579 2010-06-22  Jan Hubicka  <jh@suse.cz>
21580
21581         * bitmap.c (bitmap_clear_bit): Micro optimize.
21582
21583 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
21584
21585         * config/i386/i386.md (SWI1248x): New mode iterator.
21586         (SWI48x): Ditto.
21587         (SWI12): Ditto.
21588         (SWI24): Ditto.
21589
21590         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
21591         SWI1248x mode iterator.
21592         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
21593         using SWI124 mode iterator.
21594         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
21595         mode iterator.
21596         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
21597         *pushdi2_prologue_rex64 using P mode iterator.
21598         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
21599         using SWI48 mode iterator.
21600         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
21601         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
21602         using SWI1248x mode iterator.
21603         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
21604         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
21605         SWI48 mode iterator.
21606         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
21607         iterator.
21608         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
21609         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
21610         SWI12 mode iterator.
21611         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
21612         SWI12 mode iterator.
21613         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
21614         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
21615         SWI24 mode iterator.
21616         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
21617         SWI48 mode iterator.
21618         (mov<mode>_insn_1): New expander.
21619         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
21620         using SWI48x mode iterator.
21621
21622         (*movoi_internal_avx): Rename from *movoi_internal.
21623         (*movti_internal_rex64): Rename from *movti_rex64.
21624         (*movti_internal_sse): Rename from *movti_sse.
21625         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
21626         (*movdi_internal): Rename from *movdi_2.
21627         (*movsi_internal): Rename from *movsi_1.
21628         (*movhi_internal): Rename from *movhi_1.
21629         (*movqi_internal): Rename from *movqi_1.
21630
21631         (insv): Update the call to gen_movsi_insv_1 for rename.
21632         * config/i386/i386.c (promote_duplicated_reg): Ditto.
21633
21634 2010-06-22  Jan Hubicka  <jh@suse.cz>
21635
21636         * passes.c (execute_function_todo): Move call of statistics_fini_pass
21637         to ...
21638         (execute_todo) ... this one.
21639
21640 2010-06-22  Alan Modra  <amodra@gmail.com>
21641
21642         PR target/44364
21643         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21644         * caller-save.c (insert_restore, insert_save): Use non-validate
21645         form of adjust_address.
21646
21647 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21648
21649         PR target/39690
21650         * config/pa/pa.c (override_options): Disable
21651         -freorder-blocks-and-partition.
21652
21653 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
21654
21655         PR target/44615
21656         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
21657
21658         * config/i386/i386.md (type): Add sseishft1
21659
21660         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
21661         (ppro_insn_load): Likewise.
21662         (ppro_insn_store): Likewise.
21663         (ppro_insn_both): Likewise.
21664
21665         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
21666         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
21667         for type.
21668         (*vec_extractv2di_1_avx): Likewise.
21669         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
21670         type.  Remove atom_unit.
21671         (*vec_extractv2di_1_sse2): Likewise.
21672
21673 2010-06-21  DJ Delorie  <dj@redhat.com>
21674
21675         * diagnostic.h (diagnostic_classification_change_t): New.
21676         (diagnostic_context): Add history and push/pop list.
21677         (diagnostic_push_diagnostics): Declare.
21678         (diagnostic_pop_diagnostics): Declare.
21679         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
21680         from pragmas in a history chain instead of the global table.
21681         (diagnostic_push_diagnostics): New.
21682         (diagnostic_pop_diagnostics): New.
21683         (diagnostic_report_diagnostic): Scan history chain to find state
21684         of diagnostics as of the diagnostic location.
21685         * opts.c (set_option): Pass UNKNOWN_LOCATION to
21686         diagnostic_classify_diagnostic.
21687         (enable_warning_as_error): Likewise.
21688         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
21689         use in the history chain.
21690         * doc/extend.texi: Document pragma GCC diagnostic changes.
21691
21692 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
21693
21694         * dwarf2out.c (add_linkage_name): New function.  Don't add
21695         anything to DW_TAG_member DIEs.
21696         (add_name_and_src_coords_attributes): Use it.
21697         (gen_variable_die): Call it for C++ static data members if
21698         specification is DW_TAG_member.
21699
21700         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
21701         C++ char16_t and char32_t.
21702
21703         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
21704         * genattrtab.c: Include vecprim.h.
21705         (cached_attrs, cached_attr_count, attrs_seen_once,
21706         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
21707         attrs_cached_after): New variables.
21708         (find_attrs_to_cache): New function.
21709         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
21710         (write_test_expr): Add attrs_cached argument, return it too,
21711         attempt to cache non-const attributes used more than once in
21712         a single case handling.
21713         (write_attr_get): Use find_attrs_to_cache, for caching candidates
21714         emit cached_* variables.  Adjust write_attr_set callers.
21715         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
21716         to find attributes that should be cached in this block.  Adjust
21717         write_test_expr callers.
21718         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
21719         callers.
21720         (make_automaton_attrs): Adjust write_test_expr caller.
21721
21722         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
21723         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
21724         (make_automaton_attrs): If find_tune_attr returns non-NULL,
21725         write separate internal_dfa_insn_code_* and insn_default_latency_*
21726         functions for each attribute's value and emit init_sched_attrs
21727         function and function pointers.
21728         * genattr.c (const_attrs, reservations): New variables.
21729         (gen_attr): Add const attributes to const_attrs vector.
21730         (check_tune_attr, find_tune_attr): New functions.
21731         (main): Add reservations to reservations vector.  If find_tune_attr
21732         returns true, add prototype for init_sched_attrs and make
21733         internal_dfa_insn_code and insn_default_latency function pointers,
21734         otherwise define init_sched_attrs as dummy macro.
21735         * cfgexpand.c: Include insn-attr.h.
21736         (gimple_expand_cfg): Call init_sched_attrs.
21737
21738         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
21739
21740         PR target/44575
21741         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
21742         va_arg from a set of register save slots into a temporary,
21743         if the container is bigger than type size, do the copying
21744         using smaller mode or using memcpy.
21745
21746         PR bootstrap/44426
21747         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
21748         prototype.
21749         (sel_print_to_dot): Remove macro.
21750         (sel_print): Likewise.  New prototype.
21751         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
21752         (sel_print): New function.
21753
21754 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21755
21756         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
21757         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
21758
21759 2010-06-21  Nick Clifton  <nickc@redhat.com>
21760
21761         * config/rx/rx.h (PTRDIFF_TYPE): Define.
21762         (SMALL_REGISTER_CLASS): Define (to zero).
21763         (PRINT_OPERAND): Delete.
21764         (PRINT_OPERAND_ADDRESS): Delete.
21765         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
21766         (rx_print_operand_address): Delete prototype.
21767         * config/rx/rx.c (rx_print_operand): Make static.
21768         Allow %H and %L to handle CONST_DOUBLEs.
21769         (rx_print_operand_address): Make static.
21770         (rx_gen_move_template): Rename local variable 'template' to
21771         out_template.
21772         (rx_function_arg): Do not pass unknown sized objects in registers.
21773         (TARGET_PRINT_OPERAND): Define.
21774         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21775
21776 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
21777
21778         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
21779
21780 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
21781
21782         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
21783         stack-alignment for simple leaf-functions.
21784
21785 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
21786
21787         * doc/install.texi: Document bootstrap-lto.
21788
21789 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
21790
21791         PR debug/44248
21792         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
21793         (input_function): Drop them here, if VTA is disabled.
21794
21795 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
21796
21797         PR target/44546
21798         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
21799         New predicate.
21800         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
21801         ix86_swapped_fp_comparsion_operator instead of
21802         ix86_fp_comparison_operator.
21803
21804         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
21805         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
21806         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
21807         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
21808         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
21809         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
21810
21811 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
21812
21813         PR other/32998
21814         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
21815         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
21816         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
21817         (decode_cmdline_option): Update for this return value.  Set
21818         orig_option_with_args_text field.  Set arg field for unknown
21819         options.  Make static.
21820         (decode_cmdline_options_to_array): New.
21821         (prune_options): Update handling of find_opt return value.
21822         * opts.c (read_cmdline_option): Take decoded option.  Return void.
21823         (read_cmdline_options): Take decoded options.
21824         (decode_options): Add parameters for decoded options.  Use
21825         decode_cmdline_options_to_array.  Use decoded options for -O
21826         scan.  Use integral_argument for -O parameters.  Update call to
21827         read_cmdline_options.
21828         (enable_warning_as_error): Update handling of find_opt return value.
21829         * opts.h: Update comment on unknown options.
21830         (struct cl_decoded_option): Update comments on opt_index and arg.
21831         Add orig_option_with_args_text.
21832         (decode_cmdline_option): Remove.
21833         (decode_cmdline_options_to_array): Declare.
21834         (decode_options): Update prototype.
21835         * toplev.c (save_argv): Remove.
21836         (save_decoded_options, save_decoded_options_count): New.
21837         (read_integral_parameter): Remove.
21838         (print_switch_values): Use decoded options.
21839         (toplev_main): Don't set save_argv.  Update call to decode_options.
21840         * toplev.h (read_integral_parameter): Remove.
21841         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
21842
21843 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
21844
21845         PR target/44072
21846         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
21847         immediate.
21848         * constraints.md (Pw, Px): New constraints.
21849         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
21850
21851 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
21852
21853         * config/i386/sse.md (fma4modesuffixf4): Removed.
21854         (ssemodesuffixf2s): Likewise.
21855         (ssemodesuffixf4): Likewise.
21856         (ssemodesuffixf2c): Likewise.
21857         (ssescalarmodesuffix2s): Likewise.
21858         (avxmodesuffixf2c): Likewise.
21859         (ssemodesuffix): New.
21860         (ssescalarmodesuffix): Likewise.
21861         Update patterns with ssemodesuffix and ssescalarmodesuffix.
21862
21863 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
21864
21865         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
21866
21867 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
21868
21869         * stor-layout.c (debug_rli): Remove unused local variables.
21870
21871 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
21872
21873         PR rtl-optimization/40900
21874         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
21875         original expression for later reuse.
21876         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
21877         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
21878
21879 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
21880
21881         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
21882         double_int_fits_in_uhwi_p): Implement as static inline.
21883         (double_int_xor): New inline function.
21884         (double_int_lrotate, double_int_rrotate, double_int_max,
21885         double_int_umax, double_int_smax, double_int_min, double_int_umin,
21886         double_int_smin): Declare.
21887         (lrotate_double, rrotate_double): Remove declaration.
21888         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
21889         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
21890         (double_int_lrotate, double_int_rrotate, double_int_max,
21891         double_int_umax, double_int_smax, double_int_min, double_int_umin,
21892         double_int_smin): New function.
21893         * fold-const.c (int_const_binop): Clean up, use double_int_*
21894         functions.
21895         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
21896         double_int_* and immed_double_int_const functions.
21897
21898 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
21899
21900         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
21901         * function.c (types_used_by_cur_var_decl): Likewise.
21902         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
21903
21904 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
21905
21906         * tree.h (record_layout_info): Change type of pending_statics field
21907         to a VEC.
21908         * stor-layout.c (start_record_layout): Store NULL into
21909         pending_statics.
21910         (debug_rli): Call debug_vec_tree instead of debug_tree.
21911         (place_field): Likewise.
21912         (finish_record_layout): Likewise.
21913
21914 2010-06-18  Alan Modra  <amodra@gmail.com>
21915
21916         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
21917
21918 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21919
21920         PR target/43740
21921         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
21922         for SET source operand from SET destination operand.
21923
21924 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
21925
21926         PR rtl-optimization/39871
21927         * reload1.c (init_eliminable_invariants): For flag_pic, disable
21928         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
21929         (function_invariant_p): Rule out a plus of frame or arg pointer with
21930         a SYMBOL_REF.
21931         * ira.c (find_reg_equiv_invariant_const): Likewise.
21932
21933 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
21934
21935         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
21936         print_operand_address and puts to output the operand for CONST.
21937
21938 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
21939
21940         PR debug/44572
21941         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
21942         hook.
21943
21944 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21945
21946         * v850-protos.h (print_operand): Delete.
21947         (print_operand_address): Delete.
21948         * v850.h (PRINT_OPERAND): Delete.
21949         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21950         (PRINT_OPERAND_ADDRESS): Delete.
21951         * v850.c (print_operand_address): Rename to...
21952         (v850_print_operand_address): ...this.  Make static. Call
21953         v850_print_operand.
21954         (print_operand): Rename to...
21955         (v850_print_operand): ...this.  Make static.  Call
21956         v850_print_operand_address.
21957         (v850_print_operand_punct_valid_p): New function.
21958         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21959         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21960
21961 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21962
21963         * config/sh/sh-protos.h (print_operand): Delete.
21964         (print_operand_address): Delete.
21965         * config/sh/sh.h (PRINT_OPERAND): Delete.
21966         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21967         (PRINT_OPERAND_ADDRESS): Delete.
21968         * config/sh/sh.c (sh_print_operand_address): Make static.
21969         (sh_print_operand): Make static.  Call sh_print_operand_address
21970         and sh_print_operand.
21971         (sh_print_operand_punct_valid_p): New function.
21972         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21973         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21974
21975 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21976
21977         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
21978         (mcore_print_operand_address): Delete.
21979         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
21980         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21981         (PRINT_OPERAND_ADDRESS): Delete.
21982         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
21983         (mcore_print_operand): Make static.
21984         (mcore_print_operand_punct_valid_p): New function.
21985         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
21986         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21987
21988 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21989
21990         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
21991         (print_operand_address): Delete.
21992         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
21993         (PRINT_OPERAND_ADDRESS): Delete.
21994         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
21995         static.
21996         (m68hc11_print_operand): Make static.
21997         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21998
21999 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22000
22001         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
22002         (m32r_print_operand_address): Delete.
22003         * config/m32r/m32r.h (m32r_punct_chars): Delete.
22004         (PRINT_OPERAND): Delete.
22005         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22006         (PRINT_OPERAND_ADDRESS): Delete.
22007         * config/m32r/m32r.c (m32r_punct_chars): Make static.
22008         (m32r_print_operand_address): Make static.
22009         (m32r_print_operand): Make static.
22010         (m32r_print_operand_punct_valid_p): New function.
22011         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22012         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22013
22014 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22015
22016         * config/iq2000/iq2000-protos.h (print_operand): Delete.
22017         (print_operand_address): Delete.
22018         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
22019         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22020         (PRINT_OPERAND_ADDRESS): Delete.
22021         (iq2000_print_operand_punct): Delete.
22022         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
22023         (iq2000_print_operand_address): Make static.
22024         (iq2000_print_operand): Make static.
22025         (iq2000_print_operand_punct_valid_p): New function.
22026         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22027         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22028
22029 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22030
22031         * config/frv/frv-protos.h (frv_print_operand): Delete.
22032         (frv_print_operand_address): Delete.
22033         * config/frv/frv.h (PRINT_OPERAND): Delete.
22034         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22035         (PRINT_OPERAND_ADDRESS): Delete.
22036         * config/frv/frv.c (frv_print_operand_address): Make static.
22037         (frv_print_operand): Make static.
22038         (frv_print_operand_punct_valid_p): New function.
22039         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22040         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22041
22042 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22043
22044         * tree.h (vec_member): Declare.
22045         * tree.c (vec_member): Define.
22046
22047 2010-06-17  Richard Guenther  <rguenther@suse.de>
22048
22049         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
22050         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
22051
22052 2010-06-17  Richard Guenther  <rguenther@suse.de>
22053
22054         * tree-inline.c (declare_return_variable): Remove bogus code.
22055
22056 2010-06-17  Richard Guenther  <rguenther@suse.de>
22057
22058         * gimplify.c (gimplify_bind_expr): Always promote complex
22059         and vector variables to registers if possible.
22060
22061 2010-06-17  Richard Guenther  <rguenther@suse.de>
22062
22063         * expr.c (get_inner_reference): Use double_int for bit_offset
22064         calculation.
22065
22066 2010-06-16  DJ Delorie  <dj@redhat.com>
22067
22068         * common.opt (-fstrict-volatile-bitfields): new.
22069         * doc/invoke.texi: Document it.
22070         * fold-const.c (optimize_bit_field_compare): For volatile
22071         bitfields, use the field's type to determine the mode, not the
22072         field's size.
22073         * expr.c (expand_assignment): Likewise.
22074         (get_inner_reference): Likewise.
22075         (expand_expr_real_1): Likewise.
22076         * expmed.c (store_fixed_bit_field): Likewise.
22077         (extract_bit_field_1): Likewise.
22078         (extract_fixed_bit_field): Likewise.
22079
22080 2010-06-16  Richard Guenther  <rguenther@suse.de>
22081
22082         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
22083
22084 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
22085
22086         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
22087         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
22088         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
22089         * debug.c: Likewise.
22090         * sdbout.c: Likewise.
22091         * vmsdbgout.c: Likewise.
22092         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
22093         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
22094         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
22095         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
22096         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
22097         * dwarf2out.c (dw_fde_struct): New fields
22098         dw_fde_vms_{end,begin}_prologue.
22099         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
22100         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
22101         (dwarf2out_vms_end_prologue): New function.
22102         (dwarf2out_vms_begin_epilogue): New function.
22103         (dw_val_struct): New value dw_val_class_vms_delta.
22104         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
22105         begin_epilogue for VMS.
22106         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
22107         new static functions.
22108         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
22109         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
22110         static functions.
22111         (print_die): New case dw_val_class_vms_delta.
22112         (attr_checksum): Likewise.
22113         (same_dw_val_p: Likewise.
22114         (size_of_die): Likewise.
22115         (value_format): Likewise.
22116         (output_die): Likewise.
22117         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
22118         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
22119         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
22120         dwarf2out_cfi_begin_epilogue
22121         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
22122
22123 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22124
22125         * config/cris/cris-protos.h (cris_print_operand): Delete.
22126         (cris_print_operand_address): Delete.
22127         * config/cris/cris.h (PRINT_OPERAND): Delete.
22128         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22129         (PRINT_OPERAND_ADDRESS): Delete.
22130         * config/cris/cris.c (cris_print_operand_address): Make static.
22131         (cris_print_operand): Make static.
22132         (cris_print_operand_punct_valid_p): New function.
22133         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22134         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22135
22136 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22137
22138         * config/arm/arm-protos.h (arm_print_operand): Delete.
22139         (arm_print_operand_address): Delete.
22140         * config/arm/arm.h (PRINT_OPERAND): Delete.
22141         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22142         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
22143         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
22144         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
22145         (arm_print_operand): Make static.
22146         (arm_print_operand_punct_valid_p): New function.
22147         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22148         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22149
22150 2010-06-16  Nick Clifton  <nickc@redhat.com>
22151
22152         * config/rx/constraints.md (NEGint4): New constraint.
22153         * config/rx/rx.md (attr cc): Add set_zsc.
22154         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
22155         initialised.
22156         (cmpsf): Likewise.
22157         (call_internal): Clobber the cc0 register.
22158         (call_value_internal): Likewise.
22159         (cstoresi4): Likewise.
22160         (movsieq): Likewise.
22161         (movsine): Likewise.
22162         (addsi3): Add alternative to handle small negative constants.
22163         (sunsi3): Likewise.
22164         (addsi3): Do not set the O bit in the cc0 register.
22165         (adddi3): Likewise.
22166         (subsi3): Likewise.
22167         (subdi3): Likewise.
22168         (andsi3): Reorder alternatives to prefer shorter forms.
22169         (mulsi3): Likewise.
22170         (iorsi3): Likewise.
22171         (negsi2): Note that the cc0 flags are set.
22172         (rotlsi3): Note that only the Z and S bits are set in cc0.
22173         (lshrsi3): Likewise.
22174         (ashlsi3): Likewise.
22175         (subsf3): Use %Q for the MEM operand.
22176         (fix_truncsfsi2): Likewise.
22177         (floatsisf2): Likewise.
22178         (bitset): Remove early clobber from destination.
22179         (bitset_in_memory): Likewise.
22180         (lrintsf2): Clobber the cc0 register.
22181         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
22182         (rx_print_operand): Handle %N.
22183
22184 2010-06-16  Jan Hubicka  <jh@suse.cz>
22185
22186         * df-core.c (df_compact_blocks): Free problem_temps vector.
22187
22188 2010-06-16  Martin Jambor  <mjambor@suse.cz>
22189
22190         PR tree-optimization/43905
22191         * tree-sra.c: Include tree-inline.h.
22192         (create_abstract_origin): Removed.
22193         (modify_function): Version the call graph node instead of creating
22194         abstract origins and dealing with same_body aliases.
22195         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
22196         function is versionable.
22197         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
22198
22199 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
22200
22201         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
22202         (CHOOSE_DYNAMIC_LINKER): Update.
22203
22204 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
22205
22206         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
22207         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
22208         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
22209         *prefetch_3dnow_rex.
22210
22211 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
22212
22213         * target.h (struct asm_out):Add declare_constant_name field.
22214         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22215         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
22216         * output.h (default_asm_declare_constant_name): Declare.
22217         (assemble_label): Update prototype.
22218         * varasm.c (assemble_constant_contents): Use
22219         targetm.asm_out.declare_constant_name target hook.
22220         (assemble_label): Add 'file' argument.
22221         (default_asm_declare_constant_name): New function.
22222         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
22223         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
22224         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
22225
22226         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
22227         * config/darwin.c (darwin_asm_declare_constant_name): New function.
22228         (machopic_output_indirection): Update assemble_label argument list.
22229         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
22230         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22231
22232 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
22233
22234         PR middle-end/44391
22235         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22236         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
22237
22238 2010-06-15  Richard Guenther  <rguenther@suse.de>
22239
22240         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22241
22242 2010-06-15  Paul Brook  <paul@codesourcery.com>
22243
22244         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22245         hard-float ABI.
22246
22247 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
22248
22249         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22250         don't get a vector type for output.
22251
22252 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
22253
22254         PR fortran/44536
22255         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22256         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22257         (LANG_HOOKS_DECLS): Add it.
22258         * gimplify.c (omp_notice_variable): Call
22259         lang_hooks.decls.omp_report_decl.
22260
22261 2010-06-15  Martin Jambor  <mjambor@suse.cz>
22262
22263         PR lto/44464
22264         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
22265         on the newly dead SSA name.
22266
22267 2010-06-15  Alan Modra  <amodra@gmail.com>
22268
22269         * doc/invoke.texi: Add mcmodel to powerpc options.
22270         * configure.ac: Add HAVE_LD_LARGE_TOC test.
22271         * configure: Regenerate.
22272         * config.in: Regenerate.
22273         * config/rs6000/linux64.opt (mcmodel): New.
22274         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
22275         (TARGET_CMODEL, SET_CMODEL): Define.
22276         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
22277         select CMODEL_MEDIUM default.
22278         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
22279         (TARGET_CMODEL): Define default.
22280         * config/rs6000/rs6000.c (cmodel): New variable.
22281         (rs6000_explicit_options): Add cmodel field.
22282         (rs6000_handle_option): Handle -mcmodel.
22283         (create_TOC_reference): Add largetoc_reg param.  Generate high,
22284         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
22285         (rs6000_delegitimize_address): Recognise new toc reference rtl
22286         and minimal-toc rtl.
22287         (rs6000_legitimize_reload_address): Handle new toc references.
22288         (print_operand_address): Handle legitimate_constant_pool_address_p
22289         match before lo_sum.
22290         (rs6000_eliminate_indexed_memrefs): Tidy.
22291         (rs6000_emit_move): Tweak threshold for inlining constants.
22292         Keep rs6000_emit_allocate_stack large stack frame offsets
22293         loaded into r0 inline.
22294         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
22295         (tocrel_base, tocrel_offset): New variables.
22296         (toc_relative_expr_p): Set them here.
22297         (print_operand_address): Skip over any offset on constant pool address.
22298         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
22299         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
22300         (offsettable_ok_by_alignment): New function.
22301         (rs6000_emit_move): Address suitably aligned local symbol_refs
22302         relative to the toc pointer for -mcmodel=medium.
22303         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
22304         strict param.  Allow lo_sum version of addressing.  Verify reg
22305         used for -mminimal-toc and -mcmodel != small.  Update all callers.
22306         * config/rs6000/constraints.md: Update for above change.
22307         * config/rs6000/predicates.md: Likewise.
22308         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
22309         code.
22310         (tls_gd): Split for -mcmodel=medium/large.
22311         (tls_gd_high, tls_gd_low): New.
22312         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
22313         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
22314         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
22315         (largetoc_high, largetoc_low): New.
22316         (cmptf_internal2): Add clobber.
22317         * config/rs6000/rs6000-protos.h: Update.
22318
22319 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
22320
22321         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
22322         true if no prefetch is going to be generated for a given group.
22323         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
22324         estimate the prefetch_count.
22325         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
22326         prefetch count by considering the unroll_factor and prefetch_mod
22327         for is_loop_prefetching_profitable.
22328
22329 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
22330
22331         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
22332         anything if the argument is not a MEM.
22333
22334 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22335
22336         PR debug/43650
22337         PR debug/44181
22338         PR debug/44247
22339         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
22340         debug stmts.
22341         (canonicalize_loop_ivs): Likewise.
22342
22343 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22344
22345         PR debug/43656
22346         * haifa-sched.c (setup_insn_reg_pressure_info,
22347         update_register_pressure): Reject debug insns.
22348         (ready_sort): Don't setup reg pressure for debug insns.
22349         (schedule_insn): Don't update reg pressure for debug insns.
22350
22351 2010-06-14  Richard Guenther  <rguenther@suse.de>
22352
22353         * lto-streamer.c (cached_bp): Remove.
22354         (bitpack_delete): Likewise.
22355         (bitpack_create): Likewise.
22356         (bp_get_next_word): Likewise.
22357         (bp_pack_value, bp_unpack_value): Move ...
22358         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
22359         Re-implement.
22360         (struct bitpack_d): Likewise.
22361         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
22362         New inline functions.
22363         * lto-streamer-out.c (lto_output_bitpack): Remove.
22364         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22365         (pack_value_fields): Adjust.
22366         (lto_write_tree): Likewise.
22367         (output_gimple_stmt): Likewise.
22368         (output_function): Likewise.
22369         * lto-streamer-in.c (input_gimple_stmt): Adjust.
22370         (input_function): Likewise.
22371         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22372         (lto_input_bitpack): Remove.
22373         (lto_materialize_tree): Adjust.
22374         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
22375         * lto-cgraph.c (lto_output_edge): Adjust.
22376         (lto_output_node): Likewise.
22377         (lto_output_varpool_node): Likewise.
22378         (lto_output_ref): Likewise.
22379         (input_node): Likewise.
22380         (input_varpool_node): Likewise.
22381         (input_ref): Likewise.
22382         (input_edge): Likewise.
22383         (output_node_opt_summary): Likewise.
22384         (input_node_opt_summary): Likewise.
22385         * ipa-pure-const.c (pure_const_write_summary): Likewise.
22386         (pure_const_read_summary): Likewise.
22387         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
22388         (ipa_read_indirect_edge_info): Likewise.
22389         (ipa_write_node_info): Likewise.
22390         (ipa_read_node_info): Likewise.
22391
22392 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
22393
22394         PR target/44534
22395         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
22396         (vec_extract_lo_v16hi): Likewise.
22397         (vec_extract_lo_v32qi): Likewise.
22398
22399 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22400
22401         PR bootstrap/44426
22402         * tree.h (build_call_expr): Don't define as vararg macro, instead
22403         add a prototype.
22404         * builtins.c (build_call_nofold): Remove.
22405         (expand_builtin_int_roundingfn, expand_builtin_pow,
22406         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
22407         expand_builtin_memset_args, expand_builtin_strcmp,
22408         expand_builtin_strncmp, expand_builtin_memory_chk): Use
22409         build_call_nofold_loc instead of build_call_nofold.
22410         (build_call_expr): New function.
22411
22412         PR tree-optimization/44508
22413         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
22414         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
22415         don't eliminate trivially dead stmts.
22416         * tree-vrp.c (vrp_finalize): Pass false as last argument
22417         to substitute_and_fold.
22418         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
22419         to substitute_and_fold.
22420         * tree-ssa-ccp.c (ccp_finalize): Likewise.
22421
22422         PR bootstrap/44509
22423         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
22424
22425 2010-06-14  Ira Rosen  <irar@il.ibm.com>
22426
22427         PR tree-optimization/44507
22428         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
22429         to build initial vector for BIT_AND_EXPR.
22430         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
22431
22432 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22433
22434         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
22435         adjust z10prop set_attr.
22436
22437 2010-06-13  Jan Hubicka  <jh@suse.cz>
22438
22439         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
22440         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
22441         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
22442         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
22443         datastructure checks into checking asserts.
22444         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
22445         * tree-ssa-sccvn.c (VN_INFO): Likewise.
22446         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
22447         df_ref_create_structure): Likewise.
22448         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
22449         pool_free): Use gcc_checking_assert.
22450         * alias.c (get_alias_set): Likewise.
22451         * var-tracking.c (variable_htab_free, shared_hash_copy,
22452         canonicalize_values_mark, variable_merge_over_cur): Likewise.
22453         * lto-streamer.c (bp_unpack_value): Likewise.
22454
22455 2010-06-13  Richard Guenther  <rguenther@suse.de>
22456
22457         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
22458         Do not stream but initialize TYPE_CANONICAL to NULL.
22459         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
22460         * gimple.c (gimple_types_compatible_p): Disregard
22461         TYPE_STRUCTURAL_EQUALITY_P.
22462         (gimple_register_type): Use TYPE_CANONICAL as cache.
22463         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
22464         before registering common types.
22465         * config/i386/i386.c (ix86_function_arg_boundary): Do not
22466         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
22467         * tree.h (TYPE_CANONICAL): Clarify documentation.
22468
22469 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
22470
22471         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
22472         LIBCALL_VALUE): Remove macros.
22473         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
22474         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22475         TARGET_FUNCTION_VALUE_REGNO_P): Define.
22476         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
22477         (ia64_function_value): Make static. Handle receiving the function
22478         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
22479
22480 2010-06-12  Jan Hubicka  <jh@suse.cz>
22481
22482         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
22483         at correct place.
22484
22485 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
22486
22487         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
22488
22489 2010-06-12  Jan Hubicka  <jh@suse.cz>
22490
22491         * df-core.c (df_clear_bb_info): New function.
22492         (df_set_blocks): bb_info is always allocated.
22493         (df_get_bb_info): Use block_info_elt_size.
22494         (df_set_bb_info): Likewise.
22495         (df_compact_blocks): Update for new block_info.
22496         (grow_bb_info): New function.
22497         * df-problems.c (df_grow_bb_info): Move to df-core.c
22498         (df_rd_set_bb_info): Remove.
22499         (df_rd_free_bb_info): Do not free block pool.
22500         (df_rd_alloc): Do not create pool, use check for
22501         obstack presence instead of NULL pointer for new blocks.
22502         (df_rd_free): DO not free alloc pool; clear block_info.
22503         (problem_RD): Add size of block info structure.
22504         (df_lr_set_bb_info): Remove.
22505         (df_lr_free_bb_info): Do not free block pool.
22506         (df_lr_alloc): Do not create pool, use check for
22507         obstack presence instead of NULL pointer for new blocks.
22508         (df_lr_free): DO not free alloc pool; clear block_info.
22509         (problem_LR): Add size of block info structure.
22510         (df_live_set_bb_info): Remove.
22511         (df_live_free_bb_info): Do not free block pool.
22512         (df_live_alloc): Do not create pool, use check for
22513         obstack presence instead of NULL pointer for new blocks.
22514         (df_live_free): DO not free alloc pool; clear block_info.
22515         (problem_LIVE): Add size of block info structure.
22516         (problem_CHAIN): Add size of block info structure.
22517         (df_byte_lr_set_bb_info): Remove.
22518         (df_byte_lr_free_bb_info): Do not free block pool.
22519         (df_byte_lr_alloc): Do not create pool, use check for
22520         obstack presence instead of NULL pointer for new blocks.
22521         (df_byte_lr_free): DO not free alloc pool; clear block_info.
22522         (problem_BYTE_LR): Add size of block info structure.
22523         (problem_NOTE): Add size of block info structure.
22524         (df_byte_MD_set_bb_info): Remove.
22525         (df_byte_MD_free_bb_info): Do not free block pool.
22526         (df_byte_MD_alloc): Do not create pool, use check for
22527         obstack presence instead of NULL pointer for new blocks.
22528         (df_byte_MD_free): DO not free alloc pool; clear block_info.
22529         (problem_BD): Add size of block info structure.
22530         * df-scan.c (df_scan_free_internal): Free block pool.
22531         (df_scan_set_bb_info): Remove.
22532         (df_scan_free_bb_info): Check for artificial_defs instead
22533         of bb_info being non-NULL.
22534         (df_scan_alloc): DO not create df_scan_block pool.
22535         (problem_SCAN): Set size of block info.
22536         (df_bb_refs_record): Do not allocate bb_info.
22537         * df.h (df_problem): Add block_info_elt_size.
22538         (struct dataflow): Change block_info to void *.
22539         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
22540         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
22541         in-line structures.
22542
22543 2010-06-12  Jan Hubicka  <jh@suse.cz>
22544
22545         PR tree-optimize/44485
22546         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
22547         containing use of return value of noreturn function.
22548
22549 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
22550
22551         * targhooks.c (default_function_value): Don't use
22552         FUNCTION_OUTGOING_VALUE.
22553         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
22554         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
22555
22556 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
22557
22558         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
22559         Add crtfastmath.o to extra_parts.
22560         * config/mips/crtfastmath.c: New.
22561         * config/mips/linux.h (ENDFILE_SPEC): New.
22562
22563 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
22564
22565         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
22566         old_type in parameter.
22567         (gcc_type_for_value): Update call to gcc_type_for_interval.
22568         (compute_type_for_level_1): Renamed compute_type_for_level.
22569         Update call to gcc_type_for_interval.
22570
22571 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
22572
22573         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
22574         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
22575
22576 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
22577
22578         * opts-common.c: Include options.h.
22579         (integral_argument): Move from opts.c.
22580         (decode_cmdline_option): New.  Based on read_cmdline_option.
22581         * opts.c (integral_argument): Move to opts-common.c.
22582         (read_cmdline_option): Move most contents to
22583         decode_cmdline_option.  Use %qs in diagnostics.
22584         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
22585         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
22586         decode_cmdline_option): New.
22587
22588 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22589
22590         PR target/44481
22591         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
22592         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
22593         (partiysi2_cmp): Ditto.
22594         (*partiyhi2_cmp): Ditto.
22595         (*parityqi2_cmp): Remove.
22596
22597 2010-06-11  Jan Hubicka  <jh@suse.cz>
22598
22599         * bitmap.h (bmp_iter_next_bit): New.
22600         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
22601
22602 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
22603             Eric Botcazou  <ebotcazou@adacore.com>
22604
22605         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
22606         computed cost.
22607
22608 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22609
22610         * config/i386/i386.md (unspec): New define_c_enum.
22611         (unspecv): Ditto.
22612
22613 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
22614
22615         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
22616
22617 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
22618
22619         PR middle-end/44483
22620         * tree-if-conv.c (bb_predicate_s): New struct.
22621         (bb_predicate_p): New.
22622         (bb_has_predicate): New.
22623         (bb_predicate): New.
22624         (set_bb_predicate): New.
22625         (bb_predicate_gimplified_stmts): New.
22626         (set_bb_predicate_gimplified_stmts): New.
22627         (add_bb_predicate_gimplified_stmts): New.
22628         (init_bb_predicate): New.
22629         (free_bb_predicate): New.
22630         (is_predicated): Use bb_predicate.
22631         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
22632         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
22633         before processing their successors.
22634         (clean_predicate_lists): Removed.
22635         (find_phi_replacement_condition): Use bb_predicate.
22636         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
22637         computations.
22638         (insert_gimplified_predicates): New.
22639         (combine_blocks): Call insert_gimplified_predicates.
22640         (tree_if_conversion): Call free_bb_predicate instead of
22641         clean_predicate_lists.
22642
22643 2010-10-11  Paul Brook  <paul@codesourcery.com>
22644
22645         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
22646         * config/arm/arm.c (all_architectures): Change v7e-m default to
22647         cortexm4.
22648         * config/arm/arm-cores.def: Add cortex-m4.
22649         * config/arm/arm-tune.md: Regenerate.
22650
22651 2010-06-11  Jan Hubicka  <jh@suse.cz>
22652
22653         * ipa-pure-const.c (special_builtlin_state): New function.
22654         (check_call): Use it instead of special casign BUILT_IN_RETURN.
22655         (propagate_pure_const): Use it.
22656
22657 2010-06-11  Jan Hubicka  <jh@suse.cz>
22658
22659         * df-problems.c (df_live_scratch): Convert to bitmap_head.
22660         (df_live_alloc): Initialize df_live_scratch when initializing
22661         problem_data.
22662         (df_live_transfer_function): Update uses of df_live_scratch.
22663         (df_live_free): Free problem_data; clear df_live_scratch before
22664         releasing the obstack.
22665         (df_md_free): Free problem data.
22666
22667 2010-06-11  Jan Hubicka  <jh@suse.cz>
22668
22669         * doc/invoke.texi (Wsuggest-attribute): Document.
22670         (Wmissing-noreturn): Remove.
22671         * ipa-pure-const.c (warn_function_noreturn): New function.
22672         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
22673         warn_missing_noreturn.
22674         * common.opt (Wsuggest-attribute=noreturn): New.
22675         * tree-flow.h (warn_function_noreturn): Declare.
22676         * tree-cfg.c (execute_warn_function_noreturn): Use
22677         warn_function_noreturn.
22678         (gate_warn_function_noreturn): New.
22679         (pass_warn_function_noreturn): Update.
22680
22681 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22682
22683         * c-typeck.c (handle_warn_cast_qual): Add loc
22684         parameter. Improve warning message.
22685         (build_c_cast): Pass location to handle_warn_cast_qual.
22686
22687 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22688
22689         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
22690         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
22691         insn mnemonic.
22692         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
22693
22694 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
22695
22696         Fix bootstap on mips
22697         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
22698         be naming typedefs.
22699
22700 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
22701
22702         * system.h (helper_const_non_const_cast): New inline for
22703         gcc version <= 4.0.
22704         (CONST_CAST2): For gcc version <= 4.0 use
22705         new helper to do const/non-const casting.
22706
22707 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22708
22709         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
22710         * Makefile.in (OBJS-common): Include insn-enums.o.
22711         (insn-enums.o): New rule.
22712         (simple_generated_c): Add insn-enums.c.
22713         (build/genenums.o): New rule.
22714         (genprogmd): Add "enums".
22715         * genconstants.c (print_enum_type): Declare a C string array
22716         for each enum.
22717         * genenums.c: New file.
22718         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
22719         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
22720         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
22721
22722 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22723
22724         * doc/md.texi (define_enum_attr): Document.
22725         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
22726         * read-md.h (lookup_enum_type): Declare.
22727         * read-md.c (lookup_enum_type): New function.
22728         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
22729         * genattrtab.c (attr_desc): Add an enum_name field.
22730         (evaluate_eq_attr): Take the associated attribute as argument.
22731         Get the enum prefix from the enum_name field, if defined.
22732         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
22733         (simplify_test_exp): Pass attr to evaluate_eq_attr.
22734         (add_attr_value): New function, split out from...
22735         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
22736         (write_test_expr): Pass attr to evaluate_eq_attr.
22737         (write_attr_get): Use the enum_name as the enum tag, if defined.
22738         (write_attr_valueq): Use the enum_name as a prefix, if defined.
22739         (find_attr): Initialize enum_name.
22740         (main): Handle DEFINE_ENUM_ATTR.
22741         * gensupport.c (process_rtx): Likewise.
22742         * config/mips/mips.h (mips_tune_attr): Delete.
22743         * config/mips/mips.md (cpu): Use define_attr_enum.
22744
22745 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22746
22747         * doc/md.texi (define_c_enum, define_enum): Document.
22748         * read-md.h (md_constant): Add a parent_enum field.
22749         (enum_value, enum_type): New structures.
22750         (upcase_string, traverse_enum_types): Declare.
22751         * read-md.c (enum_types): New variable.
22752         (upcase_string, add_constant): New functions.
22753         (handle_constants): Don't create the hash table here.
22754         Use add_constant.
22755         (traverse_md_constants): Don't check for a null md_constants.
22756         (decimal_string, handle_enum, traverse_enum_types): New functions.
22757         (read_md_files): Initialize md_constants and md_enums.
22758         * genconstants.c (print_md_constant): Ignore info argument.
22759         Only print constants that belong to no enum.
22760         (print_enum_type): New function.
22761         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
22762         for each defined enum type.
22763         * config/mips/mips.md (processor): New define_enum.
22764         (unspec): New define_c_enum.
22765         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
22766         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
22767         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
22768         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
22769         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
22770         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
22771         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
22772         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
22773         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
22774         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
22775         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
22776         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
22777         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
22778         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
22779         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
22780         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
22781         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
22782         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
22783         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
22784         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
22785         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
22786         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
22787         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22788         (UNSPEC_RDDSP): Move to mips-dsp.md.
22789         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
22790         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
22791         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
22792         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
22793         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
22794         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
22795         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
22796         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
22797         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
22798         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
22799         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
22800         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
22801         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
22802         Moved to mips-dspr2.md.
22803         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
22804         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
22805         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
22806         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
22807         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
22808         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
22809         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22810         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22811         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22812         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22813         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22814         UNSPEC_LOONGSON_PSADBH)
22815         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22816         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22817         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
22818         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22819         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22820         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22821         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
22822         (cpu): Update comment.
22823         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
22824         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
22825         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
22826         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
22827         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
22828         UNSPEC_LOONGSON_PCMPEQ)
22829         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
22830         UNSPEC_LOONGSON_PINSR_0)
22831         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22832         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22833         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22834         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22835         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22836         UNSPEC_LOONGSON_PSADBH)
22837         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22838         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22839         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
22840         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22841         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22842         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22843         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
22844         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
22845         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
22846         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
22847         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
22848         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
22849         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
22850         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
22851         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
22852         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
22853         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
22854         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
22855         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
22856         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
22857         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
22858         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
22859         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
22860         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
22861         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
22862         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
22863         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22864         (UNSPEC_RDDSP): Moved from mips.md.
22865         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
22866         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
22867         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
22868         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
22869         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
22870         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
22871         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
22872         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
22873         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
22874         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
22875         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
22876         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
22877         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
22878         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
22879         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
22880         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
22881         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
22882         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
22883         (UNSPEC_SCC): Moved from mips.md.
22884         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
22885         "processor_type" to "processor".
22886         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
22887         * config/mips/mips.h (processor_type): Delete.
22888         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
22889         "processor_type" to "processor".
22890
22891 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22892
22893         * configure.ac (tm_include_list): Add insn-constants.h.
22894         * configure: Regenerate.
22895         * Makefile.in (GTM_H): Move insn-constants.h here from...
22896         (TM_H): ...here.
22897         * mkconfig.sh: Remove special handling for insn-constants.h.
22898
22899 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22900
22901         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
22902         (BUILD_MD): ...this new variable.
22903         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
22904         that include the old contents of simple_generated_h and
22905         simple_generated_c.
22906         (simple_generated_h, simple_generated_c): Include them.  Add
22907         insn-constants.h.
22908         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
22909         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
22910         Remove these dependencies from the main rule and include
22911         insn-conditions.md in the command line only if it appears
22912         in the dependency list.
22913         (insn-constants.h, s-constants): Delete.
22914         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
22915         or gensupport.h.
22916         (build/genmddeps.o): Likewise.
22917         (genprogrtl): New variable that contains everything from genprogmd
22918         except mddeps and constants.
22919         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
22920         depend on $(BUILD_MD)
22921         (genprog): New variable.  Make these programs depend on
22922         $(BUILD_ERRORS).
22923         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
22924         (main): Use read_md_files instead of init_rtx_reader_args.
22925         * genconstants.c: As for genmddeps.c.
22926         * read-md.h (read_skip_construct): Declare.
22927         * read-md.c (read_skip_construct): New function.
22928         (handle_file): Allow a null handle_directive, skipping the
22929         construct if so.
22930         (parse_include): Update the comment accordingly.
22931
22932 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22933
22934         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
22935         * genmddeps.c: Include read-md.h.
22936         (main): Call init_rtx_reader_args instead of init_md_reader_args.
22937         * genattr.c (main): Likewise.
22938         * genattrtab.c (main): Likewise.
22939         * genautomata.c (main): Likewise.
22940         * gencodes.c (main): Likewise.
22941         * genconditions.c (main): Likewise.
22942         * genconfig.c (main): Likewise.
22943         * genconstants.c (main): Likewise.
22944         * genemit.c (main): Likewise.
22945         * genextract.c (main): Likewise.
22946         * genflags.c (main): Likewise.
22947         * genopinit.c (main): Likewise.
22948         * genoutput.c (main): Likewise.
22949         * genpeep.c (main): Likewise.
22950         * genrecog.c (main): Likewise.
22951         * genpreds.c (main): Likewise.
22952         * gensupport.h (in_fname): Move to read-md.h.
22953         (init_md_reader_args_cb): Rename to...
22954         (init_rtx_reader_args_cb): ...this and return a bool.
22955         (init_md_reader_args): Rename to...
22956         (init_rtx_reader_args): ...this and return a bool.
22957         (include_callback): Move to read-md.h.
22958         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
22959         (file_name_list, first_dir_md_include): Move to read-md.c
22960         (first_bracket_include): Delete unused variable.
22961         (last_dir_md_include): Move to read-md.c.
22962         (process_include): Delete, moving code to read-md.c:handle_include.
22963         (process_rtx): Don't handle INCLUDE.
22964         (save_string): Delete.
22965         (rtx_handle_directive): New function.
22966         (init_md_reader_args_cb): Rename to...
22967         (init_rtx_reader_args_cb): ...this and return a boolean success value.
22968         Use read_md_args.
22969         (init_md_reader_args): Rename to...
22970         (init_rtx_reader_args): ...this and return a boolean success value.
22971         * rtl.def (INCLUDE): Delete.
22972         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
22973         argument.
22974         * read-rtl.c (read_conditions): Don't gobble ')' here.
22975         (read_mapping): Likewise.
22976         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
22977         Handle top-level non-rtx constructs here rather than in read_rtx_1.
22978         Store the whole queue in *X.  Remove call to init_md_reader.
22979         (read_rtx_1): Rename to...
22980         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
22981         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
22982         here.
22983         (read_nested_rtx): New function.  Handle (nil) here rather than
22984         in read_rtx_code.
22985         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
22986         gobble ')' here.
22987         * read-md.h (directive_handler_t): New type.
22988         (in_fname, include_callback): Moved from read-md.h.
22989         (read_constants, init_md_reader): Delete.
22990         (read_md_files): Declare.
22991         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
22992         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
22993         from gensupport.c.
22994         (read_constants): Rename to...
22995         (handle_constants): ...this.  Don't gobble ')' here.
22996         (handle_include, handle_file, handle_toplevel_file)
22997         (parse_include): New functions, mostly taken from gensupport.c.
22998         (init_md_reader): Subsume into...
22999         (read_md_files): ...this new function.
23000
23001 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23002
23003         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
23004         (unread_char): Decrement read_md_lineno after putting back '\n'.
23005         * read-md.c (fatal_with_file_and_line): Push back any characters
23006         that we decide not to add to the context.
23007         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
23008         fatal_expected_char in cases where '/' ends a line (for example).
23009         (read_name): Don't increment read_md_lineno here.
23010         (read_escape): Likewise.
23011         (read_quoted_string): Likewise.
23012         (read_braced_string): Likewise.
23013
23014 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23015
23016         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
23017         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
23018         * genconstants.c: Include read-md.h.
23019         * read-rtl.c (md_constants): Move to read-md.c.
23020         (md_name): Move to read-md.h.
23021         (initialize_iterators): Use leading_string_hash instead of def_hash
23022         and leading_string_eq_p instead of def_name_eq_p.
23023         (read_name): Move to read-md.c.
23024         (def_hash, def_name_eq_p): Delete.
23025         (read_constants, traverse_md_constants): Move to read-md.c.
23026         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
23027         * read-md.h: Include hashtab.h.
23028         (md_name): Moved from read-rtl.c.
23029         (md_constant): Moved from read-md.h.
23030         (leading_string_hash, leading_string_eq_p, read_name)
23031         (read_constants, traverse_md_constants): Declare.
23032         * read-md.c (md_constants): Moved from read-rtl.c.
23033         (leading_string_hash, leading_string_eq_p): New functions.
23034         (read_name, read_constants, traverse_md_constants): Moved from
23035         read-rtl.c.
23036
23037 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23038
23039         * read-rtl.c (md_name): New structure.
23040         (read_name): Take an md_name instead of a buffer pointer.
23041         Use the "string" field instead of strcpy when expanding constants.
23042         (read_constants): Remove the tmp_char argument.  Update the calls
23043         to read_name, using two local name buffers instead of the tmp_char
23044         argument.  Merge the constant-creation code.
23045         (read_conditions): Remove the tmp_char argument.  Update the calls
23046         to read_name, using a local name buffer instead of the tmp_char
23047         argument.
23048         (read_mapping): Replace tmp_char variable with a local name buffer.
23049         Update the calls to read_name.
23050         (read_rtx_1): Likewise.  Update the calls to read_constants and
23051         read_conditions.
23052
23053 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23054
23055         * Makefile.in (build/read-md.o): Depend on errors.h.
23056         * read-md.h (error_with_line): Declare.
23057         * read-md.c: Include errors.h.
23058         (message_with_line_1): New function, extracted from...
23059         (message_with_line): ...here.
23060         (error_with_line): New function.
23061         * genattrtab.c: If a call to message_with_line is followed by
23062         "have_error = 1;", replace both statements with a call to
23063         error_with_line.
23064         * genoutput.c: Likewise.
23065         * genpreds.c: Likewise.
23066         * genrecog.c: If a call to message_with_line is followed by
23067         "error_count++;", replace both statements with a call to
23068         error_with_line.
23069         (errorcount): Delete.
23070         (main): Don't check it.
23071         * gensupport.c: If a call to message_with_line is followed by
23072         "errors = 1;", replace both statements with a call to error_with_line.
23073         (errors): Delete.
23074         (process_define_cond_exec): Check have_error instead of errors.
23075         (init_md_reader_args_cb): Likewise.  Don't set errors.
23076
23077 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23078
23079         * read-md.h (read_md_file): Declare.
23080         (read_char, unread_char): New functions.
23081         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23082         (read_quoted_string, read_string): Remove FILE * argument.
23083         * read-md.c (read_md_file): New variable.
23084         (read_md_filename, read_md_lineno): Update comments and remove
23085         unnecessary initialization.
23086         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23087         (read_escape, read_quoted_string, read_braced_string, read_string):
23088         Remove FILE * argument.  Update calls accordingly, using read_char
23089         and unread_char instead of getc and ungetc.
23090         * rtl.h (read_rtx): Remove FILE * argument.
23091         * read-rtl.c (iterator_group): Remove FILE * argument from
23092         "find_builtin".
23093         (iterator_traverse_data): Remove "infile" field.
23094         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
23095         (add_mapping, read_name, read_constants, read_conditions)
23096         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
23097         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
23098         Remove file arguments from all calls, using read_char and unread_char
23099         instead of getc and ungetc.
23100         * gensupport.c (process_include): Preserve read_md_file around
23101         the include.  Set read_md_file to the handle of the included file.
23102         Update call to read_rtx.
23103         (init_md_reader_args_cb): Set read_md_file to the handle of the file
23104         and remove local FILE *.  Update calls to read_rtx.
23105
23106 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23107
23108         * read-md.h (read_rtx_lineno): Rename to...
23109         (read_md_lineno): ...this.
23110         (read_rtx_filename): Rename to...
23111         (read_md_filename): ...this.
23112         (copy_rtx_ptr_loc): Rename to...
23113         (copy_md_ptr_loc): ...this.
23114         (print_rtx_ptr_loc): Rename to...
23115         (print_md_ptr_loc): ...this.
23116         * read-md.c: Likewise.  Update references after renaming.
23117         (string_obstack): Replace RTL with MD in comment.
23118         (set_rtx_ptr_loc): Rename to...
23119         (set_md_ptr_loc): ...this.
23120         (get_rtx_ptr_loc): Rename to...
23121         (get_md_ptr_loc): ...this.
23122         * genconditions.c: Update references after renaming.
23123         * genemit.c: Likewise.
23124         * genoutput.c: Likewise.
23125         * genpreds.c: Likewise.
23126         * gensupport.c: Likewise.
23127         * read-rtl.c: Likewise.
23128
23129 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23130
23131         * Makefile.in (READ_MD_H): New variable.
23132         (BUILD_RTL): Add build/read-md.o.
23133         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
23134         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
23135         (build/genattrtab.o, build/genconditions.o build/genemit.o)
23136         (build/genextract.o, build/genflags.o, build/genoutput.o)
23137         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
23138         (build/read-md.o): New rule.
23139         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
23140         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
23141         * coretypes.h: ...here.
23142         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
23143         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
23144         * genattr.c: Include read-md.h.
23145         * genattrtab.c: Likewise.
23146         * genconditions.c: Likewise.
23147         * genemit.c: Likewise.
23148         * genextract.c: Likewise.
23149         * genflags.c: Likewise.
23150         * genoutput.c: Likewise.
23151         * genpreds.c: Likewise.
23152         * genrecog.c: Likewise.
23153         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
23154         (join_c_conditions, print_c_condition, read_rtx_filename)
23155         (read_rtx_lineno): Move to read-md.h.
23156         * read-rtl.c: Include read-md.h.
23157         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
23158         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
23159         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
23160         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
23161         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
23162         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
23163         (read_braced_string, read_string): Move to read-md.c.
23164         (read_rtx): Move some initialization to init_md_reader and call
23165         init_md_reader here.
23166         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
23167         Move to read-md.h.
23168         * gensupport.c: Include read-md.h.
23169         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
23170         * read-md.h, read-md.c: New files.
23171
23172 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
23173
23174         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23175         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23176         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
23177         * config/moxie/moxie.c (moxie_function_value): Make static.
23178         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
23179         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23180
23181 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23182
23183         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
23184         * dbgcnt.def (tree_sra): New counter.
23185         * tree-sra.c: Include dbgcnt.h.
23186         (gate_intra_sra): Check tree_sra debug counter.
23187
23188 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23189
23190         PR tree-optimization/44258
23191         * tree-sra.c (build_access_subtree): Return false iff there is a
23192         partial overlap.
23193         (build_access_trees): Likewise.
23194         (analyze_all_variable_accesses): Disqualify candidates if
23195         build_access_trees returns true for them.
23196
23197 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
23198
23199         PR debug/41371
23200         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
23201         tail-recurse into canonical node.  Fast-forward over
23202         non-canonical VALUEs.
23203
23204 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
23205
23206         PR boostrap/44470
23207         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
23208         (*addsi_1_zext) <TYPE_LEA>: Likewise.
23209         (add lea splitter): Likewise.
23210         (add_zext lea splitter): Likewise.
23211
23212 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
23213
23214         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
23215
23216 2010-06-10  Jan Hubicka  <jh@suse.cz>
23217
23218         * df-problems.c (df_live_problem_data): Add live_bitmaps.
23219         (df_live_alloc): Initialize problem data and live_osbtacks.
23220         (df_live_finalize): Remove obstack, problem data; do not
23221         clear all bitmaps.
23222         (df_live_top_dump, df_live_bottom_dump): Do not dump old
23223         data when not allocated.
23224         (df_live_verify_solution_start): Do not allocate problem data.
23225         (df_live_verify_solution_end): Check if out is allocated.
23226         (struct df_md_problem_data): New structure.
23227         (df_md_alloc): Allocate problem data.
23228         (df_md_free): Free problem data; do not clear bitmaps.
23229
23230 2010-06-10  Jan Beulich  <jbeulich@novell.com>
23231
23232         PR bootstrap/37304
23233         * configure.ac: Replace $() with ${} when intending to expand
23234         variables rather than invoking commands.
23235         * configure: Re-generate.
23236
23237 2010-06-10  Jan Hubicka  <jh@suse.cz>
23238
23239         PR rtl-optimization/44460
23240         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23241         TYPE_NEEDS_CONSTRUCTING sanity check.
23242
23243 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
23244
23245         * doc/include/fdl.texi: Move to GFDL version 1.3.
23246
23247         * doc/cpp.texi: Move to GFDL version 1.3.
23248         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
23249         * doc/gccint.texi: Move to GFDL version 1.3.
23250         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
23251         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
23252         * doc/invoke.texi: Move to GFDL version 1.3.
23253
23254 2010-06-09  Jan Hubicka  <jh@suse.cz>
23255
23256         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23257         Break out from ...
23258         (propagate) ... here; swap the order.
23259
23260 2010-06-09  Jan Hubicka  <jh@suse.cz>
23261
23262         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
23263         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
23264         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
23265         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
23266
23267 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23268
23269         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
23270         Do not the gather memory reference in the outer loop if the step
23271         is not a constant.
23272
23273 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23274
23275         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
23276         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
23277         8 to 4.  Minor change of the related comments.
23278
23279 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23280
23281         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
23282         the scev analysis when the variable is not used outside the loop
23283         in a close phi node: call compute_overall_effect_of_inner_loop.
23284
23285 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23286
23287         * graphite-sese-to-poly.c (single_pred_cond): Renamed
23288         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
23289         (build_sese_conditions_before): Renamed call to single_pred_cond.
23290         (build_sese_conditions_after): Same.
23291
23292 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23293
23294         * graphite-poly.h: Fix comments and indentation.
23295         * graphite-sese-to-poly.c: Same.
23296         (build_sese_conditions_before): Compute stmt and gbb only when needed.
23297         * tree-chrec.c: Fix comments and indentation.
23298         (tree-ssa-loop-niter.c): Same.
23299
23300 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
23301
23302         PR rtl-optimization/42461
23303         * dce.c (deletable_insn_p): Return true for const or pure calls again.
23304         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
23305
23306 2010-06-09  Jan Hubicka  <jh@suse.cz>
23307
23308         * bitmap.c (bitmap_and): Walk array forward.
23309         (bitmap_and_compl_into): Likewise.
23310         (bitmap_xor): Likewise.
23311         (bitmap_xor_into):  Likewise.
23312         (bitmap_equal_p): Likewise.
23313         (bitmap_intersect_p): Likewise.
23314         (bitmap_intersect_compl_p): Likewise.
23315         (bitmap_ior_and_into): Likewise.
23316         (bitmap_elt_copy): Likewise.
23317         (bitmap_and_compl): Likewise.
23318         (bitmap_elt_ior): Likewise.
23319
23320 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
23321
23322         * opts-common.c (prune_options): Ensure replacement argv array
23323         is correctly terminated by a NULL entry.
23324
23325 2010-06-09  Jan Hubicka  <jh@suse.cz>
23326
23327         * cgraph.h (varpool_first_static_initializer,
23328         varpool_next_static_initializer): Make checking only when
23329         checking enabled.
23330         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
23331         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
23332         gcc_assert to gcc_checking_assert.
23333         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
23334         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
23335         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
23336         op_iter_init_phiuse, op_iter_init_phidef,
23337         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
23338         gcc_checking_assert.
23339         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
23340         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
23341         partition_is_global, live_on_entry, live_on_exit,
23342         live_merge_and_clear): Likewise.
23343         * system.h (gcc_checking_assert): New macro.
23344         * gimple.h (set_bb_seq): Use gcc_checking_assert.
23345
23346 2010-06-09  Jason Merrill  <jason@redhat.com>
23347
23348         * Makefile.in (TAGS): Collect tags info from c-family.
23349
23350 2010-06-09  Jan Hubicka  <jh@suse.cz>
23351
23352         * gimple.h (gcc_gimple_checking_assert): New macro.
23353         (gimple_set_def_ops, gimple_set_use_ops,
23354         gimple_set_vuse, gimple_set_vdef,
23355         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
23356         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
23357         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
23358         gimple_asm_output_op, gimple_asm_output_op_ptr,
23359         gimple_asm_set_output_op, gimple_asm_clobber_op,
23360         gimple_asm_set_clobber_op, gimple_asm_label_op,
23361         gimple_asm_set_label_op, gimple_try_set_kind,
23362         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
23363         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
23364         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
23365         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
23366         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
23367         gimple_omp_for_set_initial, gimple_omp_for_final,
23368         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
23369         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
23370         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
23371         conditional with ENABLE_GIMPLE_CHECKING.
23372         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
23373
23374 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
23375
23376         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
23377         (get_computation_cost_at): Use it.
23378         (determine_use_iv_cost_condition): Likewise.
23379         (determine_iv_cost): Likewise.
23380
23381 2010-06-09  Richard Guenther  <rguenther@suse.de>
23382
23383         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
23384         replace constants.
23385
23386 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
23387
23388         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
23389
23390 2010-06-09  Martin Jambor  <mjambor@suse.cz>
23391
23392         PR tree-optimization/44423
23393         * tree-sra.c (dump_access): Dump also grp_assignment_read.
23394         (analyze_access_subtree): Pass negative allow_replacements to children
23395         if the current type is scalar.
23396
23397 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23398
23399         PR testsuite/42843
23400         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
23401         * doc/plugins.texi (Plugin license check): Update information
23402         on type of plugin_is_GPL_compatible.
23403         * Makefile.in (PLUGINCC): Define as $(COMPILER).
23404         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
23405
23406 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
23407
23408         * config/arm/arm.c (thumb2_reorg): New function.
23409         (arm_reorg): Call it.
23410         * config/arm/thumb2.md (define_peephole2 for flag clobbering
23411         arithmetic operations): Delete.
23412
23413 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
23414
23415         PR target/44067
23416         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
23417         e500v2 target.
23418
23419 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23420
23421         PR plugins/44459
23422         * gcc-plugin.h: Encapsulate all declarations in extern "C".
23423
23424 2010-06-08  Jan Hubicka  <jh@suse.cz>
23425
23426         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
23427         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
23428
23429 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
23430
23431         PR tree-optimization/39874
23432         PR middle-end/28685
23433         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
23434         Declare.
23435         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
23436         same_bool_result_p): New.
23437         (and_var_with_comparison, and_var_with_comparison_1,
23438         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
23439         (or_var_with_comparison, or_var_with_comparison_1,
23440         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
23441         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
23442         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
23443         of combine_comparisons.
23444         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
23445
23446 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
23447
23448         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23449         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23450         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
23451         pdp11_function_value_regno_p): New functions.
23452         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23453         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23454
23455 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
23456
23457         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
23458         Thumb-2 in the MINUS case.
23459
23460 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
23461
23462         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
23463
23464         * doc/gty.texi (GTY Options): Document typed GC allocation and
23465         variable_size GTY option.
23466
23467         * ggc-internal.h: New.
23468
23469         * ggc.h: Update copyright year.
23470         (digit_string): Move to stringpool.c.
23471         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
23472         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
23473         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
23474         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
23475         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
23476         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
23477         (ggc_force_collect, ggc_get_size, ggc_statistics)
23478         (ggc_print_common_statistics): Move to ggc-internal.h.
23479         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
23480         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
23481         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
23482         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
23483         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
23484         (ggc_alloc_zone_pass_stat): Remove.
23485         (ggc_internal_alloc_stat, ggc_internal_alloc)
23486         (ggc_internal_cleared_alloc_stat): New.
23487         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
23488         (ggc_internal_vec_alloc_stat)
23489         (ggc_internal_cleared_vec_alloc_stat)
23490         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
23491         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
23492         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
23493         (ggc_cleared_alloc_ptr_array_two_args): New.
23494         (htab_create_ggc, splay_tree_new_ggc): Redefine.
23495         (ggc_splay_alloc): Change the type of the first argument to
23496         enum gt_types_enum.
23497         (ggc_alloc_string): Make macro.
23498         (ggc_alloc_string_stat): New.
23499         (ggc_strdup): Redefine.
23500         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
23501         (ggc_alloc_rtvec_sized): New.
23502         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
23503         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
23504         (ggc_internal_cleared_alloc_zone_stat)
23505         (ggc_internal_zone_alloc_stat)
23506         (ggc_internal_zone_cleared_alloc_stat)
23507         (ggc_internal_zone_vec_alloc_stat)
23508         (ggc_alloc_zone_rtx_def_stat)
23509         (ggc_alloc_zone_tree_node_stat)
23510         (ggc_alloc_zone_cleared_tree_node_stat)
23511         (ggc_alloc_cleared_gimple_statement_d_stat): New.
23512
23513         * ggc-common.c: Include ggc-internal.h.
23514         (ggc_internal_cleared_alloc_stat): Rename from
23515         ggc_alloc_cleared_stat.
23516         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
23517         (ggc_calloc): Remove.
23518         (ggc_cleared_alloc_htab_ignore_args): New.
23519         (ggc_cleared_alloc_ptr_array_two_args): New.
23520         (ggc_splay_alloc): Add obj_type parameter.
23521         (init_ggc_heuristics): Formatting fixes.
23522
23523         * ggc-none.c: Update copyright year.
23524         (ggc_alloc_stat): Rename to ggc_alloc_stat.
23525         (ggc_alloc_cleared_stat): Rename to
23526         ggc_internal_cleared_alloc_stat.
23527         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23528
23529         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
23530         Remove references to ggc_alloc in comments.
23531         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
23532         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
23533         (new_ggc_zone, destroy_ggc_zone): Remove.
23534         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23535
23536         * ggc-zone.c: Include ggc-internal.h.  Remove references to
23537         ggc_alloc in comments.
23538         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
23539         (ggc_internal_alloc_zone_pass_stat): New.
23540         (ggc_internal_cleared_alloc_zone_stat): New.
23541         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
23542         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
23543         (new_ggc_zone, destroy_ggc_zone): Remove.
23544
23545         * stringpool.c: Update copyright year.  Include ggc-internal.h
23546         (digit_vector): Make static.
23547         (digit_string): Moved from ggc.h.
23548         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
23549         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
23550
23551         * Makefile.in (GGC_INTERNAL_H): New.
23552         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
23553         $(GGC_INTERNAL_H) to dependencies.
23554
23555         * gentype.c: Update copyright year.
23556         (walk_type): Accept variable_size GTY option.
23557         (USED_BY_TYPED_GC_P): New macro.
23558         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
23559         whitespace at the end of strings.
23560         (get_type_specifier, variable_size_p): New functions.
23561         (alloc_quantity, alloc_zone): New enums.
23562         (write_typed_alloc_def): New function.
23563         (write_typed_struct_alloc_def): Likewise.
23564         (write_typed_typed_typedef_alloc_def): Likewise.
23565         (write_typed_alloc_defns): Likewise.
23566         (output_typename, write_splay_tree_allocator_def): Likewise.
23567         (write_splay_tree_allocators): Likewise.
23568         (main): Call write_typed_alloc_defns and
23569         write_splay_tree_allocators.
23570
23571         * lto-streamer.h (lto_file_decl_data_ptr): New.
23572
23573         * passes.c (order): Define using cgraph_node_ptr.
23574
23575         * strinpool.c (struct string_pool_data): Declare nested_ptr using
23576         ht_identifier_ptr.
23577
23578         * gimple.h (union gimple_statement_d): Likewise.
23579
23580         * rtl.h (struct rtx_def): Likewise.
23581         (struct rtvec_def): Likewise.
23582
23583         * tree.h (union tree_node): Likewise.
23584
23585         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
23586
23587         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
23588
23589         * tree-scalar-evolution.c (scev_initialize): Likewise.
23590
23591         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
23592
23593         * dwarf2asm.c (dw2_force_const_mem): Likewise.
23594
23595         * omp-low.c (lower_omp_critical): Likewise.
23596
23597         * bitmap.h (struct bitmap_head_def): Update comment to not
23598         reference ggc_alloc.
23599
23600         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
23601
23602         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
23603
23604         * ipa-prop.c (duplicate_ggc_array): Rename to
23605         duplicate_ipa_jump_func_array.  Use typed GC allocation.
23606         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
23607
23608         * gimple.c (gimple_alloc_stat): Use
23609         ggc_alloc_cleared_gimple_statement_d_stat.
23610
23611         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
23612
23613         * tree.c (make_node_stat): Use
23614         ggc_alloc_zone_cleared_tree_node_stat.
23615         (make_tree_vec_stat): Likewise.
23616         (build_vl_exp_stat): Likewise.
23617         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
23618         (make_tree_binfo_stat): Likewise.
23619         (tree_cons_stat): Likewise.
23620
23621         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
23622         (shallow_copy_rtx_stat): Likewise.
23623         (make_node_stat): Likewise.
23624
23625         * lto-symtab.c: Fix comment.
23626
23627         * tree-cfg.c (create_bb): Update comment to not reference
23628         ggc_alloc_cleared.
23629         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
23630
23631         * varpool.c (varpool_node): Use typed GC allocation.
23632         (varpool_extra_name_alias): Likewise.
23633
23634         * varasm.c (emutls_decl): Likewise.
23635         (get_unnamed_section): Likewise.
23636         (get_noswitch_section): Likewise.
23637         (get_section): Likewise.
23638         (get_block_for_section): Likewise.
23639         (build_constant_desc): Likewise.
23640         (create_constant_pool): Likewise.
23641         (force_const_mem): Likewise.
23642
23643         * tree.c (build_vl_exp_stat): Likewise.
23644         (build_real): Likewise.
23645         (build_string): Likewise.
23646         (decl_debug_expr_insert): Likewise.
23647         (decl_value_expr_insert): Likewise.
23648         (type_hash_add): Likewise.
23649         (build_omp_clause): Likewise.
23650
23651         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
23652
23653         * tree-ssa.c (init_tree_ssa): Likewise.
23654
23655         * tree-ssa-structalias.c (heapvar_insert): Likewise.
23656
23657         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
23658
23659         * tree-ssa-loop-niter.c (record_estimate): Likewise.
23660
23661         * tree-ssa-alias.c (get_ptr_info): Likewise.
23662
23663         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
23664
23665         * tree-phinodes.c (allocate_phi_node): Likewise.
23666
23667         * tree-iterator.c (tsi_link_before): Likewise.
23668         (tsi_link_after): Likewise.
23669
23670         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
23671
23672         * tree-dfa.c (create_var_ann): Likewise.
23673
23674         * tree-cfg.c (create_bb): Likewise.
23675
23676         * toplev.c (alloc_for_identifier_to_locale): Likewise.
23677         (general_init): Likewise.
23678
23679         * stringpool.c (stringpool_ggc_alloc): Likewise.
23680         (gt_pch_save_stringpool): Likewise.
23681
23682         * sese.c (if_region_set_false_region): Likewise.
23683
23684         * passes.c (do_per_function_toporder): Likewise.
23685
23686         * optabs.c (set_optab_libfunc): Likewise.
23687         (set_conv_libfunc): Likewise.
23688
23689         * lto-symtab.c (lto_symtab_register_decl): Likewise.
23690
23691         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
23692         (input_eh_region): Likewise.
23693         (input_eh_lp): Likewise.
23694         (make_new_block): Likewise.
23695         (unpack_ts_real_cst_value_fields): Likewise.
23696
23697         * lto-section-in.c (lto_new_in_decl_state): Likewise.
23698
23699         * lto-cgraph.c (input_node_opt_summary): Likewise.
23700
23701         * loop-init.c (loop_optimizer_init): Likewise.
23702
23703         * lambda.h (lambda_vector_new): Likewise.
23704
23705         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
23706
23707         * ira.c (update_equiv_regs): Likewise.
23708
23709         * ipa.c (cgraph_node_set_new): Likewise.
23710         (cgraph_node_set_add): Likewise.
23711         (varpool_node_set_new): Likewise.
23712         (varpool_node_set_add): Likewise.
23713
23714         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
23715         (duplicate_ipa_jump_func_array): Likewise.
23716         (ipa_read_node_info): Likewise.
23717
23718         * ipa-cp.c (ipcp_create_replace_map): Likewise.
23719
23720         * integrate.c (get_hard_reg_initial_val): Likewise.
23721
23722         * gimple.c (gimple_alloc_stat): Likewise.
23723         (gimple_build_omp_for): Likewise.
23724         (gimple_seq_alloc): Likewise.
23725         (gimple_copy): Likewise.
23726
23727         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
23728         (gsi_insert_after_without_update): Likewise.
23729
23730         * function.c (add_frame_space): Likewise.
23731         (insert_temp_slot_address): Likewise.
23732         (assign_stack_temp_for_type): Likewise.
23733         (allocate_struct_function): Likewise.
23734         (types_used_by_var_decl_insert): Likewise.
23735
23736         * except.c (init_eh_for_function): Likewise.
23737         (gen_eh_region): Likewise.
23738         (gen_eh_region_catch): Likewise.
23739         (gen_eh_landing_pad): Likewise.
23740         (add_call_site): Likewise.
23741
23742         * emit-rtl.c (get_mem_attrs): Likewise.
23743         (get_reg_attrs): Likewise.
23744         (start_sequence): Likewise.
23745         (init_emit): Likewise.
23746
23747         * dwarf2out.c (new_cfi): Likewise.
23748         (queue_reg_save): Likewise.
23749         (dwarf2out_frame_init): Likewise.
23750         (new_loc_descr): Likewise.
23751         (find_AT_string): Likewise.
23752         (new_die): Likewise.
23753         (add_var_loc_to_decl): Likewise.
23754         (clone_die): Likewise.
23755         (clone_as_declaration): Likewise.
23756         (break_out_comdat_types): Likewise.
23757         (new_loc_list): Likewise.
23758         (loc_descriptor): Likewise.
23759         (add_loc_descr_to_each): Likewise.
23760         (add_const_value_attribute): Likewise.
23761         (tree_add_const_value_attribute): Likewise.
23762         (add_comp_dir_attribute): Likewise.
23763         (add_name_and_src_coords_attributes): Likewise.
23764         (lookup_filename): Likewise.
23765         (store_vcall_insn): Likewise.
23766         (dwarf2out_init): Likewise.
23767
23768         * dbxout.c (dbxout_init): Likewise.
23769
23770         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
23771
23772         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
23773
23774         * config/score/score7.c (score7_output_external): Likewise.
23775
23776         * config/score/score3.c (score3_output_external): Likewise.
23777
23778         * config/s390/s390.c (s390_init_machine_status): Likewise.
23779
23780         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
23781         (rs6000_init_machine_status): Likewise.
23782         (output_toc): Likewise.
23783
23784         * config/pa/pa.c (pa_init_machine_status): Likewise.
23785         (get_deferred_plabel): Likewise.
23786
23787         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
23788
23789         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
23790
23791         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
23792
23793         * config/mep/mep.c (mep_init_machine_status): Likewise.
23794         (mep_note_pragma_flag): Likewise.
23795
23796         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
23797
23798         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
23799
23800         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
23801
23802         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
23803         (i386_pe_maybe_record_exported_symbol): Likewise.
23804
23805         * config/i386/i386.c (get_dllimport_decl): Likewise.
23806         (ix86_init_machine_status): Likewise.
23807         (assign_386_stack_local): Likewise.
23808
23809         * config/frv/frv.c (frv_init_machine_status): Likewise.
23810
23811         * config/darwin.c (machopic_indirection_name): Likewise.
23812
23813         * config/cris/cris.c (cris_init_machine_status): Likewise.
23814
23815         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
23816
23817         * config/avr/avr.c (avr_init_machine_status): Likewise.
23818
23819         * config/arm/arm.c (arm_init_machine_status): Likewise.
23820
23821         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
23822         (alpha_need_linkage): Likewise.
23823         (alpha_use_linkage): Likewise.
23824
23825         * cgraph.c (cgraph_allocate_node): Likewise.
23826         (cgraph_create_edge_1): Likewise.
23827         (cgraph_create_indirect_edge): Likewise.
23828         (cgraph_add_asm_node): Likewise.
23829
23830         * cfgrtl.c (init_rtl_bb_info): Likewise.
23831
23832         * cfgloop.c (alloc_loop): Likewise.
23833         (rescan_loop_exit): Likewise.
23834
23835         * cfg.c (init_flow): Likewise.
23836         (alloc_block): Likewise.
23837         (unchecked_make_edge): Likewise.
23838
23839         * c-parser.c (c_parse_init): Likewise.
23840         (c_parse_file): Likewise.
23841
23842         * c-decl.c (bind): Likewise.
23843         (record_inline_static): Likewise.
23844         (push_scope): Likewise.
23845         (make_label): Likewise.
23846         (lookup_label_for_goto): Likewise.
23847         (finish_struct): Likewise.
23848         (finish_enum): Likewise.
23849         (c_push_function_context): Likewise.
23850
23851         * bitmap.c (bitmap_element_allocate): Likewise.
23852         (bitmap_gc_alloc_stat): Likewise.
23853
23854         * alias.c (record_alias_subset): Likewise.
23855         (init_alias_analysis): Likewise.
23856
23857 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
23858
23859         * fold-const.c (fold_comparison): Remove redundant parenthesis.
23860         * tree-inline.c (expand_call_inline): Pass translated return value of
23861         cgraph_inline_failed_string to diagnostic function.
23862
23863 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
23864             Shujing Zhao  <pearly.zhao@oracle.com>
23865
23866         PR c/37724
23867         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
23868         implicit bad conversions is initialization.
23869         (error_init): Use gmsgid instead of msgid for argument name and change
23870         the call for error.
23871         (pedwarn_init): Use gmsgid instead of msgid for argument name and
23872         change the call for pedwarn.
23873         (warning_init): Use gmsgid instead of msgid for argument name and
23874         change the call for warning.
23875
23876 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
23877
23878         * config/mips/mips-protos.h (mips_print_operand): Delete.
23879         (mips_print_operand_address): Delete.
23880         * config/mips/mips.h (mips_print_operand_punct): Delete.
23881         (PRINT_OPERAND): Delete.
23882         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23883         (PRINT_OPERAND_ADDRESS): Delete.
23884         * config/mips/mips.c (mips_print_operand_punct): Make static.
23885         (mips_print_operand_address): Make static.
23886         (mips_print_operand): Make static.  Call
23887         mips_print_operand_punct_valid_p.
23888         (mips_print_operand_punct_valid_p): New function.
23889         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23890         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23891
23892 2010-06-07  Jan Hubicka  <jh@suse.cz>
23893
23894         PR middle-end/44454
23895         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
23896         are allocated.
23897
23898 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
23899
23900         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
23901         name of RECORD.
23902
23903 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23904
23905         * doc/sourcebuild.texi (Effective-Target Keywords, Other
23906         attributes): Document gas.
23907
23908 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
23909
23910         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
23911         <TYPE_LEA>: Split instruction.
23912         <default>: Remove alternative 2 handling.
23913         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
23914         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
23915         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
23916
23917         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
23918         (ashift_zext lea splitter): Use DImode for multiplication.
23919
23920         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
23921         to generate addition.
23922
23923 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
23924
23925         * common.opt (fira-verbose): Use Var.
23926         (fpcc-struct-return): Use Init instead of VarExists.
23927         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
23928         toplev.c.
23929         * flags.h (flag_signed_char, flag_short_enums,
23930         flag_pcc_struct_return, flag_ira_verbose,
23931         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
23932         * toplev.c (flag_detailed_statistics, flag_signed_char,
23933         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
23934         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
23935         * toplev.h (flag_crossjumping, flag_if_conversion,
23936         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
23937         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
23938         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
23939         flag_cprop_registers, time_report, flag_ira_loop_pressure,
23940         flag_ira_coalesce, flag_ira_move_spills,
23941         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
23942
23943 2010-06-07  Jan Hubicka  <jh@suse.cz>
23944
23945         * df-core.c (df_analyze_problem): Do verification after allocation.
23946
23947         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
23948         (df_lr_alloc): Initialize problem data; move bitmaps to
23949         lr_bitmaps obstack.
23950         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
23951         (df_lr_verify_solution_start): Do not initialize problem data;
23952         allocate bitmaps in lr_bitmaps.
23953         (df_lr_verify_solution_end): Do not free problem data.
23954
23955 2010-06-07  Jan Hubicka  <jh@suse.cz>
23956
23957         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
23958         if caller is noreturn.
23959         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
23960         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
23961         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
23962         * ipa-pure-const.c (check_decl): Add IPA parameter.
23963         (state_from_flags): New function.
23964         (better_state, worse_state): New functions.
23965         (check_call): When in IPA mode, do not care about callees.
23966         (check_load, check_store): Update.
23967         (check_ipa_load, check_ipa_store): New.
23968         (check_stmt): When in IPA mode, use IPA checkers.
23969         (analyze_function): Use state_from_flags.
23970         (propagate): Check indirect edges and references.
23971
23972 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
23973
23974         PR rtl-optimization/44404
23975         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
23976         of count_occurrences to see if it's safe to modify mem_insn.
23977
23978 2010-06-07  Richard Guenther  <rguenther@suse.de>
23979
23980         * gimplify.c (gimplify_cleanup_point_expr): For empty body
23981         and EH-only cleanup drop the cleanup instead of inserting it
23982         unconditionally.
23983
23984 2010-06-07  Ira Rosen  <irar@il.ibm.com>
23985
23986         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
23987         documentation.
23988         * targhooks.c (default_builtin_vectorization_cost): New function.
23989         * targhooks.h (default_builtin_vectorization_cost): Declare.
23990         * target.h (enum vect_cost_for_stmt): Define.
23991         (builtin_vectorization_cost): Change argument and comment.
23992         * tree-vectorizer.h: Remove cost model macros.
23993         * tree-vect-loop.c: Include target.h.
23994         (vect_get_cost): New function.
23995         (vect_estimate_min_profitable_iters): Replace cost model macros with
23996         calls to vect_get_cost.
23997         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
23998         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
23999         default implementation.
24000         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
24001         calls to target hook builtin_vectorization_cost.
24002         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
24003         Likewise.
24004         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
24005         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
24006         implementation to return costs.
24007         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
24008         * config/spu/spu.h: Remove vectorizer cost model macros.
24009         * config/i386/i386.h: Likewise.
24010         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
24011         a call to target hook builtin_vectorization_cost.
24012
24013 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
24014
24015         PR target/44319
24016         * config/i386/i386.c (override_options): Turn zee pass on for level 2
24017         and above and defer till target is known.
24018         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
24019         turn off otherwise.
24020
24021 2010-05-25  Jan Hubicka  <jh@suse.cz>
24022
24023         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
24024         (df_compact_blocks): Likewise.
24025         * df.h (struct df): Turn hardware_regs_used,
24026         regular_block_artificial_uses, eh_block_artificial_uses,
24027         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
24028         bitmap_head.
24029         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
24030         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
24031         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
24032         df_scan_blocks, df_insn_delete, df_insn_rescan,
24033         df_insn_rescan_debug_internal, df_insn_rescan_all,
24034         df_process_deferred_rescans, df_process_deferred_rescans,
24035         df_notes_rescan, df_get_call_refs, df_get_call_refs,
24036         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
24037         df_record_entry_block_defs, df_record_exit_block_uses,
24038         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
24039         df_scan_verify): Update.
24040
24041 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24042
24043         PR c++/44188
24044         * c-common.c (is_typedef_decl): Move this definition ...
24045         * tree.c (is_typedef_decl): ... here.
24046         (typdef_variant_p): Move definition here from cp/tree.c.
24047         * c-common.h (is_typedef_decl): Move this declaration ...
24048         * tree.h (is_typedef_decl): ... here.
24049         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24050         * dwarf2out.c (is_naming_typedef_decl): New function.
24051         (gen_tagged_type_die): Split out of ...
24052         (gen_type_die_with_usage): ... this function. When an anonymous
24053         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24054         is emitted for the typedef.
24055         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24056         anonymous tagged types.
24057
24058 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24059
24060         PR c/20000
24061         * c-decl.c (grokdeclarator): Delete warning.
24062
24063 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
24064
24065         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
24066         newly built CALL_EXPR.
24067         * tree-profile.c (tree_profiling): Don't profile functions produced
24068         for built-in stuff.
24069
24070 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
24071
24072         PR bootstrap/44427
24073         PR bootstrap/44428
24074         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
24075         endianness-independent.
24076
24077 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
24078
24079         * c-common.c: Move to c-family/.
24080         * c-common.def: Likewise.
24081         * c-common.h: Likewise.
24082         * c-cppbuiltin.c: Likewise.
24083         * c-dump.c: Likewise.
24084         * c-format.c: Likewise.
24085         * c-format.h : Likewise.
24086         * c-gimplify.c: Likewise.
24087         * c-lex.c: Likewise.
24088         * c-omp.c: Likewise.
24089         * c.opt: Likewise.
24090         * c-opts.c: Likewise.
24091         * c-pch.c: Likewise.
24092         * c-ppoutput.c: Likewise.
24093         * c-pragma.c: Likewise.
24094         * c-pragma.h: Likewise.
24095         * c-pretty-print.c: Likewise.
24096         * c-pretty-print.h: Likewise.
24097         * c-semantics.c: Likewise.
24098         * stub-objc.c: Likewise.
24099
24100         * gengtype.c (get_file_langdir): Special-case files in c-family/.
24101         (get_output_file_with_visibility): Fix name for c-common.h.
24102         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
24103
24104         * c-tree.h: Update include path for moved files.
24105         * c-lang.c: Likewise.
24106         * c-lang.h: Likewise.
24107         * c-parser.c: Likewise.
24108         * c-convert.c: Likewise.
24109         * c-decl.c: Likewise.
24110         * c-objc-common.c: Likewise.
24111         * configure.ac: Make sure c-family/ exists in the build directory.
24112         * configure: Regenerate.
24113         * Makefile.in: Update paths for moved files.  Regroup files per
24114         location and update dependencies.  Move generated_files down after
24115         ALL_GTFILES_H.
24116
24117         * config/spu/spu-c.c: Update paths for moved files.
24118         * config/mep/mep-pragma.c: Likewise.
24119         * config/darwin-c.c: Likewise.
24120         * config/i386/msformat-c.c: Likewise.
24121         * config/i386/i386-c.c: Likewise.
24122         * config/avr/avr-c.c: Likewise.
24123         * config/sol2-c.c: Likewise.
24124         * config/ia64/ia64-c.c: Likewise.
24125         * config/rs6000/rs6000-c.c: Likewise.
24126         * config/arm/arm.c: Likewise.
24127         * config/arm/arm-c.c: Likewise.
24128         * config/h8300/h8300.c: Likewise.
24129         * config/v850/v850-c.c: Likewise.
24130
24131         * config/t-darwin: Fix dependencies for moved files.
24132         * config/t-sol2: Fix dependencies for moved files.
24133         * config/mep/t-mep: Fix dependencies for moved files.
24134         * config/ia64/t-ia64: Fix dependencies for moved files.
24135         * config/rs6000/t-rs6000: Fix dependencies for moved files.
24136         * config/v850/t-v850: Fix dependencies for moved files.
24137         * config/v850/t-v850e: Fix dependencies for moved files.
24138
24139         * config/m32c/m32c-pragma.c
24140
24141         * po/exgettext: Look in c-family/ also.
24142
24143 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
24144
24145         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
24146         (mark_control_dependent_edges_necessary): Call it instead of marking
24147         the last statement manually.
24148         (propagate_necessity): Likewise.
24149
24150 2010-06-05  Jan Hubicka  <jh@suse.cz>
24151
24152         * basic-block.h (compute_dominance_frontiers): Updated.
24153         (compute_idf): Likewise.
24154
24155         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
24156         for dominance frontiers.
24157         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
24158         (insert_updated_phi_nodes_for): Likewise.
24159         (update_ssa): Likewise.
24160         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24161         (compute_dominance_frontiers): Likewise.
24162         (compute_idf): Likewise.
24163         * df-problems.c (df_md_local_compute): Likewise.
24164
24165 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
24166
24167         * target.h (struct gcc_target): Add memory_move_cost field.
24168         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
24169         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
24170         * targhooks.c (default_memory_move_cost): New function.
24171         * targhooks.h (default_memory_move_cost): Declare function.
24172         * reload.h (memory_move_cost): Declare.
24173         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24174         * reginfo.c (memory_move_cost): New function.
24175         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24176         * ira.h (ira_memory_move_cost): Update comment.
24177         * ira.c (ira_memory_move_cost): Update comment.
24178         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
24179         with memory_move_cost.
24180         * postreload.c (reload_cse_simplify_set): (Ditto.).
24181         * reload1.c (choose_reload_regs): (Ditto.).
24182         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
24183         (MEMORY_MOVE_COST):  Revise documentation.
24184
24185         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24186         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24187         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
24188         type of 'in' argument to bool.
24189         (TARGET_MEMORY_MOVE_COST): Define.
24190
24191 2010-06-05  Jan Hubicka  <jh@suse.cz>
24192
24193         * ipa-pure-const.c (propagate): Fix typo in handling of functions
24194         that cannot return.  Be more careful when merging the results with
24195         previously known ones.
24196
24197 2010-06-05  Matthias Klose  <doko@ubuntu.com>
24198
24199         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
24200         function to add the -iplugindir option.
24201         (find_plugindir_spec_function): Add new declaration and function.
24202         (static_spec_func): Use it for "find-plugindir".
24203
24204 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
24205
24206         PR c++/44361
24207         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
24208         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
24209         statement expression.
24210
24211 2010-06-05  Jan Hubicka  <jh@suse.cz>
24212
24213         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
24214         (df_rd_problem_data): Convert sparse_invalidated_by_call,
24215         dense_invalidated_by_call to bitmap head.
24216         (df_rd_alloc, df_rd_bb_local_compute_process_def,
24217         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
24218         df_rd_start_dump, df_lr_verify_transfer_functions,
24219         df_live_verify_transfer_functions, df_chain_create_bb,
24220         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
24221         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
24222         df_simulate_one_insn_forwards, df_md_alloc,
24223         df_md_bb_local_compute_process_def,
24224         df_md_bb_local_compute_process_def, df_md_local_compute,
24225         df_md_transfer_function df_md_free): Update.
24226
24227 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
24228
24229         PR c/44322
24230         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
24231         target type for ADDR_EXPR; require no changes to qualifiers except
24232         for function types.
24233         * c-tree.h (c_build_type_variant): Remove.
24234
24235 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24236
24237         * genautomata.c (get_excl_set): Do work per element, not per char.
24238         (check_presence_pattern_sets): Similar.
24239         (check_absence_pattern_sets): Similar.
24240
24241 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24242
24243         * genautomata.c (curr_state_pass_num): Delete.
24244         (min_issue_delay_pass_states): Delete.
24245         (min_issue_delay): Delete.
24246         (initiate_min_issue_delay_pass_states): Delete.
24247         (output_min_issue_delay_table): Compute min_issue_delay_vect
24248         using a breadth-first search variant.
24249         (output_tables): Don't call initiate_min_issue_delay_pass_states.
24250
24251 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
24252
24253         PR boostrap/44421
24254         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24255         (df_byte_lr_bb_local_compute): Likewise.
24256
24257 2010-06-03  Jason Merrill  <jason@redhat.com>
24258
24259         Implement noexcept operator (5.3.7)
24260         * c-common.c (c_common_reswords): Add noexcept.
24261         * c-common.h (enum rid): Add RID_NOEXCEPT.
24262
24263 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
24264
24265         * config/darwin-driver.c (darwin_default_min_version): Use
24266         GCC-specific formats in diagnostics.
24267         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
24268         diagnostics.
24269         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
24270         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
24271         eval_spec_function, handle_braces, process_brace_body, main,
24272         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
24273         getenv_spec_function, compare_version_strings,
24274         version_compare_spec_function): Use GCC-specific formats in
24275         diagnostics.
24276
24277 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24278
24279         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
24280         that operand 0 and operand 1 are equal.
24281         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
24282         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
24283         and operand 1 are equal.
24284         <default>: Ditto.  Remove ??? comment.
24285         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
24286         and operand 1 are equal.
24287         <default>: Ditto.  Remove ??? comment.
24288         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
24289         are equal.
24290         (*add<mode>_4) <default>: Ditto.
24291         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
24292
24293 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
24294
24295         * config/i386/i386-protos.h (ix86_print_operand): Declare.
24296         * config/i386/i386.c (ix86_print_operand): Make non-static.
24297         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
24298         * output.h (output_operand): Declare.
24299         * final.c (output_operand): Make non-static.
24300
24301 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
24302
24303         PR rtl-optimization/44013
24304         * sched-deps.c (add_dependence_list_and_free): Don't free lists
24305         when processing debug insns.
24306
24307         PR debug/41371
24308         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
24309         recursing.  Check that recursion is bounded.  Rename inner var
24310         to avoid hiding incoming argument.
24311
24312 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24313
24314         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
24315         operands[2] == 255.
24316         (*addqi_3): Ditto.
24317         (*addqi_4): Ditto.
24318         (*addqi_5): Ditto.
24319         (*addqi_ext_1_rex64): Ditto.
24320         (*addqi_ext_1): Ditto.
24321
24322         (*addqi_4): Check for incdec_operand in QImode.
24323
24324         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
24325         using SWI mode iterator.
24326         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
24327         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
24328         mode iterator.
24329         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
24330         using SWI mode iterator.
24331
24332 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24333
24334         PR c/25880
24335         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
24336         * c-format.c (gcc_diag_flag_specs): Add hash.
24337         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
24338         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
24339         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
24340         pp_c_cv_qualifiers. Handle qualifiers spelling here.
24341         (pp_c_type_qualifier_list): Call the function above.
24342         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
24343         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
24344         (WARN_FOR_QUALIFIERS): New macro.
24345         (convert_for_assignment): Use it.
24346
24347 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
24348
24349         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
24350
24351 2010-06-04  Jan Hubicka  <jh@suse.cz>
24352
24353         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
24354         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
24355         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
24356         DF_BYTE_LR_OUT): Update for embedded bitmaps.
24357         * fwprop.c (single_def_use_enter_block): Likewise.
24358         * ddg.c (create_ddg_dep_from_intra_loop_link,
24359         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
24360         * loop-iv.c (latch_dominating_def): Likewise.
24361         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
24362         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
24363         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
24364         df_rd_transfer_function, df_rd_top_dump,
24365         df_rd_bottom_dump): Update.
24366         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
24367         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
24368         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
24369         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
24370         df_lr_verify_solution_start, df_lr_verify_solution_end,
24371         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
24372         df_live_free_bb_info, df_live_alloc, df_live_reset,
24373         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
24374         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
24375         df_live_verify_solution_start, df_live_verify_solution_end,
24376         df_live_verify_transfer_functions, df_chain_create_bb,
24377         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
24378         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24379         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24380         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
24381         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
24382         df_byte_lr_transfer_function, df_byte_lr_top_dump,
24383         df_byte_lr_bottom_dump, df_create_unused_note,
24384         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
24385         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
24386         df_md_transfer_function, df_md_init, df_md_confluence_0,
24387         df_md_confluence_n,
24388         df_md_top_dump, df_md_bottom_dump): Update.
24389         (struct df_lr_problem_data): Embedd bitmap headers.
24390
24391 2010-06-04  Jan Hubicka  <jh@suse.cz>
24392
24393         * dce.c (dce_process_block): Do not re-scan already marked
24394         instructions.
24395
24396 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
24397
24398         PR rtl-optimization/39871
24399         PR rtl-optimization/40615
24400         PR rtl-optimization/42500
24401         PR rtl-optimization/42502
24402         * ira.c (init_reg_equiv_memory_loc: New function.
24403         (ira): Call it twice.
24404         * reload.h (calculate_elim_costs_all_insns): Declare.
24405         * ira-costs.c: Include "reload.h".
24406         (regno_equiv_gains): New static variable.
24407         (init_costs): Allocate it.
24408         (finish_costs): Free it.
24409         (ira_costs): Call calculate_elim_costs_all_insns.
24410         (find_costs_and_classes): Take estimated elimination costs
24411         into account.
24412         (ira_adjust_equiv_reg_cost): New function.
24413         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
24414         * reload1.c (init_eliminable_invariants, free_reg_equiv,
24415         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
24416         (elim_bb): New static variable.
24417         (reload): Move code out of here into init_eliminable_invariants and
24418         free_reg_equiv.  Call them.
24419         (calculate_elim_costs_all_insns): New function.
24420         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
24421         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
24422         but call note_reg_elim_costly if we turned a valid memory address
24423         into an invalid one.
24424         * Makefile.in (ira-costs.o): Depend on reload.h.
24425
24426 2010-06-04  Julian Brown  <julian@codesourcery.com>
24427
24428         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
24429         for pool ranges.
24430
24431 2010-06-04  Richard Guenther  <rguenther@suse.de>
24432
24433         PR lto/41584
24434         * cgraph.h (struct varpool_node): Add lto_file_data field.
24435         * lto-cgraph.c (input_varpool_node): Initialize it.
24436
24437 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24438
24439         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
24440         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
24441         predicate in "type" attribute calculation.
24442         (*addsi_1_zext): Ditto.
24443         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
24444         (*addsi_2_zext): Ditto.
24445         (*add<mode>_3): Ditto.
24446         (*addsi_3_zext): Ditto.
24447         (*add<mode>_5): Ditto.
24448
24449 2010-06-03  Jan Hubicka  <jh@suse.cz>
24450
24451         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
24452         of bitmap_bit_p.
24453         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24454
24455 2010-06-03  Jan Hubicka  <jh@suse.cz>
24456
24457         * df-problems.c (df_create_unused_note, df_note_bb_compute):
24458         micro-optimize the checks when to add new note.
24459
24460 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
24461
24462         * final.c (output_asm_insn): Call
24463         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
24464         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
24465         (output_address): Call targetm.asm_out.print_operand_address.
24466         Update comments.
24467         * target.h (struct gcc_target): Add print_operand,
24468         print_operand_address, and print_operand_punct_valid_p fields.
24469         * targhooks.h (default_print_operand): Declare.
24470         (default_print_operand_address): Declare.
24471         (default_print_operand_punct_valid_p): Declare.
24472         * targhooks.c (default_print_operand): Define.
24473         (default_print_operand_address): Define.
24474         (default_print_operand_punct_valid_p): Define.
24475         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
24476         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
24477         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
24478         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
24479         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
24480         * vmsdbgout.c (addr_const_to_string): Update comment.
24481         * config/i386/i386.c (print_operand): Rename to...
24482         (ix86_print_operand): ...this.  Make static.
24483         (print_operand_address): Rename to...
24484         (ix86_print_operand_address): ...this.  Make static.  Call
24485         ix86_print_operand instead of PRINT_OPERAND.
24486         (ix86_print_operand_punct_valid_p): New function.
24487         (TARGET_PRINT_OPERAND): Define.
24488         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24489         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24490         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
24491         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24492         (PRINT_OPERAND): Delete.
24493         (PRINT_OPERAND_ADDRESS): Delete.
24494         * config/i386/i386-protos.h (print_operand): Delete prototype.
24495         (print_operand_address): Delete prototype.
24496
24497 2010-06-03  Richard Guenther  <rguenther@suse.de>
24498
24499         PR tree-optimization/44403
24500         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24501         Preserve pointer qualifiers.
24502         (vect_create_data_ref_ptr): Likewise.
24503
24504 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
24505
24506         PR c++/44294
24507         * defaults.h (MAX_FIXED_MODE_SIZE): New.
24508
24509         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
24510
24511 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
24512
24513         PR debug/44375
24514         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
24515         return false if merging the bbs would lead to goto_locus
24516         location being lost from the IL.
24517
24518 2010-06-03  Jan Hubicka  <jh@suse.cz>
24519             Jakub Jelinek  <jakub@redhat.com>
24520
24521         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
24522         set->regs[i] is NULL or has just one entry.
24523
24524 2010-06-03  Jan Hubicka  <jh@suse.cz>
24525
24526         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
24527         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
24528
24529 2010-06-03  Paul Brook  <paul@codesourcery.com>
24530
24531         * config/arm/arm.c (FL_TUNE): Define.
24532         (arm_default_cpu, arm_cpu_select): Remove.
24533         (all_cores): Populate core field.
24534         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
24535         (arm_find_cpu): New function.
24536         (arm_handle_option): Lookup cpu/architecture names.
24537         (arm_override_options): Cleanup mcpu/march/mtune handling.
24538         (arm_file_start): Ditto.
24539
24540 2010-06-03  Alan Modra  <amodra@gmail.com>
24541
24542         PR target/44169
24543         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
24544         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
24545         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
24546         (rs6000_emit_load_toc_table): Likewise.
24547
24548 2010-06-02  Jan Hubicka  <jh@suse.cz>
24549
24550         * passes.c (init_optimization_passes): Put ipa reference
24551         after ipa pure-const.
24552
24553 2010-06-02  Jan Hubicka  <jh@suse.cz>
24554
24555         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
24556         calls_read_all and calls_write_all.
24557         (get_reference_optimization_summary): Fix formatting.
24558         (is_proper_for_analysis): Check that decl is not readonly.
24559         (propagate_bits): Check CONST/PURE/noreturn flags.
24560         (ipa_init): Move all_module_statics to optimization_summary_obstack.
24561         (analyze_function): Ignore indirect edges.
24562         (copy_global_bitmap): For all module statics, do nothing.
24563         (generate_summary): Do not print calls_read_all/calls_write_all.
24564         (read_write_all_from_decl): Take node as argument; check
24565         cgraph_node_cannot_return.
24566         (propagate): Reorganize read_all/write_all computation;
24567         check indirect edges; check ecf flags; use all_module_statics
24568         in the results; do not free all_module_statics.
24569         (stream_out_bitmap): Handle all_module_statics.
24570         (ipa_reference_write_optimization_summary): Likewise; use
24571         varpool/cgraph encoders to get boundaries.
24572         (ipa_reference_read_optimization_summary): Read in all_module_statics;
24573         use it when possible.
24574
24575 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24576
24577         PR target/44218
24578         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
24579         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
24580
24581         * doc/extend.texi (powerpc builtins): Document vec_recip,
24582         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
24583
24584         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
24585         (rs6000_emit_swrsqrt): Ditto.
24586         (rs6000_emit_swdivsf): Delete.
24587         (rs6000_emit_swdivdf): Ditto.
24588         (rs6000_emit_swrsqrtsf): Ditto.
24589
24590         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
24591         describe the reciprocal estimate support for each type.
24592         (recip_options): Map -mrecip=<opt> into option bits.
24593         (gen_2arg_fn_t): New typedef for binary rtx gen function.
24594         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
24595         reciprocal estimate instructions.
24596         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
24597         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
24598         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
24599         cost information if -mdebug=cost or -mdebug=reg.
24600         (rs6000_override_options): Set -mrecip-precision for power6, and
24601         power7 machines.  If -mvsx or -mdfp, enable various options that
24602         came in previous instruction set ISAs, unless the option was
24603         explicitly disabled by the command line option.  Parse
24604         -mrecip=<opt> options.
24605         (rs6000_builtin_vectorized_function): Add support for vectorizing
24606         the reciprocal estimate builtins and expansions.
24607         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
24608         (bdesc_2arg): Add reciprocal estimate builtins.
24609         (bdesc_1arg): Add reciprocal square root estimate builtins.
24610         (rs6000_expand_builtin): Rewrite to use a switch statement,
24611         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
24612         (rs6000_init_builtins): Create declarations for reciprocal
24613         estimate builtins.
24614         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
24615         sized, prefer traditional floating point registers, if integer
24616         vector types, prefer altivec registers.  Don't actually look at
24617         the memory address any more.
24618         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
24619         builtins.
24620         (rs6000_load_constant_and_splat): New helper function to load up
24621         the constant for reciprocal estimate instructions.
24622         (rs6000_emit_madd): New helper function for generating
24623         multiply/add type instructions, based on the current switches.
24624         (rs6000_emit_msub): Ditto.
24625         (rs6000_emit_mnsub): Ditto.
24626         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
24627         replace a divide with a reciprocal estimate and fixup, adding
24628         support for machines with high precision and vectors.
24629         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
24630         low precision machines.
24631         (rs6000_emit_swdiv): New common function to be called to replace a
24632         division with reciprocal estimate and fixup.
24633         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
24634         for double and vector types.  Add support for high precision machines.
24635
24636         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
24637         the reciprocal estimate instructions can be generated.
24638         (TARGET_FRE): Ditto.
24639         (TARGET_FRSQRTES): Ditto.
24640         (TARGET_FRSQRTE): Ditto.
24641         (RS6000_RECIP_*): New macros for reciprocal estimate support.
24642
24643         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
24644         square root estimate on vectors.
24645         (re<mode>2): New insn for reciprocal division estimate on vectors.
24646
24647         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
24648         New builtin.
24649         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
24650         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
24651         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
24652         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
24653         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
24654         (RS6000_BUILTIN_RSQRT): Ditto.
24655         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
24656         floating point builtin.
24657
24658         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24659         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
24660         __RECIP_PRECISION__ based on the command line switches.
24661         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
24662
24663         * config/rs6000/rs6000.opt (-mrecip): Document add support for
24664         replacing division instructions with reciprocal estimate and fixup.
24665         (-mrecip=<opt>): New option.
24666         (-mrecip-precision): Ditto.
24667
24668         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
24669         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
24670         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
24671         precision scalar.
24672
24673         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
24674         (UNSPEC_VREFP): Ditto.
24675         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
24676         conterparts with regard to support of -mno-fused-madd and -ffast-math.
24677         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
24678         reciprocal estimate instructions to be generated.
24679         (altivec_vrefp): Ditto.
24680
24681         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
24682         estimate support.
24683         (rreg): New mode attribute for reciprocal estimate support.
24684         (recip<mode>3): New insn for division using reciprocal estimate
24685         and fixup builtins.
24686         (divide define_split): New define_split to convert floating point
24687         division to use reciprocal estimate if the user used the
24688         appropriate options and the split is run when we can add new
24689         pseudo registers for the fixup.
24690         (rsqrt<mode>2): New insn for reciprocal square root support.
24691         (recipsf3): Move into recip<mode>3.
24692         (recipdf3): Ditto.
24693         (fres): Use TARGET_FRES.
24694         (rsqrtsf2): Move into rsqrt<mode>2.
24695         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
24696         (copysignsf3): Add support for VSX.
24697         (fred): Use TARGET_FRE.
24698         (fred_fpr): Ditto.
24699         (rsqrtdf_internal1): New function for frsqrte instruciton.
24700
24701         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
24702         (vec_rsqrt): Ditto.
24703
24704 2010-06-03  Richard Guenther  <rguenther@suse.de>
24705
24706         PR middle-end/44291
24707         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
24708         (set_user_assembler_libfunc): Likewise.
24709
24710 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24711
24712         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
24713         defaults.h.
24714         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
24715         to defaults.h
24716         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
24717         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
24718         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
24719         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
24720         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
24721         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
24722         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
24723         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
24724         * defaults.h: Updated for above mentioned changes.
24725
24726 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
24727
24728         * c-common.c: Remove header include of tm_p.h.
24729         * Makefile.in (c-common.o): Remove TM_P_H dependency.
24730
24731 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
24732
24733         * tree.h (struct tree_decl_map): New type.
24734         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
24735         (tree_decl_map_hash): New prototype.
24736         (debug_expr_for_decl, value_expr_for_decl): Change into
24737         tree_decl_map hashtab from tree_map.
24738         (init_ttree): Adjust initialization.
24739         (tree_decl_map_hash): New function.
24740         (decl_debug_expr_lookup, decl_debug_expr_insert,
24741         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
24742
24743 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24744
24745         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
24746         linker emulations.
24747         * configure: Regenerate.
24748         * config.in: Regenerate.
24749
24750         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
24751         (X86_64_EMULATION): Define.
24752         (TARGET_LD_EMULATION): Use them.
24753
24754         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
24755         (SPARC64_EMULATION): Define.
24756         (LINK_ARCH_SPEC): Use them.
24757
24758 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24759
24760         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
24761         smallest_mode_for_size for computing the precision types of new
24762         graphite IVs.  Do not call lang_hooks.types.type_for_size.
24763
24764 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24765
24766         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
24767         information.
24768         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
24769
24770 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24771
24772         PR middle-end/44363
24773         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
24774         return false instead.
24775
24776 2010-06-02  Jan Hubicka  <jh@suse.cz>
24777
24778         PR middle-end/44295
24779         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
24780         create new cgraph node to check callee.
24781
24782 2010-06-02  Richard Guenther  <rguenther@suse.de>
24783
24784         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
24785
24786 2010-06-02  Richard Guenther  <rguenther@suse.de>
24787
24788         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
24789         (lto_wrapper_cleanup): ... this.  Do not exit.
24790         (fatal): Adjust.  Exit here.
24791         (fatal_perror): Likewise.
24792         (fatal_signal): New function.
24793         (main): Set up signal handlers to cleanup temporary files.
24794         * Makefile.in (lto-wrapper.o): Adjust dependencies.
24795
24796 2010-06-02  Richard Guenther  <rguenther@suse.de>
24797
24798         PR tree-optimization/44377
24799         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
24800
24801 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24802
24803         * config/s390/2097.md (z10_fhex): Remove insn reservation.
24804         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
24805         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
24806         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
24807         instruction.
24808         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
24809
24810 2010-06-02  Jan Hubicka  <jh@suse.cz>
24811
24812         * bitmap.c (bitmap_descriptor): Add search_iter.
24813         (bitmap_find_bit): Increment it.
24814         (print_statistics): Print it.
24815
24816 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
24817
24818         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
24819         instead of gimple_build_call_vec.  Delete unnecessary local variable.
24820
24821 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24822
24823         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
24824         change from yesterday.
24825
24826 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24827
24828         * c-ada-spec.c: Clean up redundant includes.
24829
24830 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
24831
24832         * gimplify.c: Do not include except.h and optabs.h.
24833         (gimplify_body): Do not initialize RTL profiling.
24834         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
24835         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
24836         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
24837         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
24838         langhooks.h.
24839
24840         * tree-pretty-print.h: Include pretty-print.h.
24841         * gimple-pretty-print.h: Include pretty-print.h.
24842
24843         * tree-pretty-print.c: Do not include diagnostic.h.
24844         * tree-vrp.c: Likewise.
24845         * tree-tailcall.c: Likewise
24846         * tree-scalar-evolution.c: Likewise
24847         * tree-ssa-dse.c: Likewise
24848         * tree-chrec.c: Likewise
24849         * tree-ssa-sccvn.c: Likewise
24850         * tree-ssa-copyrename.c: Likewise
24851         * tree-nomudflap.c: Likewise
24852         * tree-call-cdce.c: Likewise
24853         * tree-stdarg.c: Likewise
24854         * tree-ssa-math-opts.c: Likewise
24855         * tree-nrv.c: Likewise
24856         * tree-ssa-sink.c: Likewise
24857         * tree-browser.c: Likewise
24858         * tree-ssa-loop-ivcanon.c: Likewise
24859         * tree-ssa-loop.c: Likewise
24860         * tree-parloops.c: Likewise
24861         * tree-ssa-address.c: Likewise
24862         * tree-ssa-ifcombine.c: Likewise
24863         * tree-if-conv.c: Likewise
24864         * tree-data-ref.c: Likewise
24865         * tree-affine.c: Likewise
24866         * tree-ssa-phiopt.c: Likewise
24867         * tree-ssa-coalesce.c: Likewise
24868         * tree-ssa-pre.c: Likewise
24869         * tree-ssa-live.c: Likewise
24870         * tree-predcom.c: Likewise
24871         * tree-ssa-forwprop.c: Likewise
24872         * tree-ssa-dce.c: Likewise
24873         * tree-ssa-ter.c: Likewise
24874         * tree-ssa-loop-prefetch.c: Likewise
24875         * tree-optimize.c: Likewise
24876         * tree-ssa-phiprop.c: Likewise
24877         * tree-object-size.c: Likewise
24878         * tree-outof-ssa.c: Likewise
24879         * tree-ssa-structalias.c: Likewise
24880         * tree-switch-conversion.c: Likewise
24881         * tree-ssa-reassoc.c: Likewise
24882         * tree-ssa-operands.c: Likewise
24883         * tree-vectorizer.c: Likewise
24884         * tree-vect-data-refs.c: Likewise
24885         * tree-vect-generic.c: Likewise
24886         * tree-vect-stmts.c: Likewise
24887         * tree-vect-patterns.c: Likewise
24888         * tree-vect-slp.c: Likewise
24889         * tree-vect-loop.c: Likewise
24890         * tree-ssa-loop-ivopts.c: Likewise
24891         * tree-ssa-loop-im.c: Likewise
24892         * tree-ssa-loop-niter.c: Likewise
24893         * tree-ssa-loop-unswitch.c: Likewise
24894         * tree-ssa-loop-manip.c: Likewise
24895         * tree-ssa-loop-ch.c: Likewise
24896         * tree-dump.c: Likewise
24897         * tree-complex.c: Likewise
24898
24899         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
24900         * tree-ssa-uninit.c: Likewise
24901         * tree-ssa-threadupdate.c: Likewise
24902         * tree-ssa-uncprop.c: Likewise
24903         * tree-ssa-ccp.c: Likewise
24904         * tree-ssa-dom.c: Likewise
24905         * tree-ssa-propagate.c: Likewise
24906         * tree-ssa-alias.c: Likewise
24907         * tree-dfa.c: Likewise
24908         * tree-cfgcleanup.c: Likewise
24909         * tree-sra.c: Likewise
24910         * tree-ssa-copy.c: Likewise
24911         * tree-ssa.c: Likewise
24912         * tree-profile.c: Likewise
24913         * tree-cfg.c: Likewise
24914         * tree-ssa-threadedge.c: Likewise
24915         * tree-vect-loop-manip.c: Likewise
24916
24917         * tree-inline.c: Do not include diagnostic.h and expr.h.
24918         Include rtl.h.
24919         (copy_decl_for_dup_finish): Do not use NULL_RTX.
24920
24921         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
24922         * tree-loop-distribution.c: Likewise.
24923
24924 2010-06-01  Jan Hubicka  <jh@suse.cz>
24925
24926         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
24927
24928 2010-06-01  Jan Hubicka  <jh@suse.cz>
24929
24930         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
24931         remove return value.
24932         (split_bbs_on_noreturn_calls) .... here.
24933         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
24934         * tree-flow.h (fixup_noreturn_call): New.
24935
24936 2010-06-01  Jan Hubicka  <jh@suse.cz>
24937
24938         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
24939
24940 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
24941
24942         * tree.h (build_nt_call_list): Delete.
24943         * tree.c (build_nt_call_list): Delete.
24944
24945 2010-06-01  Jan Hubicka  <jh@suse.cz>
24946
24947         * fwprop.c: Make emit-rtl.h include last.
24948         * rtlanal.c: Include emit-rtl.h.
24949         * genautomata.c: Output emit-rtl include into insn-automata.c
24950         * df-scan.c: Include emit-rtl.h.
24951         * haifa-sched.c: Indlude emit-rtl.h.
24952         * mode-switching.c: Indlude emit-rtl.h.
24953         * graph.c: Indlude emit-rtl.h.
24954         * sel-sched.c: Include emit-rtl.h.
24955         * sel-sched-ir.c: Include emit-rtl.h.
24956         * ira-build.c: Include emit-rtl.h.
24957         * emit-rtl.c (first_insn, last_insn): Remove defines.
24958         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
24959         Move to emit-rtl.h.
24960         (set_new_first_and_last_insn, get_last_insn_anywhere,
24961         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
24962         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
24963         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
24964         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
24965         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
24966         Use accessor functions.
24967         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24968          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24969         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24970         mem_expr_equal_p): Move here from rtl.h.
24971         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
24972         Move here from emit-rtl.c; make inline.
24973         * cfglayout.h: Include emit-rtl.h.
24974         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24975          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24976         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24977         mem_expr_equal_p, get_insns, set_first-insn,
24978         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
24979         * reg-stack.c: Include emit-rtl.h.
24980         * dce.c: Likewise.
24981
24982 2010-06-01  Jan Hubicka  <jh@suse.cz>
24983
24984         * cgraph.h (tree_function_versioning): Update prototype.
24985         (cgraph_function_versioning): Update prototype.
24986         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
24987         bitmap.
24988         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
24989         (cgraph_materialize_clone, save_inline_function_body): Update use of
24990         tree_function_versioning.
24991         * tree-inline.c (copy_bb): Look for previous copied block to link
24992         after; fix debug output.
24993         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
24994         (copy_body): Likewise.
24995         (expand_call_inline): Update use of copy_body.
24996         (tree_function_versioning): Update use of copy body; accept
24997         blocks_to_copy and new_entry.
24998
24999 2010-06-01  Jan Hubicka  <jh@suse.cz>
25000
25001         * gegenrtl.c: Remove unnecesary prototypes.
25002         (gendecl): Remove.
25003         (gendef): Produce static inline.
25004         (gencode): Remove.
25005         (main): Do not decode parameters; generate header only.
25006         * Makefile.in (genrtl.c): Remove.
25007
25008 2010-06-01  Jan Hubicka  <jh@suse.cz>
25009
25010         * tree-switch-conversion.c (build_one_array): Make it readonly.
25011
25012 2010-06-01  Richard Guenther  <rguenther@suse.de>
25013
25014         * optabs.c (init_optabs): Guard all accesses to reinit.
25015         * ipa-pure-const.c (propagate): Fix another typo.
25016         * opts.c (common_handle_option): Split assignment to bool.
25017         * c-opts.c (c_common_handle_option): Likewise.
25018
25019 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
25020             Matthew Gingell  <gingell@adacore.com>
25021
25022         * doc/invoke.texi: Mention -fdump-ada-spec.
25023         * tree-dump.c (dump_files): Add ada-spec.
25024         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
25025         * tree-pass.h (tree_dump_index): Add TDI_ada.
25026         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
25027         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
25028         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
25029         * c-decl.c: Include c-ada-spec.h.
25030         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
25031         functions.
25032         (c_write_global_declarations): Add handling of -fdump-ada-spec.
25033         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
25034         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
25035         * c-ada-spec.h, c-ada-spec.c: New files.
25036
25037 2010-06-01  Richard Guenther  <rguenther@suse.de>
25038
25039         PR lto/43853
25040         * ipa-pure-const.c (get_function_state): Hand back varying state
25041         if we do not have one.
25042         (has_function_state): New function.
25043         (duplicate_node_data): Adjust.
25044         (remove_node_data): Likewise.
25045         (pure_const_write_summary): Likewise.
25046         (propagate): Likewise.  Fix typo.
25047
25048 2010-06-01  Jan Hubicka  <jh@suse.cz>
25049
25050         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
25051         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
25052         (execute_all_ipa_transforms): Do not play with the states.
25053
25054 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
25055
25056         * config/arm/t-linux-androideabi: New.
25057         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
25058
25059 2010-06-01  Jan Hubicka  <jh@suse.cz>
25060
25061         * tree-inline.c (estimate_num_insns): For stdarg functions look
25062         into call statement to count cost of argument passing.
25063
25064 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
25065
25066         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
25067         argument for fprintf.
25068         (ix86_output_addr_diff_elt): Likewise.
25069         (x86_function_profiler): Likewise.
25070         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
25071         (LPREFIX): Likewise.
25072         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
25073
25074 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25075
25076         PR target/44338
25077         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
25078         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
25079         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
25080         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
25081         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
25082         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
25083         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
25084         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
25085         TARGET_FUSED_MADD.
25086
25087 2010-05-31  Jan Hubicka  <jh@suse.cz>
25088
25089         * tree.h (tree_range_check_failed): Declare noreturn.
25090
25091 2010-05-31  Jan Hubicka  <jh@suse.cz>
25092
25093         * gimple.c (gimple_call_builtin_p): New function.
25094         * gimple.h (gimple_call_builtin_p): Declare.
25095         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
25096         to exit.
25097         (execute_warn_function_return): BUILT_IN_RETURN is return.
25098         (split_critical_edges): Return edges are not critical.
25099         (is_ctrl_altering_stmt): Builtin_in_return is altering.
25100         (gimple_verify_flow_info): Handle built_in_return.
25101         (execute_warn_function_return): Handle built_in_return.
25102         * ipa-pure-const.c (check_call): Ignore builtin_return.
25103
25104 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25105
25106         PR middle-end/44337
25107         * expr.c (expand_assignment): Don't store anything for out-of-bounds
25108         array accesses with non-MEM.
25109
25110         PR tree-optimization/44182
25111         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
25112         newly needs to end a bb is followed by debug stmts, instead return
25113         true from the function at the end.
25114         (maybe_move_debug_stmts_to_successors): New function.
25115         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
25116
25117 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
25118
25119         PR target/44161
25120         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
25121
25122 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
25123
25124         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
25125         for nested functions in non-optimized compilation.
25126
25127 2010-05-31  Richard Guenther  <rguenther@suse.de>
25128
25129         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
25130
25131 2010-05-30  Jan Hubicka  <jh@suse.cz>
25132
25133         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
25134
25135 2010-05-30  Richard Guenther  <rguenther@suse.de>
25136
25137         PR lto/42975
25138         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
25139         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
25140         no longer needed.
25141
25142 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
25143
25144         * config/darwin.c (output_objc_section_asm_op): Add comment.
25145         (name_needs_quotes): Add '_' to list of valid comment chars.
25146         (machopic_output_function_base_name): Remove unneeded quotes.
25147         (darwin_encode_section_info): Adjust asm whitespace.
25148         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
25149         (ASM_OUTPUT_LOCAL): Ditto.
25150         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
25151         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
25152         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
25153
25154 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
25155
25156         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
25157         RS6000_OUTPUT_BASENAME unconditionally.
25158         (rs6000_output_function_epilogue): Likewise.
25159
25160 2010-05-30  Jan Hubicka  <jh@suse.cz>
25161
25162         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
25163         nodes.
25164
25165 2010-05-30  Richard Guenther  <rguenther@suse.de>
25166
25167         * tree-cfg.c (verify_gimple_assign_single): Implement
25168         verification for COND_EXPR rhs.
25169
25170 2010-05-30  Jan Hubicka  <jh@suse.cz>
25171
25172         * cgraph.h (cgraph_dump_file): Declare.
25173         * cgraphunit.c (cgraph_dump_file): Export.
25174         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
25175
25176 2010-05-30  Jan Hubicka  <jh@suse.cz>
25177
25178         * dwarf2out.c (reference_to_unused,
25179         premark_types_used_by_global_vars_helper): Avoid creation of new
25180         varpool nodes.
25181
25182 2010-05-30  Jan Hubicka  <jh@suse.cz>
25183
25184         * cgraph.h (cgraph_node_cannot_return,
25185         cgraph_edge_cannot_lead_to_return): New functions.
25186         * cgraph.c (cgraph_node_cannot_return,
25187         cgraph_edge_cannot_lead_to_return): Use them.
25188         * ipa-pure-const.c (pure_const_names): New static var.
25189         (check_call): Handle calls not leading to return.
25190         (pure_const_read_summary): Dump info read.
25191         (propagate): Dump info about propagation process; ignore side effects
25192         of functions not leading to exit; fix handling of pure functions.
25193
25194 2010-05-30  Jan Hubicka  <jh@suse.cz>
25195
25196         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
25197         for tail call epilogues.
25198
25199 2010-05-30  Jan Hubicka  <jh@suse.cz>
25200
25201         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
25202         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
25203         dump files.
25204
25205 2010-05-29  Jan Hubicka  <jh@suse.cz>
25206
25207         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
25208         node; remove references in node we no longer keep in cgrpah but need
25209         body of.
25210
25211 2010-05-29  Jan Hubicka  <jh@suse.cz>
25212
25213         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
25214
25215 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25216
25217         PR target/44165
25218         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
25219
25220 2010-05-29  Jan Hubicka  <jh@suse.cz>
25221
25222         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
25223         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
25224         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
25225         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
25226         debug_names_replaced_by, debug_update_ssa): Likewise.
25227         * sbitmap.c (debug_sbitmap): Likewise.
25228         * genrecog.c (debug_decision, debug_decision_list): Likewise.
25229         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
25230         debug_tree_chain): Likewise.
25231         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
25232         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
25233         * optabs.c (debug_optab_libfuncs): Likewise.
25234         (verify_loop_closed_ssa): Likewise.
25235         * value-prof.c (verify_histograms): Likewise.
25236         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
25237         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
25238         * cfghooks.c (verify_flow_info): Likewise.
25239         * fold-const.c (debug_fold_checksum): Likewise.
25240         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25241         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25242         Likewise.
25243         * omega.c (debug_omega_problem): Likewise.
25244         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25245         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25246         * dominance.c (verify_dominators, debug_dominance_info,
25247         debug_dominance_tree): Likewise.
25248         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25249         * df_regno_debug, df_ref_debug,
25250         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25251         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25252         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25253         * sel-sched.c (debug_state): Likewise.
25254         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25255         Likewise.
25256         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25257         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25258         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25259         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25260         Likewise.
25261         * c-pretty-print.c (debug_c_tree): Likewise.
25262         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
25263         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
25264         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
25265         * ebitmap.c (debug_ebitmap): Likewise.
25266         * function.c (debug_find_var_in_block_tree): Likewise.
25267         * print-rtl.c (debug_rtx): Likewise.
25268         (debug_rtx_count): Likewise.
25269         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
25270         * stor-layout.c (debug_rli): Likewise.
25271         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
25272         * tree-data-ref.c (debug_data_references,
25273         debug_data_dependence_relations, debug_data_reference,
25274         debug_data_dependence_relation, debug_rdg_vertex,
25275         debug_rdg_component, debug_rdg): Likewise.
25276         * tree-affine.c (debug_aff): Likewise.
25277         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
25278         Likewise.
25279         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
25280         * emit-rtl.c (verify_rtl_sharing): Likewise.
25281         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
25282         debug_value_expressions): Likewise.
25283         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
25284         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
25285         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
25286         * cfglayout.c (verify_insn_chain): Likewise.
25287         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
25288         debug_clast_stmt, debug_generated_program): Likewise.
25289         * ggc-page.c (debug_print_page_list): Likewise.
25290         * tree-ssa-ter.c (debug_ter): Likewise.
25291         * graphite-dependences.c (debug_pddr): Likewise.
25292         * sched-deps.c (debug_ds): Likewise.
25293         * tree-ssa.c (verify_ssa): Likewise.
25294         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
25295         debug_scattering_functions, debug_iteration_domains, debug_pdr,
25296         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
25297         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
25298         * tree-inline.c (debug_find_tree): Likewise.
25299         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
25300         debug_ppl_powerset_matrix): Likewise.
25301         * var-tracking.c (debug_dv): Likewise.
25302         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
25303         * cfgloop.c (verify_loop_structure): Likewise.
25304         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
25305         * c-common.c (verify_sequence_points): Likewise.
25306         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
25307         debug_candidates, debug_rgn_dependencies): Likewise.
25308         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
25309         * debug_constraint_graph, debug_solution_for_var,
25310         debug_sa_points_to_info): Likewise.
25311         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
25312         Likewie.
25313         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
25314         debug_loops, debug_loop, debug_loop_num): Likewise.
25315         * passes.c (debug_pass): Likewise.
25316         (dump_properties): Likewise; add cfglayout property.
25317         (debug_properties): Likewise.
25318         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
25319         * varpool.c (debug_varpool): Likewise.
25320         * regcprop.c (debug_value_data): Likewise.
25321         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
25322         debug_immediate_uses_for): Likewise.
25323
25324 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25325
25326         PR bootstrap/44315
25327         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
25328         Filter out insn-flags.h.
25329
25330 2010-05-29  Jan Hubicka  <jh@suse.cz>
25331
25332         * cgraph.h (struct varpool_node_set_def,
25333         struct cgraph_node_set_def): Remove unused AUX pointer.
25334         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
25335         VEC_empty macro.
25336
25337 2010-05-29  Jan Hubicka  <jh@suse.cz>
25338
25339         PR middle-end/44324
25340         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
25341
25342 2010-05-29  Richard Guenther  <rguenther@suse.de>
25343
25344         * lto-streamer.c (cached_bp): New global variable.
25345         (bitpack_create): Return the cached bitpack, if available.
25346         (bitpack_delete): Clear and cache the bitpack, if appropriate.
25347         (bp_pack_value): Remove redundant asserts.
25348
25349 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25350
25351         PR middle-end/44306
25352         * tree-if-conv.c (is_true_predicate): New.
25353         (is_predicated): Use is_true_predicate.
25354         (add_to_predicate_list): Same.  Do not use unshare_expr.
25355         (add_to_dst_predicate_list): Same.
25356
25357 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25358
25359         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
25360         field on edges.
25361         (predicate_bbs): Same.
25362         (clean_predicate_lists): Same.
25363         (find_phi_replacement_condition): Do not AND the predicate from
25364         edge->aux.
25365
25366 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25367
25368         PR bootstrap/44315
25369         * Makefile.in (build/gencondmd.o): Add a missing `\'.
25370
25371 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25372
25373         PR target/44261
25374         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
25375         (negdf2): Adjust expander pattern and use negdf2_slow.
25376         (negsf2): Likewise.
25377
25378 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
25379
25380         * basic-block.h (struct control_flow_graph): Move last_label_uid field
25381         up.
25382         * df.h (struct df_base_ref): Move regno field up.
25383         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
25384         * expr.h (struct separate_ops): Move location field up.
25385         * optabs.h (struct optab_d): Move libcall_basename field down.
25386         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
25387         * config/i386/i386.h (struct machine_function): Convert call_abi field
25388         into a bitfield.  Move cfa field to the end of the structure.
25389
25390 2010-05-29  Jan Hubicka  <jh@suse.cz>
25391
25392         * varpool.c (varpool_get_node): Fix lookup.
25393
25394 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25395
25396         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
25397         RTL specific prototypes with #ifdef RTX_CODE.
25398         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
25399         * config/spu/t-spu-elf: Fix dependencies.
25400
25401         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
25402
25403 2010-05-29  Mike Stump  <mikestump@comcast.net>
25404
25405         PR bootstrap/44315
25406         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
25407         TM_H when building to avoid dependency loops.
25408
25409 2010-05-29  Jan Hubicka  <jh@suse.cz>
25410
25411         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
25412         refs and body; not the whole node for masters of materialized clones.
25413
25414 2010-05-29  Mike Stump  <mikestump@comcast.net>
25415
25416         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
25417
25418 2010-05-29  Jan Hubicka  <jh@suse.cz>
25419
25420         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
25421         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
25422         use of clone_function_name.
25423         * cgraph.h (cgraph_create_virtual_clone,
25424         cgraph_function_versioning): update prototypes.
25425         (clone_function_name): Declare.
25426         * ipa-cp.c (ipcp_insert_stage): Update call of
25427         cgraph_create_virtual_clone.
25428         * omp-low.c (create_omp_child_function_name): Use
25429         cgraph_create_virtual_clone.
25430         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
25431         (cgraph_function_versioning): Take SUFFIX argument; produce new name
25432         and make decl local.
25433
25434 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25435
25436         * vec.h: Include statistics.h
25437         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
25438         with VEC_H.
25439
25440 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25441
25442         * c-lex.c: Do not include c-tree.h.
25443         * c-pretty-print.c: Likewise.
25444         * c-opts.c: Likewise.
25445         * c-gimplify.c: Likewise.
25446         * c-common.c: Likewise.
25447         * c-dump.c: Likewise.  Include c-common.h.
25448
25449 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25450
25451         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
25452         before including diagnostic-core.h.
25453         (c_cpp_error): New prototype moved from c-tree.h.
25454         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
25455         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
25456         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
25457         (c_cpp_error): Prototype moved to c-common.h.
25458         * Makefile.in: Update dependency for C_COMMON_H.
25459
25460 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25461
25462         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
25463         * c-common.c (c_register_addr_space): Remove here.
25464         * c-decl.c (c_register_addr_space): Re-add here.
25465
25466 2010-05-28  Mike Stump  <mikestump@comcast.net>
25467
25468         * config/darwin-c.c: Remove c-tree.h include.
25469
25470 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25471
25472         * gcc.c: Include diagnostic.h.
25473         (error_count): Remove.  All users changed to use errorcount.
25474         (programname): Remove.  All users changed to use progname.
25475         (fancy_abort, internal_error, fatal_error, error, warning, inform,
25476         fnotice): Remove.
25477         (execute): Don't include "Internal error" and bug reporting
25478         information in argument of internal_error call.
25479         (process_command): Don't increment error_count after calling
25480         perror_with_name.
25481         (input_filename): Rename to gcc_input_filename.  All users
25482         changed.
25483         (main): Call diagnostic_initialize.  Register delete_temp_files
25484         with atexit.  Use seen_error to test for errors.
25485         * gcc.h: Include diagnostic-core.h.
25486         (fatal_error, error, warning): Remove.
25487         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
25488         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
25489         (gcc.o): Update dependencies.
25490
25491 2010-05-28  Jeff Law  <law@redhat.com>
25492
25493         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
25494         functions.
25495         * ira.h (ira_bad_reload_regno): Declare
25496         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
25497
25498         * ira-color.c (update_curr_costs): Free updated hard reg costs.
25499         (ira_reassign_conflict_allocnos): Remove bogus asserts.
25500         (allocno_reload_assign): Likewise.
25501
25502 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
25503
25504         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
25505         build1_stat.
25506
25507 2010-05-28  Richard Guenther  <rguenther@suse.de>
25508
25509         PR lto/44312
25510         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
25511         Stream fixed-point constants mode.
25512         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
25513         and TYPE_PRECISION.
25514         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
25515         Stream fixed-point constants mode.
25516         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
25517         and TYPE_PRECISION.
25518
25519 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25520
25521         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
25522         only place it was called from.
25523         (number_of_latch_executions): Do not return chrec_dont_know when the
25524         may_be_zero is a runtime condition: instead, return a COND_EXPR
25525         including the may_be_zero condition.
25526         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
25527         of nb_iterations.
25528         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
25529         COND_EXPRs.
25530
25531 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25532
25533         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
25534         generate COND_EXPRs for degenerate_phi_result.
25535
25536 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25537
25538         PR middle-end/44293
25539         * tree-if-conv.c (if_convertible_loop_p): Check the
25540         if-convertibility of phi nodes in non predicated BBs.
25541
25542 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25543
25544         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
25545
25546 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25547
25548         PR driver/15303
25549         * gcc.c (inform, warning, inform): New functions.
25550         (fatal_ice): Rename to internal_error; change cmsgid parameter to
25551         gmsgid.  All callers changed.
25552         (notice): Rename to fnotice; add parameter fp.  All callers changed.
25553         (fatal_error): Rename to fatal_signal.  All users changed.
25554         (fatal): Rename to fatal_error; change cmsgid parameter to
25555         gmsgid.  All callers changed.
25556         (process_command): Use warning instead of error for warnings.
25557         (end_going_arg): Don't use _() around argument of error.
25558         (do_spec_1): Use inform for message from %n specs.  Use warning
25559         instead of error for warnings.
25560         (main): Use inform for comparison messages.  Use warning for
25561         message about unused linker input.
25562         (error): Increment error_count.  Print "error: ".
25563         * gcc.h (fatal): Change to fatal_error.
25564         (warning): Declare.
25565         * config/darwin-driver.c (darwin_default_min_version): Use warning
25566         instead of fprintf for warnings.
25567         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
25568
25569 2010-05-28  Julian Brown  <julian@codesourcery.com>
25570
25571         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
25572         (*thumb2_addsi3_compare0_scratch): New.
25573         * config/arm/constraints.md (Pv): New.
25574         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
25575         for ARM mode only.
25576         (*addsi3_compare0_scratch): Likewise.
25577
25578 2010-05-28  Jan Hubicka  <jh@suse.cz>
25579
25580         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
25581         check.
25582         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
25583         only on local statics.
25584
25585 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
25586
25587         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
25588
25589 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
25590
25591         PR bootstrap/44314
25592         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
25593         (OPTION_GLIBC): Define.
25594
25595 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
25596
25597         PR debug/41048
25598         * dwarf2out.c (double_int_type_size_in_bits): New function.
25599         (round_up_to_align): Change first argument and return value to
25600         double_int.
25601         (field_byte_offset): Work internally on double_ints.
25602
25603         PR target/43636
25604         * builtins.c (expand_movstr): Use a temporary pseudo instead
25605         of target even when target is not NULL and not const0_rtx, but
25606         fails movstr predicate.
25607         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
25608
25609 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25610
25611         * final.c (rest_of_clean_state): Use %m in errors instead of
25612         strerror (errno).
25613         * gengtype.c (read_input_list, close_output_files): Use xstrerror
25614         instead of strerror.
25615         * toplev.c (process_options): Use %m in errors instead of strerror
25616         (errno).
25617         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
25618         (errno).
25619
25620 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
25621
25622         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
25623         (ix86_canonical_va_list_type): Make static.  Add declaration.
25624         (ix86_enum_va_list): Make static.  Reindent.
25625         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
25626         (ix86_canonical_va_list_type): Ditto.
25627         (ix86_enum_va_list): Ditto.
25628
25629 2010-05-28  Richard Guenther  <rguenther@suse.de>
25630
25631         * lto-wrapper.c (run_gcc): With -save-temps generate a
25632         user-visible ltrans filename.  Fixup ltrans unit numbering.
25633
25634 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
25635
25636         * c-common.c (c_common_nodes_and_builtins): Replace use
25637         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
25638         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
25639         to ix86_enum_va_list.
25640         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
25641         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
25642         (TARGET_ENUM_VA_LIST_P): Add hook description.
25643         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
25644         * target.h (gcc_target): Add enum_va_list hook.
25645
25646         PR bootstrap/44299
25647         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
25648         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
25649         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
25650
25651 2010-05-28  Alan Modra  <amodra@gmail.com>
25652
25653         PR target/44266
25654         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
25655         emit_library_call machinery to set up __tls_get_addr calls.
25656
25657 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25658
25659         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
25660
25661 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
25662
25663         Revert fix for PR c++/44188
25664         * c-common.c (is_typedef_decl): Revert the moving of  this
25665         definition ...
25666         * tree.c (is_typedef_decl): ... here.
25667         (typdef_variant_p): Revert the moving of this  definition
25668         here from cp/tree.c.
25669         * c-common.h (is_typedef_decl): Revert the moving of this
25670         declaration ...
25671         * tree.h (is_typedef_decl): ... here.
25672         (typedef_variant_p): Revert the moving of this  declaration here
25673         from cp/cp-tree.h
25674         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
25675         (gen_tagged_type_die): Revert the splitting out of ...
25676         (gen_type_die_with_usage): ... this function. Revert the anonymous
25677         tagged type handling.
25678         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
25679         typedefs naming anonymous tagged types.
25680
25681 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
25682
25683         * config/rs6000/rs6000-modes.def (PSImode): Delete.
25684
25685 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
25686
25687         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
25688         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
25689         throughout.
25690         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
25691         "xer" to "ca".
25692         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
25693         XER_REGS to CA_REGS throughout.
25694         * config/rs6000/rs6000.h: Same.
25695         (ADDITIONAL_REGISTER_NAMES): Add "xer".
25696         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
25697         that mode_iterator "P" is the size for arithmetic carries as well.
25698         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
25699
25700 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
25701
25702         PR bootstrap/44255
25703         * combine.c (struct rtx_subst_pair): Define unconditionally.
25704         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
25705         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
25706         Call make_compound_operation on pair->to.
25707         (propagate_for_debug): Don't call make_compound_operation here.
25708         Always use simplify_replace_fn_rtx.
25709
25710 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
25711
25712         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
25713         * config/xtensa/xtensa.c (override_options): Check
25714           TARGET_FORCE_NO_PIC and set flag_pic.
25715         * config/xtensa/xtensa.opt: Document -mforce-no-pic
25716
25717 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25718
25719         PR bootstrap/44299
25720         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
25721         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
25722
25723 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
25724
25725         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
25726         toplev.h.
25727         * diagnostic.c: Don't include toplev.h.
25728         (progname): Define.  Moved from toplev.c.
25729         (seen_error): New function.
25730         * diagnostic.h: Include diagnostic-core.h.
25731         (diagnostic_t, emit_diagnostic): Don't declare here.
25732         * toplev.c (progname): Move to toplev.c.
25733         (emit_debug_global_declarations, compile_file, finalize,
25734         do_compile, toplev_main): Use seen_error.
25735         * toplev.h: Include diagnostic-core.h.
25736         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
25737         internal_error, warning, warning_at, error, error_n, error_at,
25738         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
25739         verbatim, fnotice, progname): Move to diagnostic-core.h.
25740         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
25741         (expand_builtin_expect): Use seen_error.
25742         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
25743         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
25744         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
25745         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
25746         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
25747         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
25748         errorcount for errors.
25749         * c-opts.c (c_common_finish): Use seen_error.
25750         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25751         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
25752         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
25753         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
25754         (get_coverage_counts): Use seen_error.
25755         * dwarf2out.c (dwarf2out_finish): Use seen_error.
25756         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
25757         gimplify_body): Use seen_error.
25758         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
25759         * ipa-pure-const.c (gate_pure_const): Use seen_error.
25760         * ipa-reference.c (gate_reference): Use seen_error.
25761         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
25762         * lambda-code.c: Include diagnostic-core.h instead of
25763         diagnostic.h.
25764         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25765         * lto-compress.c: Include diagnostic-core.h instead of
25766         diagnostic.h.
25767         * lto-section-in.c: Include diagnostic-core.h instead of
25768         diagnostic.h.
25769         * lto-streamer-out.c: Include diagnostic-core.h instead of
25770         diagnostic.h.
25771         * lto-streamer.c: Include diagnostic-core.h instead of
25772         diagnostic.h.
25773         (gate_lto_out): Use seen_error.
25774         * matrix-reorg.c: Include diagnostic-core.h instead of
25775         diagnostic.h.
25776         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
25777         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
25778         (gate_expand_omp, lower_omp_1): Use seen_error.
25779         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
25780         (rest_of_decl_compilation, rest_of_type_compilation,
25781         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
25782         * tree-cfg.c (label_to_block_fn): Use seen_error.
25783         * tree-inline.c (optimize_inline_calls): Use seen_error.
25784         * tree-mudflap.c (mudflap_finish_file): Use
25785         seen_error.
25786         * tree-optimize.c (gate_all_optimizations,
25787         gate_all_early_local_passes, gate_all_early_optimizations): Use
25788         seen_error.
25789         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
25790         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
25791         (varpool_remove_unreferenced_decls,
25792         varpool_assemble_pending_decls): Use seen_error.
25793         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
25794         (TOPLEV_H, DIAGNOSTIC_H): Update.
25795         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
25796         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
25797         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
25798         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
25799         coverage.o, lambda-code.o): Update dependencies.
25800
25801 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25802
25803         PR c++/44188
25804         * c-common.c (is_typedef_decl): Move this definition ...
25805         * tree.c (is_typedef_decl): ... here.
25806         (typdef_variant_p): Move definition here from cp/tree.c.
25807         * c-common.h (is_typedef_decl): Move this declaration ...
25808         * tree.h (is_typedef_decl): ... here.
25809         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25810         * dwarf2out.c (is_naming_typedef_decl): New function.
25811         (gen_tagged_type_die): Split out of ...
25812         (gen_type_die_with_usage): ... this function. When an anonymous
25813         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25814         is emitted for the typedef.
25815         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25816         anonymous tagged types.
25817
25818 2010-05-27  Jason Merrill  <jason@redhat.com>
25819
25820         * print-tree.c (debug_vec_tree): New fn.
25821         (print_vec_tree): New fn.
25822         * tree.h: Declare them.
25823         * gdbinit.in (pvt): New command.
25824
25825         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
25826
25827         * gdbinit.in (pdd): New command.
25828
25829 2010-05-27  Jan Hubicka  <jh@suse.cz>
25830
25831         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
25832         (update_caller_keys): Return early if there are no callers;
25833         only update fibheap when decresing the key.
25834         (update_callee_keys): Avoid recursion.
25835         (decide_inlining_of_small_functions): When badness does not match;
25836         re-insert into fibheap.
25837
25838 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
25839
25840         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
25841         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
25842         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
25843         (ALL_HOST_OBJS): Now a union of the above two.
25844         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
25845         all files in ALL_HOST_FRONTEND_OBJS.
25846         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
25847
25848         * c-common.c: Pretend to be a backend file by undefining
25849         IN_GCC_FRONTEND (still need rtl.h here).
25850
25851 2010-05-27  Jan Hubicka  <jh@suse.cz>
25852
25853         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
25854         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
25855
25856 2010-05-27  Jan Hubicka  <jh@suse.cz>
25857
25858         * sched-ebb.c: Rename struct deps to struct deps_desc.
25859         * ddg.c: Likewise.
25860         * sel-sched-ir.c: Likewise.
25861         * sched-deps.c: Likewise.
25862         * sched-int.h: Likewise.
25863         * sched-rgn.c: Likewise.
25864
25865 2010-05-27  Jon Beniston  <jon@beniston.com>
25866
25867         PR 43726
25868         * config/lm32/lm32.h: Remove definition of
25869         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
25870
25871 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
25872
25873         PR lto/44230
25874         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
25875
25876 2010-05-27  Richard Guenther  <rguenther@suse.de>
25877
25878         PR tree-optimization/44284
25879         * tree-vect-stmts.c (vectorizable_assignment): Handle
25880         sign-changing conversions as simple copy.
25881
25882 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25883
25884         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
25885         Bionic C library.
25886         (__gthread_active_p): Check for pthread_create if compiling against
25887         Bionic C library.
25888
25889 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25890
25891         Support compilation for Android platform.  Reimplement -mandroid.
25892
25893         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
25894         (*android*): Set ANDROID_DEFAULT.
25895         (arm*-*-linux*): Include linux-android.h.
25896         (arm*-*-eabi*): Don't include previous -mandroid implementation.
25897         * config/arm/eabi.h: Remove, move Android-specific parts ...
25898         * config/linux-android.h: ... here.  New file.
25899         * config/arm/eabi.opt: Rename to ...
25900         * config/linux-android.opt: ... this.
25901         (mandroid): Allow -mno-android option.  Initialize based on
25902         ANDROID_DEFAULT.
25903         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
25904         Move logic to corresponding LINUX_TARGET_* macros.
25905         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
25906         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
25907         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
25908         Android definitions.
25909         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
25910         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
25911         Document.
25912
25913 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25914
25915         Add support for Bionic C library
25916
25917         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
25918         macro.
25919         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
25920         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
25921
25922         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
25923         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
25924         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
25925         to support multiple C libraries.  Handle Bionic.
25926         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
25927         (BIONIC_DYNAMIC_LINKER64): Define.
25928         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
25929         Update.
25930         (TARGET_HAS_SINCOS): Enable for Bionic.
25931
25932         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
25933         the last option specified on command line take effect.
25934         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
25935         (mbionic): New.
25936         (mglibc, muclibc): Update.
25937
25938         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
25939         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
25940         DEFAULT_LIBC.
25941
25942         * doc/invoke.texi (-mglibc, -muclibc): Update.
25943         (-mbionic): Document.
25944
25945 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25946
25947         * c-common.h (c_register_addr_space): Add prototype.
25948         (ADDR_SPACE_KEYWORD): Remove.
25949         * c-common.c (c_register_addr_space): New function.
25950         (c_addr_space_name): Reimplement.
25951         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
25952
25953         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
25954         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
25955
25956         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
25957         Remove TARGET_ADDR_SPACE_KEYWORDS.
25958
25959 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
25960
25961         * input.c: New file.
25962         * input.h (main_input_filename): Move declaration to toplev.h.
25963         * toplev.c (input_location, line_table): Move to input.c
25964         * toplev.h (main_input_filename): Move declaration from input.h.
25965         * tree.c (expand_location): Move to input.c.
25966         * Makefile.in (OBJS-common): Add input.o.
25967         (input.o): Add dependencies.
25968
25969 2010-05-27  Richard Guenther  <rguenther@suse.de>
25970
25971         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
25972         for non-existant files.
25973         (fork_execute): Mark args_name file as deleted.
25974
25975 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25976
25977         PR bootstrp/44287
25978         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
25979         (narrow_signed_type): Likewise.
25980
25981 2010-05-26  Jan Hubicka  <jh@suse.cz>
25982
25983         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
25984         edge only when checking is enabled; check using former_clone_of;
25985         check inline clones too.
25986         (cgraph_materialize_clone): Record former_clone_of pointer.
25987         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
25988         combining redirections; dump args_to_skip bitmap
25989         (cgraph_materialize_all_clones): Do no redirection here.
25990         * ipa-inline.c (inline_transform): Do redirection here.
25991         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
25992         cheking only).
25993
25994 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25995
25996         * config/avr/avr-c.c: Do not include regs.h.
25997         Include cpplib.h for cpp_define and tree.h for c-common.h.
25998         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
25999         * config/avr/t-avr: Fix dependencies for avr-c.o.
26000
26001 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26002
26003         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
26004         string instead of SYMBOL_REF rtx.
26005         * rtl.h (set_stack_check_libfunc): Move prototype from here...
26006         * libfuncs.h: ...to here.  Adjust for explow.c change.
26007
26008 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26009
26010         * pretty-print.c: Don't include ggc.h.
26011         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
26012         (identifier_to_locale): Use them for allocation.
26013         * pretty-print.h (identifier_to_locale_alloc,
26014         identifier_to_locale_free): Declare.
26015         * toplev.c (alloc_for_identifier_to_locale): New.
26016         (general_init): Set identifier_to_locale_alloc and
26017         identifier_to_locale_free.
26018         * Makefile.in (pretty-print.o): Update dependencies.
26019
26020 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26021
26022         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
26023         pointer types if they have different alignment or mode.
26024
26025 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
26026
26027         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26028         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26029         * config/sparc/sparc-protos.h (function_value): Remove declaration.
26030         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
26031         sparc_function_value_regno_p): New functions.
26032         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26033         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26034         (function_value): Rename to...
26035         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
26036         argument to 'outgoing'.
26037         (function_arg_record_value, function_arg_union_value,
26038         function_arg_vector_value): Update comment.
26039
26040 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26041
26042         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
26043         (fde_needed_for_eh_p): New predicate.
26044         (output_call_frame_info): Use it throughout to decide whether FDEs
26045         are needed for EH purpose.
26046         (dwarf2out_begin_prologue): Reorder assignments.
26047
26048 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26049
26050         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
26051         special case loop->header.
26052         (is_predicated): New.
26053         (if_convertible_loop_p): Call it.
26054
26055 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26056
26057         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
26058         iterator in parameter.  Do not generate code during the analysis.
26059         (tree_if_convert_cond_stmt): Removed.
26060         (tree_if_convert_stmt): Removed.
26061         (predicate_bbs): New.
26062         (if_convertible_loop_p): Call predicate_bbs.
26063         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
26064         now contains all the analysis part.
26065
26066 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26067
26068         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
26069         statements in the analysis part.
26070         (tree_if_convert_stmt): Update comment.
26071         (remove_conditions_and_labels): New.
26072         (combine_blocks): Call remove_conditions_and_labels.
26073         (tree_if_conversion): Update comment.
26074
26075 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26076
26077         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
26078         than 2 predecessors or more than 2 successors.
26079
26080 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26081
26082         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
26083         of loops in which the data dependence analysis fails.
26084
26085 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26086
26087         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
26088         CDI_POST_DOMINATORS.
26089         (tree_if_conversion): Same.
26090
26091 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26092
26093         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
26094
26095 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26096
26097         * tree-if-conv.c: Update copyright years.  Fix comments.
26098         Fix indentation.
26099
26100 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
26101
26102         * builtin-types.def (BT_INT128): New primitive type.
26103         (BT_UINT128): Likewise.
26104         * c-common.c (c_common_r): Add __int128 keyword.
26105         (c_common_type_for_size): Handle __int128.
26106         (c_common_type_for_mode): Likewise.
26107         (c_common_signed_or_unsigned_type): Likewise.
26108         (c_common_nodes_and_builtins): Add builtin type
26109         if target supports 128-bit integer scalar.
26110         * c-common.h (enum rid): Add RID_INT128.
26111         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
26112         if target supports 128-bit integer scalar.
26113         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
26114         (finish_declspecs): Likewise.
26115         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
26116         (c_token_starts_declspecs): Likewise.
26117         (c_parser_declspecs): Likewise.
26118         (c_parser_attributes): Likewise.
26119         (c_parser_objc_selector): Likewise.
26120         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
26121         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
26122         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
26123         * tree.c (make_or_reuse_type): Likewise.
26124         (make_unsigned_type): Likewise.
26125         (build_common_tree_nodes_2): Likewise.
26126         * tree.h (enum integer_type_kind): Add itk_int128 and
26127         itk_unsigned_int128.
26128         (int128_integer_type_node): New define.
26129         (int128_unsigned_type_node): New define.
26130         * doc/extend.texi: Add documentation about __int128 type.
26131
26132 2010-05-26  Richard Guenther  <rguenther@suse.de>
26133
26134         * tree-ssa-sccvn.c (copy_nary): Adjust.
26135         (copy_phis): Rename to ...
26136         (copy_phi): ... this.  Adjust.
26137         (copy_references): Rename to ...
26138         (copy_reference): ... this.  Adjust.
26139         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
26140         result into the valid table.
26141
26142 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26143
26144         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
26145         insn-config.h, insn-codes.h, recog.h, and optabs.h.
26146
26147 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26148
26149         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
26150
26151 2010-05-26  Richard Guenther  <rguenther@suse.de>
26152
26153         * opts.c (common_handle_option): Handle OPT_Ofast.
26154
26155 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26156
26157         * diagnostic.c: Don't include opts.h.
26158         (permissive_error_option): Define.
26159         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
26160         for classify_diagnostic.  Don't use memset for
26161         classify_diagnostic.  Initialize new and recently added fields.
26162         (diagnostic_classify_diagnostic): Use context->n_opts instead of
26163         N_OPTS.
26164         (diagnostic_report_diagnostic): Pass context parameter to
26165         diagnostic_report_warnings_p.  Use option_enabled and option_name
26166         hooks from context.
26167         (emit_diagnostic): Use permissive_error_option.
26168         (permerror): Likewise.
26169         * diagnostic.h: Don't include options.h.
26170         (struct diagnostic_context): Add n_opts, opt_permissive,
26171         inhibit_warnings, warn_system_headers, option_enabled and
26172         option_name fields.  Change classify_diagnostic to a pointer.
26173         * opts-diagnostic.h: New file.
26174         * opts.c: Include opts-diagnostic.h.
26175         (common_handle_option): Set global_dc fields for -Wfatal-errors,
26176         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
26177         (option_name): New function.
26178         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
26179         (c_common_handle_option): Set global_dc->permissive for
26180         -fpermissive.
26181         * c-common.c (c_cpp_error): Save and restore
26182         global_dc->warn_system_headers, not variable warn_system_headers.
26183         * toplev.c: Include opts-diagnostic.h.
26184         (general_init): Update call to diagnostic_initialize.  Set
26185         global_dc->show_column, global_dc->option_enabled and
26186         global_dc->option_name.
26187         (process_options): Don't set global_dc fields here.
26188         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
26189         (diagnostic.o, opts.o, toplev.o): Update dependencies.
26190
26191 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
26192
26193         * config/picochip/picochip.md (movsi): Split a movsi from a
26194         const after reload.
26195
26196 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26197
26198         * ggc-zone.c: Update copyright year.
26199         (poison_region): Mark memory for Valgrind as undefined before
26200         memset () call and inaccessible afterwards.
26201         (ggc_pch_total_size): Change type of i to int.
26202
26203 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26204
26205         * ggc-common.c (ggc_free_overhead): Allow empty slot.
26206
26207 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26208
26209         * ggc-common.c: Update copyright year.
26210         (ggc_rlimit_bound): Remove prototype.  Compile only if
26211         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
26212         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
26213         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
26214         (ggc_min_heapsize_heuristic): Likewise.
26215
26216 2010-05-26  Richard Guenther  <rguenther@suse.de>
26217
26218         PR rtl-optimization/44164
26219         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
26220         no-common access-path disambiguation.
26221         (indirect_ref_may_alias_decl_p): Adjust.
26222         (indirect_refs_may_alias_p): Likewise.
26223         (refs_may_alias_p_1): Likewise.
26224
26225 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26226
26227         * c-typeck.c: Do not include expr.h.
26228
26229 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26230
26231         * rtl.h (decl_default_tls_model): Move prototype from here...
26232         * output.h: ...to here.
26233         * c-decl.c: Do not include rtl.h.
26234         * c-pragma.c: Likewise.
26235         * c-parser.c: Likewise.
26236         * c-gimplify.c: Likewise.  And also not hard-reg-set.
26237         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
26238         FIXME note for it.  Add a FIXME note for expr.h.
26239         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
26240         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26241         defined.
26242
26243 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
26244
26245         PR target/44199
26246         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26247         or total_size is larger than red zone size for non-V4 ABI, emit a
26248         stack_tie resp. frame_tie insn before stack pointer restore.
26249         * config/rs6000/rs6000.md (frame_tie): New insn.
26250
26251 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
26252
26253         * function.h (struct function): Add can_throw_non_call_exceptions bit.
26254         * lto-streamer-in.c (input_function): Stream it in.
26255         * lto-streamer-out.c (output_function): Stream it out.
26256         * function.c (allocate_struct_function): Set it.
26257         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26258         for flag_non_call_exceptions.
26259         * cfgbuild.c (control_flow_insn_p): Likewise.
26260         (make_edges): Likewise.
26261         * cfgexpand.c (expand_stack_alignment): Likewise.
26262         * combine.c (distribute_notes): Likewise.
26263         * cse.c (cse_extended_basic_block): Likewise.
26264         * except.c (insn_could_throw_p): Likewise.
26265         * gcse.c (simple_mem): Likewise.
26266         * ipa-pure-const.c (check_call): Likewise.
26267         (check_stmt ): Likewise.
26268         * lower-subreg.c (lower-subreg.c): Likewise.
26269         * optabs.c (emit_libcall_block): Likewise.
26270         (prepare_cmp_insn): Likewise.
26271         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
26272         * postreload.c (rest_of_handle_postreload): Likewise.
26273         * reload1.c (reload_as_needed): Likewise.
26274         (emit_input_reload_insns): Likewise.
26275         (emit_output_reload_insns): Likewise.
26276         (fixup_abnormal_edges): Likewise.
26277         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
26278         * store-motion.c (find_moveable_store): Likewise.
26279         * tree-eh.c (stmt_could_throw_p): Likewise.
26280         (tree_could_throw_p): Likewise.
26281         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
26282         * config/arm/arm.c (arm_expand_prologue): Likewise.
26283         (thumb1_expand_prologue): Likewise.
26284         * config/rx/rx.md (cbranchsf4): Likewise.
26285         (cmpsf): Likewise.
26286         * config/s390/s390.c (s390_emit_prologue): Likewise.
26287         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
26288         (inline_forbidden_into_p): New predicate.
26289         (expand_call_inline): Use it to forbid inlining.
26290         (tree_can_inline_p): Likewise.
26291
26292 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26293
26294         * config/i386/i386-c.c: Do not include rtl.h.
26295         * config/i386/t-i386: Update dependencies.
26296
26297 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26298
26299         * attribs.c: Do not include rtl.h.
26300         * Makefile.in: Update dependencies.
26301
26302 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
26303
26304         * double-int.h (double_int_and): New.
26305         * combine.c (try_combine): Clean up, use double_int_* and
26306         immed_double_int_const functions.
26307
26308 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26309
26310         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
26311         stderr to /dev/null instead of grep -q.
26312         * configure: Regenerate.
26313
26314 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26315
26316         * Makefile.in (EXCEPT_H): Fix typo.
26317
26318 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
26319
26320         * ira-build.c (update_conflict_hard_reg_costs): New.
26321         (ira_build): Call update_conflict_hard_reg_costs.
26322
26323 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26324
26325         PR debug/41371
26326         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
26327         ENABLE_CHECKING.
26328         (intersect_loc_chains): Walk the s2var's loc_chain together
26329         with s1node chain as long as the locations are equal, don't
26330         call find_loc_in_1pdv in that case.
26331
26332         PR debug/42801
26333         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
26334         (copy_bind_expr): ... instead of here.
26335         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
26336         if the block hasn't been remapped.
26337         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
26338         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
26339
26340 2010-05-25  Richard Guenther  <rguenther@suse.de>
26341
26342         PR middle-end/44069
26343         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
26344         out-of-bounds array accesses.
26345
26346 2010-05-25  Richard Guenther  <rguenther@suse.de>
26347
26348         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
26349         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
26350         (run_gcc): Re-organize to make cleanup easier.
26351
26352 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26353
26354         * config/s390/s390.c (optimization_options): Fix and move the
26355         flag_prefetch_loop_arrays override ...
26356         (override_options): ... here.
26357
26358 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
26359
26360         * diagnostic.c: Don't include plugin.h.
26361         (diagnostic_report_diagnostic): Don't handle plugins specially
26362         here.  Pass context to internal_error callback.
26363         * diagnostic.h (struct diagnostic_context): Add context parameter
26364         to internal_error callback.
26365         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
26366         * plugin.h (struct diagnostic_context): Declare.
26367         (warn_if_plugins, plugins_internal_error_function): Declare.
26368         * toplev.c (general_init): Set global_dc->internal_error.
26369         * Makefile.in (diagnostic.o): Update dependencies.
26370
26371 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
26372
26373         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
26374         * config/rs6000/t-darwin64: New.
26375         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
26376         build crt2.
26377
26378 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
26379
26380         PR 44203
26381         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
26382         match the original (and intended) behaviour before r159557.  This
26383         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
26384         in two ways.
26385
26386 2010-05-25  Richard Guenther  <rguenther@suse.de>
26387
26388         * doc/invoke.texi: Document -Ofast.
26389         * target.h (struct gcc_target): Add handle_ofast.
26390         * target-def.h (TARGET_HANDLE_OFAST): Add.
26391         (TARGET_INITIALIZER): Adjust.
26392         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
26393         * common.opt (Ofast): Add.
26394
26395 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26396
26397         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
26398         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
26399
26400 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26401
26402         PR target/43610
26403         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
26404         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
26405         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
26406         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
26407
26408 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26409
26410         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
26411         DW_OP_minus with negated offset instead of DW_OP_plus.
26412         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
26413
26414 2010-05-25  Wei Guozhi  <carrot@google.com>
26415
26416         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
26417         tst instruction and a new alternative.
26418         * config/arm/constraints.md (Pu): New constraint.
26419
26420 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
26421
26422         * function.c (assign_stack_local_1): Initialize variable
26423         to avoid warning when bootstrapping at -O3.
26424
26425 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
26426
26427         * configure.ac (all_lang_makefiles): Remove everything related to it.
26428         * configure: Regenerate.
26429         * Makefile.in: Fix reference to ada Make-lang.in.
26430         Remove support for LANG_MAKEFILES.
26431
26432 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
26433             Sandra Loosemore  <sandra@codesourcery.com>
26434
26435         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
26436         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
26437         description.  Add arm_neon_fp16_ok.
26438         (Add Options): Add arm_neon and arm_neon_fp16.
26439
26440 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
26441
26442         * diagnostic.c: Don't include flags.h.
26443         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
26444         context parameters.  Check flags in the context passed as a parameter.
26445         (diagnostic_build_prefix): Add context parameter.  Check
26446         show_column flag in context.
26447         (diagnostic_action_after_output): Check fatal_errors flag in context.
26448         (diagnostic_report_current_module): Check show_column flag in context.
26449         (default_diagnostic_starter): Update call to
26450         diagnostic_build_prefix.
26451         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
26452         (emit_diagnostic): Pass context to permissive_error_kind.
26453         (permerror): Pass context to permissive_error_kind.
26454         * diagnostic.h (struct diagnostic_context): Add show_column,
26455         pedantic_errors, permissive and fatal_errors fields.
26456         (diagnostic_build_prefix): Update prototype.
26457         * langhooks.c
26458         * toplev.c (process_options): Set flags in global_dc from
26459         flag_show_column, flag_pedantic_errors, flag_permissive,
26460         flag_fatal_errors.
26461         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
26462         to diagnostic_build_prefix.
26463         * Makefile.in (diagnostic.o): Update dependencies.
26464
26465 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
26466
26467         * config/i386/ia32intrin.h (__crc32q): Define only if
26468         __SSE4_2__ is defined.
26469
26470 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
26471
26472         PR target/44132
26473         PR middle-end/43602
26474         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
26475         DECL_VISIBILITY_SPECIFIED.
26476         (emutls_decl): Set DECL_PRESERVE_P and copy
26477         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
26478         (emutls_finalize_control_var): New callback.
26479         (emutls_finish): Finalize emutls control variables.
26480         * toplev.c (compile_file): Move the call to emutls_finish ()
26481         before varpool_assemble_pending_decls ().
26482
26483 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
26484
26485         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
26486         added to the preprocessor condition.
26487
26488 2010-05-24  Paul Brook  <paul@codesourcery.com>
26489
26490         * gengtype-lex.l: Add HARD_REG_SET.
26491         * expr.c (expand_expr_real_1): Record writes to hard registers.
26492         * function.c (rtl_data): Add asm_clobbers.
26493         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
26494         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
26495         Use crtl->asm_clobbers.
26496
26497 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26498
26499         * doc/makefile.texi (Makefile): Mention stages 'profile'
26500         and 'feedback' for profiledbootstrap.
26501
26502 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
26503
26504         PR target/44245
26505         * config/i386/i386.c (def_builtin): Properly check
26506         OPTION_MASK_ISA_64BIT.
26507
26508 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
26509
26510         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
26511         typedefs with different but compatible types.  Allow duplicate
26512         typedefs with the same type except for pedantic non-C1X, but give
26513         warning for variably modified types.
26514         * c-typeck.c (tagged_types_tu_compatible_p,
26515         function_types_compatible_p, type_lists_compatible_p,
26516         comptypes_internal): Add parameter different_types_p; set
26517         *different_types_p for different but compatible types.  All
26518         callers changed.
26519         (comptypes_check_different_types): New.
26520         * c-tree.h (comptypes_check_different_types): Declare.
26521
26522 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
26523
26524         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
26525         * jump.c: Include basic-block.h.
26526         * profile.c: Likewise.
26527         * tree-profile.c: Likewise.
26528         * coverage.c: Likewise.
26529         * basic-block.h (optimize_function_for_size_p): Move to function.h.
26530         (optimize_function_for_speed_p): Likewise.
26531         * function.h (optimize_function_for_size_p,
26532         optimize_function_for_speed_p): Moved here from basic-block.h.
26533         * Makefile.in: Update dependencies.
26534
26535 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26536
26537         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
26538         before calling make; allow override through $MAKE.
26539         * doc/invoke.texi (Optimize Options): Document override.
26540
26541 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
26542
26543         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
26544         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26545         (rs6000_mode_dependent_address_ptr): Make static.
26546         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26547         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
26548         Remove.
26549
26550 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
26551
26552         PR target/43869
26553         * config/i386/i386.c: Make sure that the correct regparm is passed.
26554
26555 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
26556
26557         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
26558         * sbitmap.c: ...to here to internalize sbitmap element access.
26559         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
26560         Explain why basic-block.h is included.
26561         * function.h: Include tm.h for CUMULATIVE_ARGS.
26562         * Makefile.in: Update dependencies.
26563
26564 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
26565
26566         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
26567         New core types.
26568         * sbitmap.h (struct sbitmap_def): Do not typedef here.
26569         * sbitmap.c: Include sbitmap.h.
26570         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
26571         hard-reg-set.h.  Split everything related to regsets out from here...
26572         * regset.h: ...to here.  New file.
26573         * df.h: Include regset.h and sbitmap.h.
26574         * tree-flow.h: Likewise.
26575         * cfgloop.h: Likewise.
26576         * except.h: Do not include sbitmap.h.  Include hashtab.h.
26577         * cgraph.h: Include vec.h and function.h.
26578         * reload.h (struct insn_chain): Change types of live_throughout
26579         and dead_or_set from regset_head to bitmap_head.
26580         (compute_use_by_pseudos): Be defined also if regset.h is not included.
26581         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
26582         spilled_regs from regset_head to bitmap_head to avoid dependency
26583         in regset.h.
26584         * sel-sched-ir.h: Include regset.h.
26585         * reload.c: Include df.h before reload.h.
26586         * caller-save.c: Likewise.
26587         * reload1.c: Likewise.
26588         * ira.c: Likewise.
26589         (mark_elimination): Update type of r to bitmap, consistent with
26590         DF_LR_IN.
26591         * dominance.c: Include bitmap.h.
26592         * modulo-sched.c: Include df.h.
26593         * cfganal.c: Include bitmap.h and sbitmap.h.
26594         * cfgbuild.c: Include sbitmap.h.
26595         * lcm.c: Include sbitmap.h.
26596         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
26597         * domwalk.c: Include sbitmap.h, exclude ggc.h.
26598         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
26599         * cselib.c: Include bitmap.h.
26600         * tree-optimize.c: Include regset.h.
26601         * stmt.c: Include bitmap.h.
26602         * Makefile.in: Update dependencies.
26603
26604 2010-05-22  Jan Hubicka  <jh@suse.cz>
26605
26606         * cgraph.h (struct varpool_node): Add same_comdat_group.
26607         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
26608         pointer.
26609         (output_varpool): Update call of lto_output_varpool_node.
26610         (input_varpool): Read same_comdat_group pointer.
26611         (input_varpool_1): Fixup same_comdat_group pointer.
26612         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
26613         group is needed, all are.
26614         * varpool.c (varpool_remove_node): Remove node from same comdat group
26615         linklist too.
26616         (varpool_analyze_pending_decls): Walk same comdat groups.
26617
26618 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
26619
26620         * rtl.h (union rtunion_def): Remove rt_bit member.
26621         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
26622         * print-rtl (print_rtx): Do not print the member.
26623         * gengtype.c (adjust_field_rtx_def): Do not handle it.
26624         * gengenrtl.c (type_from_format): Likewise.
26625         (accessor_from_format): Likewise.
26626
26627 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
26628
26629         * dbgcnt.c: Include toplev.h instead of errors.h.
26630         * ira-emit.c: Don't include errors.h.
26631         * ira.c: Include toplev.h instead of errors.h.
26632         * lto-compress.c: Include toplev.h instead of errors.h.
26633         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
26634         ira.o, dbgcnt.o): Update dependencies.
26635
26636 2010-05-22  Richard Guenther  <rguenther@suse.de>
26637
26638         * gimple.c (gimple_types_compatible_p): Check type qualifications
26639         before merging pointer to complete and pointer to incomplete type.
26640         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
26641         we use our own resolution algorithm.  The gold linker plugin
26642         doesn't do the job we want it to do here.
26643
26644 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
26645
26646         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26647         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26648         (sparc_mode_dependent_address_p): New function.
26649
26650 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26651
26652         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
26653
26654         * timevar.c: Do not include any core headers.
26655         (timevar_print): De-i18n-ize.
26656         (print_time): Likewise.
26657         * timevar.h (timevar_push, timevar_pop): Make inline functions.
26658
26659 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
26660
26661         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
26662         langhooks-def.h.
26663         (diagnostic_initialize): Initialize x_data not last_function.
26664         (diagnostic_report_current_function): Move to tree-diagnostic.c.
26665         (default_diagnostic_starter): Call
26666         diagnostic_report_current_module not
26667         diagnostic_report_current_function.
26668         (diagnostic_report_diagnostic): Initialize x_data not
26669         abstract_origin.
26670         (verbatim): Likewise.
26671         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
26672         x_data.
26673         (struct diagnostic_context): Change last_function to x_data.
26674         (diagnostic_auxiliary_data): Replace with
26675         diagnostic_context_auxiliary_data and
26676         diagnostic_info_auxiliary_data.
26677         (diagnostic_last_function_changed, diagnostic_set_last_function,
26678         diagnostic_report_current_function): Move to tree-diagnostic.h.
26679         (print_declaration, dump_generic_node, print_generic_stmt,
26680         print_generic_stmt_indented, print_generic_expr,
26681         print_generic_decl, debug_c_tree, dump_omp_clauses,
26682         print_call_name, debug_generic_expr, debug_generic_stmt,
26683         debug_tree_chain, default_tree_printer): Move to
26684         tree-pretty-print.h.
26685         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
26686         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
26687         gimple-pretty-print.h.
26688         * pretty-print.c: Don't include tree.h
26689         (pp_base_format): Don't handle %K here.
26690         (pp_base_tree_identifier): Move to tree-pretty-print.c.
26691         * pretty-print.h (text_info): Change abstract_origin to x_data.
26692         (pp_tree_identifier, pp_unsupported_tree,
26693         pp_base_tree_identifier): Move to tree-pretty-print.h.
26694         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
26695         tree-pretty-print.h: New files.
26696         * tree-pretty-print.c: Include tree-pretty-print.h.
26697         (percent_K_format): New.  Moved from pretty-print.c.
26698         (pp_base_tree_identifier): Move from pretty-print.c.
26699         * c-objc-common.c: Include tree-pretty-print.h.
26700         (c_tree_printer): Handle %K here.
26701         * langhooks.c: Include tree-diagnostic.h.
26702         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
26703         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
26704         (default_tree_printer): Handle %K using percent_K_format.
26705         (general_init): Use default_tree_diagnostic_starter.
26706         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
26707         (free_lang_data): Use default_tree_diagnostic_starter.
26708         * c-pretty-print.c: Include tree-pretty-print.h.
26709         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26710         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26711         * dwarf2out.c: Include tree-pretty-print.h.
26712         * except.c: Include tree-pretty-print.h.
26713         * gimple-pretty-print.c: Include tree-pretty-print.h and
26714         gimple-pretty-print.h.
26715         * gimplify.c: Include tree-pretty-print.h.
26716         * graphite-poly.c: Include tree-pretty-print.h and
26717         gimple-pretty-print.h.
26718         * ipa-cp.c: Include tree-pretty-print.h.
26719         * ipa-inline.c: Include gimple-pretty-print.h.
26720         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26721         * ipa-pure-const.c: Include gimple-pretty-print.h.
26722         * ipa-struct-reorg.c: Include tree-pretty-print.h and
26723         gimple-pretty-print.h.
26724         * ipa-type-escape.c: Include tree-pretty-print.h.
26725         * print-rtl.c: Include tree-pretty-print.h.
26726         * print-tree.c: Include gimple-pretty-print.h.
26727         * sese.c: Include tree-pretty-print.h.
26728         * tree-affine.c: Include tree-pretty-print.h.
26729         * tree-browser.c: Include tree-pretty-print.h.
26730         * tree-call-cdce.c: Include gimple-pretty-print.h.
26731         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26732         * tree-chrec.c: Include tree-pretty-print.h.
26733         * tree-data-ref.c: Include tree-pretty-print.h and
26734         gimple-pretty-print.h.
26735         * tree-dfa.c: Include tree-pretty-print.h.
26736         * tree-if-conv.c: Include tree-pretty-print.h and
26737         gimple-pretty-print.h.
26738         * tree-inline.c: Include tree-pretty-print.h.
26739         * tree-into-ssa.c: Include tree-pretty-print.h and
26740         gimple-pretty-print.h.
26741         * tree-nrv.c: Include tree-pretty-print.h.
26742         * tree-object-size.c: Include tree-pretty-print.h and
26743         gimple-pretty-print.h.
26744         * tree-outof-ssa.c: Include tree-pretty-print.h and
26745         gimple-pretty-print.h.
26746         * tree-parloops.c: Include tree-pretty-print.h and
26747         gimple-pretty-print.h.
26748         * tree-predcom.c: Include tree-pretty-print.h and
26749         gimple-pretty-print.h.
26750         * tree-scalar-evolution.c: Include tree-pretty-print.h and
26751         gimple-pretty-print.h.
26752         * tree-sra.c: Include tree-pretty-print.h.
26753         * tree-ssa-address.c: Include tree-pretty-print.h.
26754         * tree-ssa-alias.c: Include tree-pretty-print.h.
26755         * tree-ssa-ccp.c: Include tree-pretty-print.h and
26756         gimple-pretty-print.h.
26757         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
26758         * tree-ssa-copy.c: Include tree-pretty-print.h and
26759         gimple-pretty-print.h.
26760         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
26761         * tree-ssa-dce.c: Include tree-pretty-print.h and
26762         gimple-pretty-print.h.
26763         * tree-ssa-dom.c: Include tree-pretty-print.h and
26764         gimple-pretty-print.h.
26765         * tree-ssa-dse.c: Include gimple-pretty-print.h.
26766         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
26767         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
26768         * tree-ssa-live.c: Include tree-pretty-print.h and
26769         gimple-pretty-print.h.
26770         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
26771         gimple-pretty-print.h.
26772         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
26773         gimple-pretty-print.h.
26774         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
26775         gimple-pretty-print.h.
26776         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
26777         gimple-pretty-print.h.
26778         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
26779         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
26780         * tree-ssa-operands.c: Include tree-pretty-print.h and
26781         gimple-pretty-print.h.
26782         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
26783         gimple-pretty-print.h.
26784         * tree-ssa-pre.c: Include tree-pretty-print.h and
26785         gimple-pretty-print.h.
26786         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
26787         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
26788         gimple-pretty-print.h.
26789         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
26790         gimple-pretty-print.h.
26791         * tree-ssa-sink.c: Include gimple-pretty-print.h.
26792         * tree-ssa-ter.c: Include tree-pretty-print.h and
26793         gimple-pretty-print.h.
26794         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
26795         * tree-ssa.c: Include tree-pretty-print.h and
26796         gimple-pretty-print.h.
26797         * tree-stdarg.c: Include gimple-pretty-print.h.
26798         * tree-switch-conversion.c: Include gimple-pretty-print.h.
26799         * tree-tailcall.c: Include tree-pretty-print.h and
26800         gimple-pretty-print.h.
26801         * tree-vect-data-refs.c: Include tree-pretty-print.h and
26802         gimple-pretty-print.h.
26803         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
26804         gimple-pretty-print.h.
26805         * tree-vect-loop.c: Include tree-pretty-print.h and
26806         gimple-pretty-print.h.
26807         * tree-vect-patterns.c: Include gimple-pretty-print.h.
26808         * tree-vect-slp.c: Include tree-pretty-print.h and
26809         gimple-pretty-print.h.
26810         * tree-vect-stmts.c: Include tree-pretty-print.h and
26811         gimple-pretty-print.h.
26812         * tree-vectorizer.c: Include tree-pretty-print.h.
26813         * tree-vrp.c: Include tree-pretty-print.h and
26814         gimple-pretty-print.h.
26815         * value-prof.c: Include tree-pretty-print.h and
26816         gimple-pretty-print.h.
26817         * var-tracking.c: Include tree-pretty-print.h.
26818         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
26819         (tree-diagnostic.o): New dependencies.
26820         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
26821         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
26822         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
26823         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
26824         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
26825         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
26826         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
26827         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
26828         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
26829         tree-ssa-address.o, tree-ssa-loop-niter.o,
26830         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
26831         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
26832         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
26833         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
26834         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
26835         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
26836         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
26837         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
26838         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
26839         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
26840         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
26841         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
26842         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
26843         tree-switch-conversion.o, var-tracking.o, value-prof.o,
26844         cfgexpand.o, pretty-print.o): Update dependencies.
26845
26846 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
26847
26848         * tree-ssa-structalias.c: Remove tm_p.h from include.
26849
26850 2010-05-21  Jeff Law  <law@redhat.com>
26851
26852         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
26853
26854 2010-05-21  Jason Merrill  <jason@redhat.com>
26855
26856         * tree-eh.c (cleanup_is_dead_in): New.
26857         (lower_try_finally): Don't generate a dead cleanup region.
26858         (lower_cleanup): Likewise.
26859
26860 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26861
26862         PR debug/44223
26863         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
26864         unchain each use from the cyclic next_regno_use chain first.
26865
26866 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26867
26868         * real: Do not include gmp.h, mpfr.h, and mpc.h.
26869         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
26870         (real_value_negate, real_value_abs): New prototypes.
26871         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
26872         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
26873         new include file for interface between MPFR and REAL_VALUE_TYPE.
26874         * real.c: Include realmpfr.h.
26875         (real_arithmetic2): Remove legacy function.
26876         (real_value_negate): New.
26877         (real_value_abs): New.
26878         (mfpr_from_real, real_from_mpfr): Move from here...
26879         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
26880         * builtins.c: Include realmpfr.h.
26881         * fold-const.c: Include realmpfr.h.
26882         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
26883         (fold_negate_const): Likewise.
26884         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
26885         * toplev.c: Include realmpfr.h.
26886         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
26887         and real_value_negate.
26888         * fixed-value.c (check_real_for_fixed_mode): Likewise.
26889         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
26890         (vfp3_const_double_index): Likewise.
26891         (arm_print_operand): Likewise.
26892         * Makefile.in: Update dependencies.
26893
26894 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26895
26896         * config/s390/s390.c (override_options): Increase the default
26897         of max-completely-peel-times.
26898
26899 2010-05-21  Julian Brown  <julian@codesourcery.com>
26900             Mark Mitchell  <mark@codesourcery.com>
26901
26902         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
26903         sibling calls for Thumb-1.
26904         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
26905         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
26906         Thumb-2.
26907         (*call_insn, *call_value_insn): Don't use for Thumb-2.
26908         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
26909         for Thumb-2.
26910         (return): New expander.
26911         (*arm_return): New name for ARM return insn.
26912         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
26913
26914 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
26915
26916         * config.gcc (sparc64-*-rtems*): New target.
26917
26918 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
26919
26920         * tree.c (build_function_decl_skip_args): Fix grammar.
26921         (build_function_type_list_1): Fix typos, adjust formatting.
26922
26923 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26924
26925         * tree.h: Include real.h and fixed-value.h as basic datatypes.
26926         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
26927         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
26928         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
26929         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
26930         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
26931         tree-pretty-print.c, tree-loop-distribution.c,
26932         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
26933         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
26934         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
26935         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
26936         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
26937         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
26938         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
26939         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
26940         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
26941         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
26942         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
26943         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
26944         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
26945         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
26946         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
26947         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
26948         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
26949         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
26950         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
26951         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
26952         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
26953         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
26954         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
26955         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
26956         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
26957         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
26958         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
26959         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
26960         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
26961         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
26962         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
26963         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
26964         config/score/score7.c, config/score/score.c, config/arm/arm.c,
26965         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
26966         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
26967         config/bfin/bfin.c: Clean up redundant includes.
26968         * Makefile.in: Update accordingly.
26969
26970 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
26971
26972         PR middle-end/44204
26973         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
26974         statement has no arguments.
26975
26976 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
26977
26978         PR/44139
26979         * varasm.c (emutls_decl): Merge attributes to new decl.
26980
26981 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
26982
26983         PR middle-end/44101
26984         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
26985         around the uniquized constructor if its type requires a conversion.
26986
26987 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26988
26989         PR debug/44205
26990         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
26991         at -O0 goto_locus of any of the incoming edges differs from
26992         goto_locus of outgoing edge, or gimple_location of any of the
26993         labels differs.
26994
26995 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
26996
26997         * ira.c (ira_non_ordered_class_hard_regs): Define.
26998         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
26999         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
27000         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
27001         cost of unaligned hard regs when allocating multi-reg pseudos.
27002
27003 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
27004
27005         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
27006         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
27007         for TARGET_NO_FLOAT.
27008         * config/mips/mips.c (mips_file_start): Expand conditional expression
27009         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
27010         (mips_override_options): Move -mno-float override -msoft-float and
27011         -mhard-float.
27012         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
27013         Condition(TARGET_SUPPORTS_NO_FLOAT).
27014         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
27015         __mips_no_float here.
27016         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
27017         (TARGET_SUPPORTS_NO_FLOAT): Define.
27018         * config/mips/sdemtk.opt: Delete.
27019
27020 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
27021
27022         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
27023
27024 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
27025
27026         PR target/43733
27027         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
27028         * configure: Regenerate.
27029         * config.in: Regenerate.
27030         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
27031         instead of sahf only for 64bit targets.
27032
27033 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27034
27035         PR debug/44178
27036         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
27037         setup_ref_regs for DEBUG_INSNs.
27038
27039 2010-05-20  Jan Hubicka  <jh@suse.cz>
27040
27041         PR middle-end/44197
27042         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
27043
27044 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
27045
27046         PR bootstrap/43870
27047         * df-scan.c (df_ref_compare): Stabilize sort.
27048
27049 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27050
27051         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
27052         argument.  Don't use DW_OP_piece if offset is non-zero,
27053         put offset into second DW_OP_bit_piece argument.
27054         (dw_sra_loc_expr): Adjust callers.  For memory expressions
27055         compute offset.
27056
27057 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
27058
27059         PR target/44202
27060         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
27061         settings for 16-bit-constant "addo" alternative.
27062
27063 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
27064
27065         * config/mips/mips-dsp.md (add<DSPV:mode>3,
27066         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
27067
27068         PR target/43764
27069         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
27070         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
27071         Use it.
27072
27073 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
27074
27075         * diagnostic.c (FLOAT, FFS): Don't undefine.
27076         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
27077         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
27078         include ordering.
27079
27080 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
27081
27082         * combine.c (propagate_for_debug): Call make_compound_operation
27083         on the source value.
27084         (try_combine): When implementing a split chosen by find_split_point,
27085         either copy i2src or set it to null.  Assert that i2src is not null
27086         before substituting into CALL_INSN_FUNCTION_USAGE.
27087
27088 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
27089
27090         * double-int.h (double_int_ior): New function.
27091         * tree.h (build_int_cst_wide_type): Remove.
27092         * tree.c (build_int_cst_wide_type): Remove.
27093         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
27094         of build_int_cst_wide_type.
27095         * stor-layout.c (set_sizetype): (Ditto.).
27096         * dojump.c (do_jump): Use build_int_cstu instead of
27097         build_int_cst_wide_type.
27098
27099 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
27100
27101         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
27102         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
27103         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
27104         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
27105         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
27106         propagate the 'data' argument to copy_tree_r.
27107         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
27108         Propagate 'data' argument to walk_tree.
27109         (copy_if_shared): New function.
27110         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
27111         (unmark_visited): New function.
27112         (unshare_body): Call copy_if_shared instead of doing it manually.
27113         (unvisit_body): Call unmark_visited instead of doing it manually.
27114
27115 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
27116
27117         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
27118         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
27119         * hooks.c: Likewise.
27120         * target-def.h (TARGET_FOLD_BUILTIN): Define to
27121         hook_tree_tree_int_treep_bool_null.
27122         * target.h (struct gcc_target): Update signature of fold_builtin
27123         field.
27124         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
27125         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
27126         instead of the call expression.
27127         (fold_builtin_call_array): Pass n and argarray directly.
27128         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
27129         consing a list.
27130         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
27131         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
27132         `i' and use it in place of `arity'.
27133         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
27134         Dereference `args' directly.
27135         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
27136
27137 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27138
27139         * doc/sourcebuild.texi (Effective-Target Keywords): Document
27140         3dnow, sse3, sse2.
27141         (Directives): Document optional dg-require-effective-target
27142         selector.
27143
27144 2010-05-19  Richard Guenther  <rguenther@suse.de>
27145
27146         PR lto/44196
27147         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
27148
27149 2010-05-19  Richard Guenther  <rguenther@suse.de>
27150
27151         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
27152         * common.opt (fwhopr=): New.
27153         * opts.c (common_handle_option): Handle OPT_fwhopr.
27154         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
27155         * collect2.c (main): Match -fwhopr*.
27156         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
27157         Execute ltrans stage in parallel when jobs is bigger than 1.
27158
27159 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27160
27161         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
27162         pentiumpro on Solaris 8/x86 with Sun as.
27163         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
27164         hidden alias bug.
27165         (gcc_cv_as_ix86_quad): Check for .quad directive.
27166         * configure: Regenerate.
27167         * config.in: Regenerate.
27168         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
27169
27170 2010-05-19  Martin Jambor  <mjambor@suse.cz>
27171
27172         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
27173         also for indirect edges.  Actual printing moved...
27174         (ipa_print_node_jump_functions_for_edge): ...here.
27175         (ipa_compute_jump_functions): Renamed to
27176         ipa_compute_jump_functions_for_edge and made static.
27177         (ipa_compute_jump_functions): New function.
27178         (make_edge_direct_to_target): Check if the number of arguments on
27179         the newly direct edge is the same as the number of parametrs of
27180         the callee.
27181         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
27182         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
27183         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
27184         analysis functions unconditionally, call the new
27185         ipa_analyze_params_uses on the node instead of every edge.
27186
27187 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
27188
27189         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
27190         to tree.
27191         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
27192         also checks for a constant int vs.  non-constant but
27193         loop-invariant steps.
27194         (find_or_create_group): Change the sort algorithm to only consider
27195         steps that are constant ints.
27196         (idx_analyze_ref): Adopt code to handle a tree instead of a
27197         HOST_WIDE_INT for step.
27198         (gather_memory_references_ref): Handle tree instead of int and be
27199         prepared to see a NULL_TREE.
27200         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
27201         prefetches if the step cannot be calculated at compile time.
27202         (issue_prefetch_ref): Issue prefetches for non-constant but
27203         loop-invariant steps.
27204
27205 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27206
27207         Revert:
27208         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27209
27210         * tree.h (build_call_list): Remove.
27211         * tree.c (build_call_list): Remove.
27212
27213 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27214
27215         * tree.h (build_call_list): Remove.
27216         * tree.c (build_call_list): Remove.
27217
27218 2010-05-18  Jan Hubicka  <jh@suse.cz>
27219
27220         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
27221
27222 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
27223
27224         PR rtl-optimization/43332
27225         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
27226
27227 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
27228
27229         * tree.h (build_int_cstu): Implement as static inline.
27230         * tree.c (build_int_cstu): Remove function.
27231         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
27232         sign extended.
27233
27234 2010-05-18  Richard Guenther  <rguenther@suse.de>
27235
27236         PR lto/44143
27237         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
27238         (debug): Initialize from -save-temps.
27239         (collect_execute): Print command-line when verbose.
27240         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
27241         for ltrans invocation.  Produce -dumpbase flag again.
27242         (process_args): Remove.
27243         (main): Simplify.
27244         * collect2.c (maybe_run_lto_and_relink): Only pass object
27245         files to lto-wrapper.
27246         * gcc.c (LINK_COMMAND_SPEC): Likewise.
27247
27248 2010-05-18  Jan Hubicka  <jh@suse.cz>
27249
27250         * opts.c (decode_options): Do not disable whopr at ipa_cp.
27251         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27252
27253 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27254
27255         PR lto/44184
27256         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27257         in a GIMPLE_ASM.
27258         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27259         in a GIMPLE_ASM.
27260
27261 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
27262
27263         PR debug/41371
27264         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
27265         rtx_equal_p inline.
27266
27267 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27268
27269         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
27270         lto-macho as lto_binary_reader.
27271
27272         * darwin.c (darwin_asm_named_section): Do not add assembler comment
27273         after .section directive; just print it before the directive instead.
27274
27275 2010-05-17  Jan Hubicka  <jh@suse.cz>
27276
27277         * cgraph.c (cgraph_create_virtual_clone): Only check
27278         versionable_function_p when not in wpa and checking is enabled.
27279         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
27280         there are no more functions to materialize.
27281
27282 2010-05-17  Jan Hubicka  <jh@suse.cz>
27283
27284         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
27285         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
27286         New functions.
27287         (output_cgraph): Call output_cgraph_opt_summary.
27288         (input_cgrpah): Call input_cgraph_opt_summary.
27289         (output_cgraph_opt_summary_p, output_node_opt_summary,
27290         input_node_opt_summary, input_cgraph_opt_section): New functions.
27291         * lto-section-in.c (lto_section_name): Add cgraphopt.
27292         * tree-inline.c (tree_function_versioning): Handle parm_num.
27293         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
27294         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
27295
27296 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27297
27298         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
27299         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
27300         the insn to prefetch ratio heuristic to loops with known trip count.
27301
27302 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27303
27304         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
27305         (schedule_prefetches): Do not generate a prefetch if the unroll factor
27306         is far from what is required by the prefetch.
27307
27308 2010-05-17  Jan Hubicka  <jh@suse.cz>
27309
27310         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
27311         (ipcp_estimate_growth): Likewise.
27312         (ipcp_const_param_count): Likewise.
27313         (ipcp_insert_stage): Likewise.
27314         * ipa-prop.c (visit_load_for_mod_analysis): New function.
27315         (visit_store_addr_for_mod_analysis): Set used flag.
27316         (ipa_detect_param_modifications): Set used flag for SSE params;
27317         update use of walk_stmt_load_store_addr_ops.
27318         (ipa_print_node_params): Print used flag.
27319         (ipa_write_node_info): Stream used flag.
27320         (ipa_read_node_info): Likewise.
27321         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
27322         (ipa_is_param_used): New function.
27323         (lto_ipa_fixup_call_notes): Remove unused declaration.
27324
27325 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27326
27327         PR target/44074
27328         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
27329         * configure: Regenerate.
27330         * config.in: Regenerate.
27331         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
27332         !HAVE_AS_IX86_REP_LOCK_PREFIX.
27333         Don't emit whitespace.
27334         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
27335         (*rep_movsi): Likewise.
27336         (*rep_movsi_rex64): Likewise.
27337         (*rep_movqi): Likewise.
27338         (*rep_movqi_rex64): Likewise.
27339         (*rep_stosdi_rex64): Likewise.
27340         (*rep_stossi): Likewise.
27341         (*rep_stossi_rex64): Likewise.
27342         (*rep_stosqi): Likewise.
27343         (*rep_stosqi_rex64): Likewise.
27344         (*cmpstrnqi_nz_1): Use {%;} after repz.
27345         (*cmpstrnqi_nz_rex_1): Likewise.
27346         (*cmpstrnqi_1): Likewise.
27347         (*cmpstrnqi_rex_1): Likewise.
27348         (*strlenqi_1): Use {%;} after repnz.
27349         (*strlenqi_rex_1): Likewise.
27350         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
27351         (*sync_compare_and_swap<mode>): Likewise.
27352         (sync_double_compare_and_swap<mode>): Likewise.
27353         (*sync_double_compare_and_swapdi_pic): Likewise.
27354         (sync_old_add<mode>): Likewise.
27355         (sync_add<mode>): Likewise.
27356         (sync_sub<mode>): Likewise.
27357         (sync_<code><mode>): Likewise.
27358
27359 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27360
27361         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
27362         otr_token and polymorphic.
27363         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
27364         (cgraph_clone_edge): Copy the above fields.
27365         * tree.c (get_binfo_at_offset): New function.
27366         * tree.h (get_binfo_at_offset): Declare.
27367         * ipa-prop.h (enum jump_func_type): Added known_type jump function
27368         type, reordered items, updated comments.
27369         (union jump_func_value): Added base_type field, reordered fields.
27370         (enum ipa_lattice_type): Moved down in the file.
27371         (struct ipa_param_descriptor): New field polymorphic.
27372         (ipa_is_param_polymorphic): New function.
27373         * ipa-prop.c: Include gimple.h and gimple-fold.h.
27374         (ipa_print_node_jump_functions): Print known type jump functions.
27375         (compute_complex_pass_through): Renamed to...
27376         (compute_complex_assign_jump_func): this.
27377         (compute_complex_ancestor_jump_func): New function.
27378         (compute_known_type_jump_func): Likewise.
27379         (compute_scalar_jump_functions): Create known type and complex ancestor
27380         jump functions.
27381         (ipa_note_param_call): New parameter polymorphic, set the corresponding
27382         flag in the call note accordingly.
27383         (ipa_analyze_call_uses): Renamed to...
27384         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
27385         variable var only in the block where it is used.
27386         (ipa_analyze_virtual_call_uses): New function.
27387         (ipa_analyze_call_uses): Likewise.
27388         (combine_known_type_and_ancestor_jfs): Likewise.
27389         (update_jump_functions_after_inlining): Implemented handling of a
27390         number of new jump function types combination.
27391         (print_edge_addition_message): Removed.
27392         (make_edge_direct_to_target): New function.
27393         (try_make_edge_direct_simple_call): Likewise.
27394         (try_make_edge_direct_virtual_call): Likewise.
27395         (update_call_notes_after_inlining): Renamed to...
27396         (update_indirect_edges_after_inlining): this.  Moved edge creation for
27397         indirect calls to try_make_edge_direct_simple_call, also calls
27398         try_make_edge_direct_virtual_call for virtual calls.
27399         (ipa_print_node_params): Changed the header message.
27400         (ipa_write_jump_function): Stream also known type jump functions.
27401         (ipa_read_jump_function): Likewise.
27402         (ipa_write_indirect_edge_info): Stream new fields in
27403         cgraph_indirect_call_info.
27404         (ipa_read_indirect_edge_info): Likewise.
27405         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
27406         GIMPLE_FOLD_H.
27407
27408 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27409
27410         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
27411
27412 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27413
27414         * tree.h (CALL_EXPR_ARGS): Delete.
27415         (call_expr_arglist): Delete.
27416         * tree.c (call_expr_arglist): Delete.
27417         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
27418         targetm.fold_builtin.
27419         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
27420         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
27421         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
27422         arglist parameter.  Use CALL_EXPR_ARG.
27423         (picochip_expand_builtin_3op): Likewise.
27424         (picochip_expand_builtin_2opvoid): Likewise.
27425         (picochip_expand_array_get): Likewise.
27426         (picochip_expand_array_put): Likewise.
27427         (picochip_expand_array_testport): Likewise.
27428         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
27429         rather than arglist.
27430         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
27431         CALL_EXPR_ARGS.
27432         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
27433         than TREE_VALUE and TREE_CHAIN.
27434         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
27435         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
27436         the arglist.
27437
27438 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27439
27440         PR bootstrap/42347
27441         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
27442         to have no fallthru edge.
27443
27444         PR middle-end/44102
27445         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
27446         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
27447         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
27448         add BARRIER after previous bb if needed.
27449
27450 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27451
27452         * tree.c (build_function_type_list_1): Remove bogus assert condition.
27453
27454 2010-05-17  Alan Modra  <amodra@gmail.com>
27455
27456         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
27457         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
27458         with copy_reg rtx param.
27459         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
27460         Correct cases where code for ABI_V4 did not initialise the reg
27461         used to access frame.  Also leave frame_reg_rtx as sp for large
27462         frames that save no regs.
27463
27464 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27465
27466         PR middle-end/44133
27467         * tree-sra.c (create_access_replacement): New parameter rename, mark
27468         the replaement for renaming only when it is true.
27469         (get_access_replacement): Pass true in the rename parameter of
27470         create_access_replacement.
27471         (get_unrenamed_access_replacement): New function.
27472         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
27473         replacement declaration from it.
27474
27475 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
27476
27477         * function.c (try_fit_stack_local, add_frame_space): New static
27478         functions.
27479         (assign_stack_local_1): Use them.  Look for opportunities to use
27480         space previously wasted on alignment.
27481         * function.h (struct frame_space): New.
27482         (struct rtl_data): Add FRAME_SPACE_LIST member.
27483         * reload1.c (something_was_spilled): New static variable.
27484         (alter_reg): Set it.
27485         (reload): Test it in addition to testing if the frame size changed.
27486
27487 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
27488
27489         * config/s390/s390.c: Define sane prefetch settings and activate
27490         flag_prefetch_loop_arrays on -O3.
27491         * config/s390/s390.h: Declare that read can use write prefetch.
27492
27493 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27494
27495         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
27496         build.
27497
27498 2010-05-16  Jan Hubicka  <jh@suse.cz>
27499
27500         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
27501         function body; do not check stdarg field of struct function.
27502
27503 2010-05-16  Jan Hubicka  <jh@suse.cz>
27504
27505         * cgraph.c (dump_cgraph_node): Dump versionable flag.
27506         * cgraph.h (cgraph_local_info): Add versionable flag.
27507         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
27508         (ipcp_versionable_function_p): Use it.
27509         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
27510         versionable flag.
27511
27512 2010-05-16  Jan Hubicka  <jh@suse.cz>
27513
27514         * cgraph.c (cgraph_clone_node): Take decl argument and insert
27515         clone into hash when it is different from orig.
27516         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
27517         * cgraph.h (cgraph_clone_node): Update prototype.
27518         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
27519         (lto_cgraph_encoder_delete): Delete body map.
27520         (lto_cgraph_encoder_size): Move to header.
27521         (lto_cgraph_encoder_encode_body_p,
27522         lto_set_cgraph_encoder_encode_body): New.
27523         (lto_output_node): Do not take written_decls argument; output clone_of
27524         pointer.
27525         (add_node_to): Add include_body_argument; call
27526         lto_set_cgraph_encoder_encode_body on master of the clone.
27527         (add_references): Update use of add_node_to.
27528         (compute_ltrans_boundary): Likewise.
27529         (output_cgraph): Do not create written_decls bitmap.
27530         (input_node): Take nodes argument; stream in clone_of correctly.
27531         (input_cgraph_1): Update use of input_node.
27532         * lto-streamer-out.c (lto_output): Use encoder info to decide
27533         what bodies to output.
27534         * ipa-inline.c (cgraph_clone_inlined_nodes,
27535         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
27536         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
27537         (lto_cgraph_encoder_size): Define here.
27538         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
27539         Declare.
27540
27541 2010-05-16  Richard Guenther  <rguenther@suse.de>
27542
27543         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
27544         -fipa-type-escape.
27545         * ipa-type-escape.c (gate_type_escape_vars): Run when
27546         -fipa-struct-reorg runs.
27547         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
27548         * common.opt (fipa-type-escape): Remove.
27549
27550 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
27551
27552         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
27553         (decode_options): Likewise.
27554         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
27555
27556 2010-05-16  Jan Hubicka  <jh@suse.cz>
27557
27558         * ipa.c (function_and_variable_visibility): Also bring local all
27559         aliases.
27560
27561 2010-05-16  Richard Guenther  <rguenther@suse.de>
27562
27563         * alias.c (nonoverlapping_memrefs_p): Remove use of
27564         IPA type-escape information.
27565
27566 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
27567
27568         * c-common.c (c_common_reswords): Add _Static_assert for C.
27569         * c-parser.c (c_token_starts_declaration,
27570         c_parser_next_token_starts_declaration,
27571         c_parser_static_assert_declaration_no_semi,
27572         c_parser_static_assert_declaration): New.
27573         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
27574         Handle static assertions if static_assert_ok.
27575         (c_parser_external_declaration, c_parser_declaration_or_fndef,
27576         c_parser_compound_statement_nostart, c_parser_label,
27577         c_parser_for_statement, c_parser_objc_methodprotolist,
27578         c_parser_omp_for_loop): All callers of
27579         c_parser_declaration_or_fndef changed.
27580         (c_parser_struct_declaration): Handle static assertions.
27581         (c_parser_compound_statement_nostart): Use
27582         c_parser_next_token_starts_declaration and
27583         c_token_starts_declaration to detect start of declarations.
27584         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
27585         Likewise.
27586
27587 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
27588
27589         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27590         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27591         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27592         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27593         (mmix_function_outgoing_value): Rename to...
27594         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
27595         (mmix_function_value_regno_p): Make static.
27596         (mmix_libcall_value): New function.
27597         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
27598         mmix_function_value_regno_p): Remove declaration.
27599
27600 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
27601
27602         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
27603         BUILT_IN_ALLOCA if stack checking is enabled.
27604
27605 2010-05-16  Richard Guenther  <rguenther@suse.de>
27606
27607         * var-tracking.c (vars_copy_1): Inline ...
27608         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
27609         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
27610         (variable_merge_over_cur): Adjust.  Merge asserts.
27611         (variable_merge_over_src): Likewise.
27612         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
27613         (variable_post_merge_new_vals): Merge asserts.
27614         (variable_post_merge_perm_vals): Likewise.
27615         (find_mem_expr_in_1pdv): Likewise.
27616         (dataflow_set_different_value): Remove.
27617         (onepart_variable_different_p): Merge asserts.
27618         (variable_different_p): Likewise.
27619         (dataflow_set_different_1): Inline ...
27620         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
27621         (emit_notes_for_differences_1): Merge asserts.
27622
27623 2010-05-16  Richard Guenther  <rguenther@suse.de>
27624
27625         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
27626         * optabs.c (libfunc_decl_hash): Likewise.
27627         * varasm.c (emutls_decl): Likewise.
27628
27629 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
27630
27631         * c-decl.c: Don't include gimple.h.
27632         (merge_decls): Do not copy gimple_body.
27633
27634 2010-05-15  Jason Merrill  <jason@redhat.com>
27635
27636         * c.opt: Add -fnothrow-opt.
27637
27638 2010-05-15  Jan Hubicka  <jh@suse.cz>
27639
27640         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
27641         analyzed.
27642         * passes.c (ipa_write_summaries): Write all analyzed nodes.
27643
27644 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
27645
27646         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
27647         * Makefile.in: Add it.
27648         Fix all other Makefile dependencies for changes below.
27649         * tree.h: Include it instead of defining VEC primitives here.
27650         * gimple.h: Likewise.
27651         * rtl.h: Likewise.
27652         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
27653         * except.h: Include vecir.h, break dependence on tree.h.
27654
27655         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
27656         Move from here...
27657         * tree-iterator.c: ...to here.
27658         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
27659
27660         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
27661         tm_p.h.
27662         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
27663         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
27664         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
27665         tree-mudflap.h, and target.h.
27666         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
27667         predict.h, tree-inline.h, gimple.h, and langhooks.h.
27668         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
27669         Add FIXME for why gimple.h is still included (should be unnecessary
27670         since GCC 4.5 gimplification unit-at-a-time).
27671         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
27672         * c-pragma.c: Add FIXME for why function.h needs to be included just
27673         for cfun, at front-end level.
27674         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
27675         Do not include ggc.h, but include vecprim.h for VEC(char).
27676         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
27677         Explain why target.h is included.
27678         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
27679         Explain why gimple.h is included.
27680         * c-ppoutput.c: Do not include tm.h.
27681         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
27682         * c-parses.c: Explain why rtl.h is included, and that this (and only
27683         this) is also why tm.h must be included.
27684         Do not include except.h.
27685         * c-lang.c: Do not include ggc.h.
27686
27687 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
27688
27689         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
27690
27691 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
27692
27693         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
27694         unions by default if those structs and unions have no tags.  Do
27695         not condition anonymous struct and unions handling on flag_iso.
27696         Allow anonymous structs and unions for C1X.
27697         (finish_struct): Do not diagnose lack of named fields when
27698         anonymous structs and unions present for C1X.  Accept flexible
27699         array members in structure with anonymous structs or unions but no
27700         directly named fields.
27701         * doc/extend.texi (Unnamed Fields): Update.
27702
27703 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
27704
27705         * gimple.h (compare_field_offset): Rename into...
27706         (gimple_compare_field_offset): ...this.
27707         * gimple.c (compare_field_offset): Rename into...
27708         (gimple_compare_field_offset): ...this.  Compare the full access if
27709         the offset is self-referential.
27710         (gimple_types_compatible_p): Adjust for above renaming.
27711         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
27712         DECL_NONADDRESSABLE_P flag of fields before merging them.
27713
27714 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
27715
27716         * tree.h (ctor_to_list): Delete.
27717         * tree.c (ctor_to_list): Delete.
27718
27719 2010-05-15  Jan Hubicka  <jh@suse.cz>
27720
27721         * ipa-reference.c: Include toplev.h
27722         (is_proper_for_analysis): Only add to all_module_statics
27723         if it is allocated.
27724         (write_node_summary_p, stream_out_bitmap,
27725         ipa_reference_write_optimization_summary,
27726         ipa_reference_read_optimization_summary): New.
27727         (struct ipa_opt_pass_d pass_ipa_reference): Add
27728         optimization summary streaming.
27729         * lto-cgraph.c (referenced_from_this_partition_p,
27730         reachable_from_this_partition_p): New functions.
27731         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
27732         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
27733         * opts.c (decode_options): Enable ipa_reference.
27734         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
27735         * lto-streamer.h (referenced_from_this_partition_p,
27736         reachable_from_this_partition_p): Declare.
27737
27738 2010-05-15  Richard Guenther  <rguenther@suse.de>
27739
27740         PR tree-optimization/44038
27741         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
27742         taking the address of a V_C_E of a constant.
27743
27744 2010-05-14  Jan Hubicka  <jh@suse.cz>
27745
27746         * tree.h (memory_identifier_string): Remove.
27747         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
27748         (ipa_reference_global_vars_info_d): Remove statics_not_read and
27749         statics_not_written.
27750         (ipa_reference_optimization_summary_d): New structure.
27751         (ipa_reference_optimization_summary_t): New type and vector.
27752         (ipa_reference_vars_info_d): Embedd structures instead of using
27753         pointers.
27754         (reference_vars_to_consider): Remove out of GGC space.
27755         (module_statics_escape): Remove.
27756         (global_info_obstack): Rename to ...
27757         (optimization_summary_obstack): ... this one.
27758         (initialization_status_t): Remove.
27759         (memory_identifier_string): Remove.
27760         (get_reference_vars_info): Fix indenting.
27761         (set_reference_vars_info): Likewise.
27762         (get_reference_optimization_summary): New.
27763         (set_reference_optimization_summary): New.
27764         (get_global_reference_vars_info): Remove.
27765         (ipa_reference_get_read_global): Remove.
27766         (ipa_reference_get_written_global): Remove.
27767         (ipa_reference_get_not_read_global): Update.
27768         (ipa_reference_get_not_written_global): Update.
27769         (is_proper_for_analysis): Outlaw addressable.
27770         (propagate_bits): Update for new datastructures.
27771         (analyze_variable): Remove.
27772         (init_function_info): Update for new datastructures.
27773         (clean_function_local_data): Remove.
27774         (clean_function): Remove.
27775         (copy_global_bitmap): Use optimizations_summary_obstack.
27776         (duplicate_node_data): Duplicate optimization summary only.
27777         (remove_node_data): Remove optimization summary only.
27778         (generate_summary): Do not analyze variables; do not compute
27779         module_statics_escape; do not prune solutions by it.
27780         (read_write_all_from_decl): Fix typos in comments.
27781         (propagate): Doscover readonly and nonaddressable first;
27782         update for new datastructures; share global bitmaps.
27783         * ipa-reference.h (ipa_reference_get_read_global,
27784         ipa_reference_get_written_global): Remove.
27785         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
27786         * Makefile.in: Remove ipa-refereference from GT files.
27787
27788 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
27789
27790         PR debug/44112
27791         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
27792         for all SYMBOL_REF_DECLs.
27793
27794 2010-05-14  Jan Hubicka  <jh@suse.cz>
27795
27796         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
27797         (varpool_all_refs_explicit_p): New inline function.
27798         * ipa-reference.c: Update comment.
27799         (module_statics_written): Remove.
27800         (get_static_decl): Remove.
27801         (ipa_init): Do not initialize module_statics_written.
27802         (analyze_function): Likewise.
27803         (generate_summary): Likewise; do not compute module_statics_readonly
27804         and do not update variable flags.
27805         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
27806         * ipa.c: Inlucde flags.h
27807         (cgraph_local_node_p): New.
27808         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
27809         promote functions to local.
27810         (ipa_discover_readonly_nonaddressable_vars): New function.
27811         (function_and_variable_visibility): Use cgraph_local_node_p.
27812         * varpool.c (varpool_finalize_decl): Set force_output for
27813         DECL_PRESERVE_P vars.
27814
27815 2010-05-14  Jan Hubicka  <jh@suse.cz>
27816
27817         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
27818
27819 2010-05-14  Richard Guenther  <rguenther@suse.de>
27820
27821         PR tree-optimization/44119
27822         * tree-ssa-pre.c (eliminate): Properly mark replacement of
27823         a PHI node necessary.
27824
27825 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
27826
27827         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
27828
27829 2010-05-14  Jason Merrill  <jason@redhat.com>
27830
27831         PR c++/44127
27832         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
27833         (gimple_call_set_nothrow): New.
27834         * gimple.c (gimple_build_call_from_tree): Call it.
27835         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
27836
27837         PR c++/44127
27838         * gimplify.c (gimplify_seq_add_stmt): No longer static.
27839         * gimple.h: Declare it.
27840         * gimple.c (gimple_build_eh_filter): No ops.
27841
27842 2010-05-14  Jan Hubicka  <jh@suse.cz>
27843
27844         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
27845         nodes already in queue.
27846         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
27847         re-enqueueing node.
27848
27849 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
27850
27851         PR debug/44136
27852         * cfgexpand.c (expand_debug_expr): If non-memory op0
27853         has BLKmode, return NULL.
27854
27855 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
27856
27857         * config.gcc: Add support for --with-cpu option for bdver1.
27858         * config/i386/i386.h (TARGET_BDVER1): New macro.
27859         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
27860         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27861         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
27862         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27863         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
27864         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
27865         (processor_type): Add PROCESSOR_BDVER1.
27866         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
27867         processor_type in config/i386/i386.h.
27868         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
27869         movaps <reg, reg> instead of movapd <reg, reg> when replacing
27870         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
27871         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
27872         to emit packed xor instead of packed double/packed integer
27873         xor for SSE and AVX when moving a zero value.
27874         * config/i386/sse.md: Add check for
27875         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
27876         movapd/movdqa for SSE and AVX.
27877         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
27878         single logical operations i.e and, or and xor instead of packed double
27879         logical operations for SSE and AVX.
27880         * config/i386/i386-c.c (ix86_target_macros_internal):
27881         Add PROCESSOR_BDVER1.
27882         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
27883         (has_fma4, has_xop): New.
27884         * config/i386/i386.c (bdver1_cost): New variable.
27885         (m_BDVER1): New macro.
27886         (m_AMD_MULTIPLE): Add m_BDVER1.
27887         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
27888         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
27889         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
27890         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
27891         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
27892         x86_tune_sse_partial_reg_dependency,
27893         x86_tune_sse_unaligned_load_optimal,
27894         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
27895         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
27896         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
27897         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
27898         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
27899         Enable/disable for bdver1.
27900         (processor_target_table): Add bdver1_cost.
27901         (cpu_names): Add bdver1.
27902         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
27903          processor_alias_table.
27904         (ix86_expand_vector_move_misalign): Change.
27905         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
27906         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
27907         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
27908         of movupd/movdqu for SSE and AVX.
27909         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
27910         (ix86_tune_adjust_cost): Add code for bdver1.
27911         (standard_sse_constant_opcode): Add check for
27912         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
27913         of packed double xor for SSE and AVX.
27914
27915 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
27916
27917         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
27918         result to unsigned.
27919
27920 2010-05-14  Tristan Gingold  <gingold@adacore.com>
27921
27922         * toplev.c (default_debug_hooks): Remove this variable.
27923         (process_options): Remove assignments to default_debug_hooks.
27924
27925 2010-05-14  Martin Jambor  <mjambor@suse.cz>
27926
27927         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
27928         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
27929         * langhooks.h (struct lang_hooks_for_decls): Removed field
27930         fold_obj_type_ref.
27931         * tree.c (free_lang_data): Remove assignment to
27932         lang_hooks.fold_obj_type_ref.
27933         * tree.def (OBJ_TYPE_REF): Update comment.
27934
27935 2010-05-14  Richard Guenther  <rguenther@suse.de>
27936
27937         PR tree-optimization/44124
27938         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
27939
27940 2010-05-14  Alan Modra  <amodra@gmail.com>
27941
27942         PR target/44075
27943         * config/rs6000/rs6000.c (struct machine_function): Reorder
27944         fields for better packing.  Add lr_save_state.
27945         (rs6000_ra_ever_killed): Return lr_save_state if set.
27946         (rs6000_emit_eh_reg_restore): Set lr_save_state.
27947
27948 2010-05-13  Jan Hubicka  <jh@suse.cz>
27949
27950         * varpool.c (decide_is_variable_needed): Drop code checking
27951         TREE_SYMBOL_REFERENCED.
27952
27953 2010-05-13  Jan Hubicka  <jh@suse.cz>
27954
27955         * final.c (output_addr_const): Do not call mark_decl_referenced.
27956         * cgraphunit.c (process_function_and_variable_attributes): Use
27957         mark_needed_node dirrectly.
27958         (assemble_thunk): Do not call mark_decl_referenced.
27959
27960 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
27961
27962         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
27963
27964 2010-05-13  Jeff Law  <law@redhat.com>
27965
27966         * ira-conflicts.c (print_allocno_conflicts): New function broken out
27967         from...
27968         (print_conflicts): Call print_allocno_conflicts.
27969
27970 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
27971
27972         PR debug/44104
27973         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
27974         if it is NULL.
27975
27976 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
27977
27978         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
27979         t-mingw-w64 or t-mingw-w32 for multilib configuration.
27980         * config/i386/t-mingw-w32: New.
27981         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
27982
27983 2010-05-13  Martin Jambor  <mjambor@suse.cz>
27984
27985         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
27986         gimple-fold.c).
27987         * gimple-fold.c (get_base_binfo_for_type): New function.
27988         (gimple_get_relevant_ref_binfo): Likewise.
27989         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27990         (gimple_fold_obj_type_ref): Likewise.
27991         (fold_gimple_call): Simplify condition for folding virtual calls
27992         and call gimple_fold_obj_type_ref.
27993         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
27994         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27995
27996 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
27997
27998         * config/rs6000/rs6000-protos.h
27999         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
28000         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
28001         (rs6000_debug_mode_dependent_address)
28002         (rs6000_mode_dependent_address_ptr): Likewise.
28003
28004 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28005
28006         PR debug/43983
28007         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
28008         by SRA.
28009         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
28010         * tree-sra.c (create_access_replacement): Call unshare_expr before
28011         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
28012         * dwarf2out.c: Include tree-flow.h.
28013         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
28014         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
28015         Handle DW_OP_bit_piece.
28016         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
28017         construct_piece_list, adjust_piece_list): New functions.
28018         (add_var_loc_to_decl): Handle SRA optimized variables.
28019         Adjust for var_loc_note to loc field renaming.
28020         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
28021         in VAR_LOCATION note.
28022         (new_loc_descr_op_bit_piece): New function.
28023         (dw_sra_loc_expr): New function.
28024         (dw_loc_list): Use it.  Don't handle the last range after the
28025         loop, handle it inside of the loop.  Adjust for var_loc_note
28026         to loc field renaming.
28027         (add_location_or_const_value_attribute): Only special case
28028         single entry loc lists if loc is NOTE_P.  Adjust for
28029         var_loc_note to loc field renaming.
28030         (dwarf2out_var_location): Don't set newloc->var_loc_note
28031         and newloc->next here.
28032
28033 2010-05-12  Jan Hubicka  <jh@suse.cz>
28034
28035         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
28036         flag.
28037         * cgraph.h (cgraph_only_called_directly_p,
28038         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
28039         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
28040         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
28041         (assemble
28042         * ipa.c (cgraph_remove_unreachable_nodes): Use
28043         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
28044         flags.
28045         * tree-inline.c (copy_bb): Check address_taken flag.
28046         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
28047         externally_visible flag.
28048
28049 2010-05-12  Jason Merrill  <jason@redhat.com>
28050
28051         PR bootstrap/44048
28052         PR target/44099
28053         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
28054         * sdbout.c (plain_type_1): Likewise.
28055         * dwarf2out.c (is_base_type): Likewise.
28056         (gen_type_die_with_usage): Likewise.  Generate
28057         DW_TAG_unspecified_type for any LANG_TYPE.
28058
28059 2010-05-12  Jan Hubicka  <jh@suse.cz>
28060
28061         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
28062         indrect edges too.
28063         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
28064         (cgraph_clone_edge): Update.
28065         (cgraph_node_remove_callees): Remove indirect calls too.
28066         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
28067         (cgraph_create_indirect_edge): Update prototype.
28068         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
28069         is_proper_for_analysis.
28070         (add_new_function, visited_nodes, function_insertion_hook_holder,
28071         get_local_reference_vars_info, mark_address_taken, mark_address,
28072         mark_load, mark_store, check_asm_memory_clobber, check_call,
28073         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
28074         (ipa_init): Do not initialize visited_nodes;
28075         function_insertion_hook_holder.
28076         (analyze_variable): Rewrite.
28077         (analyze_function): Rewrite.
28078         (copy_local_bitmap): Remove.
28079         (duplicate_node_dat): Do not duplicate local info.
28080         (generate_summary): Simplify to only walk cgraph.
28081         (write_node_summary_p, ipa_reference_write_summary,
28082         ipa_reference_read_summary): Remove.
28083         (propagate): Do not remove function insertion;
28084         generate summary.
28085         (pass_ipa_reference): NULLify summary handling fields.
28086         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
28087         (input_edge): Input ecf_flags.
28088         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
28089         (update_indirect_edges_after_inlining): Ignore edges with unknown
28090         param.
28091
28092 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
28093
28094         * implicit-zee.c: New file.
28095         * tree-pass.h (pass_implicit_zee): Declare.
28096         * passes.c (init_optimization_passes): Add zee pass.
28097         * common.opt (fzee): New flag.
28098         * timevar.def (TV_ZEE): Define.
28099         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
28100         and beyond.
28101         * Makefile.in (implicit-zee.o): Add new build file.
28102
28103 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28104             Nathan Froyd  <froydnj@codesourcery.com>
28105
28106         * c-common.c (sync_resolve_params): Remove write-only variable.
28107
28108 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
28109
28110         * target.h (struct gcc_target): Add mode_dependent_address_p field.
28111         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28112         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
28113         * targhooks.c (default_mode_dependent_address_p): New function.
28114         * targhooks.h (default_mode_dependent_address_p): Declare function.
28115         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28116         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
28117         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
28118         target hook. Change return type to bool.
28119         * recog.h (mode_dependent_address_p): Change return type to bool.
28120
28121 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28122             Nathan Froyd  <froydnj@codesourcery.com>
28123
28124         * tree-mudflap.c (build_function_type_0, build_function_type_1,
28125         build_function_type_2, build_function_type_3): Remove.
28126         (mudflap_init): Use build_function_type_list.
28127
28128 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28129             Nathan Froyd  <froydnj@codesourcery.com>
28130
28131         * coverage.c (build_fn_info_value): Call build_constructor instead of
28132         build_constructor_from_list.
28133         (build_ctr_info_value): Likewise.
28134         (build_gcov_info): Likewise.
28135
28136 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
28137
28138         * tree.c (build_constructor): Compute TREE_CONSTANT for the
28139         resultant constructor.
28140         (build_constructor_single): Don't set TREE_CONSTANT.
28141         (build_constructor_from_list): Don't compute TREE_CONSTANT.
28142
28143 2010-05-12  Jan Hubicka  <jh@suse.cz>
28144
28145         * cgraph.h (struct varpool_node): Add aux.
28146         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
28147         * varpool.c (varpool_remove_node): Do not remove initializer.
28148         (varpool_reset_queue): Export.
28149         (varpool_finalize_decl): Volatile vars are forced to be output.
28150         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
28151         replaced decl.
28152         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
28153         process_references, varpool_can_remove_if_no_refs): New functions.
28154         (cgraph_remove_unreachable_nodes): Handle variables too.
28155
28156 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
28157
28158         PR target/44088
28159         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
28160
28161 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
28162
28163         PR middle-end/44085
28164         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
28165         change value of ORT_TASK.
28166         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
28167         (omp_notice_threadprivate_variable): New function.
28168         (omp_notice_variable): Call it for threadprivate variables.
28169         If enclosing ctx is a task, print enclosing task rather than
28170         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
28171         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
28172         if task has untied clause.
28173
28174         PR debug/42278
28175         * dwarf2out.c (base_type_die): Don't add name attribute here.
28176         (modified_type_die): Instead of sizetype use
28177         its underlying original type.  If a DW_TAG_base_type doesn't
28178         have name added, add __unknown__.
28179         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
28180         always call force_type_die instead.
28181
28182 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
28183
28184         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
28185         for __stack_chk_guard.
28186
28187 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28188
28189         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
28190         don't call start_source_file debug hook here...
28191         (finish_options): ... but here, after outputting predefined and
28192         command line defines and undefs.
28193
28194         PR middle-end/44071
28195         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
28196         no fallthru edge.
28197         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
28198         optimizing away empty bb with no successors, move over its
28199         footer chain to fallthru predecessor.
28200         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
28201         (rtl_split_edge): For asm goto call patch_jump_insn even if
28202         splitting fallthru edge.
28203
28204         PR c++/44059
28205         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
28206         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
28207         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
28208         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
28209         on DW.ref.* decls.
28210
28211         PR c++/44062
28212         * c-parser.c (c_parser_expression): Mark LHS of a comma
28213         expression as read if it is a decl, handled component or
28214         COMPOUND_EXPR with that on the RHS.
28215         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
28216         if it is a decl or handled component.
28217
28218 2010-05-11  Jan Hubicka  <jh@suse.cz>
28219
28220         * lto-symtab.c (lto_symtab_free): New function.
28221         * lto-streamer.h (lto_symtab_free): Declare.
28222
28223 2010-05-11  Jan Hubicka  <jh@suse.cz>
28224
28225         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
28226         that if function is needed it is reachable.
28227         (lto_output_node): See if it the function is reachable or referenced.
28228         (output_cgraph): Update call of lto_output_node.
28229         * lto-streamer.h (reachable_from_other_partition_p): Declare.
28230
28231 2010-05-11  Jan Hubicka  <jh@suse.cz>
28232
28233         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
28234         Mark as used.
28235
28236 2010-05-11  Jan Hubicka  <jh@suse.cz>
28237
28238         PR tree-optimize/44063
28239         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
28240         queue.
28241         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28242         limits.
28243         (estimate_function_body_sizes): Compute sizes even when disregarding.
28244
28245 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
28246
28247         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28248
28249 2010-05-11  Jan Hubicka  <jh@suse.cz>
28250
28251         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28252         into every boundary.
28253
28254 2010-05-11  Jan Hubicka  <jh@suse.cz>
28255
28256         * matrix-reorg.c (matrix_reorg): Rebuild edges.
28257
28258 2010-05-11  Jan Hubicka  <jh@suse.cz>
28259
28260         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
28261         lto_streamer_cache_delete): Put nodes into heap.
28262         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
28263         heap.
28264
28265 2010-05-11  Jan Hubicka  <jh@suse.cz>
28266
28267         * cgraphbuild.c (cgraph_rebuild_references): New.
28268         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
28269         out extern inlines.
28270         * cgraph.h (cgraph_rebuild_references): Declare.
28271         * tree-inline.c (tree_function_versioning): Use it.
28272         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
28273
28274 2010-05-11  Jan Hubicka  <jh@suse.cz>
28275
28276         * cgraph.c: Include ipa-utils.h
28277         (cgraph_create_virtual_clone): Update references.
28278         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
28279
28280 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28281
28282         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
28283         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
28284         cache size.
28285
28286 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28287
28288         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
28289
28290 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28291
28292         * gcc.c (execute): For -### don't quote arguments that
28293         contain just alphanumerics and _/-. characters.
28294         * doc/invoke.texi: Document that change for -###.
28295
28296         PR debug/44023
28297         * df-problems.c (struct dead_debug): Add to_rescan field.
28298         (dead_debug_init): Clear to_rescan field.
28299         (dead_debug_finish): Rescan all debug insns in to_rescan
28300         bitmap and free the bitmap.
28301         (dead_debug_insert_before): Instead of rescanning debug insns
28302         immediately queue their rescanning until dead_debug_finish.
28303         (df_note_bb_compute): After dead_debug_add do continue instead
28304         of break.
28305
28306 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
28307
28308         PR debug/44028
28309         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
28310         clear also INSN_REG_USE_LIST.
28311
28312 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28313
28314         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
28315
28316 2010-05-10  Jan Hubicka  <jh@suse.cz>
28317
28318         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
28319         commited change.
28320
28321 2010-05-10  Jan Hubicka  <jh@suse.cz>
28322
28323         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
28324         Allocate encoders.
28325         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
28326         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
28327         (lto_streamer_cache_create): Init alloc pool.
28328         (lto_streamer_cache_delete): Free alloc pool.
28329         * lto-streamer.h: Include alloc pool.
28330         (lto_streamer_cache_d): Use alloc pool.
28331         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
28332
28333 2010-05-10  Jan Hubicka  <jh@suse.cz>
28334
28335         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
28336         * cgraphbuild.c: Include except.h
28337         (record_type_list, record_eh_tables): New function.
28338         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
28339
28340 2010-05-10  Jan Hubicka  <jh@suse.cz>
28341
28342         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
28343         __frame_dummy_init_array_entry, force_to_data): Attribute as used
28344         rather than unused.
28345
28346 2010-05-10  Michael Matz  <matz@suse.de>
28347
28348         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
28349         (can_reassociate_p): Use FLOAT_TYPE_P.
28350         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
28351         (vect_force_simple_reduction): ... this.
28352         * tree-parloops.c (gather_scalar_reductions): Use
28353         vect_force_simple_reduction.
28354         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
28355         vect_is_simple_reduction, add modify argument, if true rewrite
28356         "a-b" into "a+(-b)".
28357         (vect_is_simple_reduction, vect_force_simple_reduction): New
28358         functions.
28359         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
28360
28361 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
28362             Vladimir Makarov  <vmakarov@redhat.com>
28363
28364         PR rtl-optimization/44012
28365         * ira-build.c (remove_unnecessary_allocnos): Nullify
28366         regno_allocno_map of the removed allocno.
28367
28368 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28369
28370         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
28371         to /dev/null.
28372         * configure: Regenerate.
28373
28374 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28375
28376         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
28377         unused.
28378         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
28379         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
28380         support in Sun ld.
28381         * configure: Regenerate.
28382
28383 2010-05-10  Richard Guenther  <rguenther@suse.de>
28384
28385         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
28386         marked if the entry identifier is marked.
28387
28388 2010-05-10  Richard Guenther  <rguenther@suse.de>
28389
28390         * c-common.c (struct c_common_attributes): Add fnspec attribute.
28391         (handle_fnspec_attribute): New function.
28392         * gimple.h (gimple_call_return_flags): Declare.
28393         (gimple_call_arg_flags): Likewise.
28394         * gimple.c (gimple_call_arg_flags): New function.
28395         (gimple_call_return_flags): Likewise.
28396         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
28397         New argument flags.
28398         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
28399         return value flags.
28400         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
28401         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
28402         main work to ...
28403         (make_heapvar_for): ... this new function.
28404         (handle_rhs_call): Handle fnspec attribute argument specifiers.
28405         (handle_lhs_call): Likewise.
28406         (find_func_aliases): Adjust.
28407
28408 2010-05-10  Richard Guenther  <rguenther@suse.de>
28409
28410         PR tree-optimization/44050
28411         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
28412
28413 2010-05-10  Wei Guozhi  <carrot@google.com>
28414
28415         PR target/42879
28416         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
28417
28418 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28419
28420         PR c/10676
28421         * c-typeck.c (lookup_field): Take a type directly.  Update
28422         recursive calls.
28423         (build_component_ref): Update call to lookup_field.
28424         (set_init_label): Use lookup_field to find initialized field.
28425         Handle returned list of fields like a sequence of designators.
28426
28427 2010-05-09  Richard Guenther  <rguenther@suse.de>
28428
28429         PR middle-end/44024
28430         * fold-const.c (tree_single_nonzero_warnv_p): Properly
28431         handle &FUNCTION_DECL.
28432
28433 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28434
28435         PR c/4784
28436         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
28437         structures and unions recursively.
28438         (detect_field_duplicates): Move duplicate detection with a hash to
28439         detect_field_duplicates_hash.  Always use a hash if anonymous
28440         structures or unions are present.
28441         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
28442         give errors.
28443
28444 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
28445
28446         PR target/44046
28447         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
28448         detect Atom, Core 2 and Core i7.
28449
28450 2010-05-09  Richard Guenther  <rguenther@suse.de>
28451
28452         * gcc.c (store_arg): Handle temporary file deletion for
28453         joined arguments.
28454
28455 2010-05-09  Richard Guenther  <rguenther@suse.de>
28456
28457         PR middle-end/44043
28458         * ipa-inline.c (estimate_function_body_sizes): Return after
28459         disregarding inline limits.
28460
28461 2010-05-09  Richard Guenther  <rguenther@suse.de>
28462
28463         * gcc.c (store_arg): Revert last change.
28464
28465 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
28466
28467         PR middle-end/28685
28468         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
28469         (optimize_ops_list): Call it.
28470
28471 2010-05-08  Richard Guenther  <rguenther@suse.de>
28472
28473         PR tree-optimization/44030
28474         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
28475         NECESSARY flag if we propagate from a inserted expression.
28476
28477 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
28478
28479         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
28480         domain types as equal if they are both PLACEHOLDER_EXPRs.
28481
28482 2010-05-08  Richard Guenther  <rguenther@suse.de>
28483
28484         * lto-wrapper.c (run_gcc): Remove linker output from
28485         command line for LTRANS invocation.
28486
28487 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
28488
28489         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
28490         lto-macho as lto_binary_reader.
28491         * target.h (struct gcc_target): New hooks lto_start and lto_end.
28492         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
28493         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
28494         in lto_start and lto_end calls.
28495         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
28496         magic numbers.
28497         (scan_prog_file): Update is_elf_or_coff call.
28498         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
28499
28500         * collect2.c (main): Fix enum comparison.
28501
28502         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
28503         Add prototypes.
28504         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
28505         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
28506         and TARGET_ASM_LTO_END.
28507         * darwin.c: Include obstack.h and lto-streamer.h.
28508         (lto_section_names_offset, lto_section_names_obstack,
28509         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
28510         global variables.
28511         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
28512         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
28513         to a temporary file.
28514         (darwin_asm_lto_end): New function.  Restore asm_out_file.
28515         (darwin_asm_named_section): For LTO sections, replace the name with
28516         the offset of the section name in a string table, and build this
28517         table.
28518         (darwin_file_start): Initialize global vars for LTO support.
28519         (darwin_file_end): If output to asm_out_file was redirected, append it
28520         to the proper asm_out_file here.  Add the section names section.
28521
28522 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
28523
28524         * c-pragma.c (pending_weak_d, pending_weak): New.
28525         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
28526         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
28527         handle_pragma_weak): Update the uses of pending_weaks.
28528
28529 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28530
28531         PR documentation/44016
28532         * doc/standards.texi (Standards): Link to unversioned
28533         cxx0x_status.html page.
28534
28535 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
28536
28537         PR target/43708
28538         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
28539         in addition to TREE_USED, to avoid "set but unused" warnings.
28540
28541 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28542
28543         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
28544         (is_loop_prefetching_profitable): Do not insert prefetches
28545         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
28546         times the prefetch ahead distance.
28547
28548 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28549
28550         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
28551         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
28552         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
28553         the unroll_factor.
28554
28555 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28556
28557         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
28558         a diagnostic info when the insn-to-mem ratio is too small.
28559
28560 2010-05-07  Richard Guenther  <rguenther@suse.de>
28561
28562         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
28563         the linker plugin.
28564         (store_arg): Queue temp_filename for deletion instead of
28565         the whole argument.
28566
28567 2010-05-07  Richard Guenther  <rguenther@suse.de>
28568
28569         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
28570         (run_gcc): Handle LTRANS phase invocation.
28571         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
28572
28573 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
28574
28575         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
28576         this is also meaningful on PARM_DECLs and RESULT_DECLs.
28577
28578 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28579
28580         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
28581
28582 2010-05-07  Richard Guenther  <rguenther@suse.de>
28583
28584         PR tree-optimization/44020
28585         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
28586         code when PRE is not yet initialized.
28587
28588 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28589
28590         * config/mips/dbxmdebug.h: Remove.
28591         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
28592
28593 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
28594
28595         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
28596         with null pointer and also warn about ordered comparison of zero with
28597         pointer if -Wextra.
28598
28599 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
28600
28601         * graphite-blocking.c
28602         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
28603         * graphite-clast-to-gimple.c
28604         (clast_to_gcc_expression): Same.
28605         (precision_for_value): Same.
28606         (precision_for_interval): Same.
28607         (gcc_type_for_interval): Same.
28608         (graphite_create_new_guard): Same.
28609         (compute_bounds_for_level): Same.
28610         (graphite_create_new_loop_guard): Same.
28611         * graphite-interchange.c
28612         (build_linearized_memory_access): Same.
28613         (pdr_stride_in_loop): Same.
28614         (memory_strides_in_loop_1): Same.
28615         (memory_strides_in_loop): Same.
28616         (extend_scattering): Same.
28617         (psct_scattering_dim_for_loop_depth): Same.
28618         (pbb_number_of_iterations): Same.
28619         * graphite-poly.h
28620         (debug_iteration_domains): Same.
28621         * graphite-ppl.c
28622         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
28623         (ppl_set_inhomogeneous_gmp): Same.
28624         (ppl_strip_loop): Same.
28625         (ppl_lexico_compare_linear_expressions): Same.
28626         (ppl_read_polyhedron_matrix): Same.
28627         (ppl_max_for_le_pointset): Same.
28628         * graphite-ppl.h
28629         (ppl_read_polyhedron_matrix): Same.
28630         (tree_int_to_gmp): Same.
28631         (gmp_cst_to_tree): Same.
28632         (ppl_set_inhomogeneous): Same.
28633         (ppl_set_inhomogeneous_tree): Same.
28634         (ppl_set_coef): Same.
28635         (ppl_set_coef_tree): Same.
28636         * graphite-sese-to-poly.c
28637         (build_pbb_scattering_polyhedrons): Same.
28638         (build_scop_scattering): Same.
28639         (scan_tree_for_params_right_scev): Same.
28640         (scan_tree_for_params): Same.
28641         (find_params_in_bb): Same.
28642         (find_scop_parameters): Same.
28643         (add_upper_bounds_from_estimated_nit): Same.
28644         (build_loop_iteration_domains): Same.
28645         (add_condition_to_domain): Same.
28646         (pdr_add_memory_accesses): Same.
28647
28648 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
28649
28650         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
28651         CLooG's value_* macros to their respective mpz_* counterparts.
28652         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
28653         (graphite_create_new_loop_guard): Same.
28654         * graphite-interchange.c (build_linearized_memory_access): Same.
28655         (pdr_stride_in_loop): Same.
28656         (memory_strides_in_loop_1): Same.
28657         (1st_interchange_profitable_p): Same.
28658         * graphite-poly.c (extend_scattering): Same.
28659         (psct_scattering_dim_for_loop_depth): Same.
28660         (pbb_number_of_iterations): Same.
28661         (pbb_number_of_iterations_at_time): Same.
28662         * graphite-poly.h (new_1st_loop): Same.
28663         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
28664         (oppose_constraint): Same.
28665         (insert_constraint_into_matrix): Same.
28666         (ppl_set_inhomogeneous_gmp): Same.
28667         (ppl_set_coef_gmp): Same.
28668         (ppl_strip_loop): Same.
28669         (ppl_lexico_compare_linear_expressions): Same.
28670         (ppl_max_for_le_pointset): Same.
28671         (ppl_min_for_le_pointset): Same.
28672         (ppl_build_realtion): Same.
28673         * graphite-ppl.h (gmp_cst_to_tree): Same.
28674         (ppl_set_inhomogeneous): Same.
28675         (ppl_set_inhomogeneous_tree): Same.
28676         (ppl_set_coef): Same.
28677         (ppl_set_coef_tree): Same.
28678         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
28679         (build_scop_scattering): Same.
28680         (add_value_to_dim): Same.
28681         (scan_tree_for_params_right_scev): Same.
28682         (scan_tree_for_params_int): Same.
28683         (scan_tree_for_params): Same.
28684         (find_params_in_bb): Same.
28685         (find_scop_parameters): Same.
28686         (add_upper_bounds_from_estimated_nit): Same.
28687         (build_loop_iteration_domains): Same.
28688         (create_linear_expr_from_tree): Same.
28689         (add_condition_to_domain): Same.
28690         (pdr_add_memory_accesses): Same.
28691
28692 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
28693             Jason Merrill  <jason@redhat.com>
28694
28695         * c-common.c (c_common_reswords): Add nullptr.
28696         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
28697         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
28698         (gen_type_die_with_usage): Likewise.
28699         * dbxout.c (dbxout_type): Likewise.
28700         * sdbout.c (plain_type_1): Likewise.
28701
28702 2010-05-06  Jason Merrill  <jason@redhat.com>
28703
28704         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
28705         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
28706         ret appropriately.
28707         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
28708
28709         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
28710         stripping WITH_SIZE_EXPR.
28711         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
28712         change.
28713
28714 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28715
28716         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
28717         list of obsolete configurations.
28718         Disabled check for obsolete configurations.
28719         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
28720         Removed support for previous versions.
28721         * config/mips/iris.h: Removed.
28722         * config/mips/iris5.h: Removed.
28723         * config/mips/iris6.h: Merged old iris.h contents.
28724         (TARGET_IRIX): Removed.
28725         (DRIVER_SELF_SPECS): Removed mabi=32.
28726         (IDENT_ASM_OP): Removed undef.
28727         (STARTFILE_SPEC): Removed mabi=32.
28728         (ENDFILE_SPEC): Likewise.
28729         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
28730         (MACHINE_TYPE): Update for IRIX 6.5.
28731         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
28732         TARGET_IRIX by TARGET_IRIX6.
28733         (mips_file_start): Likewise.
28734         (mips_output_external): Remove IRIX 5/6 O32 support.
28735         (mips_output_function_prologue): Likewise.
28736         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
28737         TARGET_IRIX6.
28738         (TARGET_CPU_CPP_BUILTINS): Likewise.
28739         (TARGET_IRIX): Removed.
28740         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
28741         (MULTILIB_DIRNAMES): Removed 32.
28742         (MULTILIB_OSDIRNAMES): Removed ../lib.
28743         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
28744         (Specific, mips-sgi-irix5): Document removal.
28745         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
28746         Remove references to older IRIX 6 releases and the O32 ABI.
28747
28748 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
28749
28750         PR bootstrap/43994
28751         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
28752         instead of DF_REF_REAL_REG.
28753
28754 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
28755
28756         PR target/43888
28757         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
28758         handling to still return true for x64 targets.
28759
28760 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
28761
28762         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
28763
28764 2010-05-06  Jan Hubicka  <jh@suse.cz>
28765
28766         PR tree-optimization/43791
28767         * ipa-inline.c (update_caller_keys): Remove bogus
28768         disregard_inline_limits check.
28769
28770 2010-05-06  Michael Matz  <matz@suse.de>
28771
28772         PR tree-optimization/43984
28773         * tree-ssa-pre.c (inserted_phi_names): Remove.
28774         (inserted_exprs): Change to bitmap.
28775         (create_expression_by_pieces): Set bits, don't append to vector.
28776         (insert_into_preds_of_block): Don't handle inserted_phi_names.
28777         (eliminate): Don't look at inserted_phi_names, remove deleted
28778         insns from inserted_exprs.
28779         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
28780         (init_pre, fini_pre): Allocate and free bitmaps.
28781         (execute_pre): Insert insns on edges before elimination.
28782
28783 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
28784
28785         * tree.c (initializer_zerop): Handle STRING_CST.
28786
28787 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28788
28789         PR 40989
28790         * doc/invoke.texi (Wimplicit): Document as C only.
28791         * opts.c (common_handle_option): Add argument kind.
28792         (handle_option): Rename as read_cmdline_option. Factor out code to...
28793         (handle_option): ... here. New.
28794         (handle_options): Rename as read_cmdline_options.
28795         (decode_options): Update call.
28796         (set_option): Use option index instead of option pointer. Classify
28797         diagnostics correctly.
28798         (enable_warning_as_error): Call handle_option.
28799         * opts.h (set_option): Update declaration.
28800         (handle_option): Declare.
28801         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
28802         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
28803         * c-opts.c (set_Wimplicit): Delete.
28804         (c_family_lang_mask): New static constant.
28805         (c_common_handle_option): Add argument kind. Use handle_option
28806         instead of set_Wimplicit.
28807         (c_common_post_options): warn_implicit and warn_implicit_int
28808         are disabled by default.
28809         * c-common.c (warn_implicit): Do not define here.
28810         * c-common.h (warn_implicit): Do not declare here.
28811         (c_common_handle_option): Update declaration.
28812         * lto-opts.c (lto_reissue_options): Update call to set_option.
28813
28814 2010-05-06  Richard Guenther  <rguenther@suse.de>
28815
28816         PR tree-optimization/43571
28817         * domwalk.c (walk_dominator_tree): Walk the dominator
28818         sons in more optimal order.
28819
28820 2010-05-06  Richard Guenther  <rguenther@suse.de>
28821
28822         PR tree-optimization/43934
28823         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
28824         (stmt_cost): Likewise.
28825         (extract_true_false_args_from_phi): New helper.
28826         (determine_max_movement): For PHI nodes verify we can hoist them
28827         and compute their cost.
28828         (determine_invariantness_stmt): Handle PHI nodes.
28829         (move_computations_stmt): Likewise.  Hoist PHI nodes in
28830         if-converted form using COND_EXPRs.
28831         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
28832         (tree_ssa_lim): Likewise.
28833         * tree-flow.h (tree_ssa_lim): Adjust prototype.
28834         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
28835
28836 2010-05-06  Richard Guenther  <rguenther@suse.de>
28837
28838         PR tree-optimization/43987
28839         * tree-ssa-structalias.c (could_have_pointers): For possibly
28840         address-taken variables force pointers to be recorded.
28841         (create_variable_info_for_1): Likewise.
28842         (push_fields_onto_fieldstack): Pass in wheter all fields
28843         must have pointers.
28844         (find_func_aliases): Query types instead of vars whether
28845         they contain pointers where appropriate.
28846
28847 2010-05-06  Jan Hubicka  <jh@suse.cz>
28848
28849         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
28850         (record_reference, mark_address, mark_load, mark_store): Record
28851         references.
28852         (record_references_in_initializer): Update call of record_references.
28853         (rebuild_cgraph_edges): Remove all references before rebuiding.
28854         * cgraph.c (cgraph_create_node): Clear ref list.
28855         (cgraph_remove_node): Remove references.
28856         (dump_cgraph_node): Dump references.
28857         (cgraph_clone_node): Clone references.
28858         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
28859         (struct cgraph_node, varpool_node): Add ref_lst.
28860         * ipa-ref.c: New file.
28861         * ipa-ref.h: New file.
28862         * ipa-ref-inline.h: New file.
28863         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
28864         (referenced_from_other_partition_p): New function.
28865         (lto_output_varpool_node): Take set arugment; call
28866         referenced_from_other_partition.
28867         (lto_output_ref): New.
28868         (add_references): New.
28869         (output_refs): New.
28870         (output_cgraph): Compute boundary based on references; output refs.
28871         (output_varpool): Accept cgraph_node_set argument.
28872         (input_ref): New.
28873         (input_refs): New.
28874         (input_cgraph): Call input_refs.
28875         * lto-section-in.c (lto_section_name): Add refs.
28876         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
28877         (ipa-ref.o): New file.
28878         * varpool.c (varpool_node): Clear ipa ref list.
28879         (varpool_remove_node): Remove references.
28880         (dump_varpool_node): Dump references.
28881         (varpool_assemble_decl): Only compile finalized ones.
28882         (varpool_extra_name_alias): Initialize ref list.
28883         * lto-streamer.c (lto-get_section_name): Add .refs section.
28884         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
28885         (referenced_from_other_partition_p): Declared.
28886
28887 2010-05-06  Ira Rosen  <irar@il.ibm.com>
28888
28889         PR tree-optimization/43901
28890         * tree-vect-stmts.c (vectorizable_call): Assert that vector
28891         type is not NULL if it's transformation phase, and return
28892         FALSE if it's analysis.
28893         (vectorizable_conversion, vectorizable_operation,
28894         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
28895
28896 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
28897
28898         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28899         Delete.
28900         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28901         New define.
28902         * config/mips/mips-protos.h
28903         (mips_small_register_classes_for_mode_p): Delete prototype.
28904
28905 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
28906
28907         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
28908         * config/arm/arm.c (multiple_operation_profitable_p,
28909         compute_offset_order): New static functions.
28910         (load_multiple_sequence, store_multiple_sequence): Use them.
28911         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
28912         memory offsets, not register numbers.
28913         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
28914
28915 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
28916
28917         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
28918         (get_pending_sizes, put_pending_size, put_pending_sizes):
28919         Update the uses of pending_sizes.
28920         * c-decl.c (store_parm_decls): Likewise.
28921         * c-tree.h (struct c_arg_info): Likewise.
28922         * tree.h: Update the prototype for get_pending_sizes and
28923         put_pending_sizes.
28924
28925 2010-05-05  Jason Merrill  <jason@redhat.com>
28926
28927         PR debug/43370
28928         * c-common.c (handle_aligned_attribute): Respect
28929         ATTR_FLAG_TYPE_IN_PLACE.
28930
28931         PR testsuite/43758
28932         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
28933         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
28934         (TARGET_INITIALIZER): Use it.
28935         * c-common.c (attribute_takes_identifier_p): Call it.
28936         * c-common.h: Update prototype.
28937         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
28938         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
28939
28940 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
28941
28942         PR debug/43950
28943         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
28944         DW_ID_down_case for Fortran compilation units.
28945
28946 2010-05-05  Jan Hubicka  <jh@suse.cz>
28947
28948         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
28949         handle aliases.
28950
28951 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
28952
28953         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
28954         a variable-sized RESULT_DECL.
28955
28956 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
28957
28958         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
28959
28960 2010-05-05  Jason Merrill  <jason@redhat.com>
28961
28962         PR c++/43787
28963         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
28964         returns GS_OK.
28965         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
28966
28967 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
28968             Jakub Jelinek  <jakub@redhat.com>
28969
28970         PR debug/43478
28971         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
28972         (dead_debug_init, dead_debug_finish): New functions.
28973         (dead_debug_add, dead_debug_insert_before): Likewise.
28974         (df_note_bb_compute): Initialize a dead_debug object, add dead
28975         debug uses to it, insert debug bind insns before death insns,
28976         reset debug insns that refer to pending uses at the end.
28977         * rtl.h (make_debug_expr_from_rtl): New prototype.
28978         * varasm.c (make_debug_expr_from_rtl): New function.
28979
28980 2010-05-05  Jan Hubicka  <jh@suse.cz>
28981
28982         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
28983         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
28984         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
28985         lto_varpool_encoder_deref, lto_varpool_encoder_size,
28986         lto_varpool_encoder_encode_initializer_p,
28987         lto_set_varpool_encoder_encode_initializer): New functions.
28988         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
28989         call output_varpool.
28990         (input_varpool_node): Do not always set analyzed.
28991         (input_cgraph_1): Return vector of cgraph nodes.
28992         (input_varpool_1): Return vector of varpools.
28993         (input_cgraph): Free the vectors.
28994         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
28995         output only initializers needed.
28996         (lto_output): Only call output_cgraph.
28997         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
28998         * lto-section-out.c (lto_new_out_decl_state): Initialize
28999         state->varpool_node_encoder.
29000         * lto-streamer.h (lto_varpool_encoder_d): New.
29001         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
29002         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
29003         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
29004         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
29005         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
29006         Declare.
29007         (output_varpool, input_varpool): Remove declarations.
29008
29009 2010-05-05  Jan Hubicka  <jh@suse.cz>
29010
29011         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
29012         with body can prevail.
29013
29014 2010-05-05  Jan Hubicka  <jh@suse.cz>
29015
29016         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
29017         size.
29018
29019 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29020
29021         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
29022
29023         * gengtype.h (erro_at_line): Constify pos argument.
29024
29025         * gengtype.c: Include hashtab.h.
29026         (enum gc_used): Document GC_MAYBE_POINTED_TO.
29027         (error_at_line): Constify pos argument.
29028         (do_typedef): Initialize p->opt field.
29029         (get_file_gtfilename): Fix comment typo.
29030         (struct walk_type_data): Constify line field.
29031         (get_output_file_for_structure): New function.
29032         (write_local_func_for_structure): Constify orig_s argument.
29033         Use get_output_file_for_structure.
29034         (write_func_for_structure): Use get_output_file_for_structure.
29035         (INDENT): New define.
29036         (dump_pair, dump_type, dump_type_list, dump_typekind)
29037         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
29038         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
29039         functions.
29040         (seen_types): New variable.
29041         (main): New variable do_dump.  Process "-d" command line option.
29042         Call dump_everything if dump requested.
29043
29044 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29045
29046         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
29047         in a temporary instead of invoking the macro multiple times.
29048         (track_expr_p): Likewise.
29049
29050 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
29051
29052         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
29053         per new semantics.
29054         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
29055         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
29056         conditions for printing notes.
29057         * common.opt (-Wcoverage-mismatch): Allow negative, default to
29058         true, update documentation.
29059         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
29060
29061 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
29062
29063         PR c/43981
29064         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
29065         on dimen.
29066
29067 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29068
29069         PR target/43799
29070         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
29071         (*sse_prologue_save_insn1): Likewise.
29072         (SSE prologue save splitter): Likewise.
29073
29074 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
29075
29076         * tree.c (free_lang_data_in_one_sizepos): New inline function.
29077         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
29078         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
29079         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
29080         all decls.  Call it on DECL_FIELD_OFFSET of fields.
29081         (find_decls_types_r): Follow DECL_VALUE_EXPR.
29082         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
29083
29084 2010-05-04  Martin Jambor  <mjambor@suse.cz>
29085
29086         * tree-sra.c (build_access_from_expr_1): The first parameter type
29087         changed to simple tree.
29088         (build_access_from_expr): Likewise, gsi parameter was eliminated.
29089         (scan_assign_result): Renamed to assignment_mod_result, enum elements
29090         renamed as well.
29091         (build_accesses_from_assign): Removed all parameters except for a
29092         simple gimple statement.  Now returns a simple bool.
29093         (scan_function): All non-analysis parts moved to separate functions
29094         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
29095         parameters and updated both callers.
29096         (sra_modify_expr): Removed parameter data.
29097         (sra_modify_function_body): New function.
29098         (perform_intra_sra): Call sra_modify_function_body to modify the
29099         function body.
29100         (replace_removed_params_ssa_names): Parameter data changed into
29101         adjustments vector.
29102         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
29103         changed the parameter dont_convert to convert with the opposite
29104         meaning.
29105         (sra_ipa_modify_assign): Parameter data changed into adjustments
29106         vector, return value changed to bool.
29107         (ipa_sra_modify_function_body): New function.
29108         (sra_ipa_reset_debug_stmts): Updated a comment.
29109         (modify_function): Use ipa_sra_modify_function_body to modify function
29110         body.
29111
29112 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29113
29114         PR middle-end/43671
29115         * alias.c (true_dependence): Handle the same VALUE in x and mem.
29116         (canon_true_dependence): Likewise.
29117         (write_dependence_p): Likewise.
29118
29119 2010-05-04  Jan Hubicka  <jh@suse.cz>
29120
29121         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
29122         * cgraphbuild.c: Include ipa-utils.h
29123         (record_reference_ctx): New struct.
29124         (record_reference): Simplify to work on initializers; not statements.
29125         (mark_address, mark_load, mark_store): New.
29126         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29127         walk PHI nodes too.
29128         (record_references_in_initializer): Update use of record_reference.
29129         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29130         walk PHI nodes too.
29131
29132 2010-05-04  Jan Hubicka  <jh@suse.cz>
29133
29134         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
29135         node will be removed anyway.
29136         (lto_varpool_replace_node): Allow also unanalyzed nodes;
29137         relink aliases of node into prevailing node.
29138         * varpool.c (varpool_remove_node): Remove aliases properly;
29139         when removing node, remove all its aliases too; remove DECL_INITIAL
29140         of removed node; ggc_free the varpool node.
29141
29142 2010-05-04  Richard Guenther  <rguenther@suse.de>
29143
29144         PR tree-optimization/43879
29145         * tree-ssa-structalias.c (alias_get_name): Use
29146         DECL_ASSEMBLER_NAME if available.
29147         (create_function_info_for): Return the varinfo node.
29148         (ipa_pta_execute): Associate same-body aliases and extra names
29149         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
29150
29151 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
29152
29153         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
29154
29155 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
29156
29157         PR bootstrap/43964
29158         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
29159         only if HONOR_REG_ALLOC_ORDER is not defined.
29160
29161 2010-05-04  Richard Guenther  <rguenther@suse.de>
29162
29163         PR tree-optimization/43949
29164         * tree-vrp.c (extract_range_from_binary_expr): Only handle
29165         TRUNC_MOD_EXPR.
29166
29167 2010-04-26  Jason Merrill  <jason@redhat.com>
29168
29169         * c.opt (-fstrict-enums): New.
29170         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
29171
29172 2010-05-03  David Ung  <davidu@mips.com>
29173             James E. Wilson  <wilson@codesourcery.com>
29174
29175         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
29176         emit the trap instruction before the divide for TUNE_74K.
29177
29178 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
29179
29180         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
29181         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
29182         based on the above, for new target hook.
29183
29184         * hooks.c (hook_bool_mode_true): New generic hook.
29185         * hooks.h (hook_bool_mode_true): Add prototype.
29186
29187         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
29188         target hook.
29189         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
29190         target hook, set to hook_bool_mode_false.
29191         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
29192         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
29193         with targetm.small_register_classes_for_mode_p.
29194         (find_reusable_reload): Likewise.
29195         (combine_reloads): Likewise.
29196         * reload1.c (reload_as_needed): Likewise.
29197         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
29198         * ifcvt.c (noce_process_if_block, check_cond_move_block,
29199         dead_or_predicable): Likewise.
29200         * regmove.c (optimize_reg_copy_1): Likewise.
29201         * calls.c (prepare_call_address): Likewise.
29202         (precompute_register_parameters): Likewise.
29203
29204         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
29205         hook definition.
29206         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
29207         implementation of the hook that considers all register classes
29208         small except for SH64.
29209         (sh_override_options): Use the new hook.
29210         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
29211         Add prototype.
29212
29213         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
29214         hook definition.
29215         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
29216         implementation of the hook that considers all register classes
29217         small for THUMB1.
29218         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
29219         Add prototype.
29220
29221         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
29222         hook definition.
29223         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
29224         implementation of the hook that considers all register classes
29225         small for MIPS16.
29226         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
29227         Add prototype.
29228
29229         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
29230         hook definition.
29231         * config/m32c/m32c.h: Likewise.
29232         * config/pdp11/pdp11.h: Likewise.
29233         * config/avr/avr.h: Likewise.
29234         * config/xtensa/xtensa.h: Likewise.
29235         * config/m68hc11/m68hc11.h: Likewise.
29236         * config/mn10300/mn10300.h: Likewise.
29237         * config/mcore/mcore.h: Likewise.
29238         * config/h8300/h8300.h: Likewise.
29239         * config/bfin/bfin.h: Likewise.
29240
29241         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29242         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29243
29244 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
29245
29246         * double-int.h (tree_to_double_int): Remove macro.
29247         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29248         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29249         (tree_to_double_int): New function.
29250         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29251         Move ...
29252         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29253
29254 2010-05-03  Richard Guenther  <rguenther@suse.de>
29255
29256         PR tree-optimization/43971
29257         * tree-ssa-structalias.c (get_constraint_for_1): Fix
29258         constraints in the !flag_delete_null_pointer_checks case.
29259
29260 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
29261
29262         PR debug/43972
29263         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
29264         result mode matches original rtl mode.
29265
29266 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
29267
29268         PR target/43888
29269         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
29270
29271 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29272
29273         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
29274         when processing flag options.
29275
29276 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29277
29278         * gcov-iov.c (main): Change format string placeholder
29279         from %#08x to 0x%08x.
29280         * genchecksum.c (dosum): Change format string placeholder
29281         from %#02x to 0x%02x.
29282
29283 2010-05-02  Richard Guenther  <rguenther@suse.de>
29284
29285         PR tree-optimization/43879
29286         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
29287
29288 2010-05-02  Bruno Haible  <bruno@clisp.org>
29289
29290         * doc/extend.texi (Function Attributes): Fix a typo.
29291
29292 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29293
29294         Revert:
29295         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
29296         placeholder from 0x%x to %#x.
29297         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29298         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29299         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29300         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29301         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29302         * config/i386/i386.c (ix86_target_string): Ditto.
29303         * config/i386/i386.c (output_pic_addr_const): Ditto.
29304         (print_operand): Ditto.
29305
29306 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29307
29308         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
29309         placeholder from 0x%x to %#x.
29310         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
29311         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
29312         (ASM_OUTPUT_DEBUG_DATA): Ditto.
29313         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
29314         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
29315         * optc-gen.awk: Ditto.
29316         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
29317         (HOST_WIDE_INT_PRINT_HEX): Ditto.
29318         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
29319         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29320
29321 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29322
29323         * target.h (struct calls): Add function_value_regno_p field.
29324         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
29325         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
29326         * targhooks.c (default_function_value_regno_p): New function.
29327         * targhooks.h (default_function_value_regno_p): Declare function.
29328         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
29329         * builtins.c. (apply_result_size): (Ditto.).
29330         * combine.c. (likely_spilled_retval_p): (Ditto.).
29331         * mode-switching.c. Include 'target.h'.
29332         (create_pre_exit): Use function_value_regno_p hook.
29333         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
29334         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
29335         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
29336
29337         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
29338         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
29339         (ix86_function_value_regno_p): Declare as static, change argument
29340         type to const unsigned int.
29341         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
29342
29343 2010-05-01  Richard Guenther  <rguenther@suse.de>
29344
29345         PR tree-optimization/43949
29346         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
29347         types.
29348         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
29349
29350 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29351
29352         * rtl.h (CONST_DOUBLE_P): Define.
29353         (rtx_to_double_int): Declare.
29354         * emit-rtl.c (rtx_to_double_int): New function.
29355         * dwarf2out.c (insert_double): New function.
29356         (loc_descriptor, add_const_value_attribute): Clean up, use
29357         rtx_to_double_int and insert_double functions.
29358
29359 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
29360
29361         * doc/extend.texi (Inline): Add missing return keyword to examples.
29362         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
29363         "command-line".
29364
29365 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
29366
29367         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
29368         the variable part of the offset as well.  Use highest_pow2_factor for
29369         all alignment checks.
29370
29371 2010-04-30  Richard Guenther  <rguenther@suse.de>
29372
29373         PR tree-optimization/43879
29374         * tree-ssa-structalias.c (type_could_have_pointers): Functions
29375         can have pointers.
29376
29377 2010-04-30  Jan Hubicka  <jh@suse.cz>
29378
29379         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
29380         varpool.
29381         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
29382
29383 2010-04-30  Jan Hubicka  <jh@suse.cz>
29384
29385         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
29386         New.
29387         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
29388         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
29389         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
29390         cgraph_node_set_needs_ltrans_p): Remove.
29391
29392 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29393
29394         * sdbout.c: Include vec.h, do not include varray.h.
29395         (deferred_global_decls, sdbout_global_decl,
29396         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
29397         * toplev.c: Do not include varray.h.
29398         (dump_memory_report): Do not dump VARRAY statistics.
29399         * gengtype.c (open_base_file): Ignore varray.h.
29400         * Makefile.in: Update for abovementioned changes.
29401         Remove all traces of varray.c and varray.h.
29402         * varray.c: Remove file.
29403         * varray.h: Remove file.
29404
29405 2010-04-30  Jan Hubicka  <jh@suse.cz>
29406
29407         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
29408         references.
29409
29410 2010-04-30  Jan Hubicka  <jh@suse.cz>
29411
29412         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
29413         needed.
29414
29415 2010-04-30  Richard Guenther  <rguenther@suse.de>
29416
29417         * tree-ssa-structalias.c (get_constraint_for_1): Generate
29418         constraints for CONSTRUCTOR.
29419
29420 2010-04-30  Richard Guenther  <rguenther@suse.de>
29421
29422         PR lto/43946
29423         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
29424         first after all lowering passes.
29425
29426 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29427
29428         * toplev.c: Include varray.h for statistics dumping.
29429         * tree.h: Do not declare varray_head_tag.
29430         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
29431         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
29432         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
29433         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
29434         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
29435         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
29436         c-common.c, c-common.h, reg-stack.c, basic-block.h,
29437         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
29438         include varray.h.
29439         * Makefile.in: Update for abovementioned changes.
29440
29441 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
29442
29443         PR debug/43942
29444         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
29445
29446 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29447
29448         * config/picochip/picochip.c (picochip_legitimize_address): Define.
29449         Use this function to do machine-specific conversion.
29450         (picochip_legitimize_reload_address): Likewise.
29451         (picochip_legitimate_address_p): Check valid base register only if
29452         strict.
29453         (picochip_check_conditional_copy): Check for modw only if opnd is
29454         register.
29455         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
29456         to call the function in c.
29457         * config/picochip/picochip-protos.h
29458         (picochip_legitimize_reload_address): Define.
29459         * config/picochip/picochip.md (supported_compare1): Define.
29460
29461 2010-04-30  Jan Hubicka  <jh@suse.cz>
29462
29463         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
29464         (cgraph_global_info): Remove inlined.
29465         (LTO_cgraph_tag_names): Remove.
29466         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
29467         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
29468         simplify cgraph tags and document.
29469         (lto_output_node): Use only LTO_cgraph_unavail_node and
29470         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
29471         for_functions_valid, global info, process and output flags.
29472         (input_overwrite_node): Initialize estimated stack size and
29473         estimated growth.  Do not read flags we no longer store.
29474         (input_node): Likewise do not read info no longer stored.
29475         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
29476         flag.
29477
29478 2010-04-30  Richard Guenther  <rguenther@suse.de>
29479
29480         PR tree-optimization/43879
29481         * tree-ssa-structalias.c (get_constraint_for_1): Properly
29482         handle non-zero initializers.
29483
29484 2010-04-30  Richard Guenther  <rguenther@suse.de>
29485
29486         * builtins.c (fold_builtin_1): Delete free (0).
29487
29488 2010-04-29  Jan Hubicka  <jh@suse.cz>
29489
29490         * gengtype.c (open_base_files): Add lto-streamer.h
29491         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
29492         (pass_ipa_cp): GGC collect.
29493         * toplev. (compile_file): Do not output symbols.
29494         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
29495         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
29496         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
29497         * lto-section-in.c: Include ggc.h
29498         (lto_new_in_decl_state): Alloc in GGC.
29499         (lto_delete_in_decl_state): Likewise.
29500         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
29501         Collect.
29502
29503 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
29504
29505         PR target/42895
29506         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
29507         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
29508         (HONOR_REG_ALLOC_ORDER): Describe new macro.
29509         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
29510         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
29511         account only if HONOR_REG_ALLOC_ORDER is not defined.
29512         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
29513         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
29514
29515 2010-04-29  Jon Grant  <04@jguk.org>
29516
29517         * collect2.c (vflag): Change type from int to bool.
29518         (debug): Likewise.
29519         (helpflag): New global bool.
29520         (main): Set vflag and debug with boolean, not integer truth values.
29521         Accept new "--help" option and output usage text if found.
29522         * collect2.h (vflag): Update prototype.
29523         (debug): Likewise.
29524
29525 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
29526
29527         PR bootstrap/43936
29528         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
29529
29530 2010-04-29  Richard Guenther  <rguenther@suse.de>
29531
29532         PR bootstrap/43935
29533         * plugin.h (invoke_plugin_callbacks): Annotate arguments
29534         with ATTRIBUTE_UNUSED.
29535
29536 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
29537
29538         PR target/43921
29539         * config/i386/i386.c (get_some_local_dynamic_name): Replace
29540         INSN_P with NONDEBUG_INSN_P.
29541         (distance_non_agu_define): Likewise.
29542         (distance_agu_use): Likewise.
29543
29544 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
29545
29546         From Dominique d'Humieres  <dominiq@lps.ens.fr>
29547         PR bootstrap/43858
29548         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
29549         test_set.
29550
29551 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
29552
29553         * plugin.h (invoke_plugin_callbacks): New inline function.
29554         * plugin.c (flag_plugin_added): New global flag.
29555         (add_new_plugin): Initialize above flag.
29556         (invoke_plugin_callbacks): Rename to ...
29557         (invoke_plugin_callbacks_full): ... this.
29558
29559 2010-04-28  Jan Hubicka  <jh@suse.cz>
29560
29561         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
29562         (lto_varpool_replace_node): New.
29563         (lto_symtab_resolve_symbols): Resolve varpool nodes.
29564         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
29565         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
29566         * cgraph.h (varpool_node_ptr): New type.
29567         (varpool_node_ptr): New vector.
29568         (varpool_node_set_def): New structure.
29569         (varpool_node_set): New type.
29570         (varpool_node_set): New vector.
29571         (varpool_node_set_element_def): New structure.
29572         (varpool_node_set_element, const_varpool_node_set_element): New types.
29573         (varpool_node_set_iterator): New type.
29574         (varpool_node): Add prev pointers, add used_from_other_partition,
29575         in_other_partition.
29576         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
29577         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
29578         varpool_get_node, varpool_remove_node): Declare.
29579         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
29580         varpool_node_set_size): New inlines.
29581         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
29582         * tree-pass.h (varpool_node_set_def): Forward declare.
29583         (ipa_opt_pass_d): Summary writting takes vnode sets too.
29584         (ipa_write_optimization_summaries): Update prototype.
29585         * ipa-cp.c (ipcp_write_summary): Update.
29586         * ipa-reference.c (ipa_reference_write_summary): Update.
29587         * lto-cgraph.c (lto_output_varpool_node): New static function.
29588         (output_varpool): New function.
29589         (input_varpool_node): New static function.
29590         (input_varpool_1): New function.
29591         (input_cgraph): Input varpool.
29592         * ipa-pure-const.c (pure_const_write_summary): Update.
29593         * lto-streamer-out.c (lto_output): Update, output varpool too.
29594         (write_global_stream): Kill WPA hack.
29595         (produce_asm_for_decls): Update.
29596         (output_alias_pair_p): Handle variables.
29597         (output_unreferenced_globals): Output only needed partition of varpool.
29598         * ipa-inline.c (inline_write_summary): Update.
29599         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
29600         cgraph.
29601         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
29602         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
29603         varpool_node_set_new, varpool_node_set_add,
29604         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
29605         debug_varpool_node_set): New functions.
29606         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
29607         (execute_one_pass): Process new decls too.
29608         (ipa_write_summaries_2): Pass around vsets.
29609         (ipa_write_summaries_1): Likewise.
29610         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
29611         to add.
29612         (ipa_write_optimization_summaries_1): Pass around vsets.
29613         (ipa_write_optimization_summaries): Likewise.
29614         * varpool.c (varpool_get_node): New.
29615         (varpool_node): Update doubly linked lists.
29616         (varpool_remove_node): New.
29617         (dump_varpool_node): More dumping.
29618         (varpool_enqueue_needed_node): Update doubly linked lists.
29619         (decide_is_variable_needed): Kill ltrans hack.
29620         (varpool_finalize_decl): Kill lto hack.
29621         (varpool_assemble_decl): Skip decls in other partitions.
29622         (varpool_assemble_pending_decls): Update doubly linkes lists.
29623         (varpool_empty_needed_queue): Likewise.
29624         (varpool_extra_name_alias): Likewise.
29625         * lto-streamer.c (lto_get_section_name): Add vars section.
29626         * lto-streamer.h (lto_section_type): Update.
29627         (output_varpool, input_varpool): Declare.
29628
29629 2010-04-28  Mike Stump  <mikestump@comcast.net>
29630
29631         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
29632
29633 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29634
29635         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
29636         record or union type with RECORD_OR_UNION_TYPE_P predicate.
29637         (lto_input_ts_type_tree_pointers): Likewise.
29638         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
29639         (lto_output_ts_type_tree_pointers): Likewise.
29640
29641 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29642
29643         Uniquization of constants at the Tree level
29644         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
29645         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
29646         bit to the end.
29647         (tree_output_constant_def): Declare.
29648         * gimplify.c (gimplify_init_constructor): When using block copy, first
29649         uniquize the constant constructor on the RHS.
29650         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
29651         DECL_IN_CONSTANT_POOL flag.
29652         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
29653         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
29654         constant pool.
29655         (assemble_variable): Deal with symbols belonging to the tree constant
29656         pool.
29657         (get_constant_section): Add ALIGN parameter and simplify.
29658         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
29659         (assemble_constant_contents): Use the expression of the VAR_DECL.
29660         (output_constant_def_contents): Use the alignment of the VAR_DECL.
29661         (tree_output_constant_def): New global function.
29662         (mark_constant): Use the expression of the VAR_DECL.
29663         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
29664         its expression.
29665         (output_object_block): Likewise and assemble the expression.
29666
29667 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29668
29669         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
29670         hash_tree, eq_tree): New tree hash table.
29671         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
29672         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
29673         lto_orig_address_remove): Reimplement.
29674
29675 2010-04-28  Xinliang David Li  <davidxl@google.com>
29676
29677         PR c/42643
29678         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
29679         (compute_uninit_opnds_pos): New function.
29680         (is_non_loop_exit_postdominating): New function.
29681         (compute_control_dep_chain): New function.
29682         (find_pdom): New function.
29683         (convert_control_dep_chain_into_preds): New function.
29684         (find_predicates): New function.
29685         (find_control_equiv_block): New function.
29686         (collect_phi_def_edges): New function.
29687         (find_def_preds): New function.
29688         (find_dom): New function.
29689         (dump_predicates): New function.
29690         (get_cmp_code): New function.
29691         (is_value_included_in): New function.
29692         (find_matching_predicate_in_rest_chains): New function.
29693         (use_pred_not_overlap_with_undef_path_pred): New function.
29694         (is_use_properly_guarded): New function.
29695         (normalize_cond_1): New function.
29696         (is_and_or_or): New function.
29697         (normalize_cond): New function.
29698         (is_gcond_subset_of): New function.
29699         (is_subset_of_any): New function.
29700         (is_or_set_subset_of): New function.
29701         (is_and_set_subset_of): New function.
29702         (is_norm_cond_subset_of): New function.
29703         (is_pred_expr_subset_of): New function.
29704         (is_pred_chain_subset_of): New function.
29705         (is_included_in): New function.
29706         (is_superset_of): New function.
29707         (find_uninit_use): New function.
29708         (warn_uninitialized_phi): New function.
29709         (compute_possibly_undefined_names): New function.
29710         (ssa_undefined_value_p): New function.
29711         (execute_late_warn_uninitialized): New function.
29712         * tree-ssa.c (ssa_undefined_value_p): Removed.
29713         (warn_uninit): Changed to extern.
29714         (warn_uninitialized_phi): Removed.
29715         (warn_uninitialized_vars): Changed to extern.
29716         (execute_late_warn_uninitialized): Removed
29717         * tree-flow.h: Add new prototypes.
29718         * timevar.def: Add new time variable.
29719         * Makefile.in: Add new build file.
29720
29721 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
29722
29723         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
29724         type if available.
29725
29726 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29727
29728         PR target/22224
29729         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
29730
29731 2010-04-28  Martin Jambor  <mjambor@suse.cz>
29732
29733         * cgraph.h (struct cgraph_node): New field indirect_calls.
29734         (struct cgraph_indirect_call_info): New type.
29735         (struct cgraph_edge): Removed field indirect_call. New fields
29736         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
29737         (cgraph_create_indirect_edge): Declare.
29738         (cgraph_make_edge_direct): Likewise.
29739         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
29740         * ipa-prop.h (struct ipa_param_call_note): Removed.
29741         (struct ipa_node_params): Removed field param_calls.
29742         (ipa_create_all_structures_for_iinln): Declare.
29743         * cgraph.c: Described indirect edges and uids in initial comment.
29744         (cgraph_add_edge_to_call_site_hash): New function.
29745         (cgraph_edge): Search also among the indirect edges, use
29746         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
29747         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
29748         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
29749         site hash.
29750         (initialize_inline_failed): Assign a reason to indirect edges.
29751         (cgraph_create_edge_1): New function.
29752         (cgraph_create_edge): Moved some functionality to
29753         cgraph_create_edge_1.
29754         (cgraph_create_indirect_edge): New function.
29755         (cgraph_edge_remove_callee): Add an assert checking for
29756         non-indirectness.
29757         (cgraph_edge_remove_caller): Special-case indirect edges.
29758         (cgraph_remove_edge): Likewise.
29759         (cgraph_set_edge_callee): New function.
29760         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
29761         (cgraph_make_edge_direct): New function.
29762         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
29763         the declaration of the call statement matches.
29764         (cgraph_node_remove_callees): Special-case indirect edges.
29765         (cgraph_clone_edge): Likewise.
29766         (cgraph_clone_node): Clone also the indirect edges.
29767         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
29768         indirect_call, dump count of indirect_calls edges.
29769         * ipa-prop.c (iinlining_processed_edges): New variable.
29770         (ipa_note_param_call): Create indirect edges instead of
29771         creating notes.  New parameter node.
29772         (ipa_analyze_call_uses): New parameter node, pass it on to
29773         ipa_note_param_call.
29774         (ipa_analyze_stmt_uses): Likewise.
29775         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
29776         (print_edge_addition_message): Work on edges rather than on notes.
29777         (update_call_notes_after_inlining): Likewise, renamed to
29778         update_indirect_edges_after_inlining.
29779         (ipa_create_all_structures_for_iinln): New function.
29780         (ipa_free_node_params_substructures): Do not free notes.
29781         (ipa_edge_duplication_hook): Propagate bits within
29782         iinlining_processed_edges bitmap.
29783         (ipa_node_duplication_hook): Do not duplicate notes.
29784         (free_all_ipa_structures_after_ipa_cp): Renamed to
29785         ipa_free_all_structures_after_ipa_cp.
29786         (free_all_ipa_structures_after_iinln): Renamed to
29787         ipa_free_all_structures_after_iinln.
29788         (ipa_write_param_call_note): Removed.
29789         (ipa_read_param_call_note): Removed.
29790         (ipa_write_indirect_edge_info): New function.
29791         (ipa_read_indirect_edge_info): Likewise.
29792         (ipa_write_node_info): Do not stream notes, do stream information
29793         in indirect edges.
29794         (ipa_read_node_info): Likewise.
29795         (lto_ipa_fixup_call_notes): Removed.
29796         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
29797         * ipa-inline.c (pass_ipa_inline): Likewise.
29798         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
29799         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
29800         * tree-inline.c (copy_bb): Removed an unnecessary double check for
29801         is_gimple_call.
29802         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
29803         edges.
29804         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
29805         (output_cgraph): Stream also indirect edges.
29806         (lto_output_edge): Added capability to stream indirect edges.
29807         (input_edge): Likewise.
29808         (input_cgraph_1): Likewise.
29809         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
29810         of indirect edges.
29811
29812 2010-04-28  Richard Guenther  <rguenther@suse.de>
29813
29814         PR tree-optimization/43879
29815         PR tree-optimization/43909
29816         * tree-ssa-structalias.c (struct variable_info): Add
29817         only_restrict_pointers flag.
29818         (new_var_info): Initialize it.  Increment stats.total_vars here.
29819         (create_function_info_for): Do not increment stats.total_vars here.
29820         (get_function_part_constraint): Fix build with C++.
29821         (insert_into_field_list): Remove.
29822         (push_fields_onto_fieldstack): Properly merge fields.
29823         (create_variable_info_for): Split and simplify.
29824         (create_variable_info_for_1): New piece.
29825         (intra_create_variable_infos): Properly make restrict constraints
29826         from parameters.
29827
29828 2010-04-28  Richard Guenther  <rguenther@suse.de>
29829
29830         PR c++/43880
29831         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
29832
29833 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29834             Jan Hubicka  <hubicka@ucw.cz>
29835
29836         * doc/invoke.texi (-Wsuggest-attribute=const,
29837         -Wsuggest-attribute=pure): Document.
29838         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
29839         (function_always_visible_to_compiler_p,
29840         suggest_attribute, warn_function_pure, warn_function_const):
29841         New functions.
29842         (check_call): Improve debug info.
29843         (analyze_function): Do not check availability.
29844         (add_new_function): Check availability.
29845         (propagate): Output warnings.
29846         (skip_function_for_local_pure_const): New function.
29847         (local_pure_const): Use it; output warnings.
29848         * common.opt (Wsuggest-attribute=const,
29849         Wsuggest-attribute=pure): New.
29850
29851 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
29852
29853         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
29854         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
29855         or DW_CFA_def_cfa_offset{,_sf}.
29856
29857 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29858
29859         * tree.h: Fix truncated long macros.
29860
29861 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
29862
29863         * collect2.c (TARGET_64BIT): Redefine to target's default.
29864         * tlink.c: Likewise.
29865         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
29866         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
29867         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
29868         for underscoring __USER_LABEL_PREFIX__.
29869         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
29870         (SUB_LINK_ENTRY32): New.
29871         (SUB_LINK_ENTRY64): New.
29872         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
29873         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
29874         (SUB_LINK_ENTRY64): New.
29875         (SUB_LINK_ENTRY): New.
29876         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
29877         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
29878         x64 target is choosen.
29879         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
29880         * configure: Regenerated.
29881         * configure.ac (leading-mingw64-underscores): Option added.
29882
29883 2010-04-27  Jan Hubicka  <jh@suse.cz>
29884
29885         * doc/invoke.texi (-fipa-profile): Document.
29886         * opts.c (decode_options): Enable ipa-profile at -O1.
29887         * timevar.def (TV_IPA_PROFILE): Define.
29888         * common.opt (fipa-profile): Add.
29889         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
29890         flag for clones.
29891         (cgraph_propagate_frequency): Handle only local ones.
29892         * tree-pass.h (pass_ipa_profile): Declare.
29893         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
29894         (pass_ipa_profile): Use TV_IPA_PROFILE.
29895         * ipa.c (ipa_profile): New function.
29896         (gate_ipa_profile): Likewise.
29897         (pass_ipa_profile): New global variable.
29898         * passes.c (pass_ipa_profile): New.
29899
29900 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
29901
29902         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
29903
29904 2010-04-27  Martin Jambor  <mjambor@suse.cz>
29905
29906         PR middle-end/43812
29907         * ipa.c (dissolve_same_comdat_group_list): New function.
29908         (function_and_variable_visibility): Call
29909         dissolve_same_comdat_group_list when comdat group contains external or
29910         newly local nodes.
29911         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
29912         lists are circular and that they contain only DECL_ONE_ONLY nodes.
29913
29914 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29915
29916         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
29917         (const_hash_1) <VECTOR_CST>: New case.
29918         (compare_constant) <VECTOR_CST>: Likewise.
29919         <ADDR_EXPR>: Deal with LABEL_REFs.
29920         (copy_constant) <VECTOR_CST>: New case.
29921
29922 2010-04-27  Jan Hubicka  <jh@suse.cz>
29923
29924         * cgraph.c (cgraph_propagate_frequency): New function.
29925         * cgraph.h (cgraph_propagate_frequency): Declare.
29926         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
29927         cgraph_propagate_frequency.
29928
29929 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
29930
29931         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
29932
29933 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
29934
29935         PR target/40657
29936         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
29937         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
29938         here to determine which regs to push and how much stack to reserve.
29939
29940 2010-04-27  Jie Zhang  <jie@codesourcery.com>
29941
29942         * doc/gimple.texi (gimple_statement_with_ops): Remove
29943         addresses_taken field.
29944         (gimple_statement_with_memory_ops): Likewise.
29945
29946 2010-04-27  Jan Hubicka  <jh@suse.cz>
29947
29948         * tree-inline.c (eni_inlining_weights): Remove.
29949         (estimate_num_insns): Special case more builtins.
29950
29951 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
29952
29953         PR c/32207
29954         * c-typeck.c (build_binary_op): Move forward check for comparison
29955         pointer with null pointer constant and adjust the diagnostic message.
29956
29957 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
29958
29959         PR lto/42776
29960         * configure.ac (gcc_cv_as_section_has_align): Set if installed
29961         binutils supports extended .section directive needed by LTO, or
29962         warn if older binutils found.
29963         (LTO_BINARY_READER): New AC_SUBST'd variable.
29964         (LTO_USE_LIBELF): Likewise.
29965         * config.gcc (lto_binary_reader): New target-specific configure
29966         variable.
29967         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
29968         (LTO_USE_LIBELF): Likewise.
29969         * configure: Regenerate.
29970
29971         * collect2.c (is_elf): Rename from this ...
29972         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
29973          object files in addition to ELF-formatted ones.
29974         (scan_prog_file): Caller updated.  Also allow for LTO info marker
29975         symbol to be prefixed or not by an extra underscore.
29976
29977         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
29978         * config/i386/winnt.c: Also #include lto-streamer.h
29979         (i386_pe_asm_named_section): Specify 1-byte section alignment for
29980         LTO named sections.
29981         (i386_pe_asm_output_aligned_decl_common): Add comment.
29982         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
29983
29984 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
29985
29986         PR target/43889
29987         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
29988         Add missing earlyclobber for second alternative.
29989
29990 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
29991
29992         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
29993         bits for artificial defs at the top of the block.
29994         * fwprop.c (single_def_use_enter_block): Don't call it.
29995
29996 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
29997
29998         PR 43715
29999         * configure.ac: Use "$gcc_cv_nm -g" on darwin
30000         instead of "$gcc_cv_objdump -T".
30001         Use "-undefined dynamic_lookup" on darwin.
30002         * configure: Regenerate.
30003
30004 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
30005
30006         PR c/43893
30007         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
30008
30009 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30010
30011         * c-parser.c (struct c_token): Move location field up.
30012         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
30013         (struct c_declspecs): Convert typespec_word, storage_class, and
30014         default_int_p into bitfields.
30015         (struct c_declarator): Move loc field up.
30016
30017 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30018
30019         * cfgloop.h (struct loop): Move can_be_parallel field up.
30020         * ipa-prop.h (struct ip_node_params): Move bitfields up.
30021         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
30022         down.
30023         (struct iv_cand): Convert pos field into a bitfield.
30024         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
30025         field up.
30026         (struct _stmt_vec_info): Shuffle fields for better packing.
30027
30028 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30029
30030         * varasm.c (IN_NAMED_SECTION): Remove guard.
30031         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
30032         (IN_NAMED_SECTION_P): ...this.
30033         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
30034         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
30035
30036 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30037
30038         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
30039         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
30040         of shadowing it.  Fix comments.
30041
30042 2010-04-26  Jan Hubicka  <jh@suse.cz>
30043
30044         * cgraph.c (cgraph_create_node): Set node frequency to normal.
30045         (cgraph_clone_node): Copy function frequency.
30046         * cgraph.h (node_frequency): New enum
30047         (struct cgraph_node): Add.
30048         * final.c (rest_of_clean_state): Update.
30049         * lto-cgraph.c (lto_output_node): Output node frequency.
30050         (input_overwrite_node): Input node frequency.
30051         * tre-ssa-loop-ivopts (computation_cost): Update.
30052         * lto-streamer-out.c (output_function): Do not output function
30053         frequency.
30054         * predict.c (maybe_hot_frequency_p): Update and handle functions
30055         executed once.
30056         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
30057         attribute lookup.
30058         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
30059         (compute_function_frequency): Set noreturn functions to be executed
30060         once.
30061         (choose_function_section): Update.
30062         * lto-streamer-in.c (input_function): Do not input function frequency.
30063         * function.c (allocate_struct_function): Do not initialize function
30064         frequency.
30065         * function.h (function_frequency): Remove.
30066         (struct function): Remove function frequency.
30067         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
30068         (try_update): Update.
30069         * tree-inline.c (initialize_cfun): Do not update function frequency.
30070         * passes.c (pass_init_dump_file): Update.
30071         * i386.c (ix86_compute_frame_layout): Update.
30072         (ix86_pad_returns): Update.
30073
30074 2010-04-26  Jie Zhang  <jie@codesourcery.com>
30075
30076         PR tree-optimization/43833
30077         * tree-vrp.c (range_int_cst_p): New.
30078         (range_int_cst_singleton_p): New.
30079         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
30080         when both operands are constants.  Use range_int_cst_p in
30081         BIT_IOR_EXPR case.
30082
30083 2010-04-26  Jan Hubicka  <jh@suse.cz>
30084
30085         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
30086
30087 2010-04-26  Richard Guenther  <rguenther@suse.de>
30088
30089         PR lto/43080
30090         * gimple.c (gimple_decl_printable_name): Deal gracefully
30091         with a NULL DECL_NAME.
30092
30093 2010-04-26  Richard Guenther  <rguenther@suse.de>
30094
30095         PR lto/42425
30096         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
30097         if emitting debug information and it is either a function
30098         or a namespace decl.
30099
30100 2010-04-26  Ira Rosen  <irar@il.ibm.com>
30101
30102         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
30103         determine if the statement is vectorizable, and a macro to access it.
30104         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30105         Skip statements that can't be vectorized. If the analysis fails,
30106         mark the statement as unvectorizable if vectorizing basic block.
30107         (vect_compute_data_refs_alignment): Likewise.
30108         (vect_verify_datarefs_alignment): Skip statements marked as
30109         unvectorizable. Add print.
30110         (vect_analyze_group_access): Skip statements that can't be
30111         vectorized. If the analysis fails, mark the statement as
30112         unvectorizable if vectorizing basic block.
30113         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
30114         * tree-vect-stmts.c (vectorizable_store): Fix the number of
30115         generated stmts for SLP.
30116         (new_stmt_vec_info): Initialize the new field.
30117         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
30118         statements marked as unvectorizable.
30119
30120 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
30121
30122         * c-common.c (flag_isoc1x): New.
30123         (flag_isoc99): Update comment.
30124         * c-common.h (flag_isoc1x): New.
30125         (flag_isoc99): Update comment.
30126         * c-cppbuiltin.c (builtin_define_float_constants): Also define
30127         __<type>_DECIMAL_DIG__.
30128         * c-opts.c (set_std_c1x): New.
30129         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
30130         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
30131         * c.opt (-std=c1x, -std=gnu1x): New options.
30132         * doc/cpp.texi: Mention -std=c1x.
30133         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
30134         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
30135         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
30136         * doc/standards.texi: Mention C1X.
30137         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
30138         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
30139         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
30140         Define for C1X.
30141
30142 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
30143
30144         * config/i386/gmon-sol2.c (_mcleanup): Change format string
30145         placeholder from 0x%x to %#x.
30146         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30147         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30148         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30149         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30150         * config/i386/i386.c (ix86_target_string): Ditto.
30151         (output_pic_addr_const): Ditto.
30152         (print_operand): Ditto.
30153
30154 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
30155
30156         * combine.c (find_split_point): Add third argument.  Use it
30157         to find nested multiply-accumulate instructions.  Adjust calls.
30158         (try_combine): Adjust call to find_split_point.
30159
30160 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
30161
30162         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
30163
30164 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
30165
30166         PR tree-optimization/41442
30167         * fold-const.c (merge_truthop_with_opposite_arm): New function.
30168         (fold_binary_loc): Call it.
30169
30170 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30171
30172         * toplev.c (general_init): Set default for fdiagnostics-show-option.
30173         * opts.c (common_handle_option): Allow disabling it.
30174         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
30175
30176 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
30177
30178         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
30179         between modes if both types are integral.
30180
30181 2010-04-23  Richard Guenther  <rguenther@suse.de>
30182
30183         PR tree-optimization/43572
30184         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
30185
30186 2010-04-23  Richard Guenther  <rguenther@suse.de>
30187
30188         PR lto/43455
30189         * tree-inline.c (tree_can_inline_p): Also check compatibility
30190         of return types.
30191
30192 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30193
30194         PR tree-optimization/43846
30195         * tree-sra.c (struct access): New flag grp_assignment_read.
30196         (build_accesses_from_assign): Set grp_assignment_read.
30197         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
30198         (enum mark_read_status): New type.
30199         (analyze_access_subtree): Propagate grp_assignment_read, create
30200         accesses also if both direct_read and root->grp_assignment_read.
30201
30202 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30203
30204         PR middle-end/43835
30205         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
30206         function does not have type attributes.
30207
30208 2010-04-23  Richard Guenther  <rguenther@suse.de>
30209
30210         PR lto/42653
30211         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
30212         of FUNCTION_DECLs.
30213
30214 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30215
30216         * sese.h (create_if_region_on_edge): Remove.
30217
30218         * sese.c (create_if_region_on_edge): Make static.
30219
30220         * tree-inline.c: Do not include ggc.h.
30221
30222         * expr.c: Do not include ggc.h.
30223
30224         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
30225         dependencies.
30226
30227 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
30228
30229         PR target/43744
30230         * config/sh/sh.c (find_barrier): Don't emit a constant pool
30231         in the middle of insns for casesi_worker_2.
30232
30233 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
30234
30235         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
30236
30237 2010-04-22  Ira Rosen  <irar@il.ibm.com>
30238
30239         PR tree-optimization/43842
30240         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30241         loop unrolling in update of exit phis. Fix comment.
30242         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30243         least two reduction statements in the loop before starting SLP
30244         analysis.
30245
30246 2010-04-22  Nick Clifton  <nickc@redhat.com>
30247
30248         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30249
30250 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
30251
30252         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30253         to simplify a + ~a.
30254
30255 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30256
30257         * tree-parloops.c (loop_parallel_p): New argument
30258         parloop_obstack.  Pass it down.
30259         (parallelize_loops): New variable parloop_obstack.  Initialize it,
30260         pass it down, free it.
30261
30262         * tree-loop-linear.c (linear_transform_loops): Pass down
30263         lambda_obstack.
30264
30265         * tree-data-ref.h (lambda_compute_access_matrices): New argument
30266         of type struct obstack *.
30267
30268         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
30269         scratch_obstack.  Initialize it, pass down, free it.
30270
30271         * lambda.h (lambda_loop_new): Remove.
30272         (lambda_matrix_new, lambda_matrix_inverse)
30273         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
30274         argument of type struct obstack *.
30275
30276         * lambda-trans.c (lambda_trans_matrix_new): New argument
30277         lambda_obstack.  Pass it down, use obstack allocation for ret.
30278         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
30279         it down.
30280
30281         * lambda-mat.c (lambda_matrix_get_column)
30282         (lambda_matrix_project_to_null): Remove.
30283         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
30284         allocation for mat.
30285         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
30286         lambda_obstack.
30287
30288         * lambda-code.c (lambda_loop_new): New function.
30289         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
30290         (lambda_compute_auxillary_space, lambda_compute_target_space)
30291         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
30292         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
30293         (build_access_matrix): New argument lambda_obstack.  Use obstack
30294         allocation for am.
30295         (lambda_compute_step_signs, lambda_compute_access_matrices): New
30296         argument lambda_obstack.  Pass it down.
30297
30298 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30299
30300         * optabs.h (expand_widening_mult): Declare.
30301
30302 2010-04-22  Richard Guenther  <rguenther@suse.de>
30303
30304         PR tree-optimization/43845
30305         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
30306         lookup the CALL_EXPR function and arguments.
30307
30308 2010-04-22  Nick Clifton  <nickc@redhat.com>
30309
30310         * config/stormy16/stormy16.c
30311         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
30312         * config/stormy16/stormy16.h: Tidy up formatting.
30313         (DONT_USE_BUILTIN_SETJMP): Remove definition.
30314         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
30315         (ineqbranchsi): Delete pattern.
30316         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
30317         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
30318         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
30319         stormy16-lib2-ucmpsi2.c.
30320
30321 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30322
30323         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
30324         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
30325         extra set merge_set_noclobber, and use it to relax the final test
30326         slightly.
30327         * df.h (df_simulate_find_noclobber_defs): Declare.
30328         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
30329         conditional defs.
30330         (df_simulate_find_noclobber_defs): New function.
30331
30332 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
30333
30334         * config/i386/i386.md: Use {} around multi-line preparation statements.
30335
30336 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30337
30338         * c-tree.h (push_init_level, pop_init_level, set_init_index)
30339         (process_init_element): New argument of type struct obstack *.
30340
30341         * c-typeck.c (push_init_level, pop_init_level, set_designator)
30342         (set_init_index, set_init_label, set_nonincremental_init)
30343         (set_nonincremental_init_from_string, find_init_member)
30344         (output_init_element, output_pending_init_elements)
30345         (process_init_element): New argument braced_init_obstack.  Pass it
30346         down.
30347         (push_range_stack, add_pending_init): New argument
30348         braced_init_obstack.  Use obstack allocation.
30349
30350         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
30351         braced_init_obstack.  Pass it down.
30352         (c_parser_braced_init): New variables ret, braced_init_obstack.
30353         Initialize obstack, pass it down and finally free it.
30354
30355 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30356
30357         PR middle-end/29274
30358         * tree-pass.h (pass_optimize_widening_mul): Declare.
30359         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
30360         gate_optimize_widening_mul): New static functions.
30361         (pass_optimize_widening_mul): New.
30362         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
30363         <case MULT_EXPR>: Remove support for widening multiplies.
30364         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
30365         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
30366         simplify_gen_unary rather than directly building extensions.
30367         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
30368         WIDEN_MULT_EXPR.
30369         * expmed.c (expand_widening_mult): New function.
30370         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
30371
30372 2010-04-21  Jan Hubicka  <jh@suse.cz>
30373
30374         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
30375         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
30376         * lto-wpa-fixup.c: Remove.
30377         * Makefile.in (lto-wpa-fixup.o): Remove.
30378         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
30379         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
30380         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
30381
30382 2010-04-21  Jan Hubicka  <jh@suse.cz>
30383
30384         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
30385         add write_optimization_summary, read_optimization_summary.
30386         (ipa_write_summaries_of_cgraph_node_set): Remove.
30387         (ipa_write_optimization_summaries): Declare.
30388         (ipa_read_optimization_summaries): Declare.
30389         * ipa-cp.c (pass_ipa_cp): Update.
30390         * ipa-reference.c (pass_ipa_reference): Update.
30391         * ipa-pure-const.c (pass_ipa_pure_const): Update.
30392         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
30393         Update.
30394         * ipa-inline.c (pass_ipa_inline): Update.
30395         * ipa.c (pass_ipa_whole_program): Update.
30396         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
30397         * passes.c (ipa_write_summaries_1): Do not test wpa.
30398         (ipa_write_optimization_summaries_1): New.
30399         (ipa_write_optimization_summaries): New.
30400         (ipa_read_summaries): Do not test ltrans.
30401         (ipa_read_optimization_summaries_1): New.
30402         (ipa_read_optimization_summaries): New.
30403
30404 2010-04-21  Jan Hubicka  <jh@suse.cz>
30405
30406         * lto-cgraph.c (lto_output_node): Do not output comdat groups
30407         for boundary nodes.
30408         (output_cgraph): Do not arrange comdat groups for boundary nodes.
30409
30410 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30411
30412         PR debug/40040
30413         * dwarf2out.c (add_name_and_src_coords_attributes): Add
30414         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
30415
30416 2010-04-21  Jan Hubicka  <jh@suse.cz>
30417
30418         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
30419
30420 2010-04-21  Jan Hubicka  <jh@suse.cz>
30421
30422         * varpool.c (decide_is_variable_needed): Variable is always needed
30423         during ltrans.
30424
30425 2010-04-21  Jan Hubicka  <jh@suse.cz>
30426
30427         * opts.c (decode_options): Enable pure-const pass for whopr.
30428
30429 2010-04-21  Jan Hubicka  <jh@suse.cz>
30430
30431         * cgraph.c (dump_cgraph_node): Dump also assembler name.
30432         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
30433         at WPA dumping.
30434         (cgraph_decide_inlining): Do not expect callee to be removed in all
30435         cases.
30436
30437 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
30438
30439         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
30440
30441 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30442
30443         * config/i386/i386.md (x86_shrd): Add athlon_decode and
30444         amdfam10_decode attributes.
30445
30446 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30447
30448         PR middle-end/43570
30449         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
30450         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
30451         (lower_copyprivate_clauses): Use private var in outer
30452         context instead of original var.  Make sure the types
30453         are correct for VLAs.
30454
30455 2010-04-21  Richard Guenther  <rguenther@suse.de>
30456
30457         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
30458         to non-pointer objects.
30459
30460 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30461
30462         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
30463         last chain entry if it starts with the still current label.
30464         (add_location_or_const_value_attribute): Check that
30465         loc_list->first->next is NULL instead of comparing ->first with ->last.
30466         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
30467         to add_var_loc_to_decl.
30468
30469         * dwarf2out.c (output_call_frame_info): For dw_cie_version
30470         >= 4 add also address size and segment size fields into CIE header.
30471
30472         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
30473         long as address size is the same as sizeof (void *) and
30474         segment size is 0.
30475         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
30476         address size or segment size is unexpected, return DW_EH_PE_omit.
30477         (classify_object_over_fdes): If get_cie_encoding returned
30478         DW_EH_PE_omit, return -1.
30479         (init_object): If classify_object_over_fdes returned -1,
30480         pretend there were no FDEs at all.
30481
30482 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30483
30484         * config/i386/i386.md (bswap<mode>2): Macroize expander from
30485         bswap{si,di}2 using SWI48 mode iterator.
30486         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
30487         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
30488         set modrm attribute of bswap insn to 0 and remove length attribute.
30489         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
30490         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
30491         set mode attribute to <MODE> and remove length attribute.
30492
30493 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
30494
30495         PR rtl-optimization/43520
30496         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
30497         zero available registers.
30498
30499 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30500
30501         * builtins.c (fold_builtin_cproj): Fold more cases.
30502
30503 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30504
30505         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
30506         (fold_builtin_1): Fold builtin cproj.
30507         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
30508         Use ATTR_CONST_NOTHROW_LIST.
30509
30510 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
30511
30512         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
30513         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
30514         ffsi2_no_cmove for !TARGET_CMOVE.
30515         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
30516         (ffssi2): Remove expander.
30517         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
30518         mode iterator.
30519         (ctz<mode>2): Ditto from ctz{si,di}2.
30520         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
30521         mode iterator.
30522         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
30523         mode iterator.
30524
30525 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
30526
30527         * dwarf2out.c (AT_linkage_name): Define.
30528         (clone_as_declaration): Handle DW_AT_linkage_name.
30529         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
30530         of DW_AT_MIPS_linkage_name.
30531         (move_linkage_attr): Likewise.
30532         (dwarf2out_finish): Likewise.
30533
30534 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
30535
30536         PR middle-end/41952
30537         * fold-const.c (fold_comparison): New folding rule.
30538
30539 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
30540
30541         * double-int.h (double_int_setbit): Declare.
30542         * double-int.c (double_int_setbit): New function.
30543         * rtl.h (immed_double_int_const): Declare.
30544         * emit-rtl.c (immed_double_int_const): New function.
30545         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
30546         and immed_double_int_const functions.
30547         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
30548         expand_copysign_bit): (Ditto.).
30549         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
30550         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
30551         * dojump.c (prefer_and_bit_test): (Ditto.).
30552         * expr.c (convert_modes, reduce_to_bit_field_precision,
30553         const_vector_from_tree): (Ditto.).
30554         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30555
30556 2010-04-20  Jan Hubicka  <jh@suse.cz>
30557
30558         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
30559         (dump_cgraph_node): Dump new flags.
30560         * cgraph.h (struct cgraph_node): Add flags
30561         reachable_from_other_partition and in_other_partition.
30562         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
30563         other partition can not be removed.
30564         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
30565         the other partition must be output; silence sanity checking on
30566         leaking functions bodies from other paritition.
30567         * lto-cgraph.c (reachable_from_other_partition_p): New function.
30568         (lto_output_node): Output new flags; do not sanity check that inline
30569         clones are output; drop lto_forced_extern_inline_p code; do not mock
30570         visibility flags at partition boundaries.
30571         (add_node_to): New function.
30572         (output_cgraph): Use it to sort functions so masters appear before
30573         clones.
30574         (input_overwrite_node): Input new flags.
30575         * passes.c (ipa_write_summaries): Do not call
30576         lto_new_extern_inline_states.
30577         * lto-section-out.c (forced_extern_inline,
30578         lto_new_extern_inline_states lto_delete_extern_inline_states,
30579         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
30580         * lto-streamer.h (lto_new_extern_inline_states,
30581         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
30582         lto_forced_extern_inline_p): Kill.
30583
30584 2010-04-20  Richard Guenther  <rguenther@suse.de>
30585
30586         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
30587         from vars that can have pointers.
30588         (process_constraint): Dump useless constraints.
30589
30590 2010-04-20  Richard Guenther  <rguenther@suse.de>
30591
30592         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
30593         (dump_sa_points_to_info): Remove asserts.
30594         (init_base_vars): nothing_id isn't an escape point nor does it
30595         have pointers.
30596
30597 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
30598
30599         * tree.h (TYPE_REF_IS_RVALUE): Define.
30600         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
30601         should_move_die_to_comdat, prune_unused_types_walk): Handle
30602         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
30603         (modified_type_die, gen_reference_type_die): Emit
30604         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
30605         if TYPE_REF_IS_RVALUE and -gdwarf-4.
30606
30607 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30608
30609         PR target/43635
30610         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
30611         calls for -fpic -m31 if they have been sibcall optimized.
30612
30613 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
30614
30615         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
30616         ar.lc fixed and call-used.
30617
30618         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
30619
30620 2010-04-19  Jan Hubicka  <jh@suse.cz>
30621
30622         * opts.c (decode_options): Disable whpr incompatible passes.
30623         * lto/lto.c (lto_1_to_1_map): Skip clones.
30624         (read_cgraph_and_symbols): Do not mark everything as needed.
30625         (do_whole_program_analysis): Do map only after optimizing;
30626         set proper cgraph_state; use passmanager.
30627
30628 2010-04-19  DJ Delorie  <dj@redhat.com>
30629
30630         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
30631         POINTER_PLUS_EXPR and fix them.
30632
30633 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
30634
30635         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
30636         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
30637         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
30638         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
30639         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
30640         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
30641         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
30642         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
30643         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
30644         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
30645         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
30646
30647 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
30648
30649         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
30650         (check_cond_move_block): Likewise.
30651         (cond_move_process_if_block): Likewise.
30652         (noce_find_if_block): Improve formatting.
30653         (find_if_header): Pass 0 to memset and tweak conditions.
30654         (cond_exec_find_if_block): Fix long lines and tweak conditions.
30655
30656 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
30657
30658         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
30659         for -gdwarf-4.
30660
30661         PR middle-end/43337
30662         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
30663         with non-local decl doesn't need chain.
30664
30665 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
30666
30667         * ira-color.c (allocno_reload_assign): Avoid accumulating
30668         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
30669
30670 2010-04-19  Martin Jambor  <mjambor@suse.cz>
30671
30672         * gimple.h (create_tmp_reg): Declare.
30673         * gimplify.c (create_tmp_reg): New function.
30674         (gimplify_return_expr): Use create_tmp_reg.
30675         (gimplify_omp_atomic): Likewise.
30676         (gimple_regimplify_operands): Likewise.
30677         * tree-dfa.c (make_rename_temp): Likewise.
30678         * tree-predcom.c (predcom_tmp_var): Likewise.
30679         (reassociate_to_the_same_stmt): Likewise.
30680         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
30681         (get_replaced_param_substitute): Likewise.
30682         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30683         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
30684         * tree-ssa-pre.c (get_representative_for): Likewise.
30685         (create_expression_by_pieces): Likewise.
30686         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
30687         (create_tailcall_accumulator): Likewise.
30688
30689 2010-04-19  Martin Jambor  <mjambor@suse.cz>
30690
30691         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
30692         new_stmt.
30693         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
30694
30695 2010-04-19  Richard Guenther  <rguenther@suse.de>
30696
30697         PR tree-optimization/43796
30698         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
30699         from SCEV in the lattice.
30700         (vrp_visit_phi_node): Dump change.
30701
30702 2010-04-19  Richard Guenther  <rguenther@suse.de>
30703
30704         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
30705         * configure: Re-generated.
30706
30707 2010-04-19  Richard Guenther  <rguenther@suse.de>
30708
30709         PR tree-optimization/43783
30710         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
30711         constant ARRAY_REF operands two and three if possible.
30712
30713 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
30714
30715         PR target/43766
30716         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
30717
30718 2010-04-19  Jie Zhang  <jie@codesourcery.com>
30719
30720         PR target/43662
30721         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
30722
30723 2010-04-19  Ira Rosen  <irar@il.ibm.com>
30724
30725         PR tree-optimization/37027
30726         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
30727         and macro to access it.
30728         (vectorizable_reduction): Add argument.
30729         (vect_get_slp_defs): Likewise.
30730         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
30731         statements for possible use in SLP.
30732         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
30733         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
30734         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
30735         add new argument.
30736         (vectorizable_reduction): Likewise.
30737         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
30738         vect_get_slp_defs.
30739         (vectorizable_type_demotion, vectorizable_type_promotion,
30740         vectorizable_store): Likewise.
30741         (vect_analyze_stmt): Update call to vectorizable_reduction.
30742         (vect_transform_stmt): Likewise.
30743         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
30744         (vect_build_slp_tree): Fix indentation. Check that there are no loads
30745         from different interleaving chains in same node.
30746         (vect_slp_rearrange_stmts): New function.
30747         (vect_supported_load_permutation_p): Allow load permutations for
30748         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
30749         inside SLP nodes if necessary.
30750         (vect_analyze_slp_instance): Handle reductions.
30751         (vect_analyze_slp): Try to build SLP instances originating from groups
30752         of reductions.
30753         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
30754         (vect_get_constant_vectors): Create initial vectors for reductions
30755         according to reduction code. Add new argument.
30756         (vect_get_slp_defs): Add new argument, pass it to
30757         vect_get_constant_vectors.
30758         (vect_schedule_slp_instance): Remove SLP tree root statements.
30759
30760 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
30761
30762         * tree.h (ENUM_IS_SCOPED): Define.
30763         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
30764         for ENUM_IS_SCOPED enums.
30765
30766 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
30767
30768         * fold-const.c (fold_comparison): Use ssizetype.
30769         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
30770         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
30771         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
30772         * tree-object-size.c (compute_object_sizes): Use size_type_node.
30773
30774         * tree.h (initialize_sizetypes): Remove parameter.
30775         (build_common_tree_nodes): Remove second parameter.
30776         * stor-layout.c (initialize_sizetypes): Remove parameter.
30777         Always create an unsigned type.
30778         (set_sizetype): Assert that the passed type is unsigned and simplify.
30779         * tree.c (build_common_tree_nodes): Remove second parameter.
30780         Adjust call to initialize_sizetypes.
30781         * c-decl.c (c_init_decl_processing): Remove second argument in call to
30782         build_common_tree_nodes.
30783
30784 2010-04-18  Matthias Klose  <doko@ubuntu.com>
30785
30786         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
30787
30788 2010-04-18  Ira Rosen  <irar@il.ibm.com>
30789
30790         PR tree-optimization/43771
30791         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
30792         load permutation doesn't have gaps.
30793
30794 2010-04-18  Jan Hubicka  <jh@suse.cz>
30795
30796         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
30797         (sse_prologue_save_insn expander): Use new pattern.
30798         (sse_prologue_save_insn1): New pattern and splitter.
30799         (sse_prologue_save_insn): Update to deal also with 64bit aligned
30800         blocks.
30801         * i386.c (setup_incoming_varargs_64): Do not compute jump
30802         destination here.
30803         (ix86_gimplify_va_arg): Update alignment needed.
30804         (ix86_local_alignment): Do not align all local arrays to 128bit.
30805
30806 2010-04-17  Jan Hubicka  <jh@suse.cz>
30807
30808         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
30809
30810 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30811
30812         * arm.md (negdi2): Remove redundant code to force values into a
30813         register.
30814
30815 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30816
30817         * arm/bpabi.S: Add EABI alignment attributes to objects.
30818         * arm/bpabi-v6m.S: Likewise.
30819         * arm/crti.asm: Likewise.
30820         * arm/crtn.asm: Likewise.
30821         * arm/lib1funcs.asm: Likewise.
30822         * arm/libunwind.S: Likewise.
30823
30824 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30825
30826         * arm-protos.h (tune_params): New structure.
30827         * arm.c (current_tune): New variable.
30828         (arm_constant_limit): Delete.
30829         (struct processors): Add pointer to the tune parameters.
30830         (arm_slowmul_tune): New tuning option.
30831         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
30832         (all_cores): Adjust to pick up the tuning model.
30833         (arm_constant_limit): New function.
30834         (arm_override_options): Select the appropriate tuning model.  Delete
30835         initialization of arm_const_limit.
30836         (arm_split_constant): Use the new constant-limit model.
30837         (arm_rtx_costs): Pick up the current tuning model.
30838         * arm.md (is_strongarm, is_xscale): Delete.
30839         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
30840         for Xscale variant architectures.
30841         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
30842
30843 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30844
30845         * config/arm/arm.c (arm_gen_constant): Remove unused variable
30846         can_shift.
30847         (arm_rtx_costs_1): Remove unused variable extra_cost.
30848         (arm_unwind_emit_set): Use variable offset.
30849         (thumb1_output_casesi): Remove unused variable flags.
30850
30851 2010-04-16  Jeff Law  <law@redhat.com>
30852
30853         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
30854         needing assignment rather than doing a two-phase assignment.  Remove
30855         unused variable 'm'.
30856
30857 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30858
30859         PR bootstrap/43767
30860         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
30861
30862 2010-04-16  Doug Kwan  <dougkwan@google.com>
30863
30864         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
30865         (next_operand_entry_id): New static variable.
30866         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
30867         (add_to_ops_vec): Assigned unique ID to operand entry.
30868         (struct oecount_s): New field ID.
30869         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
30870         (undistribute_ops_list): Assign unique IDs to oecounts.
30871         (init_reassoc): reset next_operand_entry_id.
30872
30873 2010-04-16  Doug Kwan  <dougkwan@google.com>
30874
30875         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
30876         missing left parenthesis.
30877
30878 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
30879
30880         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
30881         *btdi_rex64 using SWI48 mode iterator.
30882         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
30883         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
30884         *jcc_btdi_mask_rex64.
30885
30886 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
30887
30888         * double-int.h (tree_to_double_int): Convert to macro.
30889         * double-int.c (tree_to_double_int): Remove.
30890
30891 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30892
30893         PR debug/43762
30894         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
30895         with want_address 2 and in case a single element list might be
30896         possible, call it again with want_address 0.
30897
30898 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30899
30900         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
30901         case 'W' print operands for HI mode.
30902         * config/h8300/h8300.h (Y0, Y2) : New constraints.
30903         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
30904         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
30905         * config/h8300/predicate.md (bit_register_indirect_operand): New.
30906
30907         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
30908
30909         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
30910         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
30911         #xx:3 and #xx:4 mode.
30912
30913         * config/h8300/h8300.md (inverted load with HImode dest): Add
30914         support for H8300SX.
30915
30916         * config/h8300/predicate.md (bit_operand): Allow immediate values that
30917         satisfy 'U' constraint.
30918
30919 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30920
30921         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
30922         * configure: Regenerate.
30923         * config.in: Regenerate.
30924         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
30925         works.
30926
30927 2010-04-16  Richard Guenther  <rguenther@suse.de>
30928
30929         * tree.h (struct tree_decl_minimal): Move pt_uid ...
30930         (struct tree_decl_common): ... here.
30931         (DECL_PT_UID): Adjust.
30932         (SET_DECL_PT_UID): Likewise.
30933         (DECL_PT_UID_SET_P): Likewise.
30934
30935 2010-04-16  Richard Guenther  <rguenther@suse.de>
30936
30937         PR tree-optimization/43572
30938         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
30939         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
30940         * tree-flow.h (is_call_clobbered): Remove.
30941         * tree-flow-inline.h (is_call_clobbered): Likewise.
30942         * tree-dfa.c (dump_variable): Do not dump call clobber state.
30943         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
30944         (execute_return_slot_opt): Adjust.
30945         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
30946         check for call clobbered vars here.
30947         (find_tail_calls): Move tailcall verification to the
30948         proper place.
30949
30950 2010-04-16  Diego Novillo  <dnovillo@google.com>
30951
30952         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
30953
30954 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
30955
30956         PR target/40603
30957         * config/arm/arm.md (cbranchqi4): New pattern.
30958         * config/arm/predicates.md (const0_operand,
30959         cbranchqi4_comparison_operator): New predicates.
30960
30961 2010-04-16  Richard Guenther  <rguenther@suse.de>
30962
30963         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
30964         (dump_gimple_stmt): Likewise.
30965
30966 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
30967
30968         * recog.h (struct recog_data): New field is_operator.
30969         (struct insn_operand_data): New field is_operator.
30970         * recog.c (extract_insn): Set recog_data.is_operator.
30971         * genoutput.c (output_operand_data): Emit code to set the
30972         is_operator field.
30973         * reload.c (find_reloads): Use it rather than testing for an
30974         empty constraint string.
30975
30976         PR target/41514
30977         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
30978         If the previous insn is a cbranchsi4_insn with the same arguments,
30979         omit the compare instruction.
30980
30981         * config/arm/arm.md (addsi3_cbranch): If destination is a high
30982         register, inputs must be low registers and we need a low register
30983         scratch.  Handle alternative 2 like alternative 3.
30984
30985 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30986
30987         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
30988         don't call get_addr on both.  If one expression is a VALUE and
30989         the other a REG, check VALUE's locs if the REG isn't among them.
30990
30991 2010-04-16  Christian Bruel  <christian.bruel@st.com>
30992
30993         * config/sh/sh.h (sh_frame_pointer_required): New function.
30994         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
30995         (flag_omit_frame_pointer) Set.
30996         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
30997         (rounded_frame_size): Adjust size with outgoing_args_size.
30998         (sh_set_return_address): Must return from stack pointer.
30999         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
31000         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
31001         (ACCUMULATE_OUTGOING_ARGS): Define.
31002         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
31003         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
31004
31005 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31006
31007         PR target/43471
31008         * config/sh/sh.c (sh_legitimize_reload_address): Use
31009         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
31010         Remove a unneeded check for offset_base.
31011
31012 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
31013
31014         * configure: Regenerated.
31015
31016 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31017
31018         * config/s390/s390.c (s390_call_save_register_used): Switch back
31019         to HARD_REGNO_NREGS.
31020
31021 2010-04-15  Richard Guenther  <rguenther@suse.de>
31022
31023         * alias.c (alias_set_subset_of): Handle alias-set zero
31024         child properly.
31025
31026 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
31027             Julian Brown  <julian@codesourcery.com>
31028
31029         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
31030         alternatives according to use of high and low regs.
31031         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
31032         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
31033         optimizing for size on Thumb-2.
31034
31035 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
31036
31037         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
31038
31039 2010-04-15  Richard Guenther  <rguenther@suse.de>
31040
31041         * tree-ssa-structalias.c (struct variable_info): Add
31042         is_fn_info flag.
31043         (new_var_info): Initialize it.
31044         (dump_constraints): Support printing last added constraints.
31045         (debug_constraints): Adjust.
31046         (dump_constraint_graph): Likewise.
31047         (make_heapvar_for): Check for NULL cfun.
31048         (get_function_part_constraint): New function.
31049         (get_fi_for_callee): Likewise.
31050         (find_func_aliases): Properly implement IPA PTA constraints.
31051         (process_ipa_clobber): New function.
31052         (find_func_clobbers): Likewise.
31053         (insert_into_field_list_sorted): Remove.
31054         (create_function_info_for): Properly allocate vars for IPA mode.
31055         Do not use insert_into_field_list_sorted.
31056         (create_variable_info_for): Properly generate constraints for
31057         global vars in IPA mode.
31058         (dump_solution_for_var): Always dump the solution.
31059         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
31060         (find_what_var_points_to): Adjust.
31061         (pt_solution_set): Change.
31062         (pt_solution_ior_into): New function.
31063         (pt_solution_empty_p): Export.
31064         (pt_solution_includes_global): Adjust.
31065         (pt_solution_includes_1): Likewise.
31066         (pt_solutions_intersect_1): Likewise.
31067         (dump_sa_points_to_info): Check some invariants.
31068         (solve_constraints): Move constraint dumping ...
31069         (compute_points_to_sets): ... here.
31070         (ipa_pta_execute): ... and here.
31071         (compute_may_aliases): Do not re-compute points-to info
31072         locally if IPA info is available.
31073         (ipa_escaped_pt): New global var.
31074         (ipa_pta_execute): Properly implement IPA PTA.
31075         * tree-into-ssa.c (dump_decl_set): Support dumping
31076         decls not in referenced-vars.
31077         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
31078         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
31079         (dump_points_to_solution): Likewise.
31080         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
31081         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
31082         (remap_gimple_stmt): Reset call clobber/use information if necessary.
31083         (copy_decl_to_var): Copy DECL_PT_UID.
31084         (copy_result_decl_to_var): Likewise.
31085         * tree.c (make_node_stat): Initialize DECL_PT_UID.
31086         (copy_node_stat): Copy it.
31087         * tree.h (DECL_PT_UID): New macro.
31088         (SET_DECL_PT_UID): Likewise.
31089         (DECL_PT_UID_SET_P): Likewise.
31090         (struct tree_decl_minimal): Add pt_uid member.
31091         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
31092         (pt_solution_empty_p): Declare.
31093         (pt_solution_set): Adjust.
31094         (ipa_escaped_pt): Declare.
31095         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
31096         * gimple-pretty-print.c (pp_points_to_solution): New function.
31097         (dump_gimple_call): Dump call clobber/use information.
31098         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
31099         * tree-pass.h (TDF_ALIAS): New dump option.
31100         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
31101         * doc/invoke.texi (-fipa-pta): Update documentation.
31102
31103 2010-04-15  Richard Guenther  <rguenther@suse.de>
31104
31105         * Makefile.in (OBJS-common): Add gimple-fold.o.
31106         (gimple-fold.o): New rule.
31107         * tree.h (maybe_fold_offset_to_reference,
31108         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
31109         prototypes ...
31110         * gimple.h: ... here.
31111         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
31112         may_propagate_address_into_dereference): Move prototypes ...
31113         * gimple.h: ... here.
31114         * tree-ssa-ccp.c (get_symbol_constant_value,
31115         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
31116         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
31117         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
31118         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
31119         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
31120         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
31121         gimplify_and_update_call_from_tree): Move ...
31122         * gimple-fold.c: ... here.  New file.
31123         (ccp_fold_builtin): Rename to ...
31124         (gimple_fold_builtin): ... this.
31125         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
31126
31127 2010-04-15  Richard Guenther  <rguenther@suse.de>
31128
31129         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
31130         fit_double_type, force_fit_type_double, add_double_with_sign,
31131         neg_double, mul_double_with_sign, lshift_double, rshift_double,
31132         lrotate_double, rrotate_double, div_and_round_double): Move ...
31133         * double-int.c: ... here.
31134         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
31135         add_double, neg_double, mul_double_with_sign, mul_double,
31136         lshift_double, rshift_double, lrotate_double, rrotate_double,
31137         div_and_round_double): Move prototypes ...
31138         * double-int.h: ... here.
31139
31140 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
31141
31142         PR target/43742
31143         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
31144         matching constraints to ensure inputs match the output.
31145
31146 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31147
31148         PR target/43742
31149         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
31150         in an input-only operand.
31151
31152 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
31153
31154         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
31155         (double_int_not, double_int_lshift, double_int_rshift): Declare.
31156         (double_int_negative_p): Convert to static inline function.
31157         * double-int.c (double_int_lshift, double_int_lshift): New functions.
31158         (double_int_negative_p): Remove.
31159         * tree.h (lshift_double, rshift_double):
31160         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
31161         * fold-const.c (fold_convert_const_int_from_real,
31162         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
31163         (lshift_double): Change type of arith argument to bool.
31164         (rshift_double): Change type of arith argument to bool. Correct
31165         comment.
31166         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31167
31168 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
31169
31170         PR target/21803
31171         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
31172         at the start and end of the then/else blocks, and omit them from the
31173         conversion.
31174         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
31175         argument; all callers changed.  Pass zero to old_insns_match_p instead.
31176         (flow_find_head_matching_sequence): New function.
31177         (old_insns_match_p): Check REG_EH_REGION notes for calls.
31178         * basic-block.h (flow_find_cross_jump,
31179         flow_find_head_matching_sequence): Declare functions.
31180
31181 2010-04-14  Jason Merrill  <jason@redhat.com>
31182
31183         PR c++/36625
31184         * c-common.c (attribute_takes_identifier_p): New fn.
31185         * c-common.h: Declare it.
31186
31187 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31188
31189         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
31190         splitter condition.
31191         (*udivmod<mode>4): Ditto.
31192
31193 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31194
31195         * config/i386/i386.md (maxmin_int): Rename code attribute from
31196         maxminiprefix and update all users.
31197         (maxmin_float): Ditto from maxminfprefix.
31198         (logic): Ditto from logicprefix.
31199         (absneg_mnemonic): Ditto from absnegprefix.
31200         * config/i386/mmx.md: Update all users of maxminiprefix,
31201         maxminfprefix and logicprefix for rename.
31202         * config/i386/sse.md: Ditto.
31203         * config/i386/sync.md (sync_<code><mode>): Update for
31204         logicprefix rename.
31205
31206 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31207
31208         PR 42966
31209         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
31210         warnings converted to errors.
31211
31212 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31213
31214         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
31215         used insn_type variable.
31216         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
31217         to avoid set-but-not-used warning.
31218
31219 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31220
31221         * df-core.c (df_ref_debug): Change format string placeholder
31222         from 0x%x to %#x.
31223         * dwarf2asm.c (dw2_asm_output_data_raw,
31224         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
31225         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
31226         * dwarf2out.c (output_cfi, output_cfi_directive,
31227         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
31228         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
31229         Ditto.
31230         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
31231         * print-rtl.c (print_rtx): Ditto.
31232
31233 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31234
31235         PR middle-end/42694
31236         * builtins.c (expand_builtin_pow_root): New function to expand pow
31237         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
31238         series of sqrt and cbrt calls under -ffast-math.
31239         (expand_builtin_pow): Call it.
31240
31241 2010-04-14  Michael Matz  <matz@suse.de>
31242
31243         PR tree-optimization/42963
31244         * tree-cfg.c (touched_switch_bbs): New static variable.
31245         (group_case_labels_stmt): New function broken out from ...
31246         (group_case_labels): ... here, use the above.
31247         (start_recording_case_labels): Allocate touched_switch_bbs.
31248         (end_recording_case_labels): Deallocate it, call
31249         group_case_labels_stmt.
31250         (gimple_redirect_edge_and_branch): Remember index of affected BB.
31251
31252 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31253
31254         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31255         from insn template.
31256
31257 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31258
31259         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31260
31261 2010-04-13  Jan Hubicka  <jh@suse.cz>
31262
31263         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
31264         of optimized out static functions.
31265         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
31266         cost computation.  Also sanity check for overflows.
31267         (update_caller_keys): Update cgraph_edge_badness call; properly
31268         update fibheap and sanity check that it is up to date.
31269         (add_new_edges_to_heap): Update cgraph_edge_badness.
31270         (cgraph_decide_inlining_of_small_function): Likewise;
31271         add sanity checking that badness in heap is up to date;
31272         improve dumping of reason; Update badness of calls to the
31273         offline copy of function currently inlined; dump badness
31274         of functions not inlined because of unit growth limits.
31275
31276 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31277
31278         PR middle-end/32628
31279         * c-common.c (pointer_int_sum): Disregard overflow that occured only
31280         because of sign-extension change when converting to sizetype here...
31281         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
31282
31283         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
31284         the folding to constants.  Remove redundant final conversion.
31285         (fold_binary) <associate>: Do not associate if the re-association of
31286         constants alone overflows.
31287         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
31288         to the end of the list.
31289         (multiple_of_p) <COND_EXPR>: New case.
31290
31291 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31292
31293         * opt-functions.awk (opt_sanitized_name): New.
31294         (opt_enum): New.
31295         * optc-gen.awk: Use it
31296         * opth-gen.awk: Use it.
31297
31298 2010-04-13  Martin Jambor  <mjambor@suse.cz>
31299
31300         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
31301         (sra_modify_assign): Delete stmts loading dead data even if racc has no
31302         children.  Call replace_uses_with_default_def_ssa_name to handle
31303         SSA_NAES on lhs.
31304
31305 2010-04-13  Michael Matz  <matz@suse.de>
31306
31307         PR middle-end/43730
31308         * builtins.c (expand_builtin_interclass_mathfn): Also create
31309         a register if the predicate doesn't match.
31310
31311 2010-04-13  Diego Novillo  <dnovillo@google.com>
31312
31313         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
31314         * c-pch.c: Include timevar.h.
31315         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
31316         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
31317         * ggc-common.c: Include timevar.h.
31318         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
31319         * timevar.def (TV_PCH_SAVE): Define.
31320         (TV_PCH_CPP_SAVE): Define.
31321         (TV_PCH_PTR_REALLOC): Define.
31322         (TV_PCH_PTR_SORT): Define.
31323         (TV_PCH_RESTORE): Define.
31324         (TV_PCH_CPP_RESTORE): Define.
31325
31326 2010-04-13  Michael Matz  <matz@suse.de>
31327
31328         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
31329         into MINUS_EXPRs.
31330         (can_reassociate_p): New function.
31331         (break_up_subtract_bb, reassociate_bb): Use it.
31332
31333 2010-04-13  Richard Guenther  <rguenther@suse.de>
31334
31335         PR bootstrap/43737
31336         * builtins.c (c_readstr): Fix assert.
31337
31338 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
31339
31340         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
31341         when generating cltd insn.
31342
31343         (*ashl<mode>3_1): Remove special handling for register operand 2.
31344         (*ashlsi3_1_zext): Ditto.
31345         (*ashlhi3_1): Ditto.
31346         (*ashlhi3_1_lea): Ditto.
31347         (*ashlqi3_1): Ditto.
31348         (*ashlqi3_1_lea): Ditto.
31349         (*<shiftrt_insn><mode>3_1): Ditto.
31350         (*<shiftrt_insn>si3_1_zext): Ditto.
31351         (*<shiftrt_insn>qi3_1_slp): Ditto.
31352         (*<rotate_insn><mode>3_1): Ditto.
31353         (*<rotate_insn>si3_1_zext): Ditto.
31354         (*<rotate_insn>qi3_1_slp): Ditto.
31355
31356 2010-04-13  Richard Guenther  <rguenther@suse.de>
31357
31358         * tree-ssa-structalias.c (callused_id): Remove.
31359         (call_stmt_vars): New.
31360         (get_call_vi): Likewise.
31361         (lookup_call_use_vi): Likewise.
31362         (lookup_call_clobber_vi): Likewise.
31363         (get_call_use_vi): Likewise.
31364         (get_call_clobber_vi): Likewise.
31365         (make_transitive_closure_constraints): Likewise.
31366         (handle_const_call): Adjust to do per-call call-used handling.
31367         (handle_pure_call): Likewise.
31368         (find_what_var_points_to): Remove general callused handling.
31369         (init_base_vars): Likewise.
31370         (init_alias_vars): Initialize call_stmt_vars.
31371         (compute_points_to_sets): Process call-used and call-clobbered
31372         vars for call statements.
31373         (delete_points_to_sets): Free call_stmt_vars.
31374
31375 2010-04-13  Richard Guenther  <rguenther@suse.de>
31376
31377         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31378         Only add RW dependence for dependence distance zero.
31379         Adjust maximal vectorization factor according to dependences.
31380         Move alignment handling ...
31381         (vect_find_same_alignment_drs): ... here.  New function.
31382         (vect_analyze_data_ref_dependences): Adjust.
31383         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
31384         (vect_analyze_data_refs): Adjust minimal vectorization factor
31385         according to data references.
31386         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
31387         dependences before determining the vectorization factor.
31388         Analyze alignment after determining the vectorization factor.
31389         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
31390         dependences before alignment.
31391         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
31392         Adjust prototype.
31393         (vect_analyze_data_refs): Likewise.
31394         (MAX_VECTORIZATION_FACTOR): New define.
31395
31396 2010-04-13  Duncan Sands  <baldrick@free.fr>
31397
31398         * except.h (lang_eh_type_covers): Remove.
31399         * except.c (lang_eh_type_covers): Likewise.
31400
31401 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31402             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31403
31404         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
31405         * config/s390/s390.c: Replace UNTIS_PER_WORD with
31406         UNITS_PER_LONG where it is ABI relevant.
31407         (s390_return_addr_rtx): Likewise.
31408         (s390_back_chain_rtx): Likewise.
31409         (s390_frame_area): Likewise.
31410         (s390_frame_info): Likewise.
31411         (s390_initial_elimination_offset): Likewise.
31412         (save_gprs): Likewise.
31413         (s390_emit_prologue): Likewise.
31414         (s390_emit_epilogue): Likewise.
31415         (s390_function_arg_advance): Likewise.
31416         (s390_function_arg): Likewise.
31417         (s390_va_start): Likewise.
31418         (s390_gimplify_va_arg): Likewise.
31419         (s390_function_profiler): Likewise.
31420         (s390_optimize_prologue): Likewise.
31421         (s390_rtx_costs): Likewise.
31422         (s390_secondary_reload): Likewise.
31423         (s390_promote_function_mode): Likewise.
31424         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
31425         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
31426         registers available.
31427         (s390_unwind_word_mode): New function.
31428         (s390_function_value): Split 64 bit values into register pair if
31429         used as return value.
31430         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
31431         function call parameters.  Handle parallels.
31432         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
31433         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
31434         (DWARF_CIE_DATA_ALIGNMENT): New macro.
31435         (s390_expand_setmem): Remove unused variable src_addr.
31436         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
31437         deal with 64 bit registers.
31438         * config/s390/s390.h: Define __zarch__ predefined macro.
31439         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
31440         (UNITS_PER_LONG): New macro.
31441         * libjava/include/s390-signal.h: Define extended ucontext
31442         structure containing the upper halfs of the 64 bit registers.
31443
31444 2010-04-13  Simon Baldwin  <simonb@google.com>
31445
31446         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
31447
31448 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31449
31450         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
31451         rvalue on the RHS if the LHS is of a non-renamable type.
31452         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
31453
31454 2010-04-13  Matthias Klose  <doko@ubuntu.com>
31455
31456         * gcc.c (cc1_options): Handle -iplugindir before processing
31457         the cc1 spec. Only add -iplugindir once.
31458         (cpp_unique_options): Add -iplugindir option if -fplugin* options
31459         found.
31460         * common.opt (iplugindir): Remove `Separate' property, initialize.
31461         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
31462         option.
31463         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
31464         (distclean): Remove plugin dir.
31465         * doc/invoke.texi: Document -iplugindir.
31466
31467 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
31468
31469         * doc/plugins.texi (Loading Plugins): Document short
31470         -fplugin=foo option.
31471         (Plugin API): Mention default_plugin_dir_name function.
31472
31473         * gcc.c (find_file_spec_function): Add new declaration.
31474         (static_spec_func): Use it for "find-file".
31475         (find_file_spec_function): Add new function.
31476         (cc1_options): Add -iplugindir option if -fplugin* options found.
31477
31478         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
31479
31480         * plugin.c (add_new_plugin): Updated comment, and handle short
31481         plugin name.
31482         (default_plugin_dir_name): Added new function.
31483
31484         * common.opt (iplugindir): New option to set the plugin directory.
31485
31486 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
31487
31488         * config/i386/i386.md (any_rotate): New code iterator.
31489         (rotate_insn): New code attribute.
31490         (rotate): Ditto.
31491         (SWIM124): New mode iterator.
31492         (<rotate_insn>ti3): New expander.
31493         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
31494         any_rotate code iterator.
31495         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
31496         using any_rotate code iterator and SWIM124 mode iterator.
31497         (ix86_rotlti3): New insn_and_split pattern.
31498         (ix86_rotrti3): Ditto.
31499         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
31500         ix86_rotl{di,ti}3 patterns.
31501         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
31502         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
31503         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
31504         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
31505         code iterator and SWI mode iterator.
31506         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
31507         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
31508         code iterator.
31509         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
31510         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
31511         (bswap rotatert splitter): Add splitter.
31512         (bswap splitter): Macroize splitter using any_rotate code iterator.
31513         Add insn predicate to split only for TARGET_USE_XCHGB or when
31514         optimizing function for size.
31515
31516 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31517
31518         * config/pa/pa.c (emit_move_sequence): Remove use of
31519         deleted variable flag_argument_noalias.
31520
31521 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31522
31523         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
31524         configurations.
31525         Add to unsupported targets list.
31526         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
31527         sparc*-sun-solaris2.[567]* from target lists.
31528         * configure: Regenerate.
31529         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
31530         removal.
31531         Remove Solaris 7 patch references.
31532         (Specific, sparc-sun-solaris2.7): Removed.
31533         (sparc-sun-solaris2*): Update Solaris 7 example.
31534         (sparc64-*-solaris2*): Likewise.
31535
31536 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31537
31538         * config.build (alpha*-dec-osf4*): Remove.
31539         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
31540         of obsolete configurations.
31541         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
31542         support.
31543         * config/alpha/t-osf4: Renamed to ...
31544         * config/alpha/t-osf5: ... this.
31545         * config/alpha/osf.h: Renamed to ...
31546         * config/alpha/osf5.h: ... this.
31547         Merged old osf5.h contents.
31548         Update comments.
31549         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
31550         (EXTRA_SPECS): Removed.
31551         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
31552         reflect removal of Tru64 UNIX V4.0/V5.0 support.
31553         Document that.
31554
31555 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31556
31557         * doc/contrib.texi (Contributors, Rainer Orth): Update.
31558
31559 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
31560
31561         PR/43702
31562         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
31563         __thiscall convention.
31564
31565 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31566
31567         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
31568         orig_base.
31569         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
31570
31571 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31572
31573         * function.c (assign_parms_initialize_all): Add unused attribute
31574         to fntype.
31575
31576 2010-04-12  Richard Guenther  <rguenther@suse.de>
31577
31578         * gsstruct.def (GSS_CALL): New.
31579         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
31580         * gimple.h: Include tree-ssa-alias.h.
31581         (struct gimple_statement_call): New.
31582         (union gimple_statement_struct_d): Add gimple_call member.
31583         (gimple_call_reset_alias_info): Declare.
31584         (gimple_call_use_set): New function.
31585         (gimple_call_clobber_set): Likewise.
31586         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
31587         * gimple.c (gimple_call_reset_alias_info): New function.
31588         (gimple_build_call_1): Call it.
31589         * lto-streamer-in.c (input_gimple_stmt): Likewise.
31590         * tree-inline.c (remap_gimple_stmt): Likewise.
31591         (expand_call_inline): Remove callused handling.
31592         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
31593         * tree-dfa.c (dump_variable): Likewise.
31594         * tree-parloops.c (parallelize_loops): Likewise.
31595         * tree-ssa.c (init_tree_ssa): Likewise.
31596         (delete_tree_ssa): Likewise.
31597         * tree-flow-inline.h (is_call_used): Remove.
31598         * tree-flow.h (struct gimple_df): Remove callused member.
31599         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
31600         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
31601         (ref_maybe_used_by_call_p_1): Simplify.
31602         (call_may_clobber_ref_p_1): Likewise.
31603         * tree-ssa-structalias.c (compute_points_to_sets): Set
31604         the call stmt used and clobbered sets.
31605         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
31606         (find_tail_calls): Verify the tail call.
31607
31608 2010-04-12  Richard Guenther  <rguenther@suse.de>
31609
31610         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
31611         single-iteration always-inline inlining.
31612         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
31613         (cgraph_decide_inlining): Do not handle always-inline specially.
31614         (try_inline): Remove always-inline cycle detection special case.
31615         Do not recurse on always-inlines.
31616         (cgraph_early_inlining): Do not iterate if not optimizing.
31617         (cgraph_gate_early_inlining): remove.
31618         (pass_early_inline): Run unconditionally.
31619         (gate_cgraph_decide_inlining): New function.
31620         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
31621         not inlining or optimizing.
31622         (cgraph_decide_inlining_of_small_functions): Also consider
31623         always-inline functions.
31624         (cgraph_default_inline_p): Return true for nodes which should
31625         disregard inline limits.
31626         (estimate_function_body_sizes): Assume zero size and time for
31627         nodes which are marked as disregarding inline limits.
31628         (cgraph_decide_recursive_inlining): Do not perform recursive
31629         inlining on always-inline nodes.
31630
31631 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
31632
31633         PR bootstrap/43699
31634         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
31635         for exprs satisfying handled_component_p.
31636
31637 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
31638
31639         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
31640         non-constant aggregate elements.
31641
31642         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
31643         is a real initialization.
31644
31645 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
31646
31647         PR c/36774
31648         * c-decl.c (start_function): Move forward check for nested function.
31649
31650 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
31651
31652         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
31653         * config/sh/sh.c: Include reload.h.
31654         (sh_legitimize_reload_address): New.
31655         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
31656         sh_legitimize_reload_address.
31657
31658 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31659
31660         * config/sh/sh.md (*movqi_pop): New insn pattern.
31661         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
31662
31663 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31664
31665         * config/i386/i386.md (any_shiftrt): New code iterator.
31666         (shiftrt_insn): New code attribute.
31667         (shiftrt): Ditto.
31668         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
31669         using any_shiftrt code iterator.
31670         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
31671         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
31672         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
31673         pattern from corresponding peephole2 patterns.
31674         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
31675         using any_shiftrt code iterator.
31676         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
31677         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
31678         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
31679         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
31680         *{ashr,lshr}<mode>3_cmp_zext.
31681         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
31682
31683 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31684
31685         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
31686         scratch register.
31687         (*lshr<mode>3_cconly): Ditto.
31688
31689 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31690
31691         * config/i386/i386.md (lshr<mode>3): Macroize expander from
31692         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31693         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31694         pattern from *lshr{di,ti}3_1 and corresponding splitters using
31695         DWI mode iterator.
31696         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31697         from corresponding peephole2 patterns.
31698         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
31699         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
31700         and *lshrdi3_1_rex64 using SWI mode iterator.
31701         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
31702         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
31703         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
31704         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
31705         and *lshrdi3_cmp_rex64 using SWI mode iterator.
31706         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
31707         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
31708         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
31709         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
31710         SWI mode iterator.
31711
31712 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
31713
31714         * config/i386/i386.md (ashr<mode>3): Macroize expander from
31715         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31716         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31717         pattern from *ashr{di,ti}3_1 and corresponding splitters using
31718         DWI mode iterator.
31719         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31720         from corresponding peephole2 patterns.
31721         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
31722         (ashrsi3_cvt): Rename from ashrsi3_31.
31723         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
31724         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
31725         and x86_64_shift_adj_3 using SWI48 mode iterator.
31726         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
31727         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
31728         and *ashrdi3_1_rex64 using SWI mode iterator.
31729         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
31730         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
31731         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
31732         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
31733         and *ashrdi3_cmp_rex64 using SWI mode iterator.
31734         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
31735         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
31736         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
31737         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
31738         SWI mode iterator.
31739         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
31740         * config/i386/i386.c (ix86_split_ashr): Update for renamed
31741         x86_shift<mode>_adj_3 expanders.
31742
31743 2010-04-10  Wei Guozhi  <carrot@google.com>
31744
31745         PR target/42601
31746         * config/arm/arm.c (arm_pic_static_addr): New function.
31747         (legitimize_pic_address): Call arm_pic_static_addr when it detects
31748         a static symbol.
31749         (arm_output_addr_const_extra): Output expression for new pattern.
31750         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
31751
31752 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
31753
31754         * ira-costs.c (record_reg_classes): Ignore alternatives that are
31755         not enabled.
31756
31757         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
31758         * web.c: Include "insn-config.h" and "recog.h".
31759         (union_match_dups): New function.
31760         (web_main): Call it.
31761         (union_defs): Don't try to recognize match_dups.
31762
31763         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
31764         if doing so would replace the entire pattern.
31765
31766 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
31767
31768         PR target/43707
31769         PR target/43709
31770         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
31771         and splitter pattern.  Change splitter operand 1 predicate to
31772         nonmemory_operand.
31773
31774 2010-04-09  Martin Jambor  <mjambor@suse.cz>
31775
31776         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
31777         lattices are addresses of CONST_DECLs with the same initial value.
31778         (ipcp_print_all_lattices): Print values of CONST_DECLs.
31779         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
31780
31781 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
31782             Bernd Schmidt  <bernds@codesourcery.com>
31783
31784         * loop-invariant.c (replace_uses): New static function.
31785         (move_invariant_reg): Use it to ensure we can replace the uses.
31786
31787 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
31788
31789         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
31790         function template.
31791         (picochip_override_options): Enable section anchors only above -O1.
31792         (picochip_reorg): Fixed a couple of build warnings.
31793
31794 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31795
31796         * configure.ac (plugin -rdynamic test): Log result.
31797         * configure: Regenerate.
31798         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
31799         (RDYNAMIC_SPEC): Define.
31800         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
31801
31802 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31803
31804         * configure.ac: Determine Sun ld version numbers.
31805         (comdat_group): Restrict GNU ld version checks to gld.
31806         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
31807         (enable_comdat): Support --enable-comdat.
31808         * configure: Regenerate.
31809         * doc/install.texi (Configuration): Document --enable-comdat.
31810
31811 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31812
31813         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
31814         * config/sol2-gld.h: ... here.
31815         * config.gcc (sparc*-*-solaris2*): Reflect this.
31816         (i[34567]86-*-solaris2*): Use it.
31817
31818 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
31819
31820         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
31821         setup_clocks_p.
31822         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
31823
31824 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31825
31826         PR 42965
31827         * diagnostic.c (diagnostic_initialize): Initialize
31828         some_warnings_are_errors.
31829         (diagnostic_finish): New.
31830         (diagnostic_action_after_output): Call it before exiting.
31831         (diagnostic_report_diagnostic): Do not print message here. Set
31832         some_warnings_are_errors.
31833         * diagnostic.h (diagnostic_context): Delete
31834         issue_warnings_are_errors_message. Add some_warnings_are_errors.
31835         (diagnostic_finish): Declare.
31836         * toplev.c (toplev_main): Call it before exit.
31837
31838 2010-04-09  Jason Merrill  <jason@redhat.com>
31839
31840         PR c++/42623
31841         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
31842         for incomplete type.
31843
31844         PR c++/41788
31845         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
31846         based on a warning flag.
31847
31848 2010-04-09  Richard Guenther  <rguenther@suse.de>
31849
31850         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
31851
31852 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
31853
31854         PR bootstrap/43684
31855         * varasm.c (default_assemble_visibility): Wrap vars that are
31856         set, but unused, by targets without GAS.
31857         * config/rs6000/rs6000.c (paired_emit_vector_compare):
31858         Remove set, but unused, vars.
31859         (rs6000_legitimize_tls_address): Likewise.
31860         (altivec_expand_dst_builtin): Likewise.
31861         * config/darwin.c (machopic_classify_symbol): Likewise.
31862         (machopic_indirection_name): Likewise.
31863
31864 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
31865
31866         * config/i386/i386.md (DWI): New mode iterator.
31867         (S): New mode attribute.
31868         (shift_operand): Ditto.
31869         (shift_immediate_operand): Ditto.
31870         (ashl_input_operand): Ditto.
31871         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
31872         using SDWIM mode iterator.
31873         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31874         pattern from *ashl{di,ti}3_1 and corresponding splitters using
31875         DWI mode iterator.
31876         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
31877         from corresponding peephole2 patterns.
31878         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
31879         and x86_64_shift_adj_1 using SWI48 mode iterator.
31880         (x86_shift<mode>_adj_2): Ditto.
31881         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
31882         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
31883         using SWI48 mode iterator.
31884         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
31885         *ashldi3_cmp_rex64 using SWI mode iterator.
31886         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
31887         *ashldi3_cconly_rex64 using SWI mode iterator.
31888         * config/i386/i386.c (ix86_split_ashl): Update for renamed
31889         x86_shift<mode>_adj_{1,2}.
31890         (ix86_split_ashr): Ditto.
31891         (ix86_split_lshr): Ditto.
31892
31893 2010-04-09  Richard Guenther  <rguenther@suse.de>
31894
31895         * target.h (builtin_conversion): Pass in input and output types.
31896         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
31897         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
31898         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
31899         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
31900
31901         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
31902         Handle AVX modes.
31903         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
31904
31905 2010-04-09  Richard Guenther  <rguenther@suse.de>
31906
31907         PR target/43152
31908         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
31909
31910 2010-04-09  Richard Guenther  <rguenther@suse.de>
31911
31912         * tree-vectorizer.h (struct _stmt_vec_info): Document
31913         that vectype is the type of the LHS.
31914         (supportable_widening_operation, supportable_narrowing_operation):
31915         Get both input and output vector types as arguments.
31916         (vect_is_simple_use_1): Declare.
31917         (get_same_sized_vectype): Likewise.
31918         * tree-vect-loop.c (vect_determine_vectorization_factor):
31919         Set STMT_VINFO_VECTYPE to the vector type of the def.
31920         (vectorizable_reduction): Adjust.
31921         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
31922         Adjust.  Specify the output vector type.
31923         (vect_pattern_recog_1): Adjust.
31924         * tree-vect-stmts.c (get_same_sized_vectype): New function.
31925         (vectorizable_call): Adjust.
31926         (vectorizable_conversion): Likewise.
31927         (vectorizable_operation): Likewise.
31928         (vectorizable_type_demotion): Likewise.
31929         (vectorizable_type_promotion): Likewise.
31930         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
31931         the def.
31932         (vect_is_simple_use_1): New function.
31933         (supportable_widening_operation): Get both input and output
31934         vector types.
31935         (supportable_narrowing_operation): Likewise.
31936         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
31937
31938 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
31939
31940         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
31941         __thiscall and _thiscall as predefined macros.
31942         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
31943         thiscall attribute handling.
31944         (ix86_comp_type_attributes): Likewise.
31945         (ix86_function_regparm): Likewise.
31946         (ix86_return_pops_args): Likewise.
31947         (init_cumulative_args): Likewise.
31948         (find_drap_reg): Likewise.
31949         (ix86_static_chain): Likewise.
31950         (x86_this_parameter): Likewise.
31951         (x86_output_mi_thunk): Likewise.
31952         (ix86_attribute_table): Add description for thiscall attribute.
31953         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
31954         * doc/extend.texi: Add documentation for thiscall.
31955
31956 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31957
31958         PR c++/28584
31959         * c.opt (Wint-to-pointer-cast): Available in C++.
31960         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
31961
31962 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
31963
31964         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
31965         * calls.c (expand_call): Pass the function type to aggregate_value_p.
31966         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
31967         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
31968         function type instead.  Reorder and simplify checks.
31969
31970         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
31971
31972 2010-04-08  Jing Yu  <jingyu@google.com>
31973             Zdenek Dvorak  <ook@ucw.cz>
31974
31975         PR tree-optimization/42720
31976         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
31977         loop unswitch conditions here from ...
31978         (tree_unswitch_single_loop): ... here.
31979
31980 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31981
31982         * tree-if-conv.c: Fix comments and simplify logic.
31983
31984 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31985
31986         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
31987         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
31988         (main_tree_if_conversion): Update call to tree_if_conversion.
31989
31990 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31991
31992         PR 42485
31993         * doc/invoke.texi (-b,-V): Delete.
31994         * doc/tm.texi: Do not mention -b.
31995         * gcc.c (display_help): Delete -b and -V.
31996         (process_command): Delete -b and -V.
31997         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
31998
31999 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
32000             Wolfgang Gellerich  <gellerich@de.ibm.com>
32001
32002         Implement target hook for loop unrolling
32003         * target.h (loop_unroll_adjust): Add a new target hook function.
32004         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
32005         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
32006         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
32007         (s390_loop_unroll_adjust): Implement the new target hook for s390.
32008         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
32009         target hook.
32010         (decide_unroll_stupid): Likewise.
32011
32012 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32013
32014         PR target/43643
32015         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
32016
32017 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32018
32019         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
32020         (Specific, *-*-solaris2*): Likewise.
32021         Don't prefer Sun as over GNU as.
32022
32023 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
32024
32025         * config/s390/s390.c (override_options): Adjust the z10 defaults
32026         for max-unroll-times, max-completely-peeled-insns
32027         and max-completely-peel-times.
32028
32029 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32030
32031         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
32032         instructions for z10.
32033         (s390_expand_setmem): Likewise.
32034         (s390_expand_cmpmem): Likewise.
32035
32036 2010-04-08  Richard Guenther  <rguenther@suse.de>
32037
32038         PR tree-optimization/43679
32039         * tree-ssa-pre.c (eliminate): Only propagate copies.
32040
32041 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32042
32043         PR bootstrap/43681
32044         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
32045         set but not used variable warning.
32046
32047 2010-04-08  Wei Guozhi  <carrot@google.com>
32048
32049         PR target/41653
32050         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
32051         (arm_size_rtx_costs): Call the new function when optimized for size.
32052
32053 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32054
32055         PR debug/43670
32056         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
32057         op0 is not a MEM, just return NULL instead of assertion
32058         failure.
32059         (discover_nonconstant_array_refs): Don't walk debug stmts.
32060
32061 2010-04-08  Doug Kwan  <dougkwan@google.com>
32062
32063         * configure.ac: Recognize gold and do not use its version number
32064         to test ld features.
32065         * configure: Regenerate.
32066
32067 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
32068
32069         PR middle-end/40815
32070         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
32071         (negate_value): Move code to push elements to broken_up_substracts ...
32072         (eliminate_plus_minus_pair): ... here.  Push operands that have no
32073         negative pair to plus_negates.
32074         (repropagate_negates, init_reassoc, fini_reassoc): Update.
32075
32076 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32077
32078         * doc/install.texi (Configuration): Move description of
32079         --enable-lto, --with-libelf*, --enable-gold from Java section to
32080         general section.
32081
32082         * doc/generic.texi (Working with declarations)
32083         (Function Properties, C and C++ Trees): Fix typos.
32084         * doc/sourcebuild.texi (Top Level): Likewise.
32085
32086 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32087
32088         PR c/18624
32089         * tree.h (DECL_READ_P): Define.
32090         (struct tree_decl_common): Add decl_read_flag.
32091         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
32092         a set but not used warning.
32093         (merge_decls): Merge DECL_READ_P flag.
32094         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
32095         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
32096         * c-common.c (handle_used_attribute, handle_unused_attribute):
32097         Likewise.
32098         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
32099         New prototypes.
32100         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
32101         New functions.
32102         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
32103         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
32104         c_parser_binary_expression, c_parser_cast_expression,
32105         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
32106         Call default_function_array_read_conversion instead of
32107         default_function_array_conversion where needed.
32108         (c_parser_unary_expression, c_parser_conditional_expression,
32109         c_parser_postfix_expression_after_primary, c_parser_initelt):
32110         Likewise.  Call mark_exp_read where needed.
32111         (c_parser_statement_after_labels, c_parser_asm_operands,
32112         c_parser_typeof_specifier, c_parser_sizeof_expression,
32113         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
32114         where needed.
32115         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
32116         New.
32117         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
32118         (warn_unused_but_set_parameter): Default to warn_unused
32119         && extra_warnings.
32120         * doc/invoke.texi: Document -Wunused-but-set-variable and
32121         -Wunused-but-set-parameter.
32122
32123         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
32124         used count variable.
32125         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
32126         when operandN variables aren't used in the body of the expander
32127         or splitter.
32128         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
32129         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
32130         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
32131         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
32132         FOR_EACH_IMM_USE_ON_STMT): Likewise.
32133         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
32134         * tree.c (PROCESS_ARG): Likewise.
32135
32136 2010-04-07  Simon Baldwin  <simonb@google.com>
32137
32138         * diagnostic.h (diagnostic_override_option_index): New macro to
32139         set a diagnostic's option_index.
32140         * c-tree.h (c_cpp_error): Add warning reason argument.
32141         * opts.c (_warning_as_error_callback): New.
32142         (register_warning_as_error_callback): Store callback for
32143         warnings enabled via enable_warning_as_error.
32144         (enable_warning_as_error): Call callback, minor code tidy.
32145         * opts.h (register_warning_as_error_callback): Declare.
32146         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
32147         response to -Werror=.
32148         (c_common_init_options): Register warning_as_error_callback in opts.c.
32149         * common.opt: Add -Wno-cpp option.
32150         * c-common.c (struct reason_option_codes_t): Map cpp warning
32151         reason codes to gcc option indexes.
32152         * (c_option_controlling_cpp_error): New function, lookup the gcc
32153         option index for a cpp warning reason code.
32154         * (c_cpp_error): Add warning reason argument, call
32155         c_option_controlling_cpp_error for diagnostic_override_option_index.
32156         * doc/invoke.texi: Document -Wno-cpp.
32157
32158 2010-04-07  Richard Guenther  <rguenther@suse.de>
32159
32160         * ipa-reference.c (mark_load): Use get_base_address.
32161         (mark_store): Likewise.
32162
32163         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
32164         inserting GIMPLE_NOPs into the IL.
32165         * tree-ssa-structalias.c (get_constraint_for_component_ref):
32166         Explicitly strip handled components and indirect references.
32167
32168         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
32169         folding address expressions.
32170         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
32171         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
32172         operand_equal_p to compare decls.
32173         (ptr_deref_may_alias_decl_p): Likewise.
32174         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
32175         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
32176         Handle reversed comparison ops.
32177         * tree-sra.c (asm_visit_addr): Use get_base_address.
32178         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
32179         * ipa-reference.c (mark_address): Use get_base_address.
32180
32181 2010-04-07  Richard Guenther  <rguenther@suse.de>
32182
32183         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
32184         Propagate constants everywhere.
32185
32186 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32187
32188         PR debug/43516
32189         * tree.c (MAX_INT_CACHED_PREC): Define.
32190         (nonstandard_integer_type_cache): New array.
32191         (build_nonstandard_integer_type): Cache results for precision
32192         <= MAX_INT_CACHED_PREC.
32193
32194 2010-04-07  Richard Guenther  <rguenther@suse.de>
32195
32196         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
32197         -fargument-noalias-global, -fargument-noalias-anything): Remove.
32198         * common.opt: Likewise.
32199         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
32200         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
32201         (nonoverlapping_memrefs_p): Likewise.
32202         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
32203         * opts.c (common_handle_option): Handle OPT_fargument_alias,
32204         OPT_fargument_noalias, OPT_fargument_noalias_anything and
32205         OPT_fargument_noalias_global for backward compatibility.
32206
32207 2010-04-07  Richard Guenther  <rguenther@suse.de>
32208
32209         PR tree-optimization/43270
32210         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
32211         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
32212         * tree-ssa-pre.c (phi_translate_1): Adjust.
32213         (fully_constant_expression): Split out vn_reference handling to ...
32214         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
32215         Fold reads from constant strings.
32216         (vn_reference_lookup): Handle fully constant references.
32217         (vn_reference_lookup_pieces): Likewise.
32218         * Makefile.in (expmed.o-warn): Add -Wno-error.
32219
32220 2010-04-07  Martin Jambor  <mjambor@suse.cz>
32221
32222         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
32223
32224 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
32225
32226         PR driver/41594
32227         * gcc.c: Add -static-libstdc++ to list of recognized options.
32228
32229 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32230
32231         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
32232
32233 2010-04-07  Richard Guenther  <rguenther@suse.de>
32234
32235         PR middle-end/42617
32236         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
32237         bases build simple mem attributes to retain points-to information.
32238
32239 2010-04-07  Richard Guenther  <rguenther@suse.de>
32240
32241         PR middle-end/42617
32242         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32243         preserve points-to related information.
32244
32245 2010-04-07  Richard Guenther  <rguenther@suse.de>
32246
32247         PR middle-end/42617
32248         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32249         discard plain indirect references.
32250         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32251         * tree.c (tree_nop_conversion): Likewise.
32252
32253 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
32254
32255         PR debug/43628
32256         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32257
32258 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
32259
32260         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
32261         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
32262
32263 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32264
32265         * tree-if-conv.c: Fix indentation and comments.
32266
32267 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32268
32269         * tree-if-conv.c: Sort static functions in topological order.
32270
32271 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32272
32273         * tree-if-conv.c: Fix indentation and comments.
32274
32275 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32276
32277         PR middle-end/43519
32278         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
32279         lang_hooks.types.type_for_size instead of
32280         build_nonstandard_integer_type.
32281         When converting an unsigned type to signed, double its precision.
32282         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
32283         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
32284         (graphite_create_new_loop_guard): When ub + 1 wraps around,
32285         use lb <= ub.
32286
32287 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32288
32289         PR middle-end/43519
32290         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
32291         POINTER_PLUS_EXPR for pointer types.
32292
32293 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32294
32295         PR middle-end/43519
32296         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
32297         * graphite-clast-to-gimple.c: Include langhooks.h.
32298         (max_signed_precision_type): New.
32299         (max_precision_type): Takes two types as arguments.
32300         (precision_for_value): New.
32301         (precision_for_interval): New.
32302         (gcc_type_for_interval): New.
32303         (gcc_type_for_value): New.
32304         (gcc_type_for_clast_term): New.
32305         (gcc_type_for_clast_red): New.
32306         (gcc_type_for_clast_bin): New.
32307         (gcc_type_for_clast_expr): Split up into several functions.
32308         (gcc_type_for_clast_eq): Rewritten.
32309         (compute_bounds_for_level): New.
32310         (compute_type_for_level_1): New.
32311         (compute_type_for_level): New.
32312         (gcc_type_for_cloog_iv): Removed.
32313         (gcc_type_for_iv_of_clast_loop): Rewritten.
32314         (graphite_create_new_loop): Compute the lower and upper bound types
32315         with gcc_type_for_clast_expr.
32316         (graphite_create_new_loop_guard): Same.
32317         (find_cloog_iv_in_expr): Removed.
32318         (compute_cloog_iv_types_1): Removed.
32319         (compute_cloog_iv_types): Removed.
32320         (gloog): Do not call compute_cloog_iv_types.
32321         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
32322         GBB_CLOOG_IV_TYPES.
32323         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
32324         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
32325         (GBB_CLOOG_IV_TYPES): Removed.
32326
32327 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32328
32329         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
32330         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
32331         (detect_commutative_reduction): Same.
32332
32333 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32334
32335         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
32336         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
32337         argument.
32338         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
32339         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
32340         (rewrite_commutative_reductions_out_of_ssa): Same.
32341         * passes.c (execute_function_todo): Call verify_ssa for every pass
32342         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
32343         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
32344         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
32345         with an extra argument.
32346         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
32347         verify_ssa only when the extra argument is true.
32348         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
32349         with an extra argument.
32350         (tree_transform_and_unroll_loop): Same.
32351
32352 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32353
32354         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
32355         for all the passes of the LNO having LOOP_CLOSED_SSA.
32356         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
32357         * tree-loop-distribution.c (pass_loop_distribution): Same.
32358         * tree-pass.h (TODO_verify_loops): Removed.
32359         * tree-ssa-loop.c (pass_tree_loop_init): Same.
32360         (pass_lim): Same.
32361         (pass_tree_unswitch): Same.
32362         (pass_predcom): Same.
32363         (pass_vectorize): Same.
32364         (pass_linear_transform): Same.
32365         (pass_graphite_transforms): Same.
32366         (pass_iv_canon): Same.
32367         (pass_complete_unroll): Same.
32368         (pass_complete_unrolli): Same.
32369         (pass_parallelize_loops): Same.
32370         (pass_loop_prefetch): Same.
32371         (pass_iv_optimize): Same.
32372
32373 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
32374
32375         PR middle-end/32824
32376         * passes.c (init_optimization_passes): Move pass_lim before
32377         pass_copy_prop and pass_dce_loop.
32378
32379 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32380
32381         PR target/43667
32382         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
32383         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
32384         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
32385         MULTI_* defines for 4 argument vpermil2p* builtins.
32386
32387 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32388
32389         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
32390         * config/i386/i386.c (x86_maybe_negate_const_int): New.
32391         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
32392         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
32393         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
32394         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
32395         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
32396         Use x86_maybe_negate_const_int to output insn mnemonic.
32397         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
32398         check from instruction predicate.  Update comments.
32399         * config/i386/sync.md (sync_add<mode>): Use
32400         x86_maybe_negate_const_int to output insn mnemonic.
32401
32402 2010-04-06  Jan Hubicka  <jh@suse.cz>
32403
32404         PR tree-optimization/42906
32405         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
32406         IGNORE_SELF argument.  Set visited_control_parents for fully
32407         processed BBs.
32408         (find_obviously_necessary_stmts): Update call of
32409         mark_control_dependent_edges_necessary.
32410         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
32411
32412 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32413
32414         * config/i386/i386.md: Remove comment about 'e' and 'E'
32415         operand modifier.
32416
32417 2010-04-06  Richard Guenther  <rguenther@suse.de>
32418
32419         PR tree-optimization/43627
32420         * tree-vrp.c (extract_range_from_unary_expr): Widenings
32421         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
32422         not varying.
32423
32424 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32425
32426         * BASE-VER: Change to 4.6.0.
32427
32428         PR target/43638
32429         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
32430         handling.
32431
32432 2010-04-06  Richard Guenther  <rguenther@suse.de>
32433
32434         PR middle-end/43661
32435         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
32436
32437 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32438
32439         * doc/invoke.texi (Optimize Options): Document that LTO
32440         won't remove object access purely due to incompatible
32441         declarations.
32442
32443 2010-04-04  Matthias Klose  <doko@ubuntu.com>
32444
32445         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
32446         Initialize variable.
32447
32448 2010-04-03  Richard Guenther  <rguenther@suse.de>
32449
32450         PR middle-end/42509
32451         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
32452         require a non-NULL MEM_OFFSET.
32453
32454 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
32455
32456         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
32457         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
32458         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
32459         config/alpha/predicates.md, config/arm/arm.md,
32460         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
32461         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
32462         config/darwin9.h, config/darwin.c, config/darwin.h,
32463         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
32464         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
32465         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
32466         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
32467         config/mips/mips.md, config/mn10300/mn10300.c,
32468         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
32469         config/rs6000/aix.h, config/rs6000/dfp.md,
32470         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
32471         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
32472         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
32473         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
32474         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
32475         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
32476         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
32477         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
32478         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
32479         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
32480         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
32481         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
32482         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
32483         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
32484         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
32485         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
32486         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
32487         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
32488         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
32489         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
32490         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
32491         opt-functions.awk, opth-gen.awk, params.def, passes.c,
32492         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
32493         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
32494         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
32495         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
32496         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
32497         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
32498         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
32499         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
32500         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
32501         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
32502         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
32503         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
32504         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
32505         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
32506
32507 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32508
32509         PR other/43620
32510         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
32511         * aclocal.m4: Regenerate.
32512
32513 2010-04-02  Richard Guenther  <rguenther@suse.de>
32514
32515         PR tree-optimization/43629
32516         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
32517         if we have seen a constant value.
32518
32519 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
32520
32521         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
32522
32523 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
32524
32525         PR target/43469
32526         * arm.c (legitimize_tls_address): Adjust call to
32527         gen_tls_load_dot_plus_four.
32528         (arm_note_pic_base): New function.
32529         (arm_cannot_copy_insn_p): Use it.
32530         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
32531         constraint.
32532
32533 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32534
32535         PR bootstrap/43531
32536
32537         Revert:
32538         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32539
32540         * Makefile.in ($(out_object_file)): Depend on
32541         gt-$(basename $(notdir $(out_file))).h.
32542
32543 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
32544
32545         * config.gcc (lm32-*-rtems*): Add t-lm32.
32546
32547 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
32548
32549         * config.gcc: Add lm32-*-rtems*.
32550         * config/lm32/rtems.h: New file.
32551
32552 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
32553
32554         PR target/42609
32555         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
32556
32557 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
32558
32559         * dwarf2out.c (output_compilation_unit_header): For
32560         -gdwarf-4 use version 4 instead of version 3.
32561         (output_line_info): For version 4 and above emit additional
32562         maximum ops per insn header field.
32563         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
32564
32565         * dwarf2out.c (is_c_family, is_java): Remove.
32566         (lower_bound_default): New function.
32567         (add_bound_info, gen_descr_array_type_die): Use it.
32568
32569 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
32570
32571         PR debug/43325
32572         * dwarf2out.c (gen_variable_die): Allow debug info for variable
32573         re-declaration when it happens in a function.
32574
32575 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
32576
32577         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
32578         (cgraph_remove_function_insertion_hook): Same.
32579         (cgraph_call_function_insertion_hooks): Same.
32580
32581 2010-04-01  Richard Guenther  <rguenther@suse.de>
32582
32583         PR middle-end/43614
32584         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
32585         and TREE_THIS_VOLATILE.
32586         (copy_ref_info): Likewise.
32587         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
32588         * tree.c (build6_stat): Ignore side-effects of all but arg5
32589         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
32590         TARGET_MEM_REF.
32591
32592 2010-04-01  Richard Guenther  <rguenther@suse.de>
32593
32594         PR tree-optimization/43607
32595         * ipa-type-escape.c (check_call): Do not access non-existing
32596         arguments.
32597
32598 2010-04-01  Richard Guenther  <rguenther@suse.de>
32599
32600         PR middle-end/43602
32601         Revert
32602         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
32603                     Jack Howarth  <howarth@bromo.med.uc.edu>
32604
32605         * tree-profile.c (tree_init_ic_make_global_vars): Make static
32606         variables TLS.
32607
32608 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32609
32610         * doc/install.texi (Prerequisites): Document libelf usability on
32611         IRIX 5/6 and Solaris 2.
32612         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
32613         Update GNU as, GNU ld requirements.
32614         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
32615         Document Sun Studio compiler download.
32616         Update and simplify as, ld recommendations.
32617         (Specific, *-*-solaris2.7): Note obsoletion, removal.
32618
32619 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32620
32621         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
32622         with_tune_32 to pentium4.
32623
32624 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
32625
32626         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
32627
32628 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32629
32630         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
32631         obsoletion, removal.
32632         Update IDO URL.
32633         Document GNU as requirement.
32634         Update configure requirements.
32635         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
32636         Recomment IRIX 6.5.18+.
32637         Document IDF/IDL requirement.
32638         Document GNU as requirement.
32639         Document GNU ld bootstrap failure.
32640         Remove freeware.sgi.com reference.
32641
32642 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32643
32644         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
32645         UNIX V4.0, V5.0 obsoletion, removal.
32646         Remove --with-gc=simple reference.
32647         Update VM requirements during bootstrap.
32648         Remove -oldas bootstrap description.
32649         Update binutils reference.
32650         Remove comparison failure note.
32651
32652 2010-03-31  Richard Guenther  <rguenther@suse.de>
32653             Zdenek Dvorak  <ook@ucw.cz>
32654             Sebastian Pop  <sebastian.pop@amd.com>
32655
32656         PR middle-end/43464
32657         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
32658         with multiple arguments.
32659         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
32660
32661 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32662
32663         * graphite-dependences.c (print_pddr): Call print_pdr with an
32664         extra argument.
32665         * graphite-poly.c (debug_pdr): Add an extra argument for the
32666         verbosity level.
32667         (print_pdr): Same.
32668         (print_pbb_domain): Same.
32669         (print_pbb): Same.
32670         (print_scop_context): Same.
32671         (print_scop): Same.
32672         (print_cloog): Same.
32673         (debug_pbb_domain): Same.
32674         (debug_pbb): Same.
32675         (print_pdrs): Same.
32676         (debug_pdrs): Same.
32677         (debug_scop_context): Same.
32678         (debug_scop): Same.
32679         (debug_cloog): Same.
32680         (print_scop_params): Same.
32681         (debug_scop_params): Same.
32682         (print_iteration_domain): Same.
32683         (print_iteration_domains): Same.
32684         (debug_iteration_domain): Same.
32685         (debug_iteration_domains): Same.
32686         (print_scattering_function): Same.
32687         (print_scattering_functions): Same.
32688         (debug_scattering_function): Same.
32689         (debug_scattering_functions): Same.
32690         * graphite-poly.h (debug_pdr): Update declaration.
32691         (print_pdr): Same.
32692         (print_pbb_domain): Same.
32693         (print_pbb): Same.
32694         (print_scop_context): Same.
32695         (print_scop): Same.
32696         (print_cloog): Same.
32697         (debug_pbb_domain): Same.
32698         (debug_pbb): Same.
32699         (print_pdrs): Same.
32700         (debug_pdrs): Same.
32701         (debug_scop_context): Same.
32702         (debug_scop): Same.
32703         (debug_cloog): Same.
32704         (print_scop_params): Same.
32705         (debug_scop_params): Same.
32706         (print_iteration_domain): Same.
32707         (print_iteration_domains): Same.
32708         (debug_iteration_domain): Same.
32709         (debug_iteration_domains): Same.
32710         (print_scattering_function): Same.
32711         (print_scattering_functions): Same.
32712         (debug_scattering_function): Same.
32713         (debug_scattering_functions): Same.
32714
32715 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32716
32717         * graphite-poly.c (print_scattering_function_1): New.
32718         (print_scattering_function): Call it.
32719         (print_scop_params): Remove spaces at the end of lines.
32720         (print_cloog): New.
32721         (debug_cloog): New.
32722         * graphite-poly.h (print_cloog): Declared.
32723         (debug_cloog): Declared.
32724
32725 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32726
32727         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
32728         in loop->header.
32729         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
32730         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
32731         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
32732         to switch between adding the IV bump in loop->latch or in loop->header.
32733
32734 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32735
32736         * graphite-poly.c (print_scattering_function): Pretty print following
32737         the scoplib format.
32738         (print_pdr): Same.
32739         (print_pbb_domain): Same.
32740         (dump_gbb_cases): Same.
32741         (dump_gbb_conditions): Same.
32742         (print_pdrs): Same.
32743         (print_pbb): Same.
32744         (print_scop_params): Same.
32745         (print_scop_context): Same.
32746         (print_scop): Same.
32747         (print_pbb_body): New.
32748         (lst_indent_to): New.
32749         (print_lst): Start new lines with a #.
32750         * graphite-poly.h (pbb_bb): New.
32751         (pbb_index): Use pbb_bb.
32752         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
32753         disjuncts.
32754         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
32755
32756 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
32757
32758         * dwarf2out.c (size_of_die): For -gdwarf-4 use
32759         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
32760         and 0 instead of 1 for dw_val_class_flag.
32761         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
32762         dw_val_class_range_list, dw_val_class_loc_list,
32763         dw_val_class_lineptr and dw_val_class_macptr, use
32764         DW_FORM_flag_present for dw_val_class_flag and
32765         DW_FORM_exprloc for dw_val_class_loc.
32766         (output_die): For -gdwarf-4 print dw_val_class_loc
32767         size as uleb128 instead of 1 or 2 bytes and don't print
32768         anything for dw_val_class_flag.
32769
32770         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
32771         instead of cselib_lookup following by tweaking locs->setting_insn.
32772
32773         PR bootstrap/43596
32774         * cselib.c (cselib_process_insn): Clear cselib_current_insn
32775         even before returning from label, setjmp call or volatile asm
32776         handling.
32777
32778 2010-03-31  Richard Guenther  <rguenther@suse.de>
32779
32780         PR middle-end/43600
32781         * cgraphunit.c (cgraph_output_in_order): Do not allocate
32782         temporary data on stack.
32783
32784 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32785
32786         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
32787         (PUSHSECTION_ASM_OP): Remove.
32788         (POPSECTION_ASM_OP): Remove.
32789         (PUSHSECTION_FORMAT): Remove.
32790         * config/sol2.h (PUSHSECTION_FORMAT): Define.
32791         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
32792         * config/sol2.c (solaris_output_init_fini): Use it.
32793
32794 2010-03-31  Jie Zhang  <jie@codesourcery.com>
32795
32796         PR 43574
32797         * opt-functions.awk (var_type_struct): Use signed char type
32798         for simple variables.
32799
32800 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32801
32802         * config/sol2.c: Include output.h.
32803         (solaris_assemble_visibility): New function.
32804         * config/t-sol2 (sol2.o): Add output.h dependency.
32805         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
32806         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
32807         Redefine.
32808
32809 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
32810
32811         PR target/43580
32812         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
32813         V2SImode or XFmode on PRE_DEC.
32814
32815         PR debug/43557
32816         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
32817         BLKmode.
32818
32819 2010-03-31  Jie Zhang  <jie@codesourcery.com>
32820
32821         PR 43562
32822         * reload.h (caller_save_initialized_p): Declare.
32823         * toplev.c (backend_init_target): Don't call
32824         init_caller_save but set caller_save_initialized_p to false.
32825         * caller-save.c (caller_save_initialized_p): Define.
32826         (init_caller_save): Check caller_save_initialized_p.
32827         * ira.c (ira): Call init_caller_save if flag_caller_saves.
32828
32829 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32830
32831         PR target/39048
32832         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
32833         and soft-fp/t-softfp to tmake_file.
32834         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
32835         (LIBGCC2_TF_CEXT): Define.
32836         (TF_SIZE): Define.
32837
32838 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
32839
32840         PR debug/42977
32841         * cselib.c (n_useless_values): Document handling of debug locs.
32842         (n_useless_debug_values, n_debug_values): New variables.
32843         (new_elt_loc_list): Don't add to debug values, keep count.
32844         (promote_debug_loc): New.
32845         (cselib_reset_table): Zero new variables.
32846         (entry_and_rtx_equal_p): Promote debug locs.
32847         (discard_useless_locs): Increment n_useless_debug_values for
32848         debug values.
32849         (remove_useless_values): Adjust n_useless_values and n_debug_values
32850         with n_useless_debug_values.
32851         (add_mem_for_addr): Promote debug locs.
32852         (cselib_lookup_mem): Likewise.
32853         (cselib_lookup_addr): Renamed to...
32854         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
32855         (cselib_log_lookup): ... this.  Turn into...
32856         (cselib_lookup_addr): ... new wrapper.
32857         (cselib_lookup_from_insn): New.
32858         (cselib_invalidate_regno): Increment n_useless_debug_values for
32859         debug values.
32860         (cselib_invalidate_mem): Likewise.
32861         (cselib_process_insn): Take n_deleted and n_debug_values into
32862         account to guard remove_useless_value call.
32863         (cselib_finish): Zero n_useless_debug_values.
32864         * cselib.h (cselib_lookup_from_insn): Declare.
32865         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
32866         (sched_analyze_2): Likewise.
32867
32868 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
32869
32870         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
32871         functions.
32872         (adjust_mems): Replace narrowing SUBREG of expression containing
32873         just PLUS, MINUS, MULT and ASHIFT of registers and constants
32874         with operations in the narrower mode.
32875
32876         PR debug/43593
32877         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
32878         regs_invalidated_by_call instead all call_used_reg_set registers.
32879
32880 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
32881
32882         PR middle-end/43430
32883         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
32884         pointer comparisons with types_compatible_p.
32885         * tree-vect-stmts.c (vectorizable_call): Same.
32886         (vectorizable_condition): Same.
32887
32888 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32889
32890         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
32891         stack check if the mask would be zero.
32892
32893 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
32894             Jack Howarth  <howarth@bromo.med.uc.edu>
32895
32896         * tree-profile.c (tree_init_ic_make_global_vars): Make static
32897         variables TLS.
32898
32899 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
32900
32901         PR other/25232
32902         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
32903         and __unordtf2.
32904         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
32905         Include ___unordxf2 and ___unordtf2.
32906         * config/i386/libgcc-glibc.ver: Do not define inheritance from
32907         GCC_4.4.0 here.
32908
32909 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
32910
32911         * config/lm32/t-lm32: New file.
32912         * config.gcc: Use the above file when targetting lm32.
32913
32914 2010-03-28  Duncan Sands  <baldrick@free.fr>
32915
32916         * Makefile.in (PLUGIN_HEADERS): Add except.h.
32917
32918 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
32919
32920         PR middle-end/43431
32921         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
32922         Improve vectorization cost model diagnostic.
32923
32924 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
32925
32926         PR middle-end/43436
32927         * tree-vect-data-refs.c (vect_analyze_data_refs): When
32928         compute_data_dependences_for_loop returns false, early exit
32929         and output an extra diagnostic for the failed data reference
32930         analysis.
32931
32932 2010-03-29  Richard Guenther  <rguenther@suse.de>
32933
32934         PR tree-optimization/43560
32935         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
32936         (can_sm_ref_p): Treat stores to readonly locations as trapping.
32937
32938 2010-03-29  Jie Zhang  <jie@codesourcery.com>
32939
32940         PR 43564
32941         * toplev.c (process_options): Set optimization_default_node
32942         and optimization_current_node.
32943         * opts.c (decode_options): Don't set optimization_default_node
32944         and optimization_current_node.
32945
32946 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
32947
32948         * config/rtems.h: Abandon -qrtems_debug.
32949
32950 2010-03-28  Jan Hubicka  <jh@suse.cz>
32951
32952         PR tree-optimization/43505
32953         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
32954         map should not be copied.
32955
32956 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32957
32958         PR middle-end/41674
32959         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
32960         cdtors, set DECL_PRESERVE_P.
32961         * ipa.c (cgraph_externally_visible_p): Return true if declaration
32962         should be preseved.
32963
32964 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
32965
32966         PR tree-optimization/43528
32967         * stor-layout.c (place_field): Check that constant fits into
32968         unsigned HWI when skipping calculation of MS bitfield layout.
32969
32970 2010-03-27  Jan Hubicka  <jh@suse.cz>
32971
32972         PR middle-end/43391
32973         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
32974         notice_global_symbol work.
32975
32976 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
32977
32978         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
32979         instead of dwarf2out_decl.
32980         (struct var_loc_node): Remove section_label field.
32981         (dwarf2out_function_decl): New function.
32982         (dwarf2out_var_location): Don't set section_label field.
32983         (dwarf2out_begin_function): Don't empty decl_loc_table here.
32984
32985 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
32986
32987         PR tree-optimization/43544
32988         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
32989         First argument for builtin vectorized function hook is now a
32990         tree to be able to distinguish between machine specific and
32991         standard builtins.
32992         * targhooks.c (default_builtin_vectorized_function): Ditto.
32993         * targhooks.h (default_builtin_vectorized_function): Ditto.
32994         * target.h (struct gcc_target): Ditto.
32995         * tree-vect-stmts.c (vectorizable_function): Ditto.
32996         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
32997         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
32998         Ditto.
32999
33000 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
33001
33002         PR c/43381
33003         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
33004         nested binding iff it is a FUNCTION_DECL.
33005         (store_parm_decls_newstyle): Pass nested=true to bind for
33006         FUNCTION_DECLs amongst parameters.
33007
33008 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33009
33010         * var-tracking.c (vt_expand_loc_callback): Don't run
33011         cselib_expand_value_rtx_cb in dummy mode if
33012         cselib_dummy_expand_value_rtx_cb returned false.
33013
33014         * var-tracking.c (emit_note_insn_var_location): For one part
33015         notes with offset 0, don't add EXPR_LIST around the location.
33016         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
33017         add_location_or_const_value_attribute): Adjust for that change.
33018
33019         PR debug/43540
33020         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
33021         into first operand and location into second.
33022         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
33023         dw_cfi_oprnd_loc for DW_CFA_expression.
33024         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
33025         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
33026         assume first argument is regnum and second argument is location.
33027
33028 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33029
33030         PR target/42113
33031         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
33032         of scratch register to DImode.  Split to DImode comparison operator.
33033         Use SImode subreg of scratch register in the multiplication.
33034         (*cmp_sadd_sidi): Ditto.
33035         (*cmp_ssub_si): Ditto.
33036         (*cmp_ssub_sidi): Ditto.
33037
33038 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33039
33040         PR target/43524
33041         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
33042         Remove invalid assert and wrong comment.
33043
33044 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33045
33046         PR debug/43516
33047         * flags.h (final_insns_dump_p): New extern.
33048         * final.c (final_insns_dump_p): New variable.
33049         (rest_of_clean_state): Set it before -fdump-final-insns=
33050         dumping, clear afterwards.
33051         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
33052         MEM_ALIAS_SET on MEMs.
33053
33054 2010-03-26  David S. Miller  <davem@davemloft.net>
33055
33056         * configure.ac: Fix sparc GOTDATA_OP bug check.
33057         * configure: Rebuild.
33058
33059 2010-03-26  Alan Modra  <amodra@gmail.com>
33060
33061         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
33062
33063 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33064
33065         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
33066         TLS_SECTION_ASM_FLAG.
33067
33068 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
33069
33070         PR bootstrap/43511
33071         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
33072         Clear first_function_block_is_cold.
33073
33074         PR c/43385
33075         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
33076         argument if the argument is truth_value_p.
33077
33078 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
33079
33080         * config/rs6000/constraints.md: Update copyright year for my changes.
33081
33082         PR target/43484
33083         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
33084         used in reg+reg addressing, swap registers.
33085
33086 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33087
33088         PR debug/43293
33089         * target.h (struct gcc_target): Add code_end hook.
33090         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
33091         if not yet defined.
33092         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
33093         * toplev.c (compile_file): Call targetm.asm_out.code_end
33094         hook before unwind info/debug info output.
33095         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
33096         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
33097         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33098         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
33099         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33100         * config/i386/i386.c (ix86_file_end): Renamed to...
33101         (ix86_code_end): ... this.  Make static.  Don't call
33102         file_end_indicate_exec_stack.  Emit unwind info using
33103         final_start_function/final_end_function.
33104         (darwin_x86_file_end): Remove.
33105         (TARGET_ASM_CODE_END): Define.
33106         * config/i386/i386.h (TARGET_ASM_FILE_END,
33107         NEED_INDICATE_EXEC_STACK): Don't define.
33108         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
33109         (TARGET_ASM_FILE_END): Define to darwin_file_end.
33110         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
33111         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
33112
33113         PR target/43498
33114         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
33115         at the beginning and final_end_function at the end.
33116         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
33117
33118 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33119
33120         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
33121         and Sun as TLS syntax.
33122         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
33123         * configure: Regenerate.
33124         * config.in: Regenerate.
33125         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
33126         (default_elf_asm_named_section): Use it.
33127         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
33128         (i386_output_dwarf_dtprel): Likewise.
33129         (output_addr_const_extra): Likewise.
33130         (output_pic_addr_const): Lowercase @GOTTPOFF.
33131         (output_addr_const_extra): Likewise.
33132         (output_pic_addr_const): Lowercase @GOTNTPOFF.
33133         (output_addr_const_extra): Likewise.
33134         (output_pic_addr_const): Lowercase @INDNTPOFF.
33135         (output_addr_const_extra): Likewise.
33136         (output_pic_addr_const): Lowercase @NTPOFF.
33137         (output_addr_const_extra): Likewise.
33138         (output_pic_addr_const): Lowercase @TPOFF.
33139         (output_addr_const_extra): Likewise.
33140         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
33141         (*tls_global_dynamic_64): Likewise.
33142         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
33143         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
33144
33145         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
33146         (ASM_OUTPUT_TLS_COMMON): Use it.
33147         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
33148
33149         PR target/38118
33150         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
33151         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
33152         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
33153         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
33154         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33155         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
33156
33157 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33158
33159         * config/i386/i386.c (override_options): Don't accept
33160         -mtls-dialect=sun any longer.
33161         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
33162         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
33163         (*tls_local_dynamic_base_32_sun): Likewise.
33164         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33165
33166 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33167
33168         PR debug/43508
33169         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
33170         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
33171
33172         PR debug/43479
33173         * ira.c (adjust_cleared_regs): New function.
33174         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
33175
33176         PR debug/19192
33177         PR debug/43479
33178         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
33179         from gimple_block.
33180         * expr.c (expand_expr_real): Restore previous
33181         curr_insn_source_location and curr_insn_block after
33182         expand_expr_real_1 call.
33183         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
33184         instead of expand_expr_real_1.
33185
33186 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
33187
33188         PR rtl-optimization/43413
33189         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
33190         hard regs too.
33191
33192 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
33193
33194         PR target/43348
33195         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
33196         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
33197
33198 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
33199
33200         * config/i386/i386.c (ix86_target_string): Add -mfma.
33201         Fix a typo in comment.
33202
33203 2010-03-22  Mike Stump  <mikestump@comcast.net>
33204
33205         PR target/23071
33206         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
33207         Don't overly align based upon packed packed fields.
33208
33209 2010-03-22  Jason Merrill  <jason@redhat.com>
33210
33211         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
33212         Use () rather than [], and move before the element type.
33213
33214 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33215
33216         * doc/configfiles.texi (Configuration Files): Removed
33217         fixinc/Makefile*, intl/Makefile.*.
33218         * doc/makefile.texi: Fixed markup. Abstract from version
33219         control system used.
33220         (Makefile): Removed obsolete java/parse.y example.
33221         * doc/sourcebuild.texi: Likewise.
33222         (Top Level): Added config, gnattools, libdecnumber, libgcc,
33223         libgomp, libssp.  Removed fastjar.
33224         (Miscellaneous Docs): Clarify location.
33225         Added COPYING3, COPYING3.LIB.
33226         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
33227
33228 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33229
33230         PR target/38085
33231         * config/i386/i386.c (x86_function_profiler)
33232         [!NO_PROFILE_COUNTERS]: Fix typo.
33233         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
33234         instead of callq.
33235
33236 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
33237             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33238
33239         * doc/sourcebuild.texi (Test Directives): Split into six
33240         subsections, with most of the current text in new subsections
33241         Directives, Selectors, and Final Actions.
33242         (Directives): Split list of test directives into multiple
33243         subsubsections.
33244         (Selectors): Describe use and syntax of selectors.
33245         (Effective-Target Keywords): Describe all existing keywords.
33246         (Add Options): Describe features for dg-add-options.
33247         (Require Support): Describe variants of dg-require-support.
33248         (Final Actions): Describe commands to use in dg-final.
33249
33250 2010-03-22  Michael Matz  <matz@suse.de>
33251
33252         PR middle-end/43475
33253         * recog.c (validate_replace_rtx_group): Replace also in
33254         REG_EQUAL and REG_EQUIV notes.
33255
33256 2010-03-22  Richard Guenther  <rguenther@suse.de>
33257
33258         PR tree-optimization/43390
33259         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33260         sure vector extracts are type correct.
33261
33262 2010-03-22  Richard Guenther  <rguenther@suse.de>
33263
33264         PR middle-end/40106
33265         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
33266         x * sqrt (x) even when optimizing for size if the target
33267         has native support for sqrt.
33268
33269 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
33270
33271         * varasm.c (make_decl_rtl_for_debug): Also clear
33272         flag_mudflap for the duration of make_decl_rtl call.
33273
33274         PR debug/43443
33275         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
33276         locs from preserved VALUEs.
33277
33278 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33279
33280         PR middle-end/42718
33281         * pa.md (movmemsi): Set align to one if zero.
33282         (movmemdi): Likewise.
33283
33284 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
33285
33286         PR target/42321
33287         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
33288         with their corresponding prologue pushes.
33289
33290 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
33291
33292         PR target/43156
33293         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
33294         at the begining or end.
33295         (spu_expand_epilogue): Likewise.
33296
33297 2010-03-20  Richard Guenther  <rguenther@suse.de>
33298
33299         PR rtl-optimization/43438
33300         * combine.c (make_extraction): Properly zero-/sign-extend an
33301         extraction of the low part of a CONST_INT.  Also handle
33302         CONST_DOUBLE.
33303
33304 2010-03-19  Mike Stump  <mikestump@comcast.net>
33305
33306         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
33307         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
33308         (override_options): Use SUBTARGET32_DEFAULT_CPU.
33309
33310 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33311
33312         PR c/43211
33313         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
33314         an error.
33315
33316 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
33317
33318         PR rtl-optimization/42258
33319         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
33320         use that may match DEF.
33321
33322         PR target/40697
33323         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
33324         the cost of loading the constant rather than assuming
33325         COSTS_N_INSNS (1).
33326         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
33327         outer code is AND, do the same tests as the andsi3 expander and
33328         return COSTS_N_INSNS (1) if and is cheap.
33329
33330         * optabs.c (avoid_expensive_constant): Fix formatting.
33331
33332 2010-03-19  Michael Matz  <matz@suse.de>
33333
33334         PR c++/43116
33335         * attribs.c (decl_attributes): When rebuilding a function pointer
33336         type use the same qualifiers as the original pointer type.
33337
33338 2010-03-19  Martin Jambor  <mjambor@suse.cz>
33339
33340         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
33341         and is_gimple_ip_invariant_address.
33342
33343 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33344
33345         Revert
33346         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33347
33348         * config/arm/arm.c (arm_override_options): Turn off
33349         flag_dwarf2_cfi_asm for AAPCS variants.
33350
33351 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33352
33353         PR target/43399
33354         * config/arm/arm.c (emit_multi_reg_push): Update comments.
33355         Use PRE_MODIFY instead of PRE_DEC.
33356         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
33357         (vfp_emit_fstmd): Likewise.
33358
33359 2010-03-19  Michael Matz  <matz@suse.de>
33360
33361         PR target/43305
33362         * builtins.c (expand_builtin_interclass_mathfn,
33363         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
33364         if that fails.
33365
33366 2010-03-19  Richard Guenther  <rguenther@suse.de>
33367
33368         PR tree-optimization/43415
33369         * tree-ssa-pre.c (phi_translate): Split out worker to ...
33370         (phi_translate_1): ... this.
33371         (phi_translate): Move all caching here.  Cache all NARY
33372         and REFERENCE translations.
33373
33374 2010-03-19  David S. Miller  <davem@davemloft.net>
33375
33376         With help from Eric Botcazou.
33377         * config/sparc/sparc.c: Include dwarf2out.h.
33378         (emit_pic_helper): Delete.
33379         (pic_helper_symbol_name): Delete.
33380         (pic_helper_emitted_p): Delete.
33381         (pic_helper_needed): New.
33382         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
33383         (get_pc_thunk_name): New.
33384         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
33385         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
33386         Set pic_helper_needed to true.  Don't call emit_pic_helper.
33387         (sparc_expand_prologue): Update load_pic_register call.
33388         (sparc_output_mi_thunk): Likewise.
33389         (sparc_file_end): Emit a hidden comdat symbol for the PIC
33390         thunk if possible.  Output CFI information as needed.
33391
33392 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33393             Jack Howarth  <howarth@bromo.med.uc.edu>
33394
33395         PR target/36399
33396         * config/i386/i386.h: Fix ABI on darwin x86-32.
33397
33398 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
33399
33400         * tree.h: Declare make_decl_rtl_for_debug.
33401         * varasm.c (make_decl_rtl_for_debug): New.
33402         * dwarf2out.c (rtl_for_decl_location): Call it.
33403         * cfgexpand.c (expand_debug_expr): Call it.
33404
33405 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33406
33407         PR bootstrap/43399
33408         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
33409         mem_mode.
33410
33411         PR bootstrap/43403
33412         * var-tracking.c (vt_init_cfa_base): Do nothing if
33413         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
33414
33415 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
33416
33417         PR debug/42873
33418         * var-tracking.c (canonicalize_vars_star): New.
33419         (dataflow_post_merge_adjust): Use it.
33420
33421 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33422
33423         PR debug/43058
33424         * var-tracking.c (non_suitable_const): New function.
33425         (add_uses): For DEBUG_INSNs with constants, don't record any
33426         value, instead just the constant value itself.
33427         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
33428         is not VAR_LOC_UNKNOWN_P, set var to the constant.
33429         (emit_notes_in_bb): Likewise.
33430         (emit_note_insn_var_location): For onepart variables if
33431         cur_loc is a VOIDmode constant, use DECL_MODE.
33432
33433 2010-03-18  Martin Jambor  <mjambor@suse.cz>
33434
33435         PR middle-end/42450
33436         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
33437         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
33438         all non-clones.  Moved call redirection...
33439         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
33440         (cgraph_materialize_all_clones): Dispose of all
33441         combined_args_to_skip bitmaps.
33442         (verify_cgraph_node): Do not check for edges pointing to wrong
33443         nodes in inline clones.
33444         * tree-inline.c (copy_bb): Call
33445         cgraph_redirect_edge_call_stmt_to_callee.
33446         * ipa.c (cgraph_remove_unreachable_nodes): Call
33447         cgraph_node_remove_callees even when there are used clones.
33448
33449 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33450
33451         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
33452
33453 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33454
33455         PR target/43383
33456         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
33457         for 32bit.
33458
33459 2010-03-18  Michael Matz  <matz@suse.de>
33460
33461         PR middle-end/43419
33462         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
33463         into sqrt(x) if we need to preserve signed zeros.
33464
33465 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
33466             Eric Botcazou  <ebotcazou@adacore.com>
33467
33468         PR rtl-optimization/43360
33469         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
33470         note if we don't know its invariant status.
33471
33472 2010-03-18  Michael Matz  <matz@suse.de>
33473
33474         PR tree-optimization/43402
33475         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
33476         PHI chains of ssa names registered for update.
33477
33478 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
33479
33480         PR target/42427
33481         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
33482         non-offsettable and pre_modify update addressing.
33483         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
33484         and "2" alternatives "#".
33485         (*movdd_softfloat32): Make all alternatives "#";
33486         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
33487         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
33488         (*movdf_softfloat32): Make all alternatives "#";
33489         (movdi): Use the new DIFD mode iterator to create a common splitter
33490         for movdi, movdf and movdd patterns.
33491
33492 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
33493
33494         * common.opt (dumpdir): Remove redundant tab.
33495
33496 2010-03-17  Martin Jambor  <mjambor@suse.cz>
33497
33498         PR tree-optimization/43347
33499         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
33500         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
33501
33502 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
33503
33504         PR rtl-optimization/42216
33505         * regrename.c (create_new_chain): New function, broken out from...
33506         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
33507         appending a use to an empty chain.
33508         (build_def_use): Remove previous changes that convert OP_INOUT to
33509         OP_OUT operands; instead detect the case where an OP_INOUT operand
33510         uses a previously untracked register and create an empty chain for it.
33511
33512 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33513
33514         * doc/extend.texi (Function Attributes): Rewrite unfinished
33515         sentence in ms_abi documentation.
33516
33517 2010-03-17  Alan Modra  <amodra@gmail.com>
33518
33519         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
33520         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
33521         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
33522         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
33523
33524 2010-03-16  Richard Henderson  <rth@redhat.com>
33525
33526         PR middle-end/43365
33527         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
33528         (lower_try_finally): Save and restore eh_seq around the expansion
33529         of the try-finally.
33530
33531 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
33532
33533         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
33534         statements before splitting block.
33535
33536 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33537
33538         * doc/sourcebuild.texi (Testsuites): Fix markup.
33539         Use pathnames relative to gcc/testsuite.
33540         (Test Directives): Move description of how timeout is determined.
33541         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
33542         (C Tests): Correct gcc.misc-tests directory.
33543         Framework tests now live in gcc.test-framework.
33544
33545 2010-03-16  Richard Guenther  <rguenther@suse.de>
33546
33547         PR middle-end/43379
33548         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
33549         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
33550
33551 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
33552             Alexandre Oliva  <aoliva@redhat.com>
33553
33554         PR tree-optimization/42917
33555         * lambda-code.c (remove_iv): Skip debug statements.
33556         (lambda_loopnest_to_gcc_loopnest): Likewise.
33557         (not_interesting_stmt): Debug statements are not interesting.
33558
33559 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
33560
33561         PR debug/43051
33562         PR debug/43092
33563         * cselib.c (cselib_preserve_constants,
33564         cfa_base_preserved_val): New static variables.
33565         (preserve_only_constants): New function.
33566         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
33567         clear its REG_VALUES.  If cselib_preserve_constants, don't
33568         empty the whole hash table, but preserve there VALUEs with constants,
33569         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
33570         (cselib_preserve_cfa_base_value): New function.
33571         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
33572         (cselib_init): Change argument to int bitfield.  Set
33573         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
33574         is in it.
33575         (cselib_finish): Clear cselib_preserve_constants and
33576         cfa_base_preserved_val.
33577         * cselib.h (enum cselib_record_what): New enum.
33578         (cselib_init): Change argument to int.
33579         (cselib_preserve_cfa_base_value): New prototype.
33580         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
33581         * dse.c (dse_step1): Likewise.
33582         * cfgcleanup.c (thread_jump): Likewise.
33583         * sched-deps.c (sched_analyze): Likewise.
33584         * gcse.c (local_cprop_pass): Likewise.
33585         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
33586         If FN is non-NULL, call the callback always and whenever it returns
33587         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
33588         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
33589         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
33590         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
33591         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
33592         * var-tracking.c: Include recog.h.
33593         (bb_stack_adjust_offset): Remove.
33594         (vt_stack_adjustments): Don't call it, instead just gather the
33595         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
33596         (adjust_stack_reference): Remove.
33597         (compute_cfa_pointer): New function.
33598         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
33599         (struct adjust_mem_data): New type.
33600         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
33601         functions.
33602         (get_address_mode): New function.
33603         (replace_expr_with_values): Use it.
33604         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
33605         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
33606         (adjust_sets): Remove.
33607         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
33608         Use get_address_mode.
33609         (get_adjusted_src): Remove.
33610         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
33611         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
33612         (add_with_sets): Don't call adjust_sets.
33613         (fp_setter, vt_init_cfa_base): New functions.
33614         (vt_initialize): Change return type to bool.  Move most of pool etc.
33615         initialization to the beginning of the function from end.  Pass
33616         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
33617         If !frame_pointer_needed, call vt_stack_adjustment before mos
33618         vector is filled, call vt_init_cfa_base if argp/framep has been
33619         eliminated to sp.  If frame_pointer_needed and argp/framep has
33620         been eliminated to hard frame pointer, set
33621         hard_frame_pointer_adjustment and call vt_init_cfa_base after
33622         encountering fp setter in the prologue.  For MO_ADJUST, call
33623         log_op_type before pusing the op into mos vector, not afterwards.
33624         Call adjust_insn before cselib_process_insn/add_with_sets,
33625         call cancel_changes (0) afterwards.
33626         (variable_tracking_main_1): Adjust for vt_initialize calling
33627         vt_stack_adjustments and returning whether it succeeded or not.
33628
33629 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
33630
33631         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
33632         debug statements.
33633
33634 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
33635
33636         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
33637         has been set.
33638         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
33639         drap_reg has not been set.
33640
33641 2010-03-15  Michael Matz  <matz@suse.de>
33642
33643         PR middle-end/43300
33644         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
33645         use it to expand block copies.
33646         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
33647         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
33648         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
33649
33650 2010-03-15  Richard Guenther  <rguenther@suse.de>
33651
33652         PR tree-optimization/43367
33653         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
33654         elimination check.
33655
33656 2010-03-15  Richard Guenther  <rguenther@suse.de>
33657
33658         PR tree-optimization/43317
33659         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
33660
33661 2010-03-15  Martin Jambor  <mjambor@suse.cz>
33662
33663         PR tree-optimization/43141
33664         * tree-sra.c (create_abstract_origin): New function.
33665         (modify_function): Call create_abstract_origin.
33666
33667 2010-03-15  Chris Demetriou  <cgd@google.com>
33668
33669         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
33670         wasn't copied.
33671
33672 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33673
33674         PR middle-end/43354
33675         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
33676         call insert_out_of_ssa_copy for default definitions.
33677
33678 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33679
33680         * graphite-clast-to-gimple.c (my_long_long): Defined.
33681         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
33682         * graphite-sese-to-poly.c (my_long_long): Defined.
33683         (scop_ivs_can_be_represented): Use it.
33684
33685 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33686
33687         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
33688         graphite-max-bbs-per-function, and loop-block-tile-size.
33689         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
33690         with "maximum".
33691         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
33692
33693 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33694
33695         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
33696         forward declaration.
33697         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
33698         (add_upper_bounds_from_estimated_nit): New.
33699         (build_loop_iteration_domains): Use it.
33700
33701 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33702
33703         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
33704
33705 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33706
33707         PR middle-end/43306
33708         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
33709         should be an INTEGER_CST.  Also handle CASE_CONVERT.
33710
33711 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33712
33713         * graphite.c (graphite_initialize): To bound the number of bbs per
33714         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
33715         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
33716         * doc/invoke.texi: Document it.
33717
33718 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33719
33720         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
33721         * graphite-sese-to-poly.h (build_poly_scop): Same.
33722
33723 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33724
33725         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
33726         the number of parameters in the scop.  Use as an upper bound
33727         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
33728         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
33729         * doc/invoke.texi: Document it.
33730
33731 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
33732
33733         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
33734         * doc/c-tree.texi: Remove.
33735         * doc/generic.texi: Merge c-tree.texi here.
33736         * doc/gccint.texi (Trees): Remove menu entry.
33737         (c-tree.texi): Remove @include.
33738         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
33739         * doc/languages.texi (Reading RTL): Ditto.
33740
33741 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
33742
33743         PR target/42869
33744         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
33745
33746 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
33747
33748         PR middle-end/42431
33749         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
33750         code added to work around reload clobbering CONST insns.
33751
33752 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
33753
33754         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
33755         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
33756         (cselib_preserve_only_values): Remove retain argument, don't
33757         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
33758         * cselib.h (cselib_preserve_only_values): Remove retain argument.
33759         * var-tracking.c (micro_operation): Move insn field before union.
33760         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
33761         (struct variable_tracking_info_def): Remove n_mos field, change
33762         mos into a vector of micro_operations.
33763         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
33764         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
33765         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
33766         changing into a vector.
33767         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
33768         come before all other uops generated by add_stores.
33769         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
33770         argument removal.
33771         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
33772         a vector.  Run just one pass over the bbs instead of separate counting
33773         and computation phase.
33774         (vt_finalize): Free VTI (bb)->mos vector instead of array.
33775
33776         PR debug/43329
33777         * tree-inline.c (remap_decls): Put old_var rather than origin_var
33778         into *nonlocalized_list vector.
33779         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
33780         even if origin is non-NULL.
33781         (gen_variable_die): Likewise.
33782         (process_scope_var): Don't change origin.
33783         (gen_decl_die): Likewise.
33784         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
33785         before adding new edges instead of after it, fix moving over
33786         debug stmts.
33787
33788 2010-03-11  David S. Miller  <davem@davemloft.net>
33789
33790         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
33791         of four.
33792         * configure: Rebuild.
33793
33794 2010-03-11  Martin Jambor  <mjambor@suse.cz>
33795
33796         PR tree-optimization/43257
33797         * tree.c (assign_assembler_name_if_neeeded): New function.
33798         (free_lang_data_in_cgraph): Assembler name assignment moved to the
33799         above new function.
33800         * tree.h (assign_assembler_name_if_neeeded): Declare.
33801         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
33802         the function if needed.
33803
33804 2010-03-11  Chris Demetriou  <cgd@google.com>
33805
33806         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
33807         include/stdint-gcc.h, and include/stdint.h world-readable.
33808
33809 2010-03-11  Richard Guenther  <rguenther@suse.de>
33810
33811         PR tree-optimization/43255
33812         * tree-vrp.c (process_assert_insertions_for): Do not insert
33813         asserts for trivial conditions.
33814
33815 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33816
33817         PR tree-optimization/43280
33818         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
33819         generation.  Move calculation of size out of the if branch.
33820         (find_bswap): Modify compare number generation.
33821
33822 2010-03-11  Richard Guenther  <rguenther@suse.de>
33823
33824         PR lto/43200
33825         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
33826         (input_gimple_stmt): Fixup handled component types during
33827         operand read.  Also fix up decls in ADDR_EXPRs.
33828
33829 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
33830
33831         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
33832         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
33833
33834 2010-03-10  Jan Hubicka  <jh@suse.cz>
33835
33836         PR c/43288
33837         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
33838         * varasm.c (get_variable_section): Don't do that here...
33839         (make_decl_rtl): ... and here.
33840         (do_assemble_alias): Produce decl RTL.
33841         (assemble_alias): Likewise.
33842
33843 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
33844
33845         PR debug/43290
33846         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
33847         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
33848         of fde->vdrap_reg.
33849         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
33850         (based_loc_descr): Only express drap or vdrap regno based expressions
33851         using DW_OP_fbreg when not optimizing.
33852         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
33853         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
33854         REG_CFA_SET_VDRAP note.
33855
33856 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
33857
33858         PR tree-optimization/43236
33859         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
33860         error in calculation of base address in reverse iteration case.
33861         (generate_builtin): Take number of latch executions if the statement
33862         is in the latch.
33863
33864 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
33865
33866         PR middle-end/42859
33867         * tree-eh.c: Include pointer-set.h.
33868         (lower_eh_dispatch): Filter out duplicate case labels and
33869         remove the unneeded edge when the label is unused.  Return
33870         true when some edges are removed.
33871         (execute_lower_eh_dispatch): When any lowering resulted in
33872         removing an edge, also delete unreachable blocks.
33873
33874 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
33875
33876         PR bootstrap/43287
33877         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
33878         UNSPEC_MACHOPIC_OFFSET.
33879
33880 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
33881
33882         PR target/43294
33883         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
33884         (m68k_delegitimize_address): New function.
33885
33886 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
33887
33888         PR debug/43299
33889         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
33890
33891         PR debug/43299
33892         * var-tracking.c (adjust_sets): New function.
33893         (count_with_sets, add_with_sets): Use it.
33894         (get_adjusted_src): New inline function.
33895         (add_stores): Use it.
33896
33897         PR debug/43304
33898         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
33899         call cselib_dummy_expand_value_rtx_cb instead of
33900         cselib_expand_value_rtx_cb.
33901
33902         PR debug/43293
33903         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
33904         * config/i386/i386.c: Include debug.h and dwarf2out.h.
33905         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
33906         and .cfi_endproc around the pic thunks.
33907         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
33908         all queued unwind info register saves are saved before the call.
33909         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
33910         considered as sp-=4 for unwind info and the pop as sp+=4 which
33911         also clobbers dest, but doesn't actually restore it.
33912
33913         PR debug/43290
33914         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
33915         RTX_FRAME_RELATED_P.
33916
33917 2010-03-09  Jie Zhang  <jie@codesourcery.com>
33918
33919         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
33920         whitespaces in output template.
33921
33922 2010-03-09  Jie Zhang  <jie@codesourcery.com>
33923
33924         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
33925         out array boundary.
33926
33927 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
33928
33929         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
33930         builtins.exp in a separate job.
33931
33932 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33933
33934         * graphite-sese-to-poly.c (add_param_constraints): Use
33935         lower_bound_in_type and upper_bound_in_type.
33936
33937 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33938
33939         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
33940         instead of unsigned_type_node.
33941
33942 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33943             Reza Yazdani  <reza.yazdani@amd.com>
33944
33945         PR middle-end/43065
33946         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
33947         on pointer type parameters.
33948
33949 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
33950
33951         PR middle-end/42644
33952         PR middle-end/42130
33953         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
33954         handle conversions from pointer to integers.
33955         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
33956         induction variable, to be able to work with code generated by CLooG.
33957         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
33958         (build_poly_scop): Bail out if we cannot codegen a loop.
33959
33960 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
33961
33962         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
33963         code generation with gloog_error.
33964
33965 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33966
33967         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
33968         Call fold_convert on all the returned values.
33969         (expand_scalar_variables_expr): Pass to
33970         expand_scalar_variables_ssa_name the type of the resulting expression.
33971
33972 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33973
33974         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
33975         ppl_min_for_le_pointset.
33976         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
33977         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
33978
33979 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33980
33981         * graphite-dependences.c (map_into_dep_poly): Removed.
33982         (dependence_polyhedron_1): Use combine_context_id_scat.
33983
33984 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33985
33986         * graphite-poly.h (struct poly_scattering): Add layout documentation.
33987         (struct poly_bb): Same.
33988         (combine_context_id_scat): New.
33989
33990 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33991
33992         PR middle-end/42326
33993         * sese.c (name_defined_in_loop_p): Return false for default
33994         definitions.
33995
33996 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33997
33998         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
33999         and clean up the logic.
34000
34001 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34002
34003         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
34004         early return.
34005
34006 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34007
34008         * var-tracking.c (remove_cselib_value_chains): Define only for
34009         ENABLE_CHECKING.
34010         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
34011         delete_slot_part, emit_notes_for_differences_1): Don't call
34012         remove_cselib_value_chains here.
34013         (set_slot_part, emit_notes_for_differences_2): Don't call
34014         add_cselib_value_chains here.
34015         (preserved_values): New vector.
34016         (preserve_value): New function.
34017         (add_uses, add_stores, vt_add_function_parameters): Use it
34018         instead of cselib_preserve_value.
34019         (changed_values_stack): New vector.
34020         (check_changed_vars_0): New function.
34021         (check_changed_vars_1, check_changed_vars_2): Use it.
34022         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
34023         changed_values_stack VALUEs.
34024         (vt_emit_notes): For all preserved_values call
34025         add_cselib_value_chains.  If ENABLE_CHECKING call
34026         remove_cselib_value_chains before verifying value_chains is empty.
34027         Initialize and free changed_values_stack.
34028         (vt_initialize): Initialize preserved_values.
34029         (vt_finalize): Free preserved_values.
34030
34031 2010-03-08  Richard Guenther  <rguenther@suse.de>
34032
34033         PR tree-optimization/43269
34034         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
34035         region detection.
34036
34037 2010-03-08  Martin Jambor  <mjambor@suse.cz>
34038
34039         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
34040         (ipa_is_param_called): Removed.
34041         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
34042         (ipa_print_node_params): Do not print the called flag.
34043         (ipa_write_node_info): Do not stream the called flag.
34044         (ipa_read_node_info): Likewise.
34045
34046 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
34047
34048         PR debug/43176
34049         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
34050         * cselib.c (struct expand_value_data): Add dummy field.
34051         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
34052         dummy to false.
34053         (cselib_dummy_expand_value_rtx_cb): New function.
34054         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
34055         any rtl.
34056         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
34057         * var-tracking.c: Include pointer-set.h.
34058         (variable): Change n_var_parts to char from int.  Add
34059         cur_loc_changed and in_changed_variables fields.
34060         (variable_canonicalize): Remove.
34061         (shared_var_p): New inline function.
34062         (unshare_variable): Maintain cur_loc_changed and
34063         in_changed_variables fields.  If var was in changed_variables,
34064         replace it there with new_var.  Just copy cur_loc instead of
34065         resetting it to something else.
34066         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
34067         (dataflow_set_union): Don't call variable_canonicalize.
34068         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
34069         of their DEBUG_EXPR_TREE_DECLs.
34070         (canonicalize_loc_order_check): Verify that cur_loc is NULL
34071         and in_changed_variables and cur_loc_changed is false.
34072         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
34073         and cur_loc_changed.  Don't update cur_loc here.
34074         (variable_merge_over_src): Don't call variable_canonicalize.
34075         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
34076         removing loc that is equal to cur_loc, clear cur_loc,
34077         set cur_loc_changed and ensure variable_was_changed is called.
34078         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
34079         compare pointers in cur_loc check, if it is equal to loc,
34080         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
34081         (variable_different_p): Remove compare_current_location argument,
34082         don't compare cur_loc.
34083         (dataflow_set_different_1): Adjust variable_different_p caller.
34084         (variable_was_changed): If dv had some var in changed_variables
34085         already, reset in_changed_variables flag for it and propagate
34086         cur_loc_changed over to the new variable.  On empty var
34087         always set cur_loc_changed.  Set in_changed_variables on whatever
34088         var is added to changed_variables.
34089         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
34090         Use shared_var_p.  When removing loc that is equal to cur_loc,
34091         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
34092         end, don't set it to something else, just call variable_was_changed.
34093         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
34094         loc being removed, clear cur_loc and set cur_loc_changed.
34095         Set cur_loc_changed if all locations have been removed.
34096         (struct expand_loc_callback_data): New type.
34097         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
34098         allocated.  Always create SUBREGs if simplify_subreg failed.
34099         Prefer to use cur_loc, when that fails and still in
34100         changed_variables (and seen first time) recompute it.  Set
34101         cur_loc_changed of variables which had to change cur_loc and
34102         compute elcd->cur_loc_changed if any of the subexpressions used
34103         had to change cur_loc.
34104         (vt_expand_loc): Adjust to pass arguments in
34105         expand_loc_callback_data structure.
34106         (vt_expand_loc_dummy): New function.
34107         (emitted_notes): New variable.
34108         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
34109         that weren't used for any other decl in current
34110         emit_notes_for_changes call call vt_expand_loc_dummy to update
34111         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
34112         first loc_chain location if NULL before.  Always use just
34113         cur_loc instead of first loc_chain location.  When cur_loc_changed
34114         is false, when not --enable-checking=rtl just don't emit any note.
34115         When rtl checking, compute the note and assert it is the same
34116         as previous note.  Clear cur_loc_changed and in_changed_variables
34117         at the end before removing from changed_variables.
34118         (check_changed_vars_3): New function.
34119         (emit_notes_for_changes): Traverse changed_vars to call
34120         check_changed_vars_3 on each changed var.
34121         (emit_notes_for_differences_1): Clear cur_loc_changed and
34122         in_changed_variables.  Recompute cur_loc of new_var.
34123         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
34124         (vt_emit_notes): Initialize and destroy emitted_notes.
34125
34126 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
34127
34128         PR rtl-optimization/42220
34129         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
34130         Use verify_reg_tracked to determine if we should use OP_OUT rather
34131         than OP_INOUT.
34132         (build_def_use): If we see an in-out operand for a register that we
34133         know nothing about, treat is an output if possible, fail the block if
34134         not.
34135
34136 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34137
34138         PR debug/42897
34139         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
34140         permanently.
34141
34142 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34143
34144         PR debug/42897
34145         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
34146         uses of relevant DEFs that are dead outside the loop too.
34147
34148 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34149
34150         * var-tracking.c (dataflow_set_merge): Swap src and src2.
34151         Reverted:
34152         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
34153         PR debug/41371
34154         * var-tracking.c (values_to_unmark): New variable.
34155         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
34156         values_to_unmark vector.  Moved body to...
34157         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
34158         instead queue it into values_to_unmark vector.
34159         (vt_find_locations): Free values_to_unmark vector.
34160
34161 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
34162
34163         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
34164         (site.exp): Export them when plugins are enabled.
34165
34166 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
34167
34168         PR middle-end/42326
34169         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
34170         that contain scevs.
34171         (chrec_fold_multiply): Same.
34172
34173 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34174
34175         PR c/43248
34176         * c-decl.c (build_compound_literal): Return early if init is
34177         an error_mark_node.
34178
34179 2010-03-04  Martin Jambor  <mjambor@suse.cz>
34180
34181         PR tree-optimization/43164
34182         PR tree-optimization/43191
34183         * tree-sra.c (type_consists_of_records_p): Reject records with
34184         zero-size bit-fields at the end.
34185
34186 2010-03-04  Mike Stump  <mikestump@comcast.net>
34187
34188         * Makefile.in (TAGS): Remove *.y.
34189
34190 2010-03-04  Richard Guenther  <rguenther@suse.de>
34191
34192         PR tree-optimization/40761
34193         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
34194         in reverse order.
34195         (my_rev_post_order_compute): New function.
34196         (init_pre): Call it.
34197
34198 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
34199
34200         PR middle-end/43209
34201         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
34202         decrease the cost of an IV candidate when the cost is infinite.
34203
34204 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34205
34206         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
34207         Use '3DNow!' for the extension of that name, ensure normal space
34208         after the string.
34209         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
34210
34211 2010-03-03  Jeff Law  <law@redhat.com>
34212
34213         * PR middle-end/32693
34214         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
34215         than gen_rtx_SUBREG.
34216         (extract_bit_field_1): Likewise.
34217
34218 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
34219
34220         * doc/sourcebuild.texi (Test directives): Document that arguments
34221         include-opts and exclude-opts are now optional for dg-skip-if,
34222         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
34223
34224 2010-03-03  Jason Merrill  <jason@redhat.com>
34225
34226         PR c++/12909
34227         * cgraph.h (varpool_node): Add extra_name field.
34228         * varpool.c (varpool_extra_name_alias): New.
34229         (varpool_assemble_decl): Emit extra name aliases.
34230         (varpool_mark_needed_node): Look past an extra name alias.
34231         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
34232         * lto-streamer-in.c (lto_input_tree): Read it.
34233         * lto-streamer-out.c (output_unreferenced_globals): Write it.
34234
34235 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34236
34237         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
34238         (sparc*-*-solaris2*): ...this.
34239
34240 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
34241
34242         PR debug/43229
34243         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34244         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
34245         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34246         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34247
34248         PR debug/43237
34249         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34250         fallthrough to default handling, just with want_address 0 instead of 2.
34251         For single element lists, add_AT_loc directly, otherwise create an
34252         artificial variable DIE and stick location list to it.
34253
34254         PR debug/43177
34255         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34256         (VAL_EXPR_HAS_REVERSE): Define.
34257         (reverse_op): New function.
34258         (add_stores): For reversible operations add an extra MO_VAL_USE.
34259
34260 2010-03-02  Jason Merrill  <jason@redhat.com>
34261
34262         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
34263
34264 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
34265
34266         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
34267         (sparc64-*-linux*): Likewise.
34268         (sparc64-*-solaris2*): Include assembler files before linker ones.
34269         (sparc-*-solaris2*): Simplify and reorder to match previous case.
34270         * config/sparc/gas.h: Delete.
34271         * config/sparc/sol2-64.h: Add copyright notice.
34272         * config/sparc/sol2-gas-bi.h: Likewise.
34273         * config/sparc/sol2-gld.h: Likewise.
34274         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
34275         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
34276         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
34277         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
34278         (sparc_elf_asm_named_section): Rename into...
34279         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
34280
34281 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
34282
34283         * config/alpha/alpha.c (override_options): Fix -mtune error message.
34284
34285 2010-03-02  Jeff Law  <law@redhat.com>
34286
34287         PR middle-end/42431
34288         * reload1.c (rtx_p, substitute_stack): Declare.
34289         (substitute): Record addresses of changed rtxs.
34290         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
34291         Restore the original rtx when complete.
34292         (reload): Free subsitute_stack when complete.
34293
34294 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
34295
34296         * doc/gccint.texi (menu): Add Testsuites as a chapter.
34297         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
34298         new chapter.
34299         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
34300         LTO Testing, gcov Testing, profopt Testing, compat Testing,
34301         Torture Tests): Change from subsection to section.
34302
34303 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
34304             Steven Bosscher  <steven@gcc.gnu.org>
34305
34306         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
34307         instead of bb.
34308
34309 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
34310
34311         PR middle-end/42640
34312         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
34313         the assignment from the new induction variable to the assignment
34314         of the value from the original loop PHI function.
34315
34316 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
34317             Daniel Jacobowitz  <dan@codesourcery.com>
34318
34319         * doc/sourcebuild.texi (Test directives): Clarify options to
34320         dg-skip-if.
34321
34322 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34323
34324         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
34325         Disable cfi directives unless GCC and gas agree on using read-only
34326         .eh_frame sections for 64-bit.
34327         * configure: Regenerate.
34328
34329 2010-03-01  Richard Guenther  <rguenther@suse.de>
34330
34331         PR tree-optimization/43220
34332         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
34333         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
34334
34335 2010-03-01  Richard Guenther  <rguenther@suse.de>
34336             Martin Jambor  <mjambor@suse.cz>
34337
34338         PR middle-end/41250
34339         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
34340         gimplified parameters.
34341
34342 2010-03-01  Christian Bruel  <christian.bruel@st.com>
34343
34344         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
34345
34346 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
34347
34348         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
34349
34350 2010-03-01  Richard Guenther  <rguenther@suse.de>
34351
34352         PR middle-end/43213
34353         * expr.c (expand_assignment): Use the alias-oracle to tell
34354         if the rhs aliases the result decl.
34355
34356 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34357
34358         PR pch/14940
34359         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
34360         to sol_gt_pch_get_address.
34361         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
34362         64-bit, SPARC and x86.
34363         (sol_gt_pch_get_address): New function.
34364
34365 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
34366
34367         * toplev.h (inform_n, error_n): Declare.
34368         * diagnostic.c (inform_n, error_n): New function.
34369
34370 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
34371
34372         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
34373         has no rtl yet when processing local_decls, queue it and recheck
34374         if deferred stack allocation hasn't assigned it rtl.
34375
34376 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
34377
34378         * config/sh/sh.c (unspec_bbr_uid): New.
34379         (gen_block_redirect): Use it instead of INSN_UID.
34380         (gen_far_branch): Likewise.
34381
34382 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
34383
34384         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
34385         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
34386
34387 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34388
34389         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
34390         (Warning Options): -Wno-conversion-null is valid for
34391         Objective-C++ as well.
34392         * doc/tm.texi (Named Address Spaces): Likewise.
34393         * doc/plugins.texi (Plugins): Replace TABs with spaces.
34394         * doc/tree-ssa.texi (Tree SSA): Likewise.
34395
34396 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34397
34398         PR bootstrap/43202
34399         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
34400         by default.  Don't set the default arch for
34401         i[34567]86-*-darwin*|x86_64-*-darwin*.
34402
34403 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34404
34405         PR bootstrap/43202
34406         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
34407         default.  Set the default 32bit/64bit archs with $with_arch
34408         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
34409
34410 2010-02-27  Richard Guenther  <rguenther@suse.de>
34411
34412         PR tree-optimization/43186
34413         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
34414         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
34415         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
34416         unroller iterations.
34417
34418 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34419
34420         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
34421         required and i[34567]86-*-* targets don't support 64bit ISA.
34422
34423 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
34424
34425         PR ada/43096
34426         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34427         the same alias set.
34428
34429 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34430
34431         * config.gcc: Set the default arch at least to Prescott for
34432         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
34433         if SSE math is enabled.
34434
34435 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34436
34437         * diagnostic.c (diagnostic_initialize): Update.
34438         (diagnostic_report_diagnostic): Test inhibit_notes_p for
34439         informative notes.
34440         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
34441         (diagnostic_inhibit_notes): New.
34442         * toplev.c (process_options): inhibit notes with -fcompare-debug.
34443
34444 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34445
34446         PR c/20631
34447         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
34448         * doc/standards.texi: Likewise.
34449         * doc/extend.texi: Likewise.
34450         * doc/trouble.texi: Likewise.
34451         * doc/cppopts.texi: Likewise.
34452         * doc/install.texi: Likewise.
34453         * c.opt (std=c90,std=gnu90): New options.
34454         * c-opts.c (c_common_handle_option): Handle them.
34455
34456 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34457
34458         PR c/24577
34459         * c-decl.c (undeclared_variable): Use an informative note.
34460
34461 2010-02-26  Richard Guenther  <rguenther@suse.de>
34462
34463         PR tree-optimization/43186
34464         * gimple.h (gimple_fold): Remove.
34465         * gimple.c (gimple_fold): Remove.  Inline into single user ...
34466         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
34467         Try harder for conditions.
34468
34469 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
34470
34471         PR debug/43190
34472         * function.c (used_types_insert): Don't skip through named pointer
34473         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
34474         and it is different from the main variant's type.
34475
34476 2010-02-26  Nick Clifton  <nickc@redhat.com>
34477
34478         * config/rx/rx.md (sminsi3): Remove bogus alternative.
34479
34480 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34481
34482         * config.gcc: Support --with-fpmath=sse for x86.
34483
34484         * config/i386/ssemath.h: New.
34485
34486         * doc/install.texi (--with-fpmath=sse): Documented.
34487
34488 2010-02-26  Richard Guenther  <rguenther@suse.de>
34489
34490         PR tree-optimization/43188
34491         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
34492         vector types of over-aligned element type.
34493
34494 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
34495
34496         PR target/43175
34497         * config/i386/i386.c (expand_vec_perm_blend): Use correct
34498         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
34499
34500 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
34501
34502         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
34503
34504 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
34505
34506         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
34507         * var-tracking.c: Include diagnostic.h.
34508         (debug_dv): New function.
34509         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
34510
34511         PR debug/43160
34512         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
34513         (add_value_chain, add_value_chains, remove_value_chain,
34514         remove_value_chains): Handle DEBUG_EXPRs.
34515         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
34516
34517         PR debug/43161
34518         * regcprop.c (struct queued_debug_insn_change): New type.
34519         (struct value_data_entry): Add debug_insn_changes field.
34520         (struct value_data): Add n_debug_insn_changes field.
34521         (debug_insn_changes_pool): New variable.
34522         (free_debug_insn_changes, apply_debug_insn_changes,
34523         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
34524         (kill_value_one_regno): Call free_debug_insn_changes if needed.
34525         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
34526         fields.
34527         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
34528         changes for them.
34529         (copyprop_hardreg_forward_1): Don't call apply_change_group for
34530         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
34531         changes, call cprop_find_used_regs via note_stores.
34532         (copyprop_hardreg_forward): When copying vd from predecessor
34533         which has any queued DEBUG_INSN changes, make sure the pointers are
34534         cleared.  At the end call df_analyze and then if there are any
34535         DEBUG_INSN changes queued at the end of some basic block for still
34536         live registers, apply them.
34537         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
34538
34539 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
34540
34541         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
34542         (arm*-*-*): Ditto.
34543
34544 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
34545
34546         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
34547         targets.  Set the default with_cpu/with_arch from arch/cpu.
34548         Allow x86-64 and native for with_cpu/with_arch.
34549
34550 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
34551
34552         * ebitmap.c: Change calls to verify_popcount with calls to
34553         sbitmap_verify_popcount.
34554         (ebitmap_clear_bit): Fixed map->cacheindex test and
34555         map>cache update when bit clearing results in an empty
34556         element.
34557
34558 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34559
34560         PR target/43154
34561         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
34562         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
34563         and support both V2DF and V2DI modes.
34564         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
34565         support both V2DF and V2DI modes.
34566         (general): Delete trailing whitespace from a few patterns.
34567
34568         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
34569         V2DF/V2DI interleave high/low builtins.
34570
34571         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
34572         new VSX builtins.
34573
34574         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
34575         interleave high/low functions.
34576
34577 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
34578
34579         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
34580         #pragma extern_prefix.
34581
34582 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
34583
34584         PR debug/43166
34585         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
34586         BLKmode, assert op0 is a MEM and just adjust its mode.
34587
34588         PR debug/43165
34589         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
34590         if bitpos isn't multiple of mode's bitsize.
34591
34592 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34593
34594         * c.opt (-ftemplate-depth=): New.
34595         (-ftemplate-depth-): Deprecate.
34596         * optc-gen.awk: Handle -ftemplate-depth=.
34597         * opth-gen.awk: Likewise.
34598         * c-opts.c (c_common_handle_option): Likewise.
34599         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
34600
34601 2010-02-24  Jason Merrill  <jason@redhat.com>
34602
34603         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
34604
34605 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34606
34607         * cfg.c (alloc_aux_for_block): Remove inline.
34608         (alloc_aux_for_edge): Likewise.
34609
34610 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34611
34612         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
34613
34614 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34615
34616         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
34617         * config/i386/sol2-gas.h: New file.
34618         * config.gcc (i[34567]86-*-solaris2*): Use it.
34619
34620 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34621
34622         PR c/43128
34623         * c-typeck.c (ep_convert_and_check): New.
34624         (build_conditional_expr): Use it.
34625         (build_binary_op): Likewise.
34626
34627 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
34628
34629         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
34630
34631         PR debug/43150
34632         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
34633         bounds even for -O+.
34634         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
34635         expr needs to have DECL_NAME set.
34636
34637 2010-02-24  Nick Clifton  <nickc@redhat.com>
34638
34639         * config/mep/mep.c: Include gimple.h.
34640         (mep_function_uses_sp): Delete unused function.
34641         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
34642         parameters.  Use unsigned integers to count args.  Return a
34643         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
34644
34645 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
34646
34647         PR target/43107
34648         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
34649         greater or equal to nelt instead of 2 * nelt.
34650         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
34651         with nelt - 1.
34652
34653 2010-02-23  Jason Merrill  <jason@redhat.com>
34654
34655         PR debug/42800
34656         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
34657         in cfun->local_decls even if they have register types.
34658
34659         PR c++/42837
34660         * stor-layout.c (place_field): Don't warn about unnecessary
34661         DECL_PACKED if the type is packed.
34662
34663 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
34664
34665         PR target/43139
34666         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
34667         GOTOFF relocs, even when the base reg isn't pic pointer.
34668
34669 2010-02-23  Michael Matz  <matz@suse.de>
34670
34671         PR debug/43077
34672         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
34673         (expand_gimple_basic_block): Generate and use debug temps if there
34674         are debug uses left after the last real use of TERed ssa names.
34675         Unlink debug immediate uses when they are expanded.
34676
34677 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34678
34679         PR 43123
34680         * config/i386/i386.c (override_options): Reorganise to provide
34681         better error messages.
34682
34683 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34684
34685         PR middle-end/43083
34686         * graphite-scop-detection.c (create_single_exit_edge): Move
34687         the call to find_single_exit_edge to....
34688         (create_sese_edges): ...here.  Don't handle multiple edges
34689         exiting the function.
34690         (build_graphite_scops): Don't handle multiple edges
34691         exiting the function.
34692
34693 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34694
34695         PR middle-end/43097
34696         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
34697         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
34698
34699 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34700
34701         PR middle-end/43026
34702         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
34703
34704 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34705
34706         PR c++/43126
34707         * c-typeck.c (convert_arguments): Print declaration location.
34708         * c-common.c (validate_nargs): Rename as
34709         builtin_function_validate_nargs.
34710         (check_builtin_function_arguments): Update.
34711
34712 2010-02-22  Richard Guenther  <rguenther@suse.de>
34713
34714         PR lto/43045
34715         * tree-inline.c (declare_return_variable): Use the type of
34716         the call stmt lhs if available.
34717
34718 2010-02-22  Duncan Sands  <baldrick@free.fr>
34719
34720         * passes.c (register_pass): Always consider all pass lists when
34721         ref_pass_instance_number is zero.
34722
34723 2010-02-22  Richard Guenther  <rguenther@suse.de>
34724
34725         PR tree-optimization/42749
34726         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
34727         parameter.  Do arithmetic in the original type.
34728         (update_accumulator_with_ops): Likewise.
34729         (adjust_accumulator_values): Adjust.
34730
34731 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34732
34733         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
34734         (QI to BLKmode splitter): New splitter.
34735
34736 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
34737
34738         * config/i386/i386.c (initial_ix86_tune_features): Turn on
34739         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
34740
34741 2010-02-22  Richard Guenther  <rguenther@suse.de>
34742
34743         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
34744
34745 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
34746
34747         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
34748         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
34749         ($(T)crti.o, $(T)crtn.o): Remove rules.
34750
34751 2010-02-21  Tobias Burnus  <burnus@net-b.de>
34752
34753         PR fortran/35259
34754         * doc/invoke.texi (-fassociative-math): Document that this
34755         option is automatically enabled for Fortran.
34756
34757 2010-02-20  David S. Miller  <davem@davemloft.net>
34758
34759         * configure.ac: Test if linker and assembler properly support
34760         GOTDATA_OP relocations.
34761         * configure: Rebuild.
34762         * config.in: Likewise.
34763         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
34764         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
34765         (movsi_high_pic): Likewise.
34766         (movdi_lo_sum_pic): Likewise.
34767         (movdi_high_pic): Likewise.
34768         (movsi_pic_gotdata_op): New pattern.
34769         (movdi_pic_gotdata_op): Likewise.
34770         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
34771         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
34772
34773 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
34774
34775         PR target/43067
34776         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
34777         attribute to ssemul.
34778         (xop_mulv2div2di3_high): Ditto.
34779
34780 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34781
34782         PR c++/35669
34783         * c.opt (Wconversion-null): New option.
34784         * doc/invoke.texi (Wconversion-null): Document.
34785
34786 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34787
34788         * common.opt (Wlarger-than-): Add Undocumented.
34789
34790 2010-02-19  Mike Stump  <mikestump@comcast.net>
34791
34792         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
34793
34794 2010-02-19  Jason Merrill  <jason@redhat.com>
34795
34796         PR target/40332
34797         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
34798         * configure: Likewise.
34799
34800 2010-02-20  Alan Modra  <amodra@gmail.com>
34801
34802         PR middle-end/42344
34803         * cgraph.h (cgraph_make_decl_local): Declare.
34804         * cgraph.c (cgraph_make_decl_local): New function.
34805         (cgraph_make_node_local): Use it.
34806         * cgraphunit.c (cgraph_function_versioning): Likewise.
34807         * ipa.c (function_and_variable_visibility): Likewise.
34808
34809 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34810
34811         PR bootstrap/43121
34812         * except.c (sjlj_emit_function_enter): Don't call
34813         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
34814         directly.
34815         * rtl.h (add_reg_br_prob_note): Remove prototype.
34816
34817 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34818
34819         PR 41779
34820         * c-common.c (conversion_warning): Remove widening conversions
34821         before checking the conversion of integers to reals.
34822
34823 2010-02-19  Mike Stump  <mikestump@comcast.net>
34824
34825         PR middle-end/43125
34826         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
34827
34828         PR objc/43061
34829         * cgraphunit.c (process_function_and_variable_attributes): Check
34830         DECL_PRESERVE_P instead of looking up attribute "used".
34831         * ipa-pure-const.c (check_decl): Likewise.
34832         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
34833         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
34834         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
34835         instead of attribute "used".
34836         * config/sol2-c.c (solaris_pragma_init): Likewise.
34837         (solaris_pragma_fini): Likewise.
34838
34839 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34840
34841         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
34842         Use XCNEW instead of xcalloc.
34843         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
34844         XNEW instead of xmalloc.
34845         (get_fields): Use XNEWVEC instead of xmalloc.
34846
34847         PR debug/43084
34848         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
34849         populate vars array.
34850         (create_new_general_access): For debug stmts just reset value.
34851         (get_stmt_accesses): For accesses within debug stmts just record them
34852         using add_access_to_acc_sites instead of preventing the peeling or
34853         counting them as accesses.
34854
34855         PR middle-end/42233
34856         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
34857
34858 2010-02-19  Richard Guenther  <rguenther@suse.de>
34859
34860         PR tree-optimization/42916
34861         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
34862         instructions.
34863
34864 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
34865
34866         * configure.ac: Replace all uses of changequote in macro arguments
34867         with proper quoting.
34868
34869 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34870
34871         PR middle-end/42233
34872         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
34873
34874 2010-02-19  Richard Guenther  <rguenther@suse.de>
34875
34876         PR tree-optimization/42944
34877         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
34878         test for aliasing with errno.
34879
34880 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34881
34882         PR middle-end/42233
34883         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
34884         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
34885         * dojump.c: Include output.h.
34886         (inv): New inline function.
34887         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
34888         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
34889         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
34890         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
34891         argument, pass it down to other calls.
34892         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
34893         add REG_BR_PROB note to the conditional jump.
34894         * cfgexpand.c (add_reg_br_prob_note): Removed.
34895         (expand_gimple_cond): Don't call it, add the probability
34896         as last argument to jumpif_1/jumpifnot_1.
34897         * Makefile.in (dojump.o): Depend on output.h.
34898         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
34899         callers.
34900         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
34901         * stmt.c (do_jump_if_equal): Likewise.
34902         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
34903         * loop-unswitch.c (compare_and_jump_seq): Likewise.
34904         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
34905         Likewise.
34906         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
34907         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
34908         jumpifnot_1 callers.
34909         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
34910         callers.
34911         (store_expr): Adjust jumpifnot caller.
34912         (store_constructor): Adjust jumpif caller.
34913
34914         PR middle-end/42233
34915         * gimplify.c (gimple_boolify): For __builtin_expect call
34916         gimple_boolify also on its first argument.
34917
34918 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
34919
34920         * configure.ac (gnu-unique-object): Wrap regexps using [] in
34921         changequote block.
34922         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
34923         * configure: Regenerated.
34924
34925 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34926
34927         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
34928         lang_hooks.types_compatible_p instead of comptypes.
34929
34930 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34931
34932         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
34933         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
34934         if __prefer_thumb__ is defined.
34935
34936 2010-02-18  Martin Jambor  <mjambor@suse.cz>
34937
34938         PR tree-optimization/43066
34939         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
34940         array with zero-sized element type.
34941
34942 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
34943
34944         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
34945         rtx, allocate struct var_loc_node here and return it to the
34946         caller, and only if it is actually needed.
34947         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
34948         move it earlier and return immediately if it returns NULL.
34949
34950 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
34951
34952         * config/sparc/gas.h: New file.  Restore
34953         TARGET_ASM_NAMED_SECTION to its ELF default.
34954         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
34955         check !HAVE_GNU_AS.
34956         * config/sparc/sparc.c (sparc_elf_asm_named_section):
34957         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
34958         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
34959         after sparc/sysv4.h.
34960
34961 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
34962
34963         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
34964
34965 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
34966
34967         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
34968         patterns from predicated pattern.
34969
34970 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
34971
34972         PR target/43103
34973         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
34974         for insn mnemonic suffix.
34975
34976 2010-02-17  Richard Guenther  <rguenther@suse.de>
34977
34978         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
34979         to loop PHI nodes.
34980
34981 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
34982
34983         PR debug/42918
34984         * caller-save.c (save_call_clobbered_regs): If BB ends with
34985         a DEBUG_INSN, move any notes in between last real insn and the last
34986         DEBUG_INSN after the last DEBUG_INSN.
34987
34988 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
34989
34990         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
34991         Fix return type.  Fix argument type.  Explain meaning of return value.
34992
34993 2010-02-16  Richard Guenther  <rguenther@suse.de>
34994
34995         PR tree-optimization/41043
34996         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
34997         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
34998         statements ...
34999         (vrp_visit_phi_node): ... but only for loop PHI nodes.
35000
35001 2010-02-16  Ira Rosen  <irar@il.ibm.com>
35002
35003         PR tree-optimization/43074
35004         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
35005         * tree-vect-loop.c (vect_analyze_loop_operations): Add
35006         vectorizable cycles in hybrid SLP check.
35007         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
35008
35009 2010-02-16  Richard Guenther  <rguenther@suse.de>
35010
35011         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
35012         (true_dependence): If memrefs_conflict_p computes must-alias
35013         trust it.  Move TBAA check after offset-based disambiguation.
35014         (canon_true_dependence): Likewise.
35015
35016 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
35017
35018         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
35019         * doc/invoke.texi: Document it.
35020         * var-tracking.c: Include toplev.h and params.h.
35021         (vt_find_locations): Return bool indicating success.  Compute
35022         hash sizes unconditionally.  Check new parameter, report.
35023         (variable_tracking_main_1): Check vt_find_locations results and
35024         retry.  Renamed from...
35025         (variable_tracking_main): ... this.  New wrapper to preserve
35026         flag_var_tracking_assignments.
35027         * Makefile.in (var-tracking.o): Adjust dependencies.
35028
35029 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
35030             Jakub Jelinek  <jakub@redhat.com>
35031
35032         PR target/42854
35033         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
35034         if weak_import attribute is present.
35035         * config/darwin.c (machopic_select_section): Likewise.
35036
35037 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
35038
35039         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
35040         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
35041         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
35042         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
35043
35044         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
35045         types.
35046
35047         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35048         Fix argument types.
35049
35050         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
35051         Rewrite text to refer to the names.
35052
35053 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
35054
35055         * config/i386/i386-builtin-types.def
35056         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
35057         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
35058         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
35059         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
35060         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
35061         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
35062         IX86_BUILTIN_VPERMIL2PS256.
35063         (MULTI_ARG_4_DF2_DI_I): Defined.
35064         (MULTI_ARG_4_DF2_DI_I1): Defined.
35065         (MULTI_ARG_4_SF2_SI_I): Defined.
35066         (MULTI_ARG_4_SF2_SI_I1): Defined.
35067         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
35068         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
35069         __builtin_ia32_vpermil2ps256.
35070         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35071         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35072         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
35073         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35074         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35075         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
35076         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
35077         CODE_FOR_xop_vpermil2v8sf3.
35078         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
35079         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
35080         * config/i386/xopintrin.h (_mm_permute2_pd): New.
35081         (_mm256_permute2_pd): New.
35082         (_mm_permute2_ps): New.
35083         (_mm256_permute2_ps): New.
35084
35085 2010-02-15  Nick Clifton  <nickc@redhat.com>
35086
35087         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
35088         boolean parameters.  Use emit_jump_insn when emitting a pop
35089         instruction containing a return insn.
35090         (push): Use 'true' rather than '1' as second parameter to F.
35091         (h8300_expand_prologue): Likewise.
35092         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
35093         (h8300_expand_epilogue): Likewise.
35094
35095 2010-02-15  Richard Guenther  <rguenther@suse.de>
35096
35097         PR middle-end/43068
35098         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
35099         if that is zero.
35100
35101 2010-02-15  Nick Clifton  <nickc@redhat.com>
35102
35103         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
35104         delta.
35105
35106 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
35107
35108         * intl.c (fake_ngettext): New function.
35109         * intl.h (fake_ngettext): Declare.
35110         (ngettext): Define macro.
35111         * collect2.c (notice_translated): New function.
35112         (main): Use notice_translated and ngettext.
35113         * collect2.h (notice_translated): Declare.
35114
35115 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
35116
35117         * reorg.c (delete_computation): Comment fixes.
35118         * caller-save.c (setup_save_areas): Idem.
35119         * sel-sched-dump.c (dump_lv_set): Idem.
35120         * rtl.def: Idem.
35121
35122 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35123
35124         * config/s390/s390.c (s390_sched_init): New function.
35125         (TARGET_SCHED_INIT): Target hook defined.
35126
35127 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
35128             Jack Howarth  <howarth@bromo.med.uc.edu>
35129             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
35130
35131         PR target/42982
35132         Partial revert of unintended change in fix for PR41605.
35133         * config/darwin.h: Fix typo.
35134         * config/darwin9.h: Same.
35135
35136 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35137
35138         * c-pch.c (pch_init): Clear v.
35139
35140 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35141
35142         PR middle-end/42930
35143         * graphite-scop-detection.c (graphite_can_represent_scev): Call
35144         graphite_can_represent_init for MULT_EXPR.
35145
35146 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35147
35148         PR middle-end/42914
35149         PR middle-end/42530
35150         * graphite-sese-to-poly.c (remove_phi): New.
35151         (translate_scalar_reduction_to_array): Call remove_phi.
35152
35153 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35154
35155         PR middle-end/42771
35156         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
35157         * graphite-clast-to-gimple.h (gloog): Update declaration.
35158         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
35159         * graphite-poly.h (struct poly_bb): Add missing comments.
35160         (struct scop): Add poly_scop_p field.
35161         (POLY_SCOP_P): New.
35162         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
35163         * graphite.c (graphite_transform_loops): Build the polyhedral
35164         representation for each scop before code generation.
35165         * sese.c (rename_variables_in_operand): Removed.
35166         (rename_variables_in_expr): Return the renamed expression.
35167         (rename_sese_parameters): New.
35168         * sese.h (rename_sese_parameters): Declared.
35169
35170 2010-02-11  Richard Guenther  <rguenther@suse.de>
35171
35172         PR tree-optimization/42998
35173         * tree-ssa-pre.c (create_expression_by_pieces): Treat
35174         POINTER_PLUS_EXPR properly.
35175
35176 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35177             Changpeng Fang  <changpeng.fang@amd.com>
35178
35179         PR middle-end/40886
35180         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
35181         the cost of an IV candidate when the IV is used in a test against zero.
35182
35183         * gcc.dg/tree-ssa/ivopts-3.c: New.
35184
35185 2010-02-11  Richard Guenther  <rguenther@suse.de>
35186
35187         PR lto/41664
35188         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
35189         pointer-vs-decl case by swapping refs.  Handle some cases
35190         of pointer-vs-decl disambiguations more conservatively.
35191         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
35192         to false after expanding.
35193
35194 2010-02-11  Richard Guenther  <rguenther@suse.de>
35195
35196         PR driver/43021
35197         * gcc.c (process_command): Handle LTO file@offset case more
35198         appropriately.
35199
35200 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35201
35202         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
35203         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
35204         of DEBUG_INSNs.
35205         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
35206
35207         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
35208         if MEM's mode size isn't DWARF2_ADDR_SIZE.
35209         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
35210         Optimize eq/ne comparisons when both arguments are known to be
35211         zero-extended.
35212         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
35213         Don't mask operands unnecessarily if they are known to be already
35214         zero-extended.
35215
35216 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
35217
35218         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
35219         instead of loop.
35220
35221 2010-02-10  Richard Guenther  <rguenther@suse.de>
35222
35223         PR tree-optimization/43017
35224         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
35225         for wrapping signed arithmetic.
35226
35227 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35228
35229         PR debug/43010
35230         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
35231         if no debug info should be emitted for it.
35232
35233 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
35234
35235         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
35236         note when flag_exceptions is set.
35237
35238 2010-02-10  Duncan Sands  <baldrick@free.fr>
35239
35240         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35241
35242 2010-02-10  Richard Guenther  <rguenther@suse.de>
35243
35244         PR c/43007
35245         * tree.c (get_unwidened): Handle constants.
35246         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35247
35248 2010-02-10  Martin Jambor  <mjambor@suse.cz>
35249
35250         PR lto/42985
35251         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35252         check for variable argument counts independently.
35253
35254 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35255
35256         PR target/42841
35257         * config/sh/sh.c (find_barrier): Increase length for non delayed
35258         conditional branches.
35259
35260 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35261
35262         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
35263
35264 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35265
35266         * builtins.c (set_builtin_user_assembler_name): Also handle
35267         ffs if int is smaller than word.
35268
35269 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
35270
35271         PR middle-end/42973
35272         * ira-conflicts.c (get_dup): Remove.
35273         (process_reg_shuffles): Add new parameter.  Use it as an
35274         additional guard for copy generation.
35275         (add_insn_allocno_copies): Rewrite.
35276
35277 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
35278
35279         * common.opt (fsched2-use-traces): Preserved for backward
35280         compatibility.
35281         * doc/invoke.texi: Remove the documentation about option
35282         -fsched2-use-traces.
35283         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
35284         flag_sched2_use_traces.
35285         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
35286         the backward compatibility flag section.
35287
35288 2010-02-09  Richard Guenther  <rguenther@suse.de>
35289
35290         PR tree-optimization/43008
35291         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
35292         make HEAP variables initialized from global memory if they
35293         are not known builtin functions.
35294         (find_func_aliases): Adjust.
35295
35296 2010-02-09  Richard Guenther  <rguenther@suse.de>
35297
35298         PR tree-optimization/43000
35299         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
35300         arithmetic manually.
35301
35302 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
35303
35304         PR tree-optimization/42931
35305         * tree-loop-linear.c (try_interchange_loops): Don't call
35306         double_int_mul if estimated_loop_iterations failed.
35307
35308 2010-02-08  Martin Jambor  <mjambor@suse.cz>
35309
35310         PR middle-end/42898
35311         * tree-sra.c (build_accesses_from_assign): Do not mark in
35312         should_scalarize_away_bitmap if stmt has volatile ops.
35313         (sra_modify_assign): Do not process assigns piecemeal if if stmt
35314         has volatile ops.
35315
35316 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
35317
35318         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
35319
35320 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
35321
35322         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
35323         before the pattern.
35324
35325 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
35326
35327         PR middle-end/42946
35328         * df-core.c (df_finish_pass): Change type of saved_flags to int.
35329
35330 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35331
35332         PR middle-end/42988
35333         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
35334         to unknown_dependence.
35335         (graphite_legal_transform_dr): Handle the unknown_dependence.
35336         (graphite_carried_dependence_level_k): Same.
35337
35338 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35339
35340         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
35341
35342 2010-02-07  Richard Guenther  <rguenther@suse.de>
35343
35344         PR middle-end/42991
35345         * expr.c (get_inner_reference): Always initialize *pbitsize.
35346
35347 2010-02-07  Richard Guenther  <rguenther@suse.de>
35348
35349         PR middle-end/42956
35350         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
35351         new ARRAY_REFs on variable size element or minimal index arrays.
35352         Complete.
35353         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
35354         gimple_fold_indirect_ref.
35355
35356 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
35357
35358         PR target/42957
35359         * arm.c (arm_override_options): Just return if the user has specified
35360         an invalid fpu name.
35361
35362 2010-02-03  Jason Merrill  <jason@redhat.com>
35363
35364         PR c++/42870
35365         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
35366         i386_pe_maybe_record_exported_symbol.
35367
35368 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
35369
35370         PR target/42924
35371         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35372         (pa_delegitimize_address): New function.
35373
35374 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
35375
35376         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
35377         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
35378
35379 2010-02-05  Richard Guenther  <rguenther@suse.de>
35380
35381         PR lto/42762
35382         * lto-streamer-in.c (get_resolution): Deal with references
35383         to undefined functions.
35384
35385 2010-02-05  Richard Guenther  <rguenther@suse.de>
35386
35387         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
35388         (fold_const_aggregate_ref): Likewise.
35389         (ccp_fold_stmt): Substitute loads.
35390         (maybe_fold_reference): Verify types before substituting.
35391         Unshare properly.
35392         (fold_gimple_assign): Unshare properly.
35393         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
35394
35395 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
35396
35397         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
35398         for rs6000_gen_cell_microcode.
35399
35400 2010-02-04  Richard Guenther  <rguenther@suse.de>
35401
35402         PR rtl-optimization/42952
35403         * dse.c (const_or_frame_p): Remove MEM handling.
35404
35405 2010-02-04  Nick Clifton  <nickc@redhat.com>
35406
35407         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
35408         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
35409         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
35410         (mn10300_asm_output_mi_thunk): New function.
35411         (mn10300_can_output_mu_thunk): New function.
35412         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
35413         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
35414         (FUNCTION_ARG): Delete incorrect comment.
35415
35416 2010-02-03  Jason Merrill  <jason@redhat.com>
35417
35418         PR c++/40138
35419         * fold-const.c (operand_equal_p): Handle erroneous types.
35420
35421 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
35422
35423         * config/h8300/h8300.md (can_delay): Fix attibute condition.
35424
35425 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
35426
35427         PR rtl-optimization/42941
35428         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
35429         of xmalloc.
35430
35431 2010-02-03  Jason Merrill  <jason@redhat.com>
35432
35433         PR c++/35652
35434         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
35435
35436 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
35437
35438         PR debug/42896
35439         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
35440         (cselib_reset_table): Renamed from...
35441         (cselib_reset_table_with_next_value): ... this.
35442         (cselib_get_next_uid): Renamed from...
35443         (cselib_get_next_unknown_value): ... this.
35444         * cselib.c (next_uid): Renamed from...
35445         (next_unknown_value): ... this.
35446         (cselib_clear_table): Adjust.
35447         (cselib_reset_table): Adjust.  Renamed from...
35448         (cselib_reset_table_with_next_value): ... this.
35449         (cselib_get_next_uid): Adjust.  Renamed from...
35450         (cselib_get_next_unknown_value): ... this.
35451         (get_value_hash): Use hash.
35452         (cselib_hash_rtx): Likewise.
35453         (new_cselib_val): Adjust.  Set and dump uid.
35454         (cselib_lookup_mem): Pass next_uid as hash.
35455         (cselib_subst_to_values): Likewise.
35456         (cselib_log_lookup): Dump uid.
35457         (cselib_lookup): Pass next_uid as hash.  Adjust.
35458         (cselib_process_insn): Adjust.
35459         (cselib_init): Initialize next_uid.
35460         (cselib_finish): Adjust.
35461         (dump_cselib_table): Likewise.
35462         * dse.c (canon_address): Dump value uid.
35463         * print-rtl.c (print_rtx): Print value uid.
35464         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
35465         (dvuid): New type.
35466         (dv_uid): New function, sort of renamed from...
35467         (dv_htab_hash): ... this, reimplemented in terms of it and...
35468         (dv_uid2hash): ... this.  New.
35469         (variable_htab_eq): Drop excess assertions.
35470         (tie_break_pointers): Removed.
35471         (canon_value_cmp): Compare uids.
35472         (variable_post_merge_New_vals): Print uids.
35473         (vt_add_function_parameters): Adjust.
35474         (vt_initialize): Reset table.  Adjust.
35475
35476 2010-02-03  Richard Guenther  <rguenther@suse.de>
35477
35478         PR tree-optimization/42944
35479         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
35480         (call_may_clobber_ref_p_1): Likewise.  Properly handle
35481         malloc and calloc clobbering errno.
35482
35483 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
35484
35485         * doc/invoke.texi: Fix name of sched1 dump.
35486
35487         * opts.c (decode_options): Set flag_tree_switch_conversion
35488         only conditionally on optimize >= 2.
35489
35490         * gcse.c: Assorted comment fixes in pass description.
35491
35492 2010-02-03  Anthony Green  <green@moxielogic.com>
35493
35494         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
35495         nop padding in order to maintain alignment of storage location of
35496         target function address.
35497         (moxie_trampoline_init): Store target function address at newly
35498         aligned location.
35499         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
35500         to 32.
35501         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
35502
35503 2010-02-03  Richard Guenther  <rguenther@suse.de>
35504
35505         PR middle-end/42927
35506         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
35507
35508 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35509
35510         * config.gcc: Reenable check for obsolete targets.
35511         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
35512         mips-sgi-irix6.[0-4]*.
35513
35514 2010-02-02  Nick Clifton  <nickc@redhat.com>
35515
35516         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
35517         constant size of 4 as being the same as 0.
35518         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
35519         can take values in the range 0..4.
35520
35521 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
35522
35523         PR java/41991
35524         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
35525         as _darwin10_Unwind_FindEnclosingFunction().
35526         * libgcc-libsystem.ver: New.
35527
35528 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
35529
35530         PR target/41399
35531         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
35532         implicitly set registers.
35533
35534 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
35535
35536         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
35537         (arm_override_options): Allow automatic selection of the thread
35538         pointer register if thumb2.
35539         (legitimize_pic_address): Improve code sequences for Thumb2.
35540         (arm_call_tls_get_addr): Likewise.
35541         (legitimize_tls_address): Likewise.
35542         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
35543         (pic_load_addr_32bit): ... this.  New named pattern.
35544         * thumb2.md (pic_load_addr_thumb2): Delete.
35545         (pic_load_dot_plus_four): Delete.
35546         (tls_load_dot_plus_four): New named pattern.
35547
35548 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35549
35550         PR libgomp/29986
35551         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
35552         Document fix for TLS bug.
35553
35554 2010-01-31  Richard Guenther  <rguenther@suse.de>
35555
35556         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
35557         conservatively correct.
35558
35559 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35560
35561         PR target/42850
35562         Revert:
35563         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35564
35565         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
35566
35567 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35568
35569         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
35570
35571 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
35572
35573         * config.gcc: Adjust order of makefile fragments for mingw targets.
35574
35575 2010-01-31  Richard Guenther  <rguenther@suse.de>
35576
35577         PR middle-end/42898
35578         * gimplify.c (gimplify_init_constructor): For volatile LHS
35579         initialize a temporary.
35580
35581 2010-01-31  Matthias Klose  <doko@ubuntu.com>
35582
35583         * configure.ac: Fix __stack_chk_fail check for cross builds configured
35584         --with-headers
35585         * configure: Regenerate.
35586
35587 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
35588
35589         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35590         the same alias set and their sizes different constantness.
35591         (aliasing_component_refs_p): Revert 2009-10-24 change.
35592
35593 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35594
35595         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
35596         unused.
35597
35598 2010-01-29  Richard Guenther  <rguenther@suse.de>
35599
35600         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
35601         Assert we successfully updated the call.
35602
35603 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
35604
35605         PR rtl-optimization/42889
35606         * df.h (df_set_bb_dirty_nonlr): New prototype.
35607         * df-core.c (df_set_bb_dirty_nonlr): New function.
35608         * df-scan.c (df_insn_rescan): Call it instead of
35609         df_set_bb_dirty for DEBUG_INSNs.
35610
35611 2010-01-29  Richard Guenther  <rguenther@suse.de>
35612
35613         PR middle-end/37448
35614         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
35615         quadratic behavior in most cases.
35616
35617 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
35618
35619         PR target/42891
35620         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
35621         in the call to gen_x86_movsicc_0_m1.
35622
35623 2010-01-28  Richard Guenther  <rguenther@suse.de>
35624
35625         PR tree-optimization/42871
35626         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
35627
35628 2010-01-28  Richard Guenther  <rguenther@suse.de>
35629
35630         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
35631         into call arguments.
35632
35633 2010-01-28  Richard Guenther  <rguenther@suse.de>
35634
35635         PR middle-end/42883
35636         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
35637         the forwarder if the destination is an EH landing pad.
35638
35639 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
35640
35641         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
35642         block list passed to gimple_duplicate_sese_tail.
35643         (parallelize_loops): Avoid parallelization when the function
35644         has_nonlocal_label.
35645         Avoid parallelization when the preheader is IRREDUCIBLE.
35646         Try to optimize when estimated_loop_iterations_int is unresolved.
35647         Add the loop's location to the dump file.
35648         * tree-cfg.c (add_phi_args_after_redirect): Remove.
35649         (gimple_duplicate_sese_tail): Remove the check for the latch.
35650         Redirect nexits to the exit block.
35651         Remove handling of the incoming edges to the latch.
35652         Redirect the backedge from the copied latch to the exit bb.
35653
35654 2010-01-28  Michael Matz  <matz@suse.de>
35655
35656         PR target/42881
35657         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
35658         Wrap force_reg into a sequence, emit it before user.
35659
35660 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
35661
35662         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
35663         (arm_rev): New.
35664         (arm_legacy_rev): Likewise.
35665         (thumb_legacy_rev): Likewise.
35666
35667 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
35668
35669         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
35670         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
35671         on MEM's address failed, try avoid_constant_pool_reference and
35672         recurse if it returned something different.
35673         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
35674         address, try avoid_constant_pool_reference and recurse if it
35675         returned something different.
35676         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
35677         address and avoid_constant_pool_reference returned something
35678         different, don't set have_address.
35679
35680 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
35681
35682         PR debug/42861
35683         * var-tracking.c (val_store): Add modified argument, obey it.
35684         Adjust callers.
35685         (count_uses): Move down logging of main.
35686         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
35687         don't need resolution.
35688         (emit_notes_in_bb): Likewise.
35689
35690 2010-01-27  Richard Guenther  <rguenther@suse.de>
35691
35692         PR middle-end/42878
35693         * tree-inline.c (remap_decl): Delay remapping of SSA name
35694         default definitions until we need them.
35695
35696 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
35697
35698         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35699         (rs6000_delegitimize_address): New function.
35700
35701         * config/s390/s390.c (s390_delegitimize_address): Call
35702         delegitimize_mem_from_attrs.
35703
35704         PR middle-end/42874
35705         * tree-inline.c (cannot_copy_type_1): Removed.
35706         (copy_forbidden): Don't forbid copying of functions containing
35707         records/unions with variable length fields.
35708
35709 2010-01-27  Christian Bruel  <christian.bruel@st.com>
35710
35711         Revert:
35712         PR target/42841
35713         * config/sh/sh.c (find_barrier): Increase length for non delayed
35714         conditional branches.
35715
35716 2010-01-27  Matthias Klose  <doko@ubuntu.com>
35717
35718         * configure.ac (gnu-unique-object): Fix ldd version check.
35719         * configure: Regenerate.
35720
35721 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35722
35723         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
35724         HAVE_GNU_AS value.
35725         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
35726         Test for HAVE_GNU_AS value.
35727
35728 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35729
35730         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
35731         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
35732         INT64_TYPE): Define.
35733         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
35734         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
35735         INT_LEAST64_TYPE): Define.
35736         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
35737         UINT_LEAST64_TYPE): Define.
35738         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
35739         INT_FAST64_TYPE): Define.
35740         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
35741         UINT_FAST64_TYPE): Define.
35742         (INTMAX_TYPE, UINTMAX_TYPE): Define.
35743         (INTPTR_TYPE, UINTPTR_TYPE): Define.
35744         (SIG_ATOMIC_TYPE): Define.
35745
35746 2010-01-26  Richard Guenther  <rguenther@suse.de>
35747
35748         * df-scan.c (df_scan_set_bb_info): Remove assert.
35749         (df_insn_rescan_debug_internal): Merge asserts.
35750         (df_install_ref): Likewise.
35751         (df_mark_reg): Use bitmap_set_range.
35752         (df_hard_reg_used_p): Remove assert.
35753         (df_hard_reg_used_count): Likewise.
35754
35755 2010-01-26  Richard Guenther  <rguenther@suse.de>
35756
35757         PR rtl-optimization/42685
35758         * web.c (web_main): Ignore DEBUG_INSNs.
35759
35760 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
35761
35762         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
35763
35764         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
35765         Fix types of fndecl and arglist parameters.
35766
35767 2010-01-26  Richard Guenther  <rguenther@suse.de>
35768
35769         PR middle-end/42806
35770         * tree-eh.c (unsplit_eh): Skip debug insns.
35771
35772 2010-01-26  Richard Guenther  <rguenther@suse.de>
35773
35774         PR tree-optimization/42250
35775         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
35776
35777 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
35778
35779         PR fortran/42866
35780         * omp-low.c (expand_omp_sections): Only use single_pred if
35781         l2_bb is single_pred_p.
35782
35783 2010-01-25  Christian Bruel  <christian.bruel@st.com>
35784
35785         PR target/42841
35786         * config/sh/sh.c (find_barrier): Increase length for non delayed
35787         conditional branches.
35788         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
35789
35790 2010-01-24  David S. Miller  <davem@davemloft.net>
35791
35792         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
35793         define if not using GAS.
35794         * config/sparc/sparc.c (sparc_elf_asm_named_section):
35795         Likewise.  Delete SECTION_MERGE code, which is only applicable
35796         when using GAS.
35797
35798 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
35799
35800         PR c++/42748
35801         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
35802         mangling of va_list in system headers.
35803
35804 2010-01-23  Toon Moene  <toon@moene.org>
35805
35806         * tree-predcom.c (combine_chains): Return NULL, not false.
35807
35808 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
35809
35810         * tree-loop-distribution.c (distribute_loop): Fix declaration and
35811         initialization of variable res to agree with return type.
35812
35813 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
35814
35815         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
35816         * tree-sra.c: Add include of expr.h.
35817
35818 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
35819
35820         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
35821         insert the debug stmt on the single non-EH edge from the stmt.
35822
35823 2010-01-22  Richard Henderson  <rth@redhat.com>
35824
35825         PR tree-opt/42833
35826         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
35827         the RHS until after generate_subtree_copies has insertted its
35828         code before the current statement.
35829
35830 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
35831
35832         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
35833
35834         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
35835
35836 2010-01-21  Martin Jambor  <mjambor@suse.cz>
35837
35838         PR tree-optimization/42585
35839         * tree-sra.c (struct access): New field grp_total_scalarization.
35840         (dump_access): Dump the new field.
35841         (should_scalarize_away_bitmap): New variable.
35842         (cannot_scalarize_away_bitmap): Likewise.
35843         (sra_initialize): Allocate new bitmaps.
35844         (sra_deinitialize): Free new bitmaps.
35845         (create_access_1): New function.
35846         (create_access): Parts moved to create_access_1.
35847         (type_consists_of_records_p): New function.
35848         (completely_scalarize_record): Likewise.
35849         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
35850         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
35851         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
35852         access.
35853         (analyze_all_variable_accesses): Completely scalarize small eligible
35854         records.
35855
35856 2010-01-21  Martin Jambor  <mjambor@suse.cz>
35857
35858         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
35859
35860 2010-01-21  Andrew Haley  <aph@redhat.com>
35861
35862         * gcc.c (process_command): Move lang_specific_driver before
35863         setting cc_libexec_prefix.
35864
35865 2010-01-21  Richard Guenther  <rguenther@suse.de>
35866
35867         PR middle-end/19988
35868         * fold-const.c (negate_expr_p): Pretend only negative
35869         real constants are easily negatable.
35870
35871 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
35872             Jason Merrill  <jason@redhat.com>
35873
35874         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
35875         (TYPE_TRANSPARENT_AGGR): this, for union and record.
35876         * calls.c (initialize argument_information): Handle it.
35877         * c-common.c (handle_transparent_union_attribute): Use new name.
35878         * c-decl.c (finish_struct): Ditto.
35879         * c-typeck.c (type_lists_compatible_p): Ditto.
35880         (convert_for_assignment): Use new name and also handle record.
35881         * function.c (aggregate_value_p): Handle it.
35882         (pass_by_reference): Ditto.
35883         (assign_parm_data_types): Ditto.
35884         * print-tree.c (print_node): Ditto.
35885         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
35886         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
35887         * tree.c (first_field): New fn.
35888
35889 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
35890
35891         PR target/42818
35892         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
35893         even when linking statically, for now.
35894
35895 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
35896
35897         PR debug/42715
35898         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
35899         without a cselib val.
35900         (count_uses): Accept MO_VAL_SET with no val on stores.
35901         (add_stores): Likewise.
35902
35903 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35904
35905         * var-tracking.c (check_value_val): Add a compile time assertion.
35906         (dv_is_decl_p): Simplify.
35907         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
35908         gcc_assert if ENABLE_CHECKING.
35909
35910 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
35911
35912         PR debug/42782
35913         * var-tracking.c: Include tree-flow.h.
35914         (mem_dies_at_call): New.
35915         (dataflow_set_preserve_mem_locs): Use it.
35916         (dataflow_set_remove_mem_locs): Likewise.
35917         (dump_var): Renamed from dump_variable.  Adjust all callers.
35918         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
35919         * Makefile.in (var-tracking.o): Adjust deps.
35920
35921 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
35922
35923         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
35924
35925 2010-01-20  Richard Guenther  <rguenther@suse.de>
35926
35927         PR tree-optimization/42717
35928         * tree-ssa-dce.c (get_live_post_dom): Remove.
35929         (forward_edge_to_pdom): Take an arbitrary edge to copy
35930         degenerate PHI args from.
35931         (remove_dead_stmt): Use the first post-dominator even if it
35932         does not contain live statements as redirection destination.
35933
35934 2010-01-20  Richard Guenther  <rguenther@suse.de>
35935
35936         * tree-inline.c (estimate_num_insns): Handle EH builtins.
35937
35938 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35939
35940         * sel-sched.c (create_speculation_check): Remove set but not used
35941         variable twin.
35942         (try_transformation_cache): Remove set but not used variable ds.
35943         (calculate_privileged_insns): Remove set but not used variables
35944         cur_insn and min_spec_insn.
35945         (find_best_expr): Remove set but not used variable avail_n.
35946         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
35947         variable e.
35948         * cgraphunit.c (assemble_thunk): Remove set but not used variable
35949         false_label.
35950         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
35951         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
35952         new_scop_exit_edge.
35953
35954 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
35955
35956         PR bootstrap/42786
35957         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
35958         cpu types.  Add support for *-sse3 cpu types.
35959         (x86_64-*-*): Ditto.
35960
35961 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35962
35963         PR middle-end/42803
35964         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
35965         argument, call initializer_constant_valid_p_1 instead of
35966         initializer_constant_valid_p, pass CACHE to it, return NULL
35967         immediately if first call returns NULL.
35968         (initializer_constant_valid_p_1): New function.
35969         (initializer_constant_valid_p): Use it.
35970
35971 2010-01-20  Thomas Quinot  <quinot@adacore.com>
35972
35973         * tree.def (PLACEHOLDER_EXPR): Fix comment.
35974
35975 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35976
35977         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
35978         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
35979         (loc_list_from_tree): Don't handle unsigned division.  Handle
35980         signed modulo using DW_OP_{over,over,div,mul,minus}.
35981         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
35982         modulo instead of signed.
35983
35984 2010-01-20  DJ Delorie  <dj@redhat.com>
35985
35986         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
35987         (Fpa): Pass it
35988         (h8300_emit_stack_adjustment): Propogate it.
35989         (push): Pass it.
35990         (h8300_expand_prologue): Likewise.
35991         (h8300_expand_epilogue): Likewise.
35992
35993 2010-01-19  Michael Matz  <matz@suse.de>
35994
35995         PR tree-optimization/41783
35996         * tree-data-ref.c (toplevel): Include flags.h.
35997         (dump_data_dependence_relation):  Also dump the inputs if the
35998         result will be unknown.
35999         (split_constant_offset_1): Look through some conversions.
36000         * tree-predcom.c (determine_roots_comp): Restart a new chain if
36001         the offset from last element is too large.
36002         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
36003         (reassociate_to_the_same_stmt): Handle vector registers.
36004         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
36005         (e.g. conversions).
36006         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
36007         wide_prolog_niters argument, emit widening instructions.
36008         (vect_do_peeling_for_alignment): Adjust caller, use widened
36009         variant of the iteration cound.
36010         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
36011
36012 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36013
36014         PR target/38697
36015         * config/arm/neon-testgen.m (emit_automatics): New parameter
36016         features. Adjust for Fixed_return_reg feature.
36017         (test_intrinsic): Call emit_automatics with new feature.
36018         * config/arm/neon.ml: Update copyright years.
36019         (features): New Fixed_return_reg feature.
36020         (ops): Update feature for Vget_low.
36021
36022 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
36023
36024         PR tree-optimization/42719
36025         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
36026         stmt uses.
36027
36028         PR debug/42728
36029         * fwprop.c (all_uses_available_at): Return false if def_set dest
36030         is a REG that is used in def_insn.
36031
36032 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
36033
36034         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
36035
36036         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
36037         Add argument names.
36038
36039         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
36040
36041         * target.h (struct gcc_target) <secondary_reload>: Change type
36042         of last argument to secondary_reload_info *.
36043
36044 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
36045
36046         PR target/42774
36047         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
36048         memory references with unaligned offsets.  Remove CQImode handling.
36049         (unaligned_memory_operand): Return 1 for memory references with
36050         unaligned offsets.  Remove CQImode handling.
36051
36052 2010-01-18  Richard Guenther  <rguenther@suse.de>
36053
36054         PR middle-end/39954
36055         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
36056         builtin calls.
36057
36058 2010-01-18  Richard Guenther  <rguenther@suse.de>
36059
36060         PR tree-optimization/42781
36061         * tree-ssa-structalias.c (find_what_var_points_to): Skip
36062         restrict processing only if the original variable was artificial.
36063
36064 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
36065
36066         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
36067         find number of popped argument bytes.
36068
36069         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
36070         Fix the text that describes the return value for invalid insns.
36071
36072         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
36073
36074         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
36075         Clarify what 'cost of the -dependence' is.  Fix quoting.
36076
36077         * toplev.c (default_get_pch_validity): Rename argument to "sz".
36078         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
36079
36080 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
36081
36082         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36083         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
36084
36085 2010-01-17  Richard Guenther  <rguenther@suse.de>
36086
36087         PR middle-end/42248
36088         * function.c (split_complex_args): Take a VEC to modify.
36089         (assign_parms_augmented_arg_list): Build a VEC instead of
36090         a chain of PARM_DECLs.
36091         (assign_parms_unsplit_complex): Take a VEC of arguments.
36092         Do not fixup unmodified parms.
36093         (assign_parms): Deal with the VEC.
36094         (gimplify_parameters): Likewise.
36095
36096 2010-01-17  Richard Guenther  <rguenther@suse.de>
36097
36098         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
36099         node existence check.
36100         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
36101         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
36102         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
36103         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
36104         (gimple_execute_on_growing_pred): Likewise.
36105
36106 2010-01-17  Richard Guenther  <rguenther@suse.de>
36107
36108         PR tree-optimization/42773
36109         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
36110         (compute_antic_aux): Likewise.
36111         (compute_partial_antic_aux): Likewise.
36112
36113 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
36114
36115         PR debug/42767
36116         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
36117         and US_TRUNCATE.
36118
36119 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
36120
36121         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
36122         appearance.
36123
36124         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
36125         Fix markup for strict argument.
36126
36127         (TARGET_SCHED_REORDER2): Fix argument types.
36128
36129         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
36130         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
36131
36132         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
36133         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
36134
36135         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
36136         Add argument name.
36137
36138         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
36139         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
36140         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
36141         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
36142         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
36143
36144         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
36145
36146         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
36147
36148         (TARGET_ASM_RELOC_RW_MASK): Add return type.
36149         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
36150
36151         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
36152
36153         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
36154         Use prototype.
36155
36156         (TARGET_ASM_NAMED_SECTION): Fix argument list.
36157
36158         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
36159         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
36160
36161         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
36162
36163         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
36164
36165         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
36166         referring to it.  Fix language.
36167
36168         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
36169
36170         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
36171
36172         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
36173
36174         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
36175
36176         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
36177         '@var{stream}.  Remove stray 'and'.
36178
36179         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
36180
36181         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
36182
36183         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
36184
36185         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
36186         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
36187
36188         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
36189         Fix description of return value.
36190         Rename argument "sz" to "len."
36191
36192         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
36193         Clarify meaning of 'true' return value.
36194
36195         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
36196
36197         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
36198         rep_mode versus mode_rep.
36199
36200         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
36201
36202         (TARGET_BUILTIN_DECL): Fix name.
36203
36204         (TARGET_COMMUTATIVE_P): Fix type of first argument.
36205
36206         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
36207
36208         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
36209
36210         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
36211
36212         (TARGET_RELAXED_ORDERING): Use @deftypevr.
36213
36214         (TARGET_GET_DRAP_RTX): Note that this is a hook.
36215         Clarify language.
36216
36217         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
36218         Rename argument tm_fn to md_fn.
36219
36220         (TARGET_OPTION_PRINT): Fix argument list.
36221
36222 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
36223
36224         PR target/42664
36225         * config/i386/i386.c (ix86_fixup_binary_operands):
36226         Revert FMA4 fixup of operands.
36227
36228 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36229
36230         PR other/42525
36231         * Makefile.in (write_entries_to_file, install-plugin):
36232         Use \012 instead of \n with tr.
36233
36234 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
36235
36236         * configure.ac (HAVE_AS_REF): New C macro.
36237         * configure: Regenerate.
36238         * config.in: Likewise.
36239         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
36240         if HAVE_AS_REF.
36241         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36242         if HAVE_AS_REF.
36243
36244 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
36245
36246         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36247
36248         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36249
36250         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36251
36252         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36253
36254         (TARGET_IN_SMALL_DATA_P): Fix argument type.
36255
36256         (TARGET_BINDS_LOCAL_P): Fix argument type.
36257
36258         (TARGET_ASM_FILE_END): Use prototype.
36259
36260         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
36261
36262         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
36263
36264         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
36265
36266         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
36267
36268         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
36269         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
36270
36271         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
36272         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
36273
36274         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
36275         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
36276         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
36277         (TARGET_ADDR_SPACE_CONVERT): Likewise.
36278
36279         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
36280
36281         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
36282
36283         (TARGET_INIT_BUILTINS): Use prototype.
36284
36285         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
36286         Put 'const char *' in braces.  Fix parameter types.
36287         (TARGET_INVALID_CONVERSION): Fix parameter types.
36288         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
36289         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
36290
36291         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
36292         Fix argument type.
36293
36294         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
36295
36296         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
36297
36298 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
36299
36300         * doc/tm.texi (TARGET_HELP): Fix return type.
36301
36302         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
36303         in braces.  Fix argument types.
36304
36305         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
36306
36307         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
36308
36309         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
36310
36311         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
36312         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
36313
36314         (TARGET_MANGLE_TYPE): Fix argument types.
36315
36316         (TARGET_IRA_COVER_CLASSES): Use prototype.
36317
36318         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
36319
36320         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
36321
36322         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
36323
36324         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
36325
36326         (TARGET_CALLEE_COPIES): Fix argument types.
36327
36328         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
36329
36330         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
36331
36332         (TARGET_FUNCTION_VALUE): Fix argument types.
36333
36334         (TARGET_RETURN_IN_MSB): Fix argument type.
36335
36336         (TARGET_RETURN_IN_MEMORY): Fix argument types.
36337
36338         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
36339
36340         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
36341
36342         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
36343         agree with return type.
36344
36345         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
36346
36347 2010-01-15  Jing Yu  <jingyu@google.com>
36348
36349         PR rtl-optimization/42691
36350         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
36351         a pseudo to a constant and are merged, and adjust comments.
36352
36353 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
36354
36355         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
36356
36357 2010-01-15  Richard Guenther  <rguenther@suse.de>
36358
36359         PR middle-end/42739
36360         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
36361         labels of computed or non-local gotos to the destination.
36362         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
36363         landing pad label is the first label.
36364
36365 2010-01-15  Richard Guenther  <rguenther@suse.de>
36366
36367         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
36368
36369 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
36370
36371         PR target/42747
36372         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
36373         to allow generation of the xssqrtdp instruction on power7.
36374         (sqrtdf2_fpr): Ditto.
36375
36376 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36377
36378         PR middle-end/42674
36379         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
36380         functions with noreturn attribute.
36381
36382         PR c++/42608
36383         * varasm.c (declare_weak): Add weak attribute to decl if it
36384         doesn't have one already.
36385         (assemble_external): Only add decls to weak_decls if they also
36386         have weak attribute.
36387
36388 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
36389
36390         * var-tracking.c (var_reg_delete): Don't delete the association
36391         between REGs and values or one-part variables if the register
36392         isn't clobbered.
36393
36394 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36395
36396         PR debug/42657
36397         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
36398         because its first operand is a non-localized variable.
36399
36400 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36401
36402         PR tree-optimization/42706
36403         * tree-sra.c (encountered_recursive_call): New variable.
36404         (encountered_unchangable_recursive_call): Likewise.
36405         (sra_initialize): Initialize both new variables.
36406         (callsite_has_enough_arguments_p): New function.
36407         (scan_function): Call decl and flags check only for IPA-SRA, check
36408         whether there is a recursive call and whether it has enough arguments.
36409         (all_callers_have_enough_arguments_p): New function.
36410         (convert_callers): Look for recursive calls only when
36411         encountered_recursive_call is set.
36412         (ipa_early_sra): Bail out either if
36413         !all_callers_have_enough_arguments_p or
36414         encountered_unchangable_recursive_call.
36415
36416 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36417
36418         * sel-sched.c: Add 2010 to copyright years.
36419         * sel-sched-ir.c: Likewise.
36420         * sel-sched-ir.h: Likewise.
36421
36422 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36423
36424         PR tree-optimization/42714
36425         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
36426         constructors specially.
36427
36428 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36429
36430         * config/i386/drivers-i386.c (detect_caches_intel):
36431         Add l2sizekb parameter and fill in.
36432         (host_detect_local_cpu): Add l2sizekb, fill in.
36433         Add Atom small cache heuristic.
36434
36435 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36436
36437         * config/i386/drivers-i386.c (detect_caches_cpuid4):
36438         Add level3 parameter and fill in.
36439         (detect_caches_intel): Handle level3 cache.
36440
36441 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36442
36443         * config/i386/drivers-i386.c (host_detect_local_cpu):
36444         Fix core duo detection.
36445
36446 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36447
36448         * config/i386/drivers-i386.c (host_detect_local_cpu):
36449         Fix Atom detection.
36450
36451 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36452
36453         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
36454         (rs6000_variable_issue_1): this.  Use...
36455         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
36456
36457 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36458
36459         * sel-sched-ir.c (sel_restore_other_notes): Rename to
36460         sel_restore_notes.  Update all callers.  Call reemit_notes
36461         for all insns.
36462
36463 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36464
36465         PR rtl-optimization/42246
36466         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
36467         loops.
36468
36469 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36470
36471         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
36472         all successors is the same as number of successors in current region.
36473
36474 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36475
36476         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
36477         to rename is not separable.  Otherwise check that its LHS is not NULL.
36478
36479 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36480
36481         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
36482
36483 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36484
36485         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
36486         available registers when failed to discover LHS register class.
36487         Fix indentation.  Update comment.
36488
36489 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36490             Alexander Monakov  <amonakov@ispras.ru>
36491
36492         PR rtl-optimization/42389
36493         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
36494         to can_issue_more.
36495         (advance_state_on_fence): Likewise.
36496         (sel_target_adjust_priority): Print debug output only when
36497         sched_verbose >= 4, not 2.
36498         (get_expr_cost): Do not issue all unique insns on the next cycle.
36499         (fill_insns): Initialize can_issue_more from the value saved
36500         with the fence.
36501         * sel-sched-ir.c (flist_add): New parameter issue_more.
36502         Init FENCE_ISSUE_MORE with it.
36503         (merge_fences): Likewise.
36504         (init_fences): Update call to flist_add.
36505         (add_to_fences, add_clean_fence_to_fences)
36506         (add_dirty_fence_to_fences): Likewise.
36507         (move_fence_to_fences): Update call to merge_fences.
36508         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
36509         sched groups.
36510         * sel-sched-ir.h (struct _fence): New field issue_more.
36511         (FENCE_ISSUE_MORE): New accessor macro.
36512
36513 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36514
36515         PR rtl-optimization/42388
36516         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
36517         that have no predecessors nor successors.  Do not call move_bb_info
36518         for empty blocks outside of current region.
36519
36520 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36521
36522         PR rtl-optimization/42294
36523         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
36524         * sel-sched.c (move_exprs_to_boundary): Transitively add all
36525         originators' originators.
36526
36527 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36528
36529         PR rtl-optimization/39453
36530         PR rtl-optimization/42246
36531         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
36532         for pipelining_p.
36533         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
36534
36535 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36536             Alexander Monakov  <amonakov@ispras.ru>
36537
36538         PR middle-end/42245
36539         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
36540         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
36541         argument.  Update all callers.
36542         (tidy_control_flow): ... and here.  Recompute topological order
36543         of basic blocks in region if necessary.
36544         (sel_redirect_edge_and_branch): Change return type.  Return true
36545         if topological order might have been invalidated.
36546         (purge_empty_blocks): Export and move from...
36547         * sel-sched.c (purge_empty_blocks): ... here.
36548         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
36549         (maybe_tidy_empty_bb): Delete prototype.
36550         (purge_empty_blocks): Declare.
36551
36552 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36553
36554         PR rtl-optimization/42249
36555         * sel-sched.c (try_replace_dest_reg): When chosen register
36556         and original register is the same, do not bail out early, but
36557         still check all original insns for validity of replacing destination
36558         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
36559         in this case.
36560
36561 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36562
36563         PR c/42721
36564         Port from no-undefined-overflow branch:
36565         2009-03-09  Richard Guenther  <rguenther@suse.de>
36566
36567         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
36568
36569 2010-01-14  Richard Guenther  <rguenther@suse.de>
36570
36571         PR lto/42665
36572         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
36573
36574 2010-01-14  Ira Rosen  <irar@il.ibm.com>
36575
36576         PR tree-optimization/42709
36577         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
36578         as scalar type in creation of constant vector operand.
36579
36580 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36581
36582         PR testsuite/42414
36583         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
36584         (check-parallel-%): Match `testsuite' directory component only
36585         at the end.
36586
36587 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
36588
36589         PR translation/39521
36590         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
36591         strings with _().
36592
36593 2010-01-13  Richard Guenther  <rguenther@suse.de>
36594
36595         PR tree-optimization/42730
36596         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
36597         offset zero.
36598
36599 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
36600
36601         PR target/pr42542
36602         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
36603         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
36604         them signed.
36605
36606 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
36607
36608         * config/bfin/libgcc-bfin.ver: Regenerate based on current
36609         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
36610         ___umulsi3_highpart.
36611
36612         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
36613         rather than schedule_insns if the pass is enabled.
36614
36615 2010-01-13  Martin Jambor  <mjambor@suse.cz>
36616
36617         PR tree-optimization/42704
36618         * tree-sra.c (sra_modify_assign): Do not delete assignments to
36619         SSA_NAMEs.
36620
36621 2010-01-13  Martin Jambor  <mjambor@suse.cz>
36622
36623         PR tree-optimization/42703
36624         * tree-sra.c (analyze_access_subtree): Check that we can build a
36625         reference to the original data within the aggregate.
36626
36627 2010-01-13  Richard Guenther  <rguenther@suse.de>
36628
36629         PR tree-optimization/42705
36630         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
36631
36632 2010-01-13  Richard Guenther  <rguenther@suse.de>
36633
36634         PR middle-end/42716
36635         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
36636
36637 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36638
36639         PR debug/41371
36640         * var-tracking.c (values_to_unmark): New variable.
36641         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36642         values_to_unmark vector.  Moved body to...
36643         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36644         instead queue it into values_to_unmark vector.
36645         (vt_find_locations): Free values_to_unmark vector.
36646
36647 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
36648
36649         * config/s390/s390.c (override_options): Set
36650         default of max-pending-list-length to 256
36651
36652 2010-01-13  Richard Guenther  <rguenther@suse.de>
36653
36654         PR lto/42678
36655         * tree-pass.h (PROP_gimple_lcx): New.
36656         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
36657         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
36658         before the final cleanup_eh.
36659         (dump_properties): Dump PROP_gimple_lcx.
36660         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
36661         (tree_lower_complex_O0): Remove.
36662         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
36663         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
36664         tree_lower_complex, schedule TODO_update_ssa.
36665         * lto-streamer-out.c (output_function): Stream the functions
36666         properties.
36667         * lto-streamer-in.c (input_function): Likewise.
36668         (lto_read_body): Do not override them here.
36669
36670 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
36671
36672         PR c/42708
36673         * c-typeck.c (build_c_cast): Fold value cast to union type before
36674         wrapping it in a CONSTRUCTOR.
36675
36676 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
36677
36678         PR rtl-optimization/42699
36679         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
36680         involved.
36681
36682 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36683
36684         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36685         SUBTARGET_WARN_UNUSED_SPEC): Move ...
36686         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36687         SUBTARGET_WARN_UNUSED_SPEC): ... here
36688         * config/mips/iris5.h (LIBGCC_SPEC): Define.
36689
36690 2010-01-12  Julian Brown  <julian@codesourcery.com>
36691
36692         * config/arm/neon-schedgen.ml (Utils): Don't try to
36693         open missing module.
36694         (find_with_result): New.
36695
36696 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
36697
36698         PR debug/42662
36699         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
36700         sharing when canonicalizing ({lt,ge}u (plus a b) b).
36701
36702         PR tree-optimization/42645
36703         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
36704         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
36705         decl_map, set processing_debug_stmt to -1 and return name without
36706         any remapping.
36707
36708 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
36709
36710         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
36711         binutils version, and reword target configuration description.
36712
36713 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
36714
36715         * config/avr/avr.h (LINKER_NAME): Remove.
36716
36717 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
36718
36719         PR target/42416
36720         * config/rs6000/rs6000.c (rs6000_override_options): On targets
36721         that support VSX, warn for -mno-altivec if vsx is not disabled,
36722         and disable vsx.
36723
36724 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
36725             Shujing Zhao  <pearly.zhao@oracle.com>
36726
36727         PR translation/42469
36728         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
36729         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
36730         character between option name and help text.
36731         * c.opt (imultilib): Likewise.
36732
36733 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
36734
36735         * lto-streamer-out.c (output_unreferenced_globals): Output static
36736         variables.
36737
36738 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
36739
36740         PR rtl-optimization/42621
36741         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
36742         optimizing for size.
36743         (duplicate_computed_gotos): Remove now-redundant check.
36744
36745 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
36746
36747         PR target/37454
36748         * configure.ac: Save and restore LDFLAGS and LIBS
36749         * configure: Regenerate.
36750
36751 2010-01-10  Richard Guenther  <rguenther@suse.de>
36752
36753         PR middle-end/42667
36754         * builtins.c (fold_builtin_strlen): Add type argument and
36755         convert the resulting length to it.
36756         (fold_builtin_1): Adjust.
36757
36758 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
36759
36760         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
36761         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
36762         1 insn.
36763         (num_insns_constant_wide): Adjust for that change.
36764
36765 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36766
36767         PR debug/42631
36768         * web.c (union_defs): Add used argument, to combine uses of
36769         uninitialized regs.
36770         (entry_register): Adjust type and tests of used argument.
36771         (web_main): Widen used for new use.  Pass it to union_defs.
36772         * df.h (union_defs): Adjust prototype.
36773
36774 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36775
36776         PR debug/42630
36777         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
36778         uses in new incoming argument.  Free body.
36779         (reset_debug_uses_in_loop): New.
36780         (analyze_insn_to_expand_var): Call the latter if the former found
36781         anything.  Fix whitespace.  Reject invalid dest overlaps before
36782         going through all insns in the loop.
36783
36784 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36785
36786         PR debug/42629
36787         * haifa-sched.c (dying_use_p): Debug insns don't count.
36788
36789 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36790
36791         PR middle-end/42363
36792         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
36793         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
36794         (verify_gimple_call): Reject LHS in noreturn calls.
36795
36796 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36797
36798         PR debug/42604
36799         PR debug/42395
36800         * tree-vect-loop-manip.c (adjust_info): New type.
36801         (adjust_vec): New pointer to vector.
36802         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
36803         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
36804         (slpeel_update_phis_for_duplicate_loop): Use them.
36805         (slpeel_update_phi_nodes_for_guard1): Likewise.
36806         (slpeel_update_phi_nodes_for_guard2): Likewise.
36807         (slpeel_tree_peel_loop_to_edge): Likewise.
36808         (vect_update_ivs_after_vectorizer): Likewise.
36809
36810 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36811
36812         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
36813         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
36814
36815 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36816
36817         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
36818         bogus uninitialized warning.
36819
36820 2010-01-09  Richard Guenther  <rguenther@suse.de>
36821
36822         PR middle-end/42512
36823         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
36824         the evolution is compatible with the initial condition.
36825
36826 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
36827
36828         * gcc.c (process_command): Update copyright notice dates.
36829         * gcov.c (print_version): Likewise.
36830         * gcov-dump.c (print_version): Likewise.
36831         * mips-tfile.c (main): Likewise.
36832         * mips-tdump.c (main): Likewise.
36833
36834 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
36835
36836         PR target/41885
36837         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
36838         (rotlhi3): Delete.
36839         (rotlhi3_8): Delete.
36840         (rotlsi3): Delete.
36841         (rotlsi3_8): Delete.
36842         (rotlsi3_16): Delete.
36843         (rotlsi3_24): Delete.
36844         (rotl<mode>3): New.
36845         (*rotw<mode>3): New.
36846         (*rotb<mode>3): New.
36847         * config/avr/avr.c (avr_rotate_bytes): New function.
36848         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
36849
36850 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
36851
36852         PR target/37454
36853         * configure.ac: Modify -rdynamic check.
36854         * configure: Regenerate.
36855
36856 2010-01-08  DJ Delorie  <dj@redhat.com>
36857
36858         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
36859         register popping order.
36860
36861 2010-01-08  Richard Guenther  <rguenther@suse.de>
36862
36863         PR lto/42528
36864         * c.opt (fsigned-char): Also let LTO handle this option.
36865         (funsigned-char): Likewise.
36866
36867 2010-01-07  Richard Guenther  <rguenther@suse.de>
36868
36869         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
36870         (gimple_op): Likewise.
36871         (gimple_op_ptr): Likewise.
36872         (gimple_assign_set_lhs): Remove gcc_assert.
36873         (gimple_assign_set_rhs1): Likewise.
36874         (gimple_assign_set_rhs2): Likewise.
36875         (gimple_call_set_lhs): Likewise.
36876         (gimple_call_set_fn): Likewise.
36877         (gimple_call_set_fndecl): Likewise.
36878         (gimple_call_fndecl): Likewise.
36879         (gimple_call_return_type): Likewise.
36880         (gimple_call_set_chain): Likewise.
36881         (gimple_call_num_args): Likewise.
36882         (gimple_call_set_arg): Likewise.
36883         (gimple_cond_set_code): Likewise.
36884         (gimple_cond_set_lhs): Likewise.
36885         (gimple_cond_set_rhs): Likewise.
36886         (gimple_cond_set_true_label): Likewise.
36887         (gimple_cond_set_false_label): Likewise.
36888         (gimple_label_set_label): Likewise.
36889         (gimple_goto_set_dest): Likewise.
36890         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
36891         (gimple_debug_bind_get_value): Likewise.
36892         (gimple_debug_bind_get_value_ptr): Likewise.
36893         (gimple_debug_bind_set_var): Likewise.
36894         (gimple_debug_bind_set_value): Likewise.
36895         (gimple_debug_bind_reset_value): Likewise.
36896         (gimple_debug_bind_has_value_p): Likewise.
36897         (gimple_return_retval_ptr): Remove gcc_assert.
36898         (gimple_return_retval): Likewise.
36899         (gimple_return_set_retval): Likewise.
36900         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
36901         (safe_referenced_var_iterator): Remove.
36902         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
36903         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
36904         (fill_referenced_var_vec): Remove.
36905         (first_readonly_imm_use): Remove redundant gcc_assert.
36906         (phi_arg_index_from_use): Combine gcc_asserts.
36907         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
36908         (first_imm_use_stmt): Remove redundant gcc_assert.
36909         * tree-cfg.c (verify_gimple_call): Verify function and chain
36910         operands.  Verify arguments.
36911         (verify_types_in_gimple_stmt): Verify condition code and labels.
36912
36913 2010-01-07  Richard Guenther  <rguenther@suse.de>
36914
36915         PR tree-optimization/42641
36916         * sese.c (rename_map_elt_info): Use the SSA name version, do
36917         not hash pointers.
36918
36919 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
36920
36921         PR tree-optimization/42625
36922         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
36923         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
36924
36925 2010-01-07  Duncan Sands  <baldrick@free.fr>
36926
36927         * Makefile.in (PLUGIN_HEADERS): Add version.h.
36928
36929 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
36930
36931         PR target/42511
36932         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
36933         note itself is not function_invariant_p.
36934
36935 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
36936
36937         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
36938         Do not add the DF_NOTE problem.
36939         * store-motion.c (execute_rtl_store_motion): Likewise.
36940
36941 2010-01-07  Martin Jambor  <mjambor@suse.cz>
36942
36943         PR tree-optimization/42157
36944         * tree-sra.c (compare_access_positions): Stabilize sort if both
36945         accesses have integer types, return zero immediately if they are the
36946         same.
36947
36948 2010-01-06  Richard Henderson  <rth@redhat.com>
36949
36950         PR middle-end/41883
36951         * haifa-sched.c (add_to_note_list): Merge into ...
36952         (concat_note_lists): ... here, and ...
36953         (unlink_other_notes, rm_other_notes): Merge into...
36954         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
36955         NOTE_INSN_EPILOGUE_BEG.
36956
36957 2010-01-06  Richard Guenther  <rguenther@suse.de>
36958
36959         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
36960         not inline regular functions into always-inline functions.
36961
36962 2010-01-06  Nick Clifton  <nickc@redhat.com>
36963
36964         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
36965         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
36966         used together.
36967         (OVERRIDE_OPTIONS): Delete.
36968         (OPTIMIZATION_OPTIONS): Define.
36969         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
36970         * config/rx/rx.c (rx_handle_option): Issue an error message if
36971         -mcpu=rx200 and -fpu are used together.
36972         (rx_set_optimization_options): New function.  Issue an error
36973         message if an optimization attribute attempts to reset the FPU/
36974         math optimization pairing.
36975         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
36976         * config/rx/rx.opt: Set the default to 32-bit doubles.
36977         * config/rx/t-rx: Add multilibs for -nofpu option.
36978         * doc/invoke.texi: Update documentation of RX options.
36979
36980 2010-01-06  Richard Guenther  <rguenther@suse.de>
36981
36982         * tree-ssa-pre.c (name_to_id): New global.
36983         (alloc_expression_id): Simplify SSA name handling.
36984         (lookup_expression_id): Likewise.
36985         (init_pre): Zero name_to_id.
36986         (fini_pre): Free it.
36987
36988 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
36989
36990         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
36991
36992 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
36993
36994         PR target/42542
36995         * config/i386/sse.md (smaxv2di3): New.
36996         (umaxv2di3): Likewise.
36997         (sminv2di3): Likewise.
36998         (uminv2di3): Likewise.
36999
37000 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
37001
37002         PR target/42564
37003         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
37004         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
37005         (legitimize_tls_address): Likewise.
37006         (sparc_tls_referenced_p): Likewise.
37007         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
37008         and adjust calls to legitimize_pic_address.
37009         (legitimate_constant_p) Use sparc_tls_referenced_p.
37010         (legitimate_pic_operand_p): Likewise.
37011         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
37012         (sparc_tls_symbol_ref_1): Delete.
37013         (sparc_tls_referenced_p): Make static, recognize specific patterns.
37014         (legitimize_tls_address): Make static, handle CONST patterns.
37015         (legitimize_pic_address): Make static, remove unused parameter and
37016         adjust recursive calls.
37017         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
37018         and adjust call to legitimize_pic_address.
37019         (sparc_output_mi_thunk): Likewise.
37020
37021 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
37022             H.J. Lu  <hongjiu.lu@intel.com>
37023
37024         PR target/42542
37025         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
37026         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
37027         operands to make them signed.
37028
37029         Revert:
37030         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37031
37032         PR target/42542
37033         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37034         GTU to GT for V4SI and V2DI.
37035
37036         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37037         (umin<mode>3): Removed.
37038         (uminv8hi3): New.
37039         (uminv4si3): Likewise.
37040
37041 2010-01-05  Martin Jambor  <mjambor@suse.cz>
37042
37043         PR tree-optimization/42462
37044         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
37045         current_function_decl to helper functions and macros.
37046
37047 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37048
37049         PR bootstrap/41771
37050         * flags.h: Don't include real.h.
37051         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
37052         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
37053         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
37054         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
37055         * dominance.c: Update copyright.
37056         * gimple.c (walk_gimple_op): Remove inline.
37057         * tree-ssa-reassoc.c: Include real.h.
37058         * Makefile.in (FLAGS_H): Remove $(REAL_H).
37059         (tree-ssa-reassoc.o): Depend on $(REAL_H).
37060
37061 2010-01-05  Nick Clifton  <nickc@redhat.com>
37062
37063         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
37064         register to push into the stack frame when the accumulator has to
37065         be saved during interrupts.
37066
37067 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
37068
37069         * doc/invoke.texi: Remove the documentation about option
37070         -Wunreachable-code.
37071         * common.opt (Wunreachable-code):  Preserved for backward
37072         compatibility.
37073         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
37074         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
37075         the backward compatibility flag section.
37076
37077 2010-01-05  Richard Guenther  <rguenther@suse.de>
37078
37079         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
37080
37081 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
37082
37083         PR other/42611
37084         * cfgexpand.c (expand_one_var): Diagnose too large variables.
37085
37086         PR tree-optimization/42508
37087         * tree-sra.c (convert_callers): Check for recursive call
37088         by comparing cgraph nodes instead of decls.
37089         (modify_function): Call ipa_modify_formal_parameters also
37090         on all same_body aliases.
37091
37092         * cgraphunit.c (cgraph_materialize_all_clones): Compare
37093         cgraph nodes when checking for same_body aliases.
37094
37095 2010-01-05  Richard Guenther  <rguenther@suse.de>
37096
37097         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
37098         allocation and lookup.
37099         (get_or_alloc_expr_for_constant): Likewise.
37100         (phi_translate): Sink allocation.
37101
37102 2010-01-04  Richard Guenther  <rguenther@suse.de>
37103
37104         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
37105         a new entry only if needed.
37106         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
37107         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
37108         hashtable lookup.
37109         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
37110         the result array.
37111         (phi_translate): Handle CONSTANTs early.
37112
37113 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37114
37115         PR tree-optimization/42398
37116         * tree-sra.c (struct access): Removed flag grp_different_types.
37117         (dump_access): Do not dump the removed flag.
37118         (sort_and_splice_var_accesses): Do not set the removed flag.
37119         (sra_modify_expr): Check for type compatibility directly.
37120
37121 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37122
37123         PR tree-optimization/42366
37124         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
37125         edges with variable number of parameters.
37126         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
37127         flag instead of asserting it.
37128         (ipa_read_node_info): Read uses_analysis_done flag.
37129
37130 2010-01-04  Richard Guenther  <rguenther@suse.de>
37131
37132         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
37133         iterative_hash_* as intended.
37134         (vn_reference_compute_hash): Likewise.  Simplify hashing
37135         SSA names.
37136         (vn_reference_lookup_2): Likewise.
37137         (vn_nary_op_compute_hash): Likewise.
37138         (vn_phi_compute_hash): Likewise.
37139         (expressions_equal_p): Remove strange code.
37140         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
37141         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
37142         (bitmap_insert_into_set_1): Take value-id as parameter.
37143         (add_to_value): Pass it.
37144         (bitmap_insert_into_set): Likewise.
37145         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
37146
37147 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
37148
37149         PR driver/42442
37150         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
37151         (do_self_spec): For switches with SWITCH_IGNORE set set also
37152         SWITCH_IGNORE_PERMANENTLY.
37153         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
37154         of SWITCH_IGNORE.
37155
37156 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
37157
37158         * lto-streamer-out.c (output_unreferenced_globals): Output the full
37159         tree of an unreferenced global var.
37160
37161 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37162
37163         PR target/42542
37164         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37165         GTU to GT for V4SI and V2DI.
37166
37167         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37168         (umin<mode>3): Removed.
37169         (uminv8hi3): New.
37170         (uminv4si3): Likewise.
37171
37172 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37173
37174         PR lto/42581
37175         * collect2.c (main): Turn on trace in collect2 if -v is passed
37176         to gcc with LTO.
37177
37178 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
37179
37180         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
37181         description of expression operand.
37182
37183 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
37184
37185         * configure.ac: Add install-html to target_list for Make-hooks.
37186         * configure: Regenerate.
37187         * fortran/Make-lang.in (F95_HTMLFILES): New.
37188         (fortran.html): Use it.
37189         (fortran.install-html): New.
37190         * Makefile.in (install-html): Add lang.install-html.
37191         * java/Make-lang.in (JAVA_HTMLFILES): New.
37192         (java.html): Use it.
37193         (java.install-html): New.
37194         * objc/Make-lang.in (objc.install-html): New.
37195         * objcp/Make-lang.in (obj-c++.install-html): New.
37196         * cp/Make-lang.in (c++.install-html): New.
37197         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
37198         * lto/Make-lang.in (lto.install-html): New.
37199
37200 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37201
37202         PR lto/42520
37203         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
37204
37205 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37206
37207         PR rtl-optimization/41862
37208         * store-motion.c (store_killed_in_insn, compute_store_table,
37209         remove_reachable_equiv_notes, replace_store_insn,
37210         build_store_vectors): Ignore all DEBUG_INSNs.
37211
37212 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37213
37214         PR lto/41564
37215         * common.opt: Add dumpdir.
37216
37217         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
37218         isn't specified.
37219         (option_map): Add --dumpdir.
37220
37221         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
37222
37223         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
37224
37225         * opts.c (decode_options): Try dump_dir_name first if
37226         dump_base_name isn't an absolute path.
37227         (common_handle_option): Handle OPT_dumpdir.
37228
37229         * toplev.c (dump_dir_name): New.
37230         (print_switch_values): Also ignore -dumpdir.
37231
37232         * toplev.h (dump_dir_name): New.
37233
37234 2010-01-03  Richard Guenther  <rguenther@suse.de>
37235
37236         PR tree-optimization/42589
37237         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
37238         double-word expansion of bswap32.
37239
37240 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37241
37242         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37243         with BLOCK_FOR_INSN.
37244         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37245         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37246         noce_process_if_block): Likewise.
37247         * gcse.c (compute_local_properties, insert_expr_in_table,
37248         insert_set_in_table, canon_list_insert, find_avail_set,
37249         pre_insert_copy_insn): Likewise.
37250
37251         * basic-block.h (BLOCK_NUM): Move from here...
37252         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37253
37254 2010-01-03  Richard Guenther  <rguenther@suse.de>
37255
37256         PR tree-optimization/42438
37257         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37258         contains_may_not_return_call flag.
37259         (BB_MAY_NOTRETURN): New.
37260         (valid_in_sets): Trapping nary operations are not valid
37261         in blocks that may not return.
37262         (insert_into_preds_of_block): Remove check for trapping expressions.
37263         (compute_avail): Compute also BB_MAY_NOTRETURN.
37264
37265 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
37266
37267         * doc/invoke.texi: Add 2010 to copyright years.
37268
37269 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
37270
37271         * config/sparc/sparc.c: Fix formatting nits.
37272
37273 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
37274             Alexander Monakov  <amonakov@ispras.ru>
37275
37276         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
37277
37278 2010-01-02  Richard Guenther  <rguenther@suse.de>
37279
37280         PR middle-end/42577
37281         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
37282         (simplify_switch_using_ranges): Mark to be removed edges
37283         as non-executable.
37284
37285 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37286
37287         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37288
37289         * collect2.c (scan_libraries): Add missing argument in call to
37290         scan_prog_file.
37291
37292 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
37293
37294         PR target/42448
37295         * config/alpha/predicates.md (aligned_memory_operand): Return false
37296         for CQImode.
37297         (unaligned_memory_operand): Return true for CQImode.
37298         * config/alpha/alpha.c (get_aligned_mem): Assert that location
37299         doesn not cross aligned SImode word boundary.
37300
37301 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
37302
37303         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
37304         Remove.
37305         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
37306         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
37307
37308 2010-01-02  Richard Guenther  <rguenther@suse.de>
37309
37310         PR lto/41597
37311         * toplev.c (compile_file): Emit LTO marker properly.  Change
37312         it to __gnu_lto_v1.
37313         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
37314
37315 2010-01-01  Richard Guenther  <rguenther@suse.de>
37316
37317         PR debug/42455
37318         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
37319
37320 2010-01-01  Richard Guenther  <rguenther@suse.de>
37321
37322         PR c/42570
37323         * c-decl.c (grokdeclarator): For zero-size arrays force
37324         structural equality checks as layout_type does.
37325
37326 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37327
37328         * builtins.c: Update copyright to 2010.
37329
37330 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37331
37332         PR lto/42531
37333         * lto-streamer-out.c (produce_asm): Revert the last change.
37334         (copy_function): Likewise.
37335
37336         * lto-streamer.c (lto_get_section_name): Skip any leading
37337         asterisk in name.
37338
37339 2010-01-01  Richard Guenther  <rguenther@suse.de>
37340
37341         PR middle-end/42559
37342         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
37343         for LABEL_DECLs.
37344
37345 \f
37346 Copyright (C) 2010 Free Software Foundation, Inc.
37347
37348 Copying and distribution of this file, with or without modification,
37349 are permitted in any medium without royalty provided the copyright
37350 notice and this notice are preserved.