1 2010-11-23 Dave Korn <dave.korn.cygwin@gmail.com>
4 * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
5 options, replace by call of pass-through-libs spec function to process
6 link_gcc_c_sequence spec.
7 (lto_libgcc_spec): Delete variable.
8 (static_specs[]): Remove related entry.
9 (static_spec_functions[]): Add new entry for pass-through-libs.
10 (main): Don't generate deleted lto_libgcc_spec.
11 (pass_through_libs_spec_func): New function to implement the new
12 pass-through-libs spec function.
13 * doc/invoke.texi (pass-through-libs): Document new spec function.
15 2010-11-23 Joseph Myers <joseph@codesourcery.com>
17 * doc/options.texi (Warning, Optimization): Document.
19 2010-11-23 Jan Hubicka <jh@suse.cz>
21 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
22 (tree_decl_with_vis): Add implicit_section_name_p.
23 * targhooks.h (default_function_section): Declare.
24 * target.def (function_section): New hook.
25 * defaults.h (HOT_TEXT_SECTION_NAME,
26 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
27 * predict.c (choose_function_section): Remove.
28 (estimate_bb_frequencies): Do not use choose_function_section.
29 * coretypes.h (enum node_frequency): Move here from cgraph.h
30 * cgraph.h (enum node_frequency): Remove.
31 * varasm.c (initialize_cold_section_name, unlikely_text_section,
32 unlikely_text_section_p): Remove.
33 (named_subsection_entry): New structure.
34 (get_text_section): New function.
35 (default_function_section): New function.
36 (function_section_1): Break out from ...; handle profile info.
37 (function_section): ... here.
38 (unlikely_text_section): Remove.
39 (unlikely_text_section_p): Use function_section_1.
40 (assemble_start_function): Do not initialize cold section.
41 (default_section_type_flags): Do not special case cold subsection.
42 (switch_to_section): Likewise.
43 * output.h (get_text_section): Define.
44 * config/i386/winnt.c: Do not special case cold section.
45 * config/darwin-protos.h (darwin_function_section): Declare.
46 * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
47 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
48 * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
49 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
50 (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
51 * config/ia64/ia64.c (ia64_hpux_function_section): New function.
52 * config/darwin.c (machopic_select_section): Use
53 darwin_function_section.
54 (darwin_function_section): New function.
55 * config/darwin.h (HOT_TEXT_SECTION_NAME,
56 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
57 (TARGET_ASM_FUNCTION_SECTION): Define.
58 * system.h (HOT_TEXT_SECTION_NAME,
59 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
61 2010-11-23 Iain Sandoe <iains@gcc.gnu.org>
63 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
64 LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
66 2010-11-23 Jakub Jelinek <jakub@redhat.com>
69 * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
70 following unconditional jumps.
72 2010-11-23 Richard Guenther <rguenther@suse.de>
74 * doc/md.texi (386 constraints): Clarify A constraint documentation.
76 2010-11-23 Basile Starynkevitch <basile@starynkevitch.net>
77 Jeremie Salvucci <jeremie.salvucci@free.fr>
79 * gengtype.c (enum typekind, struct options)
80 (struct nested_ptr_data, struct pair, NUM_PARAM)
81 (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
83 (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
84 Remove static, add zero state_number.
85 (typedefs, structures, param_structs, variables): Remove static.
86 (create_option): Remove.
87 (create_string_option, create_type_option, create_nested_option):
89 (create_nested_ptr_option): Use create_nested_option.
90 (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
91 new create*option functions.
92 (process_gc_options): Adjust for discriminated option.
93 (output_mangled_typename): Handle TYPE_NONE.
94 (walk_type): Test option kinds.
95 (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
96 (write_func_for_structure, write_type, write_local, write_root)
97 (write_roots, note_def_vec, dump_options): Adjust for
101 (typedefs, structures, param_structs, variables, enum typekind):
103 (enum option_kind): New discriminating enumeration.
104 (struct options): Becomes discriminated.
105 (struct nested_ptr_data): Nove from gengtype.c
106 (create_string_option, create_type_option, create_nested_option)
107 (create_nested_ptr_option): New functions
108 (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
109 (UNION_OR_STRUCT_P): Move from gengtype.c
111 * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
112 discriminated options.
114 2010-11-23 Richard Guenther <rguenther@suse.de>
116 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
117 twice. Avoid re-allocating the ops vector all the time.
119 2010-11-23 Richard Guenther <rguenther@suse.de>
121 * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
122 is_gimple_min_invariant, group tree code checks to allow
124 (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
127 2010-11-23 Eric Botcazou <ebotcazou@adacore.com>
129 * config.gcc (sparc*-*-*): Reorder.
131 2010-11-23 Basile Starynkevitch <basile@starynkevitch.net>
133 * gengtype.c (header_dot_h_frul, source_dot_c_frul):
134 Remove ENABLE_CHECKING around DBGPRINTF.
136 2010-11-22 Joseph Myers <joseph@codesourcery.com>
138 * common.opt (exit_after_options, write_symbols, debug_info_level,
139 use_gnu_debug_info_extensions): New Variable entries.
140 (fprofile-dir=): Use Var.
141 * flag-types.h (enum debug_info_level): Rename to enum
143 * flags.h (write_symbols, debug_info_level,
144 use_gnu_debug_info_extensions): Remove declarations.
145 * opts.c (exit_after_options, write_symbols, debug_info_level):
147 (set_struct_debug_option): Make static variables const.
148 (use_gnu_debug_info_extensions): Remove.
149 (set_debug_level, print_filtered_help, print_specific_help,
150 fast_math_flags_set_p): Take gcc_options parameters and use them
151 in place of global variables.
152 (print_filtered_help): Make new_help non-static.
153 (print_specific_help): Update call to print_filtered_help.
154 (common_handle_option): Update calls to print_specific_help. Use
155 gcc_options structure for more settings. Make --help table
156 const. Don't handle OPT_fprofile_dir_ here. Update calls to
158 * toplev.c (profile_data_prefix): Remove.
159 * toplev.h (profile_data_prefix, exit_after_options): Remove
161 (fast_math_flags_set_p): Update prototype.
162 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
163 Update call to fast_math_flags_set_p.
165 2010-11-22 Richard Henderson <rth@redhat.com>
168 * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
169 return the address register extracted.
170 (crx_decompose_address): Update the extracted address register.
172 2010-11-22 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
175 * gcc.c (main): Don't crash when lto-wrapper program is not found.
177 2010-11-22 Joern Rennecke <amylaar@spamcop.net>
180 * config/picochip/picochip.c (picochip_secondary_reload): Make static.
181 * config/picochip/picochip-protos.h: Don't include "target.h" .
182 (picochip_secondary_reload): Don't declare.
185 * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
186 * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
189 2010-11-22 H.J. Lu <hongjiu.lu@intel.com>
192 * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
193 (source_dot_c_frul): Likewise.
195 2010-11-22 Basile Starynkevitch <basile@starynkevitch.net>
197 * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
199 2010-11-22 Paolo Bonzini <bonzini@gnu.org>
202 * Makefile.in (fwprop.o) Add sparseset.h.
203 * fwprop.c: Include sparseset.h
204 (struct find_occurrence_data, find_occurrence_callback,
205 find_occurrence): Remove.
206 (active_defs, active_defs_check, register_active_defs,
207 update_df_init, update_uses): New.
208 (update_df): Rewrite.
209 (try_fwprop_subst, forward_propagate_asm): Add calls to
210 update_df_init and update_df.
211 (fwprop_init): Allocate active_defs and active_defs_check.
212 (fwprop_done): Free them.
213 (fwprop, fwprop_addr): Adjust comments.
214 * df.h (df_uses_create): Declare.
215 * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
216 (df_ref_create): Return result of df_ref_create_structure directly.
217 (df_ref_create_structure): Call df_install_ref_incremental when
218 no collection_rec is passed.
219 (df_ref_record): Do not create multiword hard reg info when no
220 collection_rec is passed.
221 (df_uses_create): New.
223 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
226 * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
229 2010-11-22 Richard Guenther <rguenther@suse.de>
231 * gimple-fold.c (maybe_fold_reference): When canonicalizing
232 MEM_REFs, preserve volatileness.
233 * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
236 2010-11-22 Richard Guenther <rguenther@suse.de>
238 * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
240 2010-11-22 Alexander Monakov <amonakov@ispras.ru>
242 PR rtl-optimization/45652
243 * alias.c (get_reg_base_value): New.
244 * rtl.h (get_reg_base_value): Add prototype.
245 * sel-sched.c (init_regs_for_mode): Use it. Don't use registers with
246 non-null REG_BASE_VALUE for renaming.
248 2010-11-22 Jeremie Salvucci <jeremie.salvucci@free.fr>
249 Basile Starynkevitch <basile@starynkevitch.net>
251 * gengtype.c: Include xregex.h and obstack.h
252 Added comments about role of get_output_file_with_visibility and
253 our regexpr machinery.
254 (frul_actionrout_t, struct file_rule_st): New.
255 (hader_dot_h_frul, source_dot_c_frul): New functions.
256 (NULL_REGEX, NULL_FRULACT): New.
258 (matching_file_name_substitute): New function.
259 (get_output_file_with_visibility): Updated comments and rewritten
260 to use the new files_rules machinery.
262 * Makefile.in (XREGEX_H): Added variable.
263 (build/gengtype.o): Added dependencies for xregex.h and obstack.h
265 2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
267 * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
269 2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
271 * target.def (conditional_register_usage): Define.
272 * reginfo.c (init_reg_sets_1): Call
273 targetm.conditional_register_usage.
274 * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
275 * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
276 for making it a hook.
277 * doc/tm.texi: Regenerate.
278 * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
279 * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
281 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
282 * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
283 * config/arc/arc.c (arc_conditional_register_usage): ...here.
285 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
286 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
287 * config/arm/arm.c (arm_conditional_register_usage): ...here.
289 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
290 * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
291 * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
292 * config/bfin/bfin.c (conditional_register_usage): Move code into...
293 (bfin_conditional_register_usage): ...here. New function.
294 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
295 * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
296 * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
297 * config/cris/cris.c (cris_conditional_register_usage): Make static.
298 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
299 * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
300 * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
301 * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
302 * config/frv/frv.c (frv_conditional_register_usage): Make static.
303 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
304 * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
305 * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
307 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
308 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
309 * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
310 * config/i386/i386.c (ix86_conditional_register_usage): Make static.
311 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
312 * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
313 * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
314 * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
315 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
316 * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
317 * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
319 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
320 * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
321 * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
323 * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
325 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
326 * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
327 * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
328 * config/mep/mep.c (mep_conditional_register_usage): Make static.
329 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
330 * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
331 * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
332 * config/mips/mips.c (mips_conditional_register_usage): Make static.
333 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
334 * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
335 * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
336 * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
337 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
338 * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
339 * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
340 ...here. New function.
341 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
342 * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
343 * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
344 * config/pa/pa.c (pa_conditional_register_usage): ...here.
346 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
347 * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
348 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
350 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
351 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
352 * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
354 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
356 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
357 * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
358 * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
359 * config/rx/rx.c (rx_conditional_register_usage): Make static.
360 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
361 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
362 * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
363 * config/s390/s390.c (s390_conditional_register_usage): Make static.
364 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
365 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
366 * config/score/score.c (score_conditional_register_usage): ...here.
368 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
369 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
370 * config/sh/sh.c (sh_conditional_register_usage): ...here.
372 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
373 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
374 * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
376 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
377 * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
378 * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
379 * config/spu/spu.c (spu_conditional_register_usage): Make static.
380 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
381 * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
382 * config/v850/v850.c (v850_conditional_register_usage): ...here.
384 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
386 2010-11-21 Jan Hubicka <jh@suse.cz>
387 Dominique d'Humieres <dominiq@lps.ens.ft>
390 * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
391 finalize external decls.
393 2010-11-21 Joseph Myers <joseph@codesourcery.com>
395 * system.h (strerror): Poison.
397 2010-11-21 Richard Henderson <rth@redhat.com>
399 * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
402 2010-11-21 Richard Henderson <rth@redhat.com>
404 PR rtl-optimization/46571
405 * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
406 (compute_hash_table_work): Use NONDEBUG_INSN_P.
408 2010-11-21 Paul Koning <ni1d@arrl.net>
410 * config/mips/pdp11.md (negsi2): Fix wrong code.
412 2010-11-21 Paul Koning <ni1d@arrl.net>
414 * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
415 * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
417 2010-11-21 Eric Botcazou <ebotcazou@adacore.com>
419 * config/mips/mips.c (machine_function): Rename load_label_length to
420 load_label_num_insns.
421 (mips_load_label_length): Rename to...
422 (mips_load_label_num_insns): ...this. Adjust to first renaming.
423 (mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
425 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
428 * config/alpha/predicates.md (direct_call_operand): Return false
429 for !TARGET_SMALL_TEXT targets.
431 2010-11-20 Joseph Myers <joseph@codesourcery.com>
433 * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
434 HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
435 (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
436 * doc/tm.texi: Regenerate.
437 * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
438 HANDLE_PRAGMA_WEAK): Poison.
439 * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
440 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
441 * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
442 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
443 * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
444 * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
445 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
446 * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
447 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
448 * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
449 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
450 * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
451 * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
452 * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
453 * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
454 (HANDLE_PRAGMA_WEAK): Don't undefine.
455 * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
456 * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
457 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
458 * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
459 * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
460 (HANDLE_PRAGMA_WEAK): Don't undefine.
461 * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
462 * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
463 (HANDLE_PRAGMA_PACK): Don't undefine.
464 * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
465 * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
466 * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
467 * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
468 * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
469 * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
470 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
471 * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
472 * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
473 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
474 * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
475 * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
476 * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
477 * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
478 * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
479 * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
480 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
482 2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
485 * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
486 * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
487 * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
489 2010-11-20 Jan Hubicka <jh@suse.cz>
491 * cgraph.c (ld_plugin_symbol_resolution_names): New.
492 (dump_cgraph_node): Dump resolution.
493 * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
494 (cgraph_comdat_can_be_unshared_p): Dclare.
495 * lto-streamer-out.c (produce_symtab): Use
496 cgraph_comdat_can_be_unshared_p.
497 * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
498 (cgraph_comdat_can_be_unshared_p): New function based on logic
499 in cgraph_externally_visible_p.
500 (cgraph_externally_visible_p): Use it.
501 (varpool_externally_visible_p): Virtual tables can be unshared.
502 * varpool.c (dump_varpool_node): Dump resolution.
504 2010-11-20 Jan Hubicka <jh@suse.cz>
506 * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
508 2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
511 * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
512 (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
514 (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
515 (install-strip): New target.
516 (STRIPPROG): New variable, exported if STRIP is set.
517 * doc/install.texi (Final install): Minor markup and code style
518 fixes. Document install-strip target.
520 2010-11-20 Paul Koning <ni1d@arrl.net>
522 * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
523 pdp11_regno_reg_class): New functions.
524 * config/pdp11/pdp11.md (define_constants): Add register numbers.
525 * config/pdp11/pdp11.c (pdp11_regno_reg_class,
526 pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
528 * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
529 frame pointer and argument pointer pseudo-registers.
530 (ARG_POINTER_REGNUM): Define.
531 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
533 (FIRST_PARM_OFFSET): Update for argument pointer.
534 (INITIAL_FRAME_POINTER_OFFSET): Delete.
535 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
536 (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
537 frame pointer and argument pointer.
539 2010-11-20 Jakub Jelinek <jakub@redhat.com>
542 * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
543 when looking for immediate uses.
545 PR tree-optimization/45830
546 * stmt.c (expand_switch_using_bit_tests_p): New function.
547 (expand_case): Use it.
548 * tree.h (expand_switch_using_bit_tests_p): New prototype.
549 * tree-switch-conversion.c (struct switch_conv_info): Add
550 bit_test_uniq, bit_test_count and bit_test_bb fields.
551 (check_range): Fix a comment.
552 (check_process_case): Compute bit_test_uniq and bit_test_count.
553 (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
555 (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
556 (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
557 (array_value_type): New function.
558 (build_one_array): Use it, if it returned different type,
559 fold_convert all constructor fields and convert back to the
560 wider type in the generated code.
561 (process_switch): Initialize bit_test_uniq, bit_test_count and
562 bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p
565 2010-11-19 Michael Matz <matz@suse.de>
567 PR tree-optimization/46077
568 * tree-chrec.c (eq_evolutions_p): Accept some expressions.
570 2010-11-19 Anatoly Sokolov <aesok@post.ru>
572 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
573 * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
575 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
577 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
579 * mode-switching.c (optimize_mode_switching): Use
580 FOR_BB_INSNS instead of open-coded loop.
581 * cfgrtl.c (redirect_branch_edge): Ditto.
583 2010-11-19 Joern Rennecke <amylaar@spamcop.net>
586 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
587 to accomodate 32 bit HOST_WIDE_INT.
588 (m68hc11_emit_logical): Remove unused variable insn.
589 (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
590 this_insn_uses_iy before use.
593 * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
595 2010-11-19 Joseph Myers <joseph@codesourcery.com>
598 * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
599 * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
601 2010-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
603 * doc/extend.texi (Function attributes): Document PowerPC target
604 attributes that are supported.
605 (Pragmas): Document that PowerPC now supports target pragmas.
607 * doc/options.texi (TargetVariable): Document TargetVariable,
608 HeaderInclude, and SourceInclude.
610 * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
611 mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
614 * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
615 SourceInclude directives. Fix a cut+paste error with target save
616 enum variables. Sort enums in the structures after ints and
618 * opth-gen.awk: Ditto.
620 * configure.ac: Add support for HeaderInclude and SourceInclude option
621 directives to add the appropriate files to the dependency lists.
622 * configure: Regenerate.
623 * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
624 (OPTIONS_C_EXTRA): New variable for SourceInclude.
625 (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
626 (options.o): Add $(OPTIONS_C_EXTRA) dependency.
627 (gcc-options.o): Ditto.
628 * opt-include.awk: New awk script to handle HeaderInclude and
631 * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
632 gets saved in the target options.
633 * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
634 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
635 (-mprototype): Ditto.
638 (-msecure-plt): Ditto.
640 * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
641 (-mpowerpc-gfxopt): Ditto.
656 (-mno-update): Ditto.
657 (-mavoid-indexed-addresses): Ditto.
658 (-mtls-markers): Ditto.
659 (-msched-epilog): Ditto.
660 (-msched-prolog): Ditto.
661 (-maix-struct-return): Ditto.
662 (-msvr4-struct-return): Ditto.
663 (-mxl-compat): Ditto.
664 (-mrecip-precision): Ditto.
665 (-mfp-in-toc): Ditto.
666 (-msum-in-toc): Ditto.
668 (-mblock-move-inline-limit=): Ditto.
672 (-mgen-cell-microcode): Ditto.
673 (-mwarn-cell-microcode): Ditto.
674 (-mwarn-altivec-long): Ditto.
675 (-mprioritize-restricted-insns=): Ditto.
676 (-msingle-float): Ditto.
677 (-mdouble-float): Ditto.
678 (-msimple-fpu): Ditto.
679 (-mxilinx-fpu): Ditto.
680 * config/rs6000/aix64.opt (-mpe): Ditto.
682 * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
683 (rs6000_cpu): Move variable to be a target variable. Rename
684 cmodel to rs6000_current_cmodel because of macro conflict. Merge
685 -mdebug=<xxx> variables into a single int.
686 (rs6000_always_hint): Ditto.
687 (rs6000_sched_groups): Ditto.
688 (rs6000_align_branch_targets): Ditto.
689 (rs6000_sched_costly_dep): Ditto.
690 (rs6000_sched_insert_nops): Ditto.
691 (rs6000_long_double_type_size): Ditto.
692 (rs6000_ieeequad): Ditto.
693 (rs6000_altivec_abi): Ditto.
695 (rs6000_spe_abi): Ditto.
696 (rs6000_float_gprs): Ditto.
697 (rs6000_darwin64_abi): Ditto.
698 (can_override_loop_align): Ditto.
699 (rs6000_sdata): Ditto.
700 (rs6000_tls_size): Ditto.
701 (rs6000_current_abi): Ditto.
702 (rs6000_traceback): Ditto.
703 (rs6000_alignment_flags): Ditto.
704 (rs6000_current_cmodel): Ditto.
705 (rs6000_recip_control): Ditto.
706 (rs6000_cpu_index): Ditto.
707 (rs6000_tune_index): Ditto.
708 (rs6000_debug): Ditto.
709 (rs6000_target_flags_explict): Ditto.
711 * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
714 * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
715 cmodel. Change all uses.
717 * config/rs6000/rs6000.c (rs6000_always_hint): Move to
718 rs6000.opt. Combine -mdebug=<xxx> variables into a single int.
719 Rename cmodel to rs6000_current_cmodel.
720 (rs6000_sched_groups): Ditto.
721 (rs6000_align_branch_targets): Ditto.
722 (rs6000_sched_costly_dep): Ditto.
723 (rs6000_sched_insert_nops): Ditto.
724 (rs6000_long_double_type_size): Ditto.
725 (rs6000_ieeequad): Ditto.
726 (rs6000_altivec_abi): Ditto.
728 (rs6000_spe_abi): Ditto.
729 (rs6000_float_gprs): Ditto.
730 (rs6000_darwin64_abi): Ditto.
731 (can_override_loop_align): Ditto.
732 (rs6000_sdata): Ditto.
733 (rs6000_tls_size): Ditto.
734 (rs6000_current_abi): Ditto.
735 (rs6000_traceback): Ditto.
736 (rs6000_alignment_flags): Ditto.
737 (rs6000_current_cmodel): Ditto.
738 (rs6000_recip_control): Ditto.
739 (rs6000_cpu_index): Ditto.
740 (rs6000_tune_index): Ditto.
741 (rs6000_debug): Ditto.
742 (rs6000_target_flags_explict): Ditto.
743 (rs6000_sched_insert_nops_str): Make static.
744 (rs6000_sched_costly_dep_str): Ditto.
745 (rs6000_recip_name): Ditto.
746 (rs6000_abi_name): Ditto.
747 (rs6000_sdata_name): Ditto.
748 (enum rs6000_traceback_name): Move to rs6000-opts.h.
749 (rs6000_parse_tls_size_option): Delete.
750 (rs6000_valid_attribute_p): New function for target attributes and
752 (rs6000_function_specific_save): Ditto.
753 (rs6000_function_specific_restore): Ditto.
754 (rs6000_function_specific_print): Ditto.
755 (rs6000_can_inline_p): Ditto.
756 (rs6000_set_current_function): Ditto.
757 (rs6000_inner_target_options): Ditto.
758 (rs6000_debug_target_options): Ditto.
759 (rs6000_pragma_target_parse): Ditto.
760 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
761 attributes and pragmas.
762 (TARGET_OPTION_SAVE): Ditto.
763 (TARGET_OPTION_RESTORE): Ditto.
764 (TARGET_OPTION_PRINT): Ditto.
765 (TARGET_CAN_INLINE_P): Ditto.
766 (TARGET_SET_CURRENT_FUNCTION): Ditto.
767 (POWER_MASKS): Move to file level scope from the
768 rs6000_option_override_internal function.
769 (POWERPC_MASKS): Ditto.
770 (ISA_*_MASKS): Ditto.
771 (struct rs6000_ptt): Ditto.
772 (processor_target_table): Ditto.
773 (rs6000_cpu_name_lookup): Map cpu name to an index in
774 processor_target_table.
775 (rs6000_debug_reg_global): Print more information on processor
776 options for -mdebug=reg.
777 (rs6000_init_hard_regno_mode_ok): Add support for target
778 attributes and pragmas. Merge all -mdebug=<xxx> fields into one.
779 Allow -mdebug=val1,val2. Rename cmodel variable.
780 (rs6000_option_override_internal): Ditto.
781 (rs6000_option_override): Ditto.
782 (rs6000_handle_option): Ditto.
783 (rs6000_conditional_register_usage): Add debug trace message.
784 (struct rs6000_opt_mask): New for target attribute/pragma support.
785 (rs6000_opt_masks): Ditto.
786 (struct rs6000_opt_var): Ditto.
787 (rs6000_opt_vars): Ditto.
788 (rs6000_previous_function): Ditto.
790 * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
791 wasn't already included.
792 (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
793 (enum processor_type): Ditto.
795 (enum fpu_type_t): Ditto.
797 (enum rs6000_dependence_cost): Ditto.
798 (enum rs6000_nop_insertion): Ditto.
799 (enum group_termination): Ditto.
800 (rs6000_long_double_type_size): Ditto.
801 (rs6000_ieeequad): Ditto.
802 (rs6000_altivec_abi): Ditto.
803 (rs6000_spe_abi): Ditto.
805 (rs6000_float_gprs): Ditto.
806 (rs6000_alignment_flags): Ditto.
807 (rs6000_sched_insert_nops): Ditto.
808 (enum rs6000_vector): Ditto.
809 (enum rs6000_abi): Ditto.
810 (rs6000_current_opt): Ditto.
811 (rs6000_debug_*): Delete.
812 (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
813 (TARGET_DEBUG*): Ditto.
815 * config/rs6000/rs6000-opts.h: New header file to define the enums
816 that are used in target variables that are now defined in rs6000.opt.
818 * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
820 (rs6000_sdata): Ditto.
821 (rs6000_abi_name): Delete.
822 (rs6000_sdata_name): Ditto.
823 (rs6000_tls_size_string): Ditto.
825 2010-11-19 Joseph Myers <joseph@codesourcery.com>
827 * common.opt (debug_struct_ordinary, debug_struct_generic): New
829 * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
830 should_emit_struct_debug): Move from opts.c.
831 * flag-types.h (enum debug_struct_file): Move from opts.c.
832 * flags.h (should_emit_struct_debug): Remove.
833 (base_of_path): Declare.
834 (set_struct_debug_option): Add gcc_options parameter.
835 * optc-gen.awk, opth-gen.awk: Handle array variables.
836 * opts.c (enum debug_struct_file, debug_struct_ordinary,
837 debug_struct_generic): Remove.
838 (set_struct_debug_option): Add gcc_options parameter.
839 (base_of_path): Remove static.
840 (main_input_basename, main_input_baselength, matches_main_base,
841 dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
843 * toplev.c (main_input_basename, main_input_baselength): Define
845 * toplev.h (main_input_basename, main_input_baselength): Declare
848 2010-11-19 Joseph Myers <joseph@codesourcery.com>
850 * common.opt (flag_instrument_functions_exclude_functions,
851 flag_instrument_functions_exclude_files): New Variable definitions.
852 * flags.h (flag_instrument_functions_exclude_p): Don't declare.
853 * gimplify.c (char_p): Declare type and vectors.
854 (flag_instrument_functions_exclude_p): Moved from opts.c. Make static.
855 * opts.c (flag_instrument_functions_exclude_functions,
856 flag_instrument_functions_exclude_files): Remove.
857 (add_comma_separated_to_vector): Take void **.
858 (flag_instrument_functions_exclude_p): Move to gimplify.c.
859 (common_handle_option): Use options structure for
860 -finstrument-functions-exclude- options.
862 2010-11-19 Joseph Myers <joseph@codesourcery.com>
864 * doc/options.texi (Var): Document effects of Defer.
866 * opt-functions.awk (var_type, var_set): Handle deferred options.
867 * opts-common.c (set_option): Handle CLVC_DEFER.
868 * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
869 fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
870 fstack-limit-symbol=): Mark as deferred.
871 * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
873 (print_filtered_help): Don't report state of CLVC_DEFER options.
874 (common_handle_option): Move code for OPT_fcall_used_,
875 OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
876 OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
877 OPT_fstack_limit_symbol_ to opts-global.c.
878 (option_enabled, get_option_state): Handle CLVC_DEFER.
879 * opts.h: Include vec.h.
880 (enum cl_var_type): Add CLVC_DEFER.
881 (cl_deferred_option): Define type and vectors.
882 (handle_common_deferred_options): Declare.
883 * opts-global.c: New.
884 * toplev.c (toplev_main): Call handle_common_deferred_options
885 * Makefile.in (OPTS_H): Include $(VEC_H).
886 (OBJS-common): Include opts-global.o.
887 (opts.o): Update dependencies.
888 (opts-global.o): Add dependencies.
890 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
892 * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
893 to objc_declare_protocols.
895 2010-11-19 Richard Guenther <rguenther@suse.de>
898 * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
899 IDENTIFIERs do not stream TREE_TYPE.
900 * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
902 2010-11-19 Christian Borntraeger <borntraeger@de.ibm.com>
904 * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
906 2010-11-19 Jakub Jelinek <jakub@redhat.com>
909 * dwarf2out.c (const_ok_for_output_1): Don't complain about
910 non-delegitimized TLS UNSPECs.
912 2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu>
913 Ian Lance Taylor <iant@google.com>
915 * config/darwin-c.c (darwin_additional_format_types): Export.
917 2010-11-18 Paul Koning <ni1d@arrl.net>
919 * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
922 2010-11-18 Paul Koning <ni1d@arrl.net>
924 * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
925 * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
926 * config/pdp11/pdp11.opt (-mabshi): Delete.
928 2010-11-19 Mingjie Xing <mingjie.xing@gmail.com>
930 * resource.h (struct resources): Fix typo in the comment.
932 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
935 * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
937 2010-11-18 Richard Henderson <rth@redhat.com>
940 * function.c (maybe_copy_prologue_epilogue_insn): Rename from
941 maybe_copy_epilogue_insn; handle prologue insns as well.
942 * rtl.h, cfglayout.c: Update for rename.
943 * recog.c (peep2_attempt): Copy prologue/epilogue data for
944 RTX_FRAME_RELATED_P insns.
946 2010-11-18 Jakub Jelinek <jakub@redhat.com>
949 * builtins.c (fold_builtin_printf): Don't copy and modify string
950 before build_string_literal, instead modify what
951 build_string_literal returned.
953 2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
956 * c-typeck.c (build_unary_op): Call build_real_imag_expr for
957 REALPART_EXPR and IMAGPART_EXPR.
959 2010-11-18 Richard Guenther <rguenther@suse.de>
961 PR tree-optimization/46172
962 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
964 (slpeel_tree_peel_loop_to_edge): Call it.
966 2010-11-18 Jeff Law <law@redhat.com>
968 PR middle-end-optimization/46297
969 * postreload.c (reload_combine_note_store): Deal with embedded
970 side effects in MEM expressions.
972 2010-11-18 Richard Guenther <rguenther@suse.de>
975 * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
976 when checking is not enabled.
978 2010-11-18 Richard Guenther <rguenther@suse.de>
981 * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
983 (gimple_register_canonical_type): Also cache the canoncial type
984 for non type leaders.
986 2010-11-18 Richard Guenther <rguenther@suse.de>
988 * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
990 2010-11-18 Alexander Monakov <amonakov@ispras.ru>
993 * sel-sched-ir.c (init_expr): Use the correct type for
995 * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
997 2010-11-17 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
999 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
1000 as well as -mrelocatable at the same time.
1002 2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com>
1005 * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
1006 Call the clz builtin.
1008 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
1009 Steve Ellcey <sje@cup.hp.com>
1012 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
1013 if section attribute used.
1015 2010-11-17 Jan Hubicka <jh@suse.cz>
1017 * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1018 expand errno setting variant when optimizing for size.
1020 2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
1022 * postreload.c (reload_combine): Call control_flow_insn_p only once.
1023 Reverse backward loop. Fix formatting issues.
1025 2010-11-17 Paolo Bonzini <bonzini@gnu.org>
1027 * c-parser.c (c_token_is_qualifier,
1028 c_parser_next_token_is_qualifier): New.
1029 (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1030 Improve error message on specs->tagdef_seen_p.
1031 (c_parser_struct_or_union_specifier): Improve error recovery.
1032 (c_parser_declspecs): Move exit condition on C_ID_ID early.
1033 Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1034 using c_parser_next_token_is_qualifier; extend it to cover
1035 a ctsk_tagdef typespec and !typespec_ok in general.
1037 2010-11-17 Richard Guenther <rguenther@suse.de>
1039 * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1040 (gimple_mod_pow2_value_transform): Likewise.
1041 (gimple_mod_subtract_transform): Likewise.
1043 2010-11-17 Richard Guenther <rguenther@suse.de>
1046 * gimple.c (gimple_register_canonical_type): Make sure to only
1047 make type leaders canonical types.
1049 2010-11-17 Michael Matz <matz@suse.de>
1051 * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1052 TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1053 TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1054 TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1055 * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1056 (pass_build_ssa): ... but here.
1057 * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1058 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1059 * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1060 * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1061 * predict.c (rebuild_frequencies): Ditto.
1062 * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1063 * emit-rtl.c (verify_rtl_sharing): Ditto.
1064 * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1065 * tree-ssa-live.c (remove_unused_locals): Ditto.
1066 * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1067 * tree-ssa.c (pass_early_warn_uninitialized,
1068 execute_update_addresses_taken, pass_update_address_taken): Ditto.
1069 * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1070 pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1071 * passes.c (pass_postreload, execute_todo): Ditto.
1072 * tree-ssanames.c (pass_release_ssa_names): Ditto.
1074 2010-11-17 Joseph Myers <joseph@codesourcery.com>
1076 * doc/invoke.texi (-dy): Remove.
1077 * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1078 (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1079 * langhooks.c (lhd_do_nothing_i): Remove.
1080 * langhooks.h (lang_hooks.parse_file): Take no arguments.
1081 * toplev.c (set_yydebug): Remove.
1082 (compile_file): Update call to lang_hooks.parse_file.
1083 (decode_d_option): Don't handle -dy.
1085 2010-11-17 Jakub Jelinek <jakub@redhat.com>
1087 PR rtl-optimization/46440
1088 * combine.c (update_cfg_for_uncondjump): When changing
1089 an indirect jump into unconditional jump, remove BARRIERs
1092 2010-11-17 Joseph Myers <joseph@codesourcery.com>
1094 * opts.c (target_handle_option): Do not assert that loc ==
1097 2010-11-17 Jakub Jelinek <jakub@redhat.com>
1098 Richard Guenther <rguenther@suse.de>
1101 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1102 call_may_clobber_ref_p_1): Return true for __sync_* and some
1103 OpenMP builtins that act as threading barriers.
1105 2010-11-17 Richard Guenther <rguenther@suse.de>
1107 PR tree-optimization/46498
1108 * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1110 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1112 * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1113 (xtensa_function_arg_boundary): ...this.
1114 * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1115 thinko in declaration.
1116 (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1117 number of parameters to picochip_function_arg_boundary.
1118 (picochip_arg_advance): Likewise.
1120 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1123 * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1124 under check for type.
1126 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1128 * ifcvt.c (dead_or_predicable): Fix typo.
1130 2010-11-16 Richard Henderson <rth@redhat.com>
1132 * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1133 * config/s390/s390.opt (mfused-madd): Remove.
1134 * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1135 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1136 * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1137 (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1139 2010-11-16 Richard Henderson <rth@redhat.com>
1141 * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1142 * config/rs6000/rs6000.opt (mfused-madd): Remove.
1143 * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1144 (*altivec_vmaddfp_1): Remove.
1145 (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1146 (altivec_mulv4sf3): Expand to FMA directly.
1147 (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1148 (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1149 * config/rs6000/paired.md (paired_madds0): Use FMA.
1150 (paired_madds1): Likewise.
1151 (*paired_madd): Rename from paired_madd; use FMA.
1152 (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1153 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1154 consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1155 (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1156 (rs6000_emit_madd): Use fma_optab.
1157 (rs6000_emit_msub): Use fms_optab.
1158 (rs6000_emit_nmsub): Expand the FMA pattern directly.
1159 * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1160 (*fmasf4_fpr): Rename from fmasf4_fpr.
1161 (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1162 (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1163 (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1164 (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1165 (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1166 (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1167 (*fmadf4_fpr): Rename from fmadf4_fpr.
1168 (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1169 (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1170 (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1171 (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1172 (fmasf4, fmadf4): Macroize into...
1173 (fma<FMA_F>4): ... here.
1174 (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1175 (nfma<FMA_F>4, nfms<FMA_F>4): New.
1176 * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1178 * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1179 (*vsx_fmadd<mode>4_1): Remove.
1180 (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1181 (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1182 (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1183 (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1184 (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1185 (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1186 (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1188 2010-11-16 Richard Henderson <rth@redhat.com>
1190 * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1191 (fmasf4, fnmadf4, fnmasf4): Likewise.
1192 (unnamed plus+mult insns and splitters): Delete.
1194 2010-11-16 Richard Henderson <rth@redhat.com>
1196 * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1197 (fnma<VSF>4): Rename from fnms_<VSF>.
1198 (fms<VSF>4): Rename from fms_<VSF>.
1199 (fma<VDF>4): Rename from fma_<VDF>.
1200 (fms<VDF>4): Rename from fms_<VDF>.
1201 (nfma<VDF>4): Rename from fnma_<VDF>.
1202 (nfms<VDF>4): Rename from fnms_<VDF>.
1203 (fnma<VDF>4, fnms<VDF>4): New expanders.
1204 (floatunsdisf2): Update for the renames.
1205 (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1206 * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1208 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1210 PR rtl-optimization/46490
1211 * combine.c (expand_compound_operation): Fix thinko.
1213 2010-11-16 Richard Henderson <rth@redhat.com>
1216 * recog.c (peep2_attempt): Convert frame-related info when possible.
1217 (peep2_fill_buffer): Allow frame-related insns into the buffer.
1218 (peephole2_optimize): Allow peep2_attempt to fail.
1220 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1222 PR rtl-optimization/46315
1223 * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1224 * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1226 * dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
1227 (remove_reg_equal_equiv_notes_for_defs): ...this.
1228 (delete_unmarked_insns): Adjust to above renaming.
1229 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1230 referring to registers set in the insns being moved, if any.
1232 * df-core.c (df_ref_dump): New function extracted from...
1233 (df_refs_chain_dump): ...here. Call it.
1234 (df_regs_chain_dump): Likewise.
1235 * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1236 * df-scan.c (df_scan_start_dump): Likewise. Fix long line.
1238 2010-11-16 Andreas Schwab <schwab@linux-m68k.org>
1240 PR rtl-optimization/46395
1241 * postreload.c (reload_combine): Invalidate register use
1242 information on all control flow insns.
1244 * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1245 LABEL_REF in UNSPEC operand.
1247 2010-11-16 Jan Hubicka <jh@suse.cz>
1249 * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1250 when !flag_toplevel_reorder do not remove unless variable is
1251 COMDAT or ARTIFICIAL.
1252 * ipa.c (varpool_can_remove_if_no_refs): ... here.
1253 (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1254 * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1255 * varpool.c (decide_is_variable_needed): Do not handle visibility
1257 (varpool_finalize_decl): Likewise.
1258 (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1259 update outdated comment on DECL_RTL_SET_P check.
1261 2010-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1263 * config/sol2.h (NM_FLAGS): Define.
1264 * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1265 * doc/tm.texi: Update.
1267 2010-11-16 Nick Clifton <nickc@redhat.com>
1269 * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1270 (msubsf4): Rename to fmssf4, and use fma.
1271 (nmaddsf4): Rename to fnmasf4 and use fma.
1272 (nmsubsf4): Rename to fnmssf4 and use fma.
1274 2010-11-16 Joern Rennecke <amylaar@spamcop.net>
1277 * config/score/score3.c (score3_return_in_memory): Constify arguments.
1278 (score3_in_small_data_p, score3_function_value): Likewise.
1279 (score3_trampoline_init): Use LCT_NORMAL.
1280 (score3_print_operand): Initialize code as UNKNOWN.
1281 * config/score/predicates.md (score_load_multiple_operation):
1282 Remove unused variable.
1283 (score_store_multiple_operation): Likewise.
1284 * config/score/score7.c (score7_return_in_memory): Constify arguments.
1285 (score7_in_small_data_p, score7_function_value): Likewise.
1286 (score7_trampoline_init): Use LCT_NORMAL.
1287 (score7_print_operand): Initialize code as UNKNOWN.
1288 * config/score/score3.h (score3_return_in_memory): Update prototype.
1289 (score3_in_small_data_p, score3_function_value): Likewise.
1290 * config/score/score-protos.h (score_function_value): Likewise.
1291 * config/score/score7.h (score7_return_in_memory): Update prototype.
1292 (score7_in_small_data_p, score7_function_value): Likewise.
1293 * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1294 (score_return_in_memory, score_pass_by_reference): Constify arguments.
1295 (score_output_mi_thunk, score_function_prologue): Don't return a value.
1296 (score_function_epilogue, score_in_small_data_p): Likewise.
1297 (score_option_override, score_asm_trampoline_template): Likewise.
1298 (score_trampoline_init, score_print_operand): Likewise.
1299 (score_print_operand_address, score_prologue): Likewise.
1300 (score_epilogue, score_call, score_call_value): Likewise.
1301 (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1302 (score_function_arg_advance): Likewise. Make static.
1303 (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1304 (score_function_arg, score_legitimate_address_p): Make static.
1305 (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1306 * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1307 * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1308 Allow (W) == HOST_BITS_PER_WIDE_INT.
1311 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1312 * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1314 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1316 * config/arc/arc.c: Delete pasto.
1317 * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1319 2010-11-16 Anatoly Sokolov <aesok@post.ru>
1321 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1322 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1323 * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1324 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1325 (mn10300_preferred_reload_class,
1326 mn10300_preferred_output_reload_class): New functions.
1328 2010-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1330 * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1331 (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1332 (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1333 (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1335 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1337 * builtins.c (std_gimplify_va_arg_expr): Use
1338 targetm.calls.function_arg_boundary.
1339 * function.c (assign_parms, locate_and_pad_parm): Likewise.
1340 * calls.c (struct arg_data): Update comment.
1341 * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1342 * target.def (function_arg_boundary): Define.
1343 * targhooks.h (default_function_arg_boundary): Declare.
1344 * targhooks.c (default_function_arg_boundary): Define.
1345 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1346 TARGET_FUNCTION_ARG_BOUNDARY.
1347 (FUNCTION_ARG_BOUNDARY): Delete.
1348 (TARGET_FUNCTION_ARG_BOUNDARY): New.
1349 * doc/tm.texi: Regenerate.
1350 * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1351 * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1352 * config/arc/arc.c (arc_function_arg_boundary): Define.
1353 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1354 * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1355 * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1356 * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1357 (arm_function_arg_boundary): Define.
1358 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1359 * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1360 * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1361 * config/frv/frv.c (frv_function_arg_boundary): Make static.
1362 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1363 * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1364 * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1365 * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1366 (ix86_compat_function_arg_boundary): Take and return unsigned int.
1367 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1368 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1369 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1370 * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1371 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1372 * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1373 * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1374 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1375 * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1376 * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1377 * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1378 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1379 * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1380 * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1381 * config/mips/mips.c (mips_function_arg_boundary): Make static.
1382 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1383 * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1384 * config/pa/pa.c (pa_function_arg_boundary): Define.
1385 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1386 * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1387 * config/picochip/picochip-protos.h
1388 (picochip_get_function_arg_boundary): Delete.
1389 * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1391 (picochip_function_arg_boundary): ...this. Make static.
1392 (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1393 (picochip_arg_advance): Adjust.
1394 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1395 * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1396 * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1397 * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1398 (rs6000_function_arg_boundary): ...this. Make static.
1399 (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1400 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1401 * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1402 * config/rx/rx.c (rx_function_arg_boundary): Define.
1403 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1404 * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1405 * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1406 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1407 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1408 * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1409 * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1410 (xtensa_function_arg_boundary): ...this. Make static.
1411 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1413 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1415 * expr.c (alignment_for_piecewise_move): New function.
1416 (widest_int_mode_for_size): New function.
1417 (move_by_pieces, move_by_pieces_ninsns): Call them.
1418 (can_store_by_pieces, store_by_pieces_1): Likewise.
1420 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1422 * gcc.c (char_p): Define. Define a VEC of it.
1423 (n_linker_options, n_assembler_options, n_preprocessor_options):
1425 (linker_options, assembler_options, preprocessor_options): Convert
1427 (add_preprocessor_option): Adjust.
1428 (add_assembler_option): Adjust.
1429 (add_linker_option): Adjust.
1430 (do_specs_vec): New function.
1431 (do_spec_1): Call it. Adjust for new types.
1433 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1435 * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1436 (sreal.o, statistics.o, stringpool.o): Likewise.
1438 2010-11-16 Richard Guenther <rguenther@suse.de>
1440 PR tree-optimization/44545
1441 * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1442 statements are not reassociatable.
1443 (reassociate_bb): Likewise.
1445 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1447 * bitmap.c: Delete unnecessary includes.
1448 * ebitmap.c: Likewise.
1449 * et-forest.c: Likewise.
1450 * sreal.c: Likewise.
1451 * statistics.c: Likewise.
1452 * stringpool.c: Likewise.
1453 * double-int.c: Add comment for inclusion of tm.h.
1455 2010-11-16 Richard Guenther <rguenther@suse.de>
1457 * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1458 (visit_nary_op): ... this.
1459 (visit_binary_op): Remove.
1460 (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1462 2010-11-16 Richard Guenther <rguenther@suse.de>
1465 * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1467 2010-11-16 Nick Clifton <nickc@redhat.com>
1469 * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1472 2010-11-15 Richard Henderson <rth@redhat.com>
1474 * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1475 WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1478 2010-11-15 Richard Henderson <rth@redhat.com>
1480 * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1481 from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively. Use
1484 2010-11-15 Richard Henderson <rth@redhat.com>
1486 * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1487 and *mulsubsf4 respectively. Use fma rtx_code.
1489 2010-11-15 Joseph Myers <joseph@codesourcery.com>
1491 * gcc.c: Include "vec.h".
1492 (argbuf): Make into a VEC.
1493 (argbuf_length, argbuf_index): Remove.
1494 (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1495 do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1496 compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1497 * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1498 (gcc.o): Depend on $(VEC_H).
1500 2010-11-15 Richard Henderson <rth@redhat.com>
1502 * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1503 via FMA if unsafe math.
1504 (insert_var_expansion_initialization): Handle FMA.
1505 (combine_var_copies_in_loop_exit): Likewise.
1507 2010-11-15 Richard Henderson <rth@redhat.com>
1509 * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1510 * config/ia64/ia64.opt: Remove mfused-madd.
1511 * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1512 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1513 * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1514 * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1515 * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1516 * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1517 (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1518 (fmav2sf4): Rename from fpma; use FMA code.
1519 (fmsv2sf4): Rename from fpms; use FMA code.
1520 (fnmav2sf4): Rename from *fpnma; use FMA code.
1521 * config/ia64/ia64.md (MODE_SDF): New iterator.
1522 (suffix): New mode attribute.
1523 (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1524 (fmssf4): Rename from *fmssf4.
1525 (fnmasf4): Rename from *nfmasf4.
1526 (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1527 (*nmadddf4, *nmadddf4_truncsf): Remove.
1528 (fmsdf4): Rename from *fmsdf4.
1529 (fnmadf4): Rename from *nfmadf4.
1530 (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1531 (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1532 (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1533 (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1534 (fmsxf4): Rename from *fmsxf4.
1535 (fnmaxf4): Rename from *nfmaxf4.
1536 (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1537 (*fnmaxf_trunc_<MODE_SDF>): New.
1539 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1541 PR tree-optimization/46461
1542 * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1545 2010-11-15 Ian Lance Taylor <iant@google.com>
1547 * godump.c: New file.
1548 * common.opt (fdump-go-spec=): New option.
1549 * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1550 (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1551 (TYPE_SYMTAB_IS_DIE): Define.
1552 (struct tree_type): Change GTY for symtab field to use
1553 TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1554 to pick the union field.
1555 * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1556 (dump_go_spec_init): Declare.
1557 * toplev.c (process_options): Handle flag_dump_go_spec.
1558 * debug.c: Include "tree.h".
1559 (do_nothing_debug_hooks): Set tree_type_symtab_field.
1560 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1561 * dbxout.c (dbx_debug_hooks): Likewise.
1562 (xcoff_debug_hooks): Likewise.
1563 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1564 * sdbout.c (sdb_debug_hooks): Likewise. Do not define if
1565 SDB_DEBUGGING_INFO is not defined.
1566 * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1567 (Overall Options): Document -fdump-go-spec.
1568 * Makefile.in (OBJS-common): Add godump.o.
1569 (debug.o): Add dependency on $(TREE_H).
1570 (godump.o): New target.
1571 (GTFILES): Add $(srcdir)/godump.c.
1573 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1576 * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1577 marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1578 style < 0, add REG_FRAME_RELATED_EXPR.
1581 * rtl.h (vt_equate_reg_base_value): New prototype.
1582 * alias.c (vt_equate_reg_base_value): New function.
1583 * var-tracking.c (vt_init_cfa_base): Use it.
1585 2010-11-15 Jan Hubicka <jh@suse.cz>
1586 Diego Novillo <dnovillo@google.com>
1589 * doc/lto.texi: Add.
1590 * doc/gccint.texi: Add reference to lto.texi.
1591 * doc/invoke.texi: Update user documentation for LTO.
1592 Move internal flags to lto.texi
1594 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1596 * c-typeck.c (build_unary_op): Use
1597 objc_build_incr_expr_for_property_ref to build the pre/post
1598 increment/decrement of an Objective-C property ref, and skip the
1599 lvalue_or_else check in that case.
1601 2010-11-15 Martin Jambor <mjambor@suse.cz>
1603 PR tree-optimization/46349
1604 * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1605 (contains_vce_or_bfcref_p): Likewise.
1606 (sra_modify_assign): Use them.
1608 2010-11-15 Richard Guenther <rguenther@suse.de>
1610 PR tree-optimization/46467
1611 * tree-ssa-structalias.c (do_structure_copy): Properly treat
1612 variables without subvars.
1614 2010-11-15 Hariharan Sandanagobalane <hariharan@picochip.com>
1616 * config/picochip/picochip.c (file header): Picochip name change.
1617 * config/picochip/picochip.md (file header): Likewise.
1618 * config/picochip/predicates.md (file header): Likewise.
1619 * config/picochip/dfa_space.md (file header): Likewise.
1620 * config/picochip/dfa_speed.md (file header): Likewise.
1621 * config/picochip/picochip.h(file header): Likewise.
1622 * config/picochip/constraints.md (file header): Likewise.
1623 * config/picochip/picochip-protos.h (file header): Likewise.
1624 * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1625 * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1626 * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1627 * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1628 * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1629 * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1630 * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1631 * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1632 * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1633 * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1634 * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1635 * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1636 * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1637 * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1639 2010-11-15 Richard Guenther <rguenther@suse.de>
1642 * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1644 2010-11-15 Nick Clifton <nickc@redhat.com>
1646 * config/stormy16/stormy16.c (direct_return): Do not generate a
1647 direct return for interrupt handlers.
1649 2010-11-15 Joern Rennecke <amylaar@spamcop.net>
1651 * Makefile.in (tm.texi): Replace with rule for:
1652 ($(srcdir)/doc/tm.texi).
1653 (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1654 $(srcdir)/doc/tm.texi .
1655 (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1659 * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1662 * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1663 (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1666 * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1668 2010-11-15 Richard Guenther <rguenther@suse.de>
1671 * lto-opts.c (lto_write_options): Write -fexceptions even if
1672 not set by the user.
1674 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1677 * c-decl.c (declspecs_add_type): Make variables with error types
1679 * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1680 do not start a declaration before an Objective-C foreach.
1681 (c_parser_declaration_or_fndef): Improve recovery after unknown
1683 (c_parser_for_statement): Hoist entrance of "foreach context"
1684 before ifs, add corresponding reset where it was missing. Do
1685 not set objc_could_be_foreach_context for C.
1687 2010-11-14 Eric Botcazou <ebotcazou@adacore.com>
1689 PR tree-optimization/45722
1690 * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1691 this is a reference to a component.
1692 * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1693 (ipa_note_param_call): Adjust comment.
1695 2010-11-14 Richard Sandiford <rdsandiford@googlemail.com>
1697 * config/mips/mips.c (machine_function): Remove
1698 initialized_mips16_gp_pseudo_p.
1699 (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1700 detect whether a pseudo has already been created. Unconditionally
1701 create a new one if not.
1702 (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1703 expanding to rtl. Create a new pseudo otherwise, if allowed.
1705 2010-11-13 Richard Earnshaw <rearnsha@arm.com>
1708 * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1709 * tm.texi: Regenerated.
1710 * output.h (decode_reg_name_and_count): Declare.
1711 * varasm.c (decode_reg_name_and_count): New function.
1712 (decode_reg_name): Reimplement using decode_reg_name_and_count.
1713 * reginfo.c (fix_register): Use decode_reg_name_and_count and
1714 iterate over all regs used.
1715 * stmt.c (expand_asm_operands): Likewise.
1716 * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1717 (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1718 multiple machine registers.
1720 2010-11-13 Eric Botcazou <ebotcazou@adacore.com>
1722 * stor-layout.c (place_union_field): Do not put location information
1723 on offset expressions.
1724 (place_field): Likewise.
1725 (finalize_record_size): Likewise on size expressions.
1726 (finalize_type_size): Likewise.
1727 (layout_type): Likewise.
1729 2010-11-13 Alexandre Oliva <aoliva@redhat.com>
1732 * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1733 * df-core.c (df_set_bb_dirty_nonrl): Remove.
1734 * df.h (df_set_bb_dirty_nonlr): Likewise.
1736 2010-11-13 Uros Bizjak <ubizjak@gmail.com>
1738 * config/mips/mips.md (call_internal): Pass curr_insn to
1740 (call_internal_direct): Ditto.
1741 (call_value_internal): Ditto.
1742 (call_value_internal_direct): Ditto.
1743 (call_value_multiple_internal): Ditto.
1744 * config/mips/mips.c (mips_split_call): Do not copy
1745 CALL_INSN_FUNCTION_USAGE here.
1747 2010-11-13 Mingming Sun <mingm.sun@gmail.com>
1749 * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1750 * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1751 (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1752 * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1753 (TUNE_LOONGSON_3A): Define.
1754 (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1755 (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1756 * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1757 (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1758 (mips_rtx_cost_data): Add Loongson-3A.
1760 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1762 * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1765 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1767 * dwarf2out.c (macinfo_entry): New struct.
1768 (output_comp_unit): Emit the section start label here and flag that we
1769 will emit an info section.
1770 (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1772 (dwarf2out_end_source_file): Likewise.
1773 (dwarf2out_define): Likewise.
1774 (dwarf2out_undef): Likewise.
1775 (output_macinfo): New.
1776 (dwarf2out_init): Do not emit debug section switches here, allocate a
1777 vec for macinfo, when required.
1778 (dwarf2out_finish): First switch to debug_abbrev_section here.
1779 debug_line_section, debug_macinfo_section, Likewise.
1780 Check that the pubtypes table has at least one unpruned entry before
1783 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1786 * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1787 (c_parser_next_tokens_start_declaration): ... this. Handle 2nd
1789 (c_parser_compound_statement_nostart, c_parser_label,
1790 c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1791 (c_parser_declaration_or_fndef): Detect the case now matched by
1792 c_parser_next_tokens_start_declaration, give error and correct it.
1794 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1796 * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1797 (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1799 * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1800 (shadow_tag_warned, check_compound_literal_type): Adjust
1801 uses of tag_defined_p.
1802 (declspecs_add_type): Set typespec_kind.
1803 * c-parser.c (c_parser_declaration_or_fndef,
1804 c_parser_declspecs, c_parser_struct_declaration,
1805 c_parser_parameter_declaration, c_parser_type_name,
1806 c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1808 * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1809 tag_defined_p, pass ctsk_firstref through.
1811 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1813 * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1814 (struct format_wanted_type): Replace field "name" with "kind", add
1815 "format_start" and "format_length".
1816 (check_format_info_main): Fill in new fields. Fill in
1817 FORMAT_WANTED_TYPES even for missing arguments. Move checks
1818 after the final NUL outside the while loop. Do not include
1819 width and precision modifiers in the format_start/format_length
1821 (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1822 arguments. Compute WANTED_TYPE first so that format_type_warning
1823 can be called for missing arguments. Adjust calls to
1824 format_type_warning.
1825 (format_type_warning): Fetch as much information as possible
1826 from format_wanted_type. Adjust printing now that every
1827 warning has a "descr", as well as for missing argument warnings
1828 and to include % sign for format specifiers.
1830 2010-11-12 Alexander Monakov <amonakov@ispras.ru>
1832 PR rtl-optimization/46204
1833 * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1834 Update all callers. Do not recompute topological order. Adjust
1835 fallthrough edges following a degenerate conditional jump.
1837 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1839 * opts-common.c (control_warning_option): New.
1840 * opts.c (set_default_handlers): New.
1841 (decode_options): Use set_default_handlers and
1842 control_warning_option.
1843 (common_handle_option): Update call to enable_warning_as_error.
1844 (enable_warning_as_error): Take gcc_options parameters. Use
1845 control_warning_option.
1846 * opts.h (set_default_handlers, control_warning_option): Declare.
1848 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1850 * Makefile.in (OPTS_H): Define.
1851 (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1852 c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1853 cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1854 opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1855 ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1856 * gcc.c (driver_handle_option): Take location_t parameter.
1857 (process_command, do_self_spec): Update calls to
1858 read_cmdline_option.
1859 * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1860 * langhooks.c (lhd_handle_option): Take location_t parameter.
1861 * langhooks.h (handle_option): Take location_t parameter.
1862 * lto-opts.c (lto_reissue_options): Update call to set_option.
1863 * opts-common.c (handle_option): Make static. Take location_t
1864 parameter and pass it to other functions.
1865 (handle_generated_option): Take location_t parameter and pass it
1867 (read_cmdline_option): Take location_t parameter and pass it to
1868 other functions. Use warning_at and error_at.
1869 (set_option): Take location_t parameter and pass it to other
1871 * opts.c (common_handle_option): Take location_t parameter and
1872 pass it to other functions.
1873 (enable_warning_as_error): Make static. Take location_t parameter
1874 and pass it to other functions.
1875 (lang_handle_option): Take location_t parameter and pass it to
1877 (target_handle_option): Take location_t parameter.
1878 (read_cmdline_options, maybe_default_option,
1879 maybe_default_options, default_options_optimization,
1880 decode_options): Take location_t parameter and pass it to other
1882 * opts.h: Include input.h.
1883 (struct cl_option_handler_func, decode_options, set_option,
1884 handle_generated_option, read_cmdline_option): Take location_t
1886 (handle_option, enable_warning_as_error): Remove.
1887 * toplev.c (toplev_main): Update call to decode_options.
1889 2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de>
1891 * graphite-cloog-util.c (oppose_constraint,
1892 cloog_matrix_to_ppl_constraint,
1893 new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1894 CLooG isl uses unsigned integers. This triggered a warning.
1896 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1899 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1900 (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1901 (xtensa_function_arg_1): De-constify cum.
1902 (xtensa_expand_prologue): Use add_reg_note.
1905 * config/cris/cris.c (saved_regs_mentioned): Delete.
1906 (cris_reload_address_legitimized): Cast itype to enum reload_type.
1907 Remove unused variable op0p.
1908 (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1909 (cris_emit_movem_store): Use add_reg_note.
1912 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1914 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1916 * function.c (expand_function_end): Set the locator of the prologue on
1917 the stack checking insns.
1919 2010-11-12 Richard Henderson <rth@redhat.com>
1921 * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1922 * config/xtensa/xtensa.opt (mfused-madd): Remove.
1923 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1925 * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1926 (fnmasf4): Rename from mulsubsf3; use fma.
1928 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1929 Richard Henderson <rth@redhat.com>
1932 * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1933 * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1936 2010-11-12 Pat Haugen <pthaugen@us.ibm.com>
1938 * opts-common.c (decode_cmdline_option): Initialize separate_args.
1940 2010-11-12 Jan Hubicka <jh@suse.cz>
1942 * doc/invoke.texi (early-inlining-insns): Update default.
1943 * params.def (early-inlining-insns): Default to 10.
1945 2010-11-12 Olivier Hainque <hainque@adacore.com>
1947 * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1949 2010-11-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1951 * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1952 (SUPPORTS_INIT_PRIORITY): Define.
1954 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1957 * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1958 * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1959 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1960 (avr_device_to_devicelib): Likewise.
1961 * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1963 (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1964 (zero_extendhidi2, zero_extendsidi2): Likewise.
1965 * config/avr/avr.c (avr_num_arg_regs): Constify type.
1966 (avr_return_addr_rtx): De-constify tem.
1967 (avr_rotate_bytes): Move declarations to start of block.
1968 Don't use variable length array. Put nested if/else into block.
1970 PR rtl-optimization/46433
1971 * var-tracking.c: Include tm_p.h .
1975 * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1977 (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1978 * doc/tm.texi: Regenerate.
1981 * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1982 * config/bfin/bfin.c: Include sel-sched.h .
1983 (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1984 (expand_interrupt_handler_prologue): Remove unused variable insn.
1985 (bfin_load_pic_reg): Likewise.
1986 (bfin_rtx_costs): Make code / outer_code variables of type
1987 enum rtx_code, copied from re-named parameters.
1988 (bfin_local_alignment): Change align argument and return type
1990 (bfin_adjust_cost): Remove unused variable insn_type.
1991 Declare variables at start of block.
1992 (struct loop_info): Rename to...
1993 (struct loop_info_d).
1994 (workaround_rts_anomaly): Change type of icode to int.
1995 (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1996 with int-typed variable.
1997 (note_np_check_stores): Likewise.
1998 (trapping_loads_p): Remove unused variable pat.
1999 (bfin_expand_binop_builtin): Use expand_normal.
2000 (bfin_expand_unop_builtin): Likewise.
2001 (bfin_expand_builtin): Likewise. Set tmode before use.
2004 * final.c (split_double): Don't use BITS_PER_WORD directly in
2008 * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
2012 * config/stormy16/stormy16.c (xstormy16_expand_prologue):
2014 (xstormy16_function_arg): Dereference cum.
2015 (xstormy16_expand_builtin): Use expand_normal.
2016 Change type of omode to enum machine_mode.
2017 (combine_bnp): Rename and to and_insn.
2020 * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2023 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
2026 * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2028 2010-11-11 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
2031 * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2033 2010-11-11 Nathan Froyd <froydnj@codesourcery.com>
2036 * common.opt (fmax-errors=): New option.
2037 * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2038 * diagnostic.h (struct diagnostic_context): Add max_errors field.
2039 * diagnostic.c (diagnostic_initialize): Initialize it.
2040 (diagnostic_action_after_output): Exit if more than max_errors
2042 * doc/invoke.texi (Warning Options): Add -fmax-errors.
2043 (-fmax-errors): Document.
2045 2010-11-11 Richard Henderson <rth@redhat.com>
2047 * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2049 2010-11-11 Richard Henderson <rth@redhat.com>
2051 * config/fused-madd.opt: New file.
2052 * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2053 * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2054 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2055 * config/i386/i386.opt (mfused-madd): Remove.
2056 * config/i386/sse.md (split_fma): Remove.
2057 (split_fms, split_fnma, split_fnms): Remove.
2059 2010-11-12 Jakub Jelinek <jakub@redhat.com>
2062 * config/i386/i386.md (*ashl<mode>3_cconly,
2063 *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2064 change nonimmediate_operand predicate to register_operand.
2066 2010-11-11 Paolo Bonzini <bonzini@gnu.org>
2068 * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2070 2010-11-11 Jan Hubicka <jh@suse.cz>
2072 * opts.c (finish_options): Do not error on -flto-partition alone.
2074 * doc/invoke.texi (-fwhopr): Merge into -flto section.
2075 (-flto-partition): Document none.
2076 * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2077 * lto-wrapper.c: Update comment.
2078 (run_gcc): Update LTO option parsing.
2079 * opts.c (finish_options): add support -flto-partition=none
2080 (common_handle_option): Remove fwhopr.
2081 * common.opt: Turn fwhopr into flto.
2082 * collect2.c (main): Update option handling.
2083 * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2084 * ipa-split.c (execute_split_functions): Remove flag_whopr.
2085 * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2086 * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2087 * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2089 2010-11-11 Jan Hubicka <jh@suse.cz>
2091 PR tree-optimize/40436
2092 * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2093 (eliminated_by_inlining_prob): ... this one; return 50% probability
2095 (estimate_function_body_sizes): Update use of
2096 eliminated_by_inlining_prob; estimate static function size
2099 2010-11-11 Joern Rennecke <amylaar@spamcop.net>
2102 * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2103 declare. Change type of argument four to type int.
2104 (mep_secondary_input_reload_class): Returns enum reg_class.
2105 (mep_secondary_output_reload_class): Likewise.
2106 (mep_function_value): Change types of arguments to cont_tree.
2107 * config/mep/mep.c (mep_legitimize_reload_address): Change type of
2108 argument four to type int.
2109 (mep_secondary_input_reload_class): Returns enum reg_class.
2110 (mep_secondary_output_reload_class): Likewise.
2111 (mep_function_value): Change types of arguments to cont_tree.
2112 * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2113 mep_regno_reg_class to enum reg_class.
2115 2010-11-11 Richard Henderson <rth@redhat.com>
2117 * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2118 that the target has the exact fma operation that we matched.
2120 2010-11-11 Joseph Myers <joseph@codesourcery.com>
2122 * reginfo.c (fix_register): Avoid inserting English word in
2123 diagnostic sentence. Use %qs for quoting and %'.
2125 2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
2127 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2128 Intel processor family 6, model 0x2c.
2130 2010-11-11 Joseph Myers <joseph@codesourcery.com>
2132 * opts.c (warning_as_error_callback,
2133 register_warning_as_error_callback): Remove.
2134 (enable_warning_as_error): Don't use warning_as_error_callback.
2135 * opts.h (register_warning_as_error_callback): Remove.
2137 2010-11-11 Richard Henderson <rth@redhat.com>
2139 * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2140 in between the MULT and the PLUS/MINUS.
2142 2010-11-11 Jakub Jelinek <jakub@redhat.com>
2145 * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2146 BLKmode mode for it.
2147 (expand_expr_real_1): Similarly for op0.
2149 2010-11-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2151 * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2152 Document optional target selector.
2154 2010-11-11 Dave Korn <dave.korn.cygwin@gmail.com>
2156 * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2157 assembling high and low parts of size if not using 32-bit HWINT; else
2158 use DECL_SIZE_UNITS, not DECL_SIZE.
2160 2010-11-11 Martin Jambor <mjambor@suse.cz>
2162 PR tree-optimization/46383
2163 * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2165 (compute_complex_ancestor_jump_func): Likewise.
2166 * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2168 2010-11-11 Jakub Jelinek <jakub@redhat.com>
2171 * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2172 true if expr1->hash != expr2->hash.
2174 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2176 * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
2177 diagnostics with lowercase letters.
2178 * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2180 * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2182 * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2183 * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2185 * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2186 Remove trailing ' ' from diagnostic.
2187 * config/avr/avr.c (print_operand_address): Start diagnostic with
2188 a lowercase letter and remove trailing '.'.
2189 * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2190 * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2191 with lowercase letters. Use %' in diagnostics. Remove trailing
2192 '.' from diagnostics.
2193 (bfin_handle_longcall_attribute): Use %' in diagnostic.
2194 * config/cris/cris.c (cris_split_movdx,
2195 cris_expand_pic_call_address): Start diagnostics with lowercase
2197 (cris_asm_output_label_ref): Use %' in diagnostic.
2198 * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2200 * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2202 * config/darwin-c.c (version_as_macro): Start diagnostic with a
2204 * config/darwin-driver.c (darwin_default_min_version): Use %' in
2206 * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2208 * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2209 * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2211 * config/i386/i386.c (ix86_option_override_internal): Write
2212 diagnostic as a single sentence without trailing '.'. Use %' in
2214 (ix86_function_sseregparm, classify_argument): Start diagnostics
2215 with lowercase letters.
2216 (ix86_expand_prologue): Use %' in diagnostic.
2217 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2219 * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2221 * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2223 * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2224 * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2226 * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2228 * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2230 * config/microblaze/microblaze.c (microblaze_handle_option):
2231 Remove trailing '.' from diagnostic.
2232 (print_operand): Start diagnostic with a lowercase letter.
2233 * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2234 lowercase letters. Avoid '`' in diagnostics.
2235 * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2236 lowercase letters. Avoid '`' in diagnostics.
2237 * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2238 lowercase letters. Avoid '`' in diagnostics.
2239 * config/picochip/picochip.c (picochip_option_override,
2240 picochip_emit_save_register, picochip_function_arg,
2241 picochip_output_label, picochip_output_internal_label,
2242 picochip_asm_output_opcode, picochip_output_cbranch,
2243 picochip_output_compare, picochip_output_branch,
2244 picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2245 diagnostics. Start diagnostics with lowercase letters. Use %' in
2247 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2248 "SPE" capitalization. Start diagnostic with a lowercase letter.
2249 (rs6000_handle_option): Start diagnostics with lowercase letters.
2250 (def_builtin): Remove trailing '.' from diagnostic.
2251 (rs6000_savres_routine_name): Start diagnostic with a lowercase
2253 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2255 * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2257 * config/s390/s390.c (s390_option_override) Start diagnostics with
2258 lowercase letters. Use %' in diagnostic.
2259 * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2261 * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2263 * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2265 * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2267 * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2268 * config/spu/spu.c (spu_option_override): Start diagnostics with
2269 lowercase letters. Use %qs for quoting in diagnostics.
2270 (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2271 Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2272 * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2274 * convert.c (convert_to_integer, convert_to_vector): Use %' in
2276 * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2277 letter and use "cannot" spelling.
2278 * expmed.c (extract_fixed_bit_field): Start diagnostic with
2279 lowercase letter and format as a single sentence without '.'.
2280 * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2281 Use %' in diagnostics.
2282 * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2283 Use %' in diagnostics.
2284 * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2285 Use %' in diagnostics.
2286 * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2287 * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2288 with lowercase letters and remove tailing '.' and '\n'.
2289 * lto-cgraph.c (input_profile_summary): Start diagnostic with
2290 lowercase letter and remove trailing '.'.
2291 (input_cgraph): Start diagnostics with lowercase letters and
2292 remove trailing '\n'.
2293 * opts.c (finish_options, common_handle_option): Start diagnostics
2294 with lowercase letters and remove trailing '.'. Fix typo in
2296 * passes.c (position_pass): Start diagnostic with lowercase letter.
2297 * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2298 register_callback, try_init_one_plugin): Start diagnostics with
2300 * reload1.c (spill_failure): Use %' in diagnostic.
2301 (gen_reload): Start diagnostic with a lowercase letter.
2302 * stor-layout.c (place_field): Start diagnostic with a lowercase
2304 * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2305 * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2306 verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2307 Start diagnostics with lowercase letters, remove trailing '.' and
2308 use %' in diagnostics.
2309 * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2310 (verify_ssa): Don't split diagnostic across two error calls.
2311 Spell out "number" and use %' in diagnostic.
2312 * value-prof.c (visit_hist, check_counter): Start diagnostics with
2315 2010-11-10 Uros Bizjak <ubizjak@gmail.com>
2318 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2319 (_mm_cvtpu16_ps): Ditto.
2321 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2323 * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2324 warn_larger_than, larger_than_size, warn_frame_larger_than,
2325 frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2326 default_visibility, flag_tls_default): New Variable declarations.
2327 (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2328 falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2329 (v): Declare as Common and document here.
2330 * flags.h (default_visibility, flag_generate_lto,
2331 warn_larger_than, larger_than_size, warn_frame_larger_than,
2332 frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2333 flag_shlib, flag_excess_precision_cmdline): Remove.
2334 (set_Wstrict_aliasing): Update prototype.
2335 * gcc.c (verbose_flag): Remove.
2336 (driver_handle_option): Add diagnostic_context parameter. Don't
2337 handle OPT_v explicitly here. Set verbose_flag to 1 rather than
2339 * opts-common.c (handle_option): Pass dc to handler.
2340 * opts.c (warn_larger_than, larger_than_size,
2341 warn_frame_larger_than, frame_larger_than_size,
2342 default_visibility): Remove.
2343 (common_handle_option): Add diagnostic_context parameter.
2344 (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2345 gcc_options parameters.
2346 (lang_handle_option, target_handle_option, read_cmdline_options,
2347 decode_options): Add diagnostic_context parameters.
2348 (finish_options): Access option state through opts pointer where
2350 (common_handle_option): Access option state through opts pointer
2351 where possible. Do not set local static variable verbose. Do not
2352 explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2353 OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2354 OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2355 OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2356 OPT_fwhopr_. Do not explicitly set .opt file variables for
2357 OPT_aux_info or OPT_pedantic_errors. Use dc for diagnostic context.
2358 (set_Wstrict_aliasing): Add gcc_options parameter.
2359 * opts.h (struct cl_option_handler_func): Add diagnostic_context
2360 parameter to handler.
2361 (decode_options): Add diagnostic_context parameter.
2362 * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2363 asm_file_name, flag_generate_lto, flag_gen_aux_info,
2364 aux_info_file_name, flag_shlib, flag_tls_default,
2365 flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2366 (toplev_main): Pass global_dc to decode_options.
2367 * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2368 aux_info_file_name, asm_file_name): Remove.
2369 * tree.h (flag_tls_default): Remove.
2371 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
2374 * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2375 (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2377 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2379 * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2380 (x86_64-*-*): Likewise.
2381 * config/i386/cpuid.h: Define TBM bit.
2382 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2384 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2386 * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2387 (OPTION_MASK_ISA_TBM_UNSET): New.
2388 (ix86_handle_option): Handle -mtbm.
2389 (isa_opts): Add -mtbm.
2390 (enum pta_flags): Add PTA_TBM.
2391 (ix86_option_override_internal): Add TBM support.
2392 (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2393 (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2394 (IX86_BUILTIN_BEXTRI64): Likewise.
2395 (bdesc_args): Add TBM intrinsics.
2396 (ix86_expand_builtin): Add TBM specific case.
2397 * config/i386/i386.h (TARGET_TBM): New for TBM.
2398 * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2399 (tbm_bextri_<mode>): Likewise.
2400 (*tbm_blcfill_<mode>): Likewise.
2401 (*tbm_blci_<mode>): Likewise.
2402 (*tbm_blcic_<mode>): Likewise.
2403 (*tbm_blcmsk_<mode>): Likewise.
2404 (*tbm_blcs_<mode>): Likewise.
2405 (*tbm_blsfill_<mode>): Likewise.
2406 (*tbm_blsic_<mode>): Likewise.
2407 (*tbm_t1mskc_<mode>): Likewise.
2408 (*tbm_tzmsk_<mode>): Likewise.
2409 * config/i386/i386.opt: Add -mtbm.
2410 * config/i386/tbmintrin.h (__bextri_u32): New.
2411 (__blcfill_u32): Likewise.
2412 (__blci_u32): Likewise.
2413 (__blcic_u32): Likewise.
2414 (__blcmsk_u32): Likewise.
2415 (__blcs_u32): Likewise.
2416 (__blsfill_u32): Likewise.
2417 (__blsic_u32): Likewise.
2418 (__t1mskc_u32): Likewise.
2419 (__tzmsk_u32): Likewise.
2420 (__bextri_u64): Likewise.
2421 (__blcfill_u64): Likewise.
2422 (__blci_u64): Likewise.
2423 (__blcic_u64): Likewise.
2424 (__blcmsk_u64): Likewise.
2425 (__blcs_u64): Likewise.
2426 (__blsfill_u64): Likewise.
2427 (__blsic_u64): Likewise.
2428 (__t1mskc_u64): Likewise.
2429 (__tzmsk_u64): Likewise.
2430 * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2431 * doc/invoke.texi: Document -mtbm.
2432 * doc/extend.texi: Document TBM built-in functions.
2434 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2436 * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2437 (x86_64-*-*): Likewise.
2438 * config/i386/cpuid.h: Define BMI bit.
2439 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2441 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2443 * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2444 (OPTION_MASK_ISA_BMI_UNSET): New.
2445 (ix86_handle_option): Handle -mbmi.
2446 (isa_opts): Add -mbmi.
2447 (enum pta_flags): Add PTA_BMI.
2448 (ix86_option_override_internal): Add BMI support.
2449 (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2450 (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2451 (IX86_BUILTIN_BEXTR64): Likewise.
2452 (IX86_BUILTIN_CTZS): Likewise.
2453 (bdesc_args): Add BMI intrinsics.
2454 (ix86_expand_args_builtin): Add BMI specific cases.
2455 * config/i386/i386.h (TARGET_BMI): New for BMI.
2456 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2457 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2458 * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2459 (UNSPEC_TZCNT): Likewise.
2460 (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2461 (bmi_andn_<mode>): New for BMI.
2462 (bmi_bextr_<mode>): Likewise.
2463 (bmi_blsi_<mode>): Likewise.
2464 (bmi_blsmsk_<mode>): Likewise.
2465 (bmi_blsr_<mode>): Likewise.
2466 * config/i386/i386.opt: Add -mbmi.
2467 * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2468 * config/i386/bmiintrin.h (__lzcnt_u16): New.
2469 (__tzcnt_u16): Likewise.
2470 (__andn_u32): Likewise.
2471 (__bextr_u32): Likewise.
2472 (__blsi_u32): Likewise.
2473 (__blsmsk_u32): Likewise.
2474 (__blsr_u32): Likewise.
2475 (__lzcnt_u32): Likewise.
2476 (__tzcnt_u32): Likewise.
2477 (__andn_u64): Likewise.
2478 (__bextr_u64): Likewise.
2479 (__blsi_u64): Likewise.
2480 (__blsmsk_u64): Likewise.
2481 (__blsr_u64): Likewise.
2482 (__lzcnt_u64): Likewise.
2483 (__tzcnt_u64): Likewise.
2484 * doc/invoke.texi: Document -mbmi and -mno-bmi.
2485 * doc/extend.texi: Document BMI built-in functions.
2487 2010-11-10 Jan Hubicka <jh@suse.cz>
2489 PR tree-optimize/46228
2490 * doc/invoke.texi (comdat-sharing-probability): Document.
2491 * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2492 * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2494 2010-11-10 Jan Hubicka <jh@suse.cz>
2496 PR tree-optimize/46228
2497 * cgraph.c (cgraph_propagate_frequency): Fix typo.
2499 2010-11-10 H.J. Lu <hongjiu.lu@intel.com>
2501 PR tree-optimization/46414
2502 * tree-inline.c (estimate_move_cost): Check preferred vector
2503 mode for vector type.
2505 2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2507 * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2509 2010-11-10 Sebastian Pop <sebastian.pop@amd.com>
2511 PR tree-optimization/45971
2512 * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2513 for phi nodes analyzable by scev.
2515 2010-11-10 Richard Guenther <rguenther@suse.de>
2517 PR tree-optimization/44964
2518 * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2520 2010-11-10 Martin Jambor <mjambor@suse.cz>
2522 PR tree-optimization/46351
2523 PR tree-optimization/46377
2524 * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2525 aggregate bit-fields.
2527 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2529 * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2530 * doc/tm.texi: Regenerate.
2531 * opts-common.c (tm.h): Don't include.
2532 (target_option_translations): Remove.
2533 (decode_cmdline_options_to_array): Don't handle translating options.
2534 * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2535 * config/darwin-driver.c: Don't condition includes on
2536 CROSS_DIRECTORY_STRUCTURE.
2537 (darwin_default_min_version): Make static.
2538 (darwin_driver_init): New. Call darwin_default_min_version if not
2539 CROSS_DIRECTORY_STRUCTURE.
2540 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2541 (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2542 (ASM_SPEC): Add %{static}.
2543 (darwin_default_min_version): Don't declare.
2544 (darwin_driver_init): Declare.
2545 (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2546 darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2547 * config/darwin.opt (all_load, allowable_client,
2548 arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2549 dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2550 exported_symbols_list, filelist, findirect-virtual-calls,
2551 flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2552 framework, fterminated-vtables, gfull, gused, image_base, init,
2553 install_name, multi_module, multiply_defined,
2554 multiply_defined_unused, no_dead_strip_inits_and_terms,
2555 seg_addr_table, seg_addr_table_filename, segaddr,
2556 segs_read_only_addr, segs_read_write_addr, single_module,
2557 umbrella, unexported_symbols_list, weak_reference_mismatches,
2558 Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2559 Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2560 Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2561 Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2562 * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2563 (ASM_SPEC): Add %{static}.
2564 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2565 * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2566 (DRIVER_SELF_SPECS): Handle options formerly in
2567 TARGET_OPTION_TRANSLATE_TABLE.
2568 * config/mep/mep.opt (mfar): New.
2569 * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2570 (DRIVER_SELF_SPECS): Define. Handle options formerly in
2571 TARGET_OPTION_TRANSLATE_TABLE.
2572 * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2573 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2574 * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2575 ffix-and-continue, findirect-data): New.
2576 * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2577 * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2578 (mnofpu): Define mask and use Report here.
2580 2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2582 * config/s390/s390.c (s390_emit_prologue): Report the stack
2583 size if -fstack-usage is used.
2585 2010-11-10 Richard Guenther <rguenther@suse.de>
2587 PR tree-optimization/46398
2588 * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2590 2010-11-10 Joern Rennecke <amylaar@spamcop.net>
2593 * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2594 (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2595 GP_REG_OR_PSEUDO_STRICT_P.
2596 * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2597 unexpected alternative.
2598 (*movsf_internal): Likewise.
2599 (indirect_jump): Replace call to non-existant function with call to
2601 (tablejump): Likewise.
2602 * config/iq2000/iq2000.c: Include df.h .
2603 (iq2000_function_arg_advance): Use CONST_CAST2.
2604 (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2605 (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2606 a non-zero function address.
2607 (iq2000_initial_elimination_offset): Add gcc_unreachable for
2608 unexpected value of FROM.
2609 (symbolic_expression_p): Delete.
2610 (iq2000_function_value): Constify func.
2611 (expand_one_builtin): Use expand_normal.
2612 (iq2000_print_operand): Don't print VALUE if calculating it failed.
2614 PR rtl-optimization/44764
2615 * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2618 * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2619 * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2620 with ATTRIBUTE_UNUSED.
2621 (valid_psw_flag): Constify parameter which.
2622 (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2625 * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2626 (mmix_dbx_register_number): Likewise.
2627 * config/mmix/mmix.c: Include df.h .
2628 (mmix_local_alignment): Change argument basic_align and return type
2630 (mmix_dbx_register_number): Change argument and return type to
2632 (mmix_expand_prologue): Use add_reg_note.
2635 * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2636 (spu_split_store): Use aform.
2637 (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2639 2010-11-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2642 * doc/gty.texi (GTY Options): Clarify that variable_size produces
2643 allocators taking size in bytes, compare with length option. Add
2644 size calculation example.
2645 (Invoking the garbage collector): Ensure that sentences are
2646 followed by two spaces. Describe that pointer fields must be
2647 initialized at ggc_collect call.
2648 (Troubleshooting): New section.
2650 2010-11-09 Jan Hubicka <jh@suse.cz>
2652 PR tree-optimization/40436
2653 * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2654 * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2655 normal instructions; be sure bultin is not implemented in this file;
2656 compute non-zero return cost.
2657 (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2658 * tree-inline.h (eni_weights_d): Add return cost.
2660 2010-11-09 Joseph Myers <joseph@codesourcery.com>
2662 * c-parser.c (c_parser_struct_declaration): Handle declaration
2663 specifiers followed by CPP_CLOSE_BRACE.
2665 2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2667 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2668 split occurs before reload, and we allocate memory at the time of
2669 the split, not during expansion. Add attributes.
2670 (floatsi<mode>2_lfiwax_mem): Ditto.
2671 (floatunssi<mode>2_lfiwzx): Ditto.
2672 (floatunssi<mode>2_lfiwzx_mem): Ditto.
2673 (floatsidf2): Ditto.
2674 (floatunssisf2): Ditto.
2675 (floatunssidf2): Ditto.
2676 (fix_trunc<mode>si2): Ditto.
2677 (fix_trunc<mode>si2_stfiwx): Ditto.
2678 (fix_trunc<mode>si2_internal): Ditto.
2679 (fix_trunc<mode>si2): Ditto.
2680 (fix_trunc<mode>di2): Ditto.
2681 (fixuns_trunc<mode>si2_stfiwx): Ditto.
2682 (floatsisf2): Ditto.
2683 (floatdidf2_mem): Ditto.
2684 (floatunsdidf2_mem): Ditto.
2685 (floatunsdidf2): Ditto.
2686 (floatdisf2_internal1): Ditto.
2687 (floatdisf2_mem): Ditto.
2688 (floatunsdisf2_mem): Ditto.
2689 (floatsi<mode>2_lfiwax_mem2): Delete.
2690 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2691 (fix_trunc<mode>si2_mem): Ditto.
2692 (fixuns_trunc<mode>si2_mem): Ditto.
2693 (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2694 type operations to reduce copying the values to multiple memory slots.
2695 (roundu32<mode>2_fprs): Ditto.
2697 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2698 PRE_INC, PRE_DEC, PRE_MODIFY.
2699 (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2701 * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2704 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2707 * cfgexpand.c (partition_stack_vars): Call
2708 update_alias_info_with_stack_vars unconditionally.
2709 (update_alias_info_with_stack_vars): Allow unused
2710 unreferenced vars when not optimizing.
2712 2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
2714 PR tree-optimization/46036
2715 * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2716 add_to_dst_predicate_list.
2718 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2721 * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2723 (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2724 argument, call dead_debug_reset when adding REG_UNUSED note.
2725 (dead_debug_reset): New function.
2726 (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2727 df_create_unused_note callers.
2729 2010-11-09 Anatoly Sokolov <aesok@post.ru>
2731 * config/fr30/fr30.c: Include "df.h".
2733 2010-11-09 Richard Guenther <rguenther@suse.de>
2735 PR tree-optimization/46355
2736 * tree-loop-distribution.c (tree_loop_distribution): Do not
2737 distribute loops without a single exit.
2739 2010-11-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2741 PR rtl-optimization/46237
2742 * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2743 saved hard regs if they might get partially clobbered.
2745 2010-11-09 Paul Koning <ni1d@arrl.net>
2747 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2749 2010-11-09 Richard Guenther <rguenther@suse.de>
2751 PR tree-optimization/46177
2752 * tree-loop-distribution.c (prop_phis): Remove.
2753 (generate_builtin): Re-use the old loop exit edge to avoid
2754 needing to update PHI nodes.
2756 2010-11-09 Joern Rennecke <amylaar@spamcop.net>
2758 * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2759 type of args_size to unsigned HOST_WIDE_INT.
2762 * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2763 * config/t-pnt16-warn: New file.
2764 * config/picochip/picochip.c (picochip_emit_stack_allocate):
2766 (picochip_emit_save_register): Likewise.
2767 (picochip_emit_restore_register): Remove variable insn.
2768 (picochip_legitimize_address): Don't use C++ style comments.
2769 (picochip_legitimize_reload_address): Likewise.
2770 (reorder_var_tracking_notes): Remove variable vliw_start.
2771 (picochip_reorg): Cast first arguemnt to emit_note_after to
2773 (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2774 (picochip_expand_builtin_3op): Likewise.
2775 (picochip_expand_builtin_2opvoid): Likewise.
2776 (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2777 (picochip_expand_array_testport): Likewise.
2778 (picochip_init_builtins): Remove unused variables.
2779 * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2780 to unsigned long, and output it as such.
2781 (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2782 * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2783 (schedType): Cast result of picochip_schedule_type to
2784 enum attr_schedType.
2787 * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2788 conditional to type of S.
2789 (mn10300_function_arg): Remove unused variable align.
2790 (mn10300_arg_partial_bytes): Likewise.
2791 * config/mn10300/mn10300.md (attribute cpu): Cast value to
2794 2010-11-09 H.J. Lu <hongjiu.lu@intel.com>
2797 * gengtype-parse.c (type): Call get_input_file_name to get file name.
2799 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
2801 * tree.h (contains_placeholder_p): Fix comment.
2802 (type_contains_placeholder_p): Adjust comment.
2803 * tree.c (contains_placeholder_p): Fix comment.
2804 (type_contains_placeholder_1): Do not recurse on pointed-to types and
2806 (type_contains_placeholder_p): Add comment.
2808 2010-11-09 Paul Koning <ni1d@arrl.net>
2810 * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2811 output of byte values.
2813 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2816 * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2819 2010-11-09 Richard Guenther <rguenther@suse.de>
2822 * varasm.c (compute_visible_aliases): New function.
2823 (remove_unreachable_alias_pairs): Aliases make a target available
2824 even though we reclaimed the cgraph node.
2825 (finish_aliases_1): Likewise.
2826 * Makefile.in (varasm.o): Add pointer-set.h dependency.
2828 2010-11-09 Nick Clifton <nickc@redhat.com>
2830 * config/mn10300/mn10300-modes.def: New file.
2832 2010-11-09 Basile Starynkevitch <basile@starynkevitch.net>
2833 Jeremie Salvucci <jeremie.salvucci@free.fr>
2835 * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2836 (plugin_files, get_file_basename, get_file_realbasename)
2837 (get_file_langdir, error_at_line, gt_files, this_file)
2838 (system_h_file, read_input_list, create_field_all)
2839 (get_file_srcdir_relative_path, get_file_basename)
2840 (get_file_langdir, get_file_gtfilename)
2841 (get_output_file_with_visibility, get_output_file_name)
2842 (struct flist, put_mangled_filename, walk_type)
2843 (put_mangled_filename, finish_root_table, write_roots): Use
2845 (lang_dir_names, num_lang_dirs): Remove static.
2846 (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2847 (main): Use input_file-s.
2849 * gengtype.h: (struct input_file_st, input_file): New type.
2850 (struct fileloc): Use it.
2851 (gt_files, num_gt_files, this_file, system_h_file)
2852 (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2853 (get_input_file_name): New function.
2854 (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2856 (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2857 (get_output_file_name): Ditto.
2859 * gengtype-lex.l (yybegin): Use input_file.
2861 * gengtype-parse.c (parse_error): Use input_file.
2863 2010-11-08 Xinliang David Li <davidxl@google.com>
2865 PR tree-optimization/46316
2866 * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2867 * double-int.h (double_int_mul_with_sign): New function.
2868 * double-int.c (double_int_mul_with_sign): New function.
2870 2010-11-08 Paul Koning <ni1d@arrl.net>
2872 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2874 2010-11-08 Paul Koning <ni1d@arrl.net>
2876 * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2878 2010-11-08 Paul Koning <ni1d@arrl.net>
2880 * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2883 2010-11-08 Michael Meissner <meissner@linux.vnet.ibm.com>
2886 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2887 turn on ISA 2.04 rounding instructions for power5.
2889 * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2893 * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2895 (movdi_low_st): Ditto.
2897 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2898 Richard Henderson <rth@redhat.com>
2901 * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2902 (attribute acc_group): Cast value to enum attr_acc_group.
2903 (*movdi_nodouble+6): Use gen_int_mode.
2904 * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2905 if RTX_CODE is defined or not.
2906 * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2908 (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2909 (frv_frame_access, frv_expand_prologue): Remove unused variables.
2910 (frv_expand_block_clear): Likewise.
2911 (frv_trampoline_init): Use LCT_NORMAL.
2912 (struct frv_packet_group): New struct, broken out of type of
2914 (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2915 use cast in loop counter increment.
2916 (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2917 assigning to io->type.
2918 (bdesc_set): Use rtx_code UNKNOWN in initializer.
2919 (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2920 (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2921 (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2922 (frv_read_argument): Use expand_normal.
2925 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2926 lm32_legitimate_constant_p.
2927 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2928 * config/lm32/lm32.c (gen_int_relational): Make new block for
2929 LE / LT / LEU / LTU case. Declare variables at start of block.
2930 (lm32_block_move_inline): Use XALLOCAVEC.
2932 2010-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2934 * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2936 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2938 * gengtype (get_output_file_for_structure): Ensure type is union
2940 (write_splay_tree_allocator_def): Use
2941 get_output_file_with_visibility.
2943 2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2945 * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2946 to defined values in case of an error.
2947 (s390_option_override): Skip further processing if the -march
2948 parameter wasn't recognized.
2950 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2952 * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2953 assert that REG is a hard register number before using it as an index.
2956 * config/i386/i386.c (ix86_expand_split_stack_prologue):
2957 Avoid warnings when HOST_WIDE_INT is 32 bit.
2959 2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
2962 * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2963 (sparc_promote_prototypes): Likewise.
2964 (sparc_promote_function_mode): Promote in 32-bit mode as well.
2965 (sparc_return_in_memory): Remove superfluous parentheses.
2966 (sparc_struct_value_rtx): Fix long lines.
2967 (sparc_function_value_1): Promote in 32-bit mode as well.
2969 2010-11-08 Andrey Belevantsev <abel@ispras.ru>
2971 PR rtl-optimization/45352
2972 * sel-sched.c (find_best_expr): Do not set pneed_stall when
2973 the variable_issue hook is not implemented.
2974 (fill_insns): Remove dead variable stall_iterations.
2975 (init_seqno_1): Force EBB start for resetting sched cycles on any
2976 successor blocks of the rescheduled region.
2977 (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2978 (reset_sched_cycles_in_current_ebb): Add debug printing.
2979 New variable issued_insns. Advance state when we have issued
2982 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2984 * gengtype (main): Get here's position using POS_HERE macro for
2987 2010-11-07 Ian Lance Taylor <iant@google.com>
2990 * config/i386/i386.c (split_stack_fn_large): New static variable.
2991 (ix86_expand_split_stack_prologue): Handle large model.
2993 2010-11-07 Andreas Schwab <schwab@linux-m68k.org>
2995 * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2996 all possible addressing modes.
2998 2010-11-07 Uros Bizjak <ubizjak@gmail.com>
3000 PR tree-optimization/46346
3001 * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
3003 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
3005 * config/mips/mips.c: Revert previous patch.
3006 * config/mips/mips.md: Likewise.
3008 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
3010 * config/mips/mips.c (mips_rtx_costs): Handle FMA.
3011 * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
3012 (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
3013 (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3014 (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3016 (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3017 (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3018 (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3019 (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3021 2010-11-06 Simon Martin <simartin@users.sourceforge.net>
3024 * c-decl.c (lookup_label): Labels can only be referenced in a
3026 (store_parm_decls_oldstyle): Skip erroneous parameters.
3028 2010-11-06 Anatoly Sokolov <aesok@post.ru>
3030 * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3031 LIBCALL_VALUE): Remove macros.
3032 * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3033 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3034 (fr30_function_value_regno_p, fr30_function_value,
3035 fr30_libcall_value): New functions.
3037 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
3040 * target.def (generate_internal_label): New asm_out hook.
3041 * output.h (default_generate_internal_label): Declare.
3042 * varasm.c (default_generate_internal_label): Define.
3044 2010-11-06 Iain Sandoe <iains@gcc.gnu.org>
3047 * doc/extend.tex (format): Document NSString extension.
3048 (format_arg): Likewise.
3049 (Darwin Format Checks): New section.
3050 * doc/tm.texi: Document string object hooks (generated).
3051 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3052 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3053 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3054 * target.def (objc_construct_string_object): Rename, amend
3056 (string_object_ref_type_p): New hook.
3057 (check_string_object_format_arg): New hook.
3058 * c-parser.c (c_parser_attributes): Allow objective-c class names as
3059 attribute identifiers.
3060 * config/darwin-c.c (darwin_cfstring_ref_p): New.
3061 (darwin_check_cfstring_format_arg): New.
3062 (darwin_additional_format_types): New.
3063 * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3064 (darwin_check_cfstring_format_arg): New.
3065 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3066 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3067 (TARGET_N_FORMAT_TYPES): New.
3068 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3070 2010-11-06 Eric Botcazou <ebotcazou@adacore.com>
3071 Pascal Obry <obry@adacore.com>
3073 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine. Use 33
3074 in 64-bit mode and 17 otherwise.
3076 2010-11-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3079 * var-tracking.c (emit_note_insn_var_location): Make sure that
3080 call related var location notes come before the normal ones.
3082 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
3085 * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3088 2010-11-05 Ian Lance Taylor <iant@google.com>
3090 * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3092 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3095 * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3096 pointer_set_contains if DECL_NAME is NULL.
3098 2010-11-05 Ian Lance Taylor <iant@google.com>
3101 * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3102 request enough additional space for alignment, and force alignment.
3104 2010-11-05 Kai Tietz <kai.tietz@onevision.com>
3106 * config/i386/i386.c (legitimate_pic_address_disp_p):
3107 Handle UNSPEC_PCREL.
3108 (ix86_legitimate_address_p): Likewise.
3109 (legitimize_pic_address): Likewise.
3110 (output_pic_addr_const): Likewise.
3111 (ix86_delegitimize_address): Likewise.
3112 (ix86_find_base_term): Likewise.
3113 (memory_address_length): Likewise.
3114 (x86_output_mi_thunk): Handle special case x64
3115 for non local binding.
3116 * config/i386/i386.md (UNSPEC_PCREL): New.
3117 * config/i386/winnt.c (i386_pe_binds_local_p):
3118 Allow weak symbol for x64 windows with non-local binding.
3120 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3123 * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3124 instead of EXPAND_NORMAL for base expansion.
3126 2010-11-05 Uros Bizjak <ubizjak@gmail.com>
3128 * config.gcc: Support --with-fpmath=avx for x86.
3129 * config/i386/avxmath.h: New.
3130 * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3132 2010-11-05 Ian Lance Taylor <iant@google.com>
3134 * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3135 * gengtype.c (walk_type): Don't recognize descbits option.
3137 2010-11-05 Joseph Myers <joseph@codesourcery.com>
3139 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3140 WORD_SWITCH_TAKES_ARG): Remove.
3141 * doc/options.texi (Args): Document.
3142 * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3143 * doc/tm.texi: Regenerate.
3144 * opt-functions.awk (switch_flags): Handle Args.
3145 * opts-common.c: Update comment on tm.h include.
3146 (decode_cmdline_option): Handle options with multiple arguments.
3147 Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3148 * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3149 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3150 CL_COMMON): Update values.
3151 * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3152 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3153 * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3154 sectobjectsymbols, sectorder, segcreate, segprot): New.
3156 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
3157 Uros Bizjak <ubizjak@gmail.com>
3159 * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3160 256bit AVX register is used.
3161 (ix86_expand_vector_move_misalign): Likewise.
3162 (ix86_expand_vector_move): Replace use_avx256_p with
3163 VALID_AVX256_REG_MODE.
3165 2010-11-05 Joern Rennecke <amylaar@spamcop.net>
3168 * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3169 change. Set $@-warn.o to -Wno-error.
3172 * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3173 comparing it to a signed value.
3176 * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3178 * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3182 * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3183 (m32c_function_arg). Add comma between arguments two and three.
3184 (m32c_promote_prototypes): Remove declaration.
3185 (current_function_special_page_vector): Likewise.
3186 (m32c_regno_reg_class): Change return type to enum reg_class.
3187 (m32c_pushm_popm): Use add_reg_note.
3188 (m32c_push_rounding): Change return type to unsigned int.
3189 (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3191 (m32c_insert_attributes): Constify variable name.
3192 (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3193 (m32c_prepare_shift): Remove variable lref.
3194 (m32c_expand_movcc): Remove variable cmp.
3195 (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3196 (m32c_compare_redundant): Remove variable op2.
3197 * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3198 (m32c_pragma_memregs): Assign the number to target_memregs.
3199 (m32c_pragma_address): Remove variable var_str.
3200 * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3202 (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3203 * config/m32c/bitops.md (andsi3): Add default case to switch.
3204 (iorsi3, xorsi3): Likewise.
3205 * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3206 * config/m32c/jump.md (call, call_value): Likewise.
3207 * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3208 (m32c_regno_reg_class): Likewise.
3209 (current_function_special_page_vector): Declare.
3211 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3213 * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3215 PR tree-optimization/46099
3216 * tree-parloops.c (take_address_of): Add GSI argument. Return NULL
3217 if it is NULL and uid wasn't found in the hash table. Just fold the
3218 result if it is NULL otherwise. Insert other potentially needed
3219 stmts right before current stmt instead of on the entry edge.
3220 (struct elv_data): Add gsi and reset fields.
3221 (eliminate_local_variables_1): Adjust caller. If take_address_of
3222 failed for debug stmt, set dta->reset and return.
3223 (eliminate_local_variables_stmt): Change STMT argument for GSI,
3224 pass GSI through to the callback, handle resetting of debug stmts.
3225 (eliminate_local_variables): Adjust caller. Process debug stmts
3229 * gimplify.c (gimplify_asm_expr): If a "m" input is a
3230 {pre,post}{in,de}crement, fail.
3233 * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3234 * tree-pretty-print.c (dump_generic_node): Likewise.
3235 (op_code_prio): Likewise.
3236 * cfgexpand.c (expand_debug_expr): Likewise.
3238 2010-11-04 Paul Koning <ni1d@arrl.net>
3240 * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3243 2010-11-04 Chao-ying Fu <fu@mips.com>
3245 * configure.ac: Test assembler support for DSP Rev1 mult.
3246 * configure: Regenerate.
3247 * config.in: Regenerate.
3248 * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3249 * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3250 (CODE_FOR_mips_multu): New define.
3251 (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3253 (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3254 Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3255 * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3256 New define_expand patterns.
3257 * config/mips/constraints.md (ka): Update the constraint to test
3258 ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3259 * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3260 mips_multu): Delete.
3261 * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3262 Change target constraint to "ka".
3263 Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3264 (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3265 Emit the accumulator destination when ISA_HAS_DSP_MULT.
3266 (<u>msubsidi4): Add comments. Test ISA_HAS_DSP.
3267 Emit the accumulator destination when ISA_HAS_DSP_MULT.
3268 (<u>maddsidi4): Likewise.
3269 * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3270 msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3272 2010-11-04 Paul Koning <ni1d@arrl.net>
3274 * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3276 2010-11-04 Paul Koning <ni1d@arrl.net>
3278 * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3280 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
3282 Fixed using the Objective-C 2.0 dot-syntax with class names.
3283 * c-parser.c (c_parser_next_token_starts_declspecs): In
3284 Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3285 (c_parser_next_token_starts_declaration): Same.
3286 (c_parser_postfix_expression): Parse the Objective-C 2.0
3287 dot-syntax with a class name.
3289 2010-11-04 Pat Haugen <pthaugen@us.ibm.com>
3291 * final.c (compute_alignments): Compute/free loop info all the time.
3292 * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3293 * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3294 * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3295 * config/rs6000/rs6000.c (cfgloop.h): Include.
3296 (can_override_loop_align): New.
3297 (rs6000_option_override_internal): Set it.
3298 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3299 (rs6000_loop_align): New function.
3300 (rs6000_loop_align_max_skip): Likewise.
3302 2010-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3305 * collect2.c (main): Print --help output to stdout. Do not
3306 exit right away, so ld --help is appended. Add empty lines
3307 to separate output suitably.
3309 2010-11-04 Jakub Jelinek <jakub@redhat.com>
3311 PR tree-optimization/46233
3312 * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3313 after calling analyze_function, not before.
3316 * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3317 instead of build_va_arg_indirect_ref.
3318 * config/spu/spu.c (spu_va_start): Likewise.
3319 * config/s390/s390.c (s390_va_start): Likewise.
3321 2010-11-03 Uros Bizjak <ubizjak@gmail.com>
3324 * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3325 if the innermode is not vector mode, determine the mode of a subreg
3326 by using mode_for_size of inner_size.
3328 2010-11-04 Richard Guenther <rguenther@suse.de>
3330 PR rtl-optimization/46183
3331 * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3332 (execute_rtl_pre): Likewise.
3333 (execute_rtl_hoist): Likewise.
3335 2010-11-04 Richard Guenther <rguenther@suse.de>
3337 PR tree-optimization/46068
3338 * ipa-split.c (consider_split): Remove gcc_unreachable.
3340 2010-11-04 Richard Guenther <rguenther@suse.de>
3342 * tree-nested.c (build_addr): Use build_fold_addr_expr.
3344 2010-11-04 Richard Guenther <rguenther@suse.de>
3346 PR tree-optimization/45991
3347 * gimplify.c (force_gimple_operand_1): Use the provded test
3348 function in the initial test.
3350 2010-11-04 Jeff Law <law@redhat.com>
3352 * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3353 of readonly memory equivalances for const/pure calls.
3355 2010-11-04 Richard Guenther <rguenther@suse.de>
3357 PR tree-optimization/45733
3358 * tree-vect-stmts.c (reverse_vec_elements): Honor the
3359 permute builtins function return type.
3361 2010-11-04 Joern Rennecke <amylaar@spamcop.net>
3364 * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3365 as an index, check it is not INVALID_REGNUM.
3368 * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3370 * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3373 * function.c (thread_prologue_and_epilogue_insns): Add
3374 ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3377 * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3380 * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3381 (pdp11_preferred_reload_class): Rename class to rclass.
3382 (pdp11_preferred_output_reload_class): Likewise.
3383 * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3385 (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3388 * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3389 iteration variables to enum machine_mode.
3392 * config/h8300/h8300.c: Include df.h.
3393 (push, pop): Use add_reg_note.
3394 (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3395 (compute_a_shift_cc): Likewise.
3396 (expand_a_shift): Argument code has type enum rtx_code.
3397 (struct shift_insn): Member cc_valid has type enum attr_cc.
3398 (struct shift_info) <cc_inline, cc_special>: Likewise.
3400 * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3401 (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.