1 2010-11-22 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
4 * gcc.c (main): Don't crash when lto-wrapper program is not found.
6 2010-11-22 Joern Rennecke <amylaar@spamcop.net>
9 * config/picochip/picochip.c (picochip_secondary_reload): Make static.
10 * config/picochip/picochip-protos.h: Don't include "target.h" .
11 (picochip_secondary_reload): Don't declare.
13 2010-11-22 H.J. Lu <hongjiu.lu@intel.com>
16 * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
17 (source_dot_c_frul): Likewise.
19 2010-11-22 Basile Starynkevitch <basile@starynkevitch.net>
21 * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
23 2010-11-22 Paolo Bonzini <bonzini@gnu.org>
26 * Makefile.in (fwprop.o) Add sparseset.h.
27 * fwprop.c: Include sparseset.h
28 (struct find_occurrence_data, find_occurrence_callback,
29 find_occurrence): Remove.
30 (active_defs, active_defs_check, register_active_defs,
31 update_df_init, update_uses): New.
33 (try_fwprop_subst, forward_propagate_asm): Add calls to
34 update_df_init and update_df.
35 (fwprop_init): Allocate active_defs and active_defs_check.
36 (fwprop_done): Free them.
37 (fwprop, fwprop_addr): Adjust comments.
38 * df.h (df_uses_create): Declare.
39 * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
40 (df_ref_create): Return result of df_ref_create_structure directly.
41 (df_ref_create_structure): Call df_install_ref_incremental when
42 no collection_rec is passed.
43 (df_ref_record): Do not create multiword hard reg info when no
44 collection_rec is passed.
45 (df_uses_create): New.
47 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
50 * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
53 2010-11-22 Richard Guenther <rguenther@suse.de>
55 * gimple-fold.c (maybe_fold_reference): When canonicalizing
56 MEM_REFs, preserve volatileness.
57 * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
60 2010-11-22 Richard Guenther <rguenther@suse.de>
62 * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
64 2010-11-22 Alexander Monakov <amonakov@ispras.ru>
66 PR rtl-optimization/45652
67 * alias.c (get_reg_base_value): New.
68 * rtl.h (get_reg_base_value): Add prototype.
69 * sel-sched.c (init_regs_for_mode): Use it. Don't use registers with
70 non-null REG_BASE_VALUE for renaming.
72 2010-11-22 Jeremie Salvucci <jeremie.salvucci@free.fr>
73 Basile Starynkevitch <basile@starynkevitch.net>
75 * gengtype.c: Include xregex.h and obstack.h
76 Added comments about role of get_output_file_with_visibility and
77 our regexpr machinery.
78 (frul_actionrout_t, struct file_rule_st): New.
79 (hader_dot_h_frul, source_dot_c_frul): New functions.
80 (NULL_REGEX, NULL_FRULACT): New.
82 (matching_file_name_substitute): New function.
83 (get_output_file_with_visibility): Updated comments and rewritten
84 to use the new files_rules machinery.
86 * Makefile.in (XREGEX_H): Added variable.
87 (build/gengtype.o): Added dependencies for xregex.h and obstack.h
89 2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
91 * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
93 2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
95 * target.def (conditional_register_usage): Define.
96 * reginfo.c (init_reg_sets_1): Call
97 targetm.conditional_register_usage.
98 * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
99 * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
100 for making it a hook.
101 * doc/tm.texi: Regenerate.
102 * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
103 * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
105 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
106 * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
107 * config/arc/arc.c (arc_conditional_register_usage): ...here.
109 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
110 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
111 * config/arm/arm.c (arm_conditional_register_usage): ...here.
113 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
114 * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
115 * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
116 * config/bfin/bfin.c (conditional_register_usage): Move code into...
117 (bfin_conditional_register_usage): ...here. New function.
118 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
119 * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
120 * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
121 * config/cris/cris.c (cris_conditional_register_usage): Make static.
122 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
123 * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
124 * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
125 * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
126 * config/frv/frv.c (frv_conditional_register_usage): Make static.
127 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
128 * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
129 * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
131 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
132 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
133 * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
134 * config/i386/i386.c (ix86_conditional_register_usage): Make static.
135 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
136 * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
137 * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
138 * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
139 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
140 * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
141 * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
143 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
144 * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
145 * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
147 * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
149 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
150 * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
151 * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
152 * config/mep/mep.c (mep_conditional_register_usage): Make static.
153 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
154 * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
155 * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
156 * config/mips/mips.c (mips_conditional_register_usage): Make static.
157 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
158 * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
159 * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
160 * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
161 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
162 * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
163 * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
164 ...here. New function.
165 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
166 * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
167 * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
168 * config/pa/pa.c (pa_conditional_register_usage): ...here.
170 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
171 * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
172 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
174 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
175 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
176 * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
178 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
180 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
181 * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
182 * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
183 * config/rx/rx.c (rx_conditional_register_usage): Make static.
184 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
185 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
186 * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
187 * config/s390/s390.c (s390_conditional_register_usage): Make static.
188 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
189 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
190 * config/score/score.c (score_conditional_register_usage): ...here.
192 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
193 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
194 * config/sh/sh.c (sh_conditional_register_usage): ...here.
196 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
197 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
198 * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
200 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
201 * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
202 * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
203 * config/spu/spu.c (spu_conditional_register_usage): Make static.
204 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
205 * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
206 * config/v850/v850.c (v850_conditional_register_usage): ...here.
208 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
210 2010-11-21 Jan Hubicka <jh@suse.cz>
211 Dominique d'Humieres <dominiq@lps.ens.ft>
214 * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
215 finalize external decls.
217 2010-11-21 Joseph Myers <joseph@codesourcery.com>
219 * system.h (strerror): Poison.
221 2010-11-21 Richard Henderson <rth@redhat.com>
223 * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
226 2010-11-21 Richard Henderson <rth@redhat.com>
228 PR rtl-optimization/46571
229 * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
230 (compute_hash_table_work): Use NONDEBUG_INSN_P.
232 2010-11-21 Paul Koning <ni1d@arrl.net>
234 * config/mips/pdp11.md (negsi2): Fix wrong code.
236 2010-11-21 Paul Koning <ni1d@arrl.net>
238 * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
239 * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
241 2010-11-21 Eric Botcazou <ebotcazou@adacore.com>
243 * config/mips/mips.c (machine_function): Rename load_label_length to
244 load_label_num_insns.
245 (mips_load_label_length): Rename to...
246 (mips_load_label_num_insns): ...this. Adjust to first renaming.
247 (mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
249 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
252 * config/alpha/predicates.md (direct_call_operand): Return false
253 for !TARGET_SMALL_TEXT targets.
255 2010-11-20 Joseph Myers <joseph@codesourcery.com>
257 * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
258 HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
259 (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
260 * doc/tm.texi: Regenerate.
261 * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
262 HANDLE_PRAGMA_WEAK): Poison.
263 * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
264 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
265 * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
266 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
267 * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
268 * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
269 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
270 * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
271 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
272 * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
273 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
274 * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
275 * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
276 * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
277 * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
278 (HANDLE_PRAGMA_WEAK): Don't undefine.
279 * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
280 * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
281 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
282 * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
283 * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
284 (HANDLE_PRAGMA_WEAK): Don't undefine.
285 * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
286 * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
287 (HANDLE_PRAGMA_PACK): Don't undefine.
288 * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
289 * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
290 * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
291 * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
292 * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
293 * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
294 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
295 * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
296 * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
297 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
298 * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
299 * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
300 * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
301 * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
302 * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
303 * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
304 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
306 2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
309 * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
310 * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
311 * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
313 2010-11-20 Jan Hubicka <jh@suse.cz>
315 * cgraph.c (ld_plugin_symbol_resolution_names): New.
316 (dump_cgraph_node): Dump resolution.
317 * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
318 (cgraph_comdat_can_be_unshared_p): Dclare.
319 * lto-streamer-out.c (produce_symtab): Use
320 cgraph_comdat_can_be_unshared_p.
321 * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
322 (cgraph_comdat_can_be_unshared_p): New function based on logic
323 in cgraph_externally_visible_p.
324 (cgraph_externally_visible_p): Use it.
325 (varpool_externally_visible_p): Virtual tables can be unshared.
326 * varpool.c (dump_varpool_node): Dump resolution.
328 2010-11-20 Jan Hubicka <jh@suse.cz>
330 * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
332 2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
335 * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
336 (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
338 (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
339 (install-strip): New target.
340 (STRIPPROG): New variable, exported if STRIP is set.
341 * doc/install.texi (Final install): Minor markup and code style
342 fixes. Document install-strip target.
344 2010-11-20 Paul Koning <ni1d@arrl.net>
346 * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
347 pdp11_regno_reg_class): New functions.
348 * config/pdp11/pdp11.md (define_constants): Add register numbers.
349 * config/pdp11/pdp11.c (pdp11_regno_reg_class,
350 pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
352 * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
353 frame pointer and argument pointer pseudo-registers.
354 (ARG_POINTER_REGNUM): Define.
355 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
357 (FIRST_PARM_OFFSET): Update for argument pointer.
358 (INITIAL_FRAME_POINTER_OFFSET): Delete.
359 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
360 (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
361 frame pointer and argument pointer.
363 2010-11-20 Jakub Jelinek <jakub@redhat.com>
366 * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
367 when looking for immediate uses.
369 PR tree-optimization/45830
370 * stmt.c (expand_switch_using_bit_tests_p): New function.
371 (expand_case): Use it.
372 * tree.h (expand_switch_using_bit_tests_p): New prototype.
373 * tree-switch-conversion.c (struct switch_conv_info): Add
374 bit_test_uniq, bit_test_count and bit_test_bb fields.
375 (check_range): Fix a comment.
376 (check_process_case): Compute bit_test_uniq and bit_test_count.
377 (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
379 (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
380 (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
381 (array_value_type): New function.
382 (build_one_array): Use it, if it returned different type,
383 fold_convert all constructor fields and convert back to the
384 wider type in the generated code.
385 (process_switch): Initialize bit_test_uniq, bit_test_count and
386 bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p
389 2010-11-19 Michael Matz <matz@suse.de>
391 PR tree-optimization/46077
392 * tree-chrec.c (eq_evolutions_p): Accept some expressions.
394 2010-11-19 Anatoly Sokolov <aesok@post.ru>
396 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
397 * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
399 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
401 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
403 * mode-switching.c (optimize_mode_switching): Use
404 FOR_BB_INSNS instead of open-coded loop.
405 * cfgrtl.c (redirect_branch_edge): Ditto.
407 2010-11-19 Joern Rennecke <amylaar@spamcop.net>
410 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
411 to accomodate 32 bit HOST_WIDE_INT.
412 (m68hc11_emit_logical): Remove unused variable insn.
413 (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
414 this_insn_uses_iy before use.
417 * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
419 2010-11-19 Joseph Myers <joseph@codesourcery.com>
422 * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
423 * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
425 2010-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
427 * doc/extend.texi (Function attributes): Document PowerPC target
428 attributes that are supported.
429 (Pragmas): Document that PowerPC now supports target pragmas.
431 * doc/options.texi (TargetVariable): Document TargetVariable,
432 HeaderInclude, and SourceInclude.
434 * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
435 mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
438 * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
439 SourceInclude directives. Fix a cut+paste error with target save
440 enum variables. Sort enums in the structures after ints and
442 * opth-gen.awk: Ditto.
444 * configure.ac: Add support for HeaderInclude and SourceInclude option
445 directives to add the appropriate files to the dependency lists.
446 * configure: Regenerate.
447 * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
448 (OPTIONS_C_EXTRA): New variable for SourceInclude.
449 (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
450 (options.o): Add $(OPTIONS_C_EXTRA) dependency.
451 (gcc-options.o): Ditto.
452 * opt-include.awk: New awk script to handle HeaderInclude and
455 * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
456 gets saved in the target options.
457 * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
458 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
459 (-mprototype): Ditto.
462 (-msecure-plt): Ditto.
464 * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
465 (-mpowerpc-gfxopt): Ditto.
480 (-mno-update): Ditto.
481 (-mavoid-indexed-addresses): Ditto.
482 (-mtls-markers): Ditto.
483 (-msched-epilog): Ditto.
484 (-msched-prolog): Ditto.
485 (-maix-struct-return): Ditto.
486 (-msvr4-struct-return): Ditto.
487 (-mxl-compat): Ditto.
488 (-mrecip-precision): Ditto.
489 (-mfp-in-toc): Ditto.
490 (-msum-in-toc): Ditto.
492 (-mblock-move-inline-limit=): Ditto.
496 (-mgen-cell-microcode): Ditto.
497 (-mwarn-cell-microcode): Ditto.
498 (-mwarn-altivec-long): Ditto.
499 (-mprioritize-restricted-insns=): Ditto.
500 (-msingle-float): Ditto.
501 (-mdouble-float): Ditto.
502 (-msimple-fpu): Ditto.
503 (-mxilinx-fpu): Ditto.
504 * config/rs6000/aix64.opt (-mpe): Ditto.
506 * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
507 (rs6000_cpu): Move variable to be a target variable. Rename
508 cmodel to rs6000_current_cmodel because of macro conflict. Merge
509 -mdebug=<xxx> variables into a single int.
510 (rs6000_always_hint): Ditto.
511 (rs6000_sched_groups): Ditto.
512 (rs6000_align_branch_targets): Ditto.
513 (rs6000_sched_costly_dep): Ditto.
514 (rs6000_sched_insert_nops): Ditto.
515 (rs6000_long_double_type_size): Ditto.
516 (rs6000_ieeequad): Ditto.
517 (rs6000_altivec_abi): Ditto.
519 (rs6000_spe_abi): Ditto.
520 (rs6000_float_gprs): Ditto.
521 (rs6000_darwin64_abi): Ditto.
522 (can_override_loop_align): Ditto.
523 (rs6000_sdata): Ditto.
524 (rs6000_tls_size): Ditto.
525 (rs6000_current_abi): Ditto.
526 (rs6000_traceback): Ditto.
527 (rs6000_alignment_flags): Ditto.
528 (rs6000_current_cmodel): Ditto.
529 (rs6000_recip_control): Ditto.
530 (rs6000_cpu_index): Ditto.
531 (rs6000_tune_index): Ditto.
532 (rs6000_debug): Ditto.
533 (rs6000_target_flags_explict): Ditto.
535 * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
538 * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
539 cmodel. Change all uses.
541 * config/rs6000/rs6000.c (rs6000_always_hint): Move to
542 rs6000.opt. Combine -mdebug=<xxx> variables into a single int.
543 Rename cmodel to rs6000_current_cmodel.
544 (rs6000_sched_groups): Ditto.
545 (rs6000_align_branch_targets): Ditto.
546 (rs6000_sched_costly_dep): Ditto.
547 (rs6000_sched_insert_nops): Ditto.
548 (rs6000_long_double_type_size): Ditto.
549 (rs6000_ieeequad): Ditto.
550 (rs6000_altivec_abi): Ditto.
552 (rs6000_spe_abi): Ditto.
553 (rs6000_float_gprs): Ditto.
554 (rs6000_darwin64_abi): Ditto.
555 (can_override_loop_align): Ditto.
556 (rs6000_sdata): Ditto.
557 (rs6000_tls_size): Ditto.
558 (rs6000_current_abi): Ditto.
559 (rs6000_traceback): Ditto.
560 (rs6000_alignment_flags): Ditto.
561 (rs6000_current_cmodel): Ditto.
562 (rs6000_recip_control): Ditto.
563 (rs6000_cpu_index): Ditto.
564 (rs6000_tune_index): Ditto.
565 (rs6000_debug): Ditto.
566 (rs6000_target_flags_explict): Ditto.
567 (rs6000_sched_insert_nops_str): Make static.
568 (rs6000_sched_costly_dep_str): Ditto.
569 (rs6000_recip_name): Ditto.
570 (rs6000_abi_name): Ditto.
571 (rs6000_sdata_name): Ditto.
572 (enum rs6000_traceback_name): Move to rs6000-opts.h.
573 (rs6000_parse_tls_size_option): Delete.
574 (rs6000_valid_attribute_p): New function for target attributes and
576 (rs6000_function_specific_save): Ditto.
577 (rs6000_function_specific_restore): Ditto.
578 (rs6000_function_specific_print): Ditto.
579 (rs6000_can_inline_p): Ditto.
580 (rs6000_set_current_function): Ditto.
581 (rs6000_inner_target_options): Ditto.
582 (rs6000_debug_target_options): Ditto.
583 (rs6000_pragma_target_parse): Ditto.
584 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
585 attributes and pragmas.
586 (TARGET_OPTION_SAVE): Ditto.
587 (TARGET_OPTION_RESTORE): Ditto.
588 (TARGET_OPTION_PRINT): Ditto.
589 (TARGET_CAN_INLINE_P): Ditto.
590 (TARGET_SET_CURRENT_FUNCTION): Ditto.
591 (POWER_MASKS): Move to file level scope from the
592 rs6000_option_override_internal function.
593 (POWERPC_MASKS): Ditto.
594 (ISA_*_MASKS): Ditto.
595 (struct rs6000_ptt): Ditto.
596 (processor_target_table): Ditto.
597 (rs6000_cpu_name_lookup): Map cpu name to an index in
598 processor_target_table.
599 (rs6000_debug_reg_global): Print more information on processor
600 options for -mdebug=reg.
601 (rs6000_init_hard_regno_mode_ok): Add support for target
602 attributes and pragmas. Merge all -mdebug=<xxx> fields into one.
603 Allow -mdebug=val1,val2. Rename cmodel variable.
604 (rs6000_option_override_internal): Ditto.
605 (rs6000_option_override): Ditto.
606 (rs6000_handle_option): Ditto.
607 (rs6000_conditional_register_usage): Add debug trace message.
608 (struct rs6000_opt_mask): New for target attribute/pragma support.
609 (rs6000_opt_masks): Ditto.
610 (struct rs6000_opt_var): Ditto.
611 (rs6000_opt_vars): Ditto.
612 (rs6000_previous_function): Ditto.
614 * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
615 wasn't already included.
616 (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
617 (enum processor_type): Ditto.
619 (enum fpu_type_t): Ditto.
621 (enum rs6000_dependence_cost): Ditto.
622 (enum rs6000_nop_insertion): Ditto.
623 (enum group_termination): Ditto.
624 (rs6000_long_double_type_size): Ditto.
625 (rs6000_ieeequad): Ditto.
626 (rs6000_altivec_abi): Ditto.
627 (rs6000_spe_abi): Ditto.
629 (rs6000_float_gprs): Ditto.
630 (rs6000_alignment_flags): Ditto.
631 (rs6000_sched_insert_nops): Ditto.
632 (enum rs6000_vector): Ditto.
633 (enum rs6000_abi): Ditto.
634 (rs6000_current_opt): Ditto.
635 (rs6000_debug_*): Delete.
636 (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
637 (TARGET_DEBUG*): Ditto.
639 * config/rs6000/rs6000-opts.h: New header file to define the enums
640 that are used in target variables that are now defined in rs6000.opt.
642 * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
644 (rs6000_sdata): Ditto.
645 (rs6000_abi_name): Delete.
646 (rs6000_sdata_name): Ditto.
647 (rs6000_tls_size_string): Ditto.
649 2010-11-19 Joseph Myers <joseph@codesourcery.com>
651 * common.opt (debug_struct_ordinary, debug_struct_generic): New
653 * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
654 should_emit_struct_debug): Move from opts.c.
655 * flag-types.h (enum debug_struct_file): Move from opts.c.
656 * flags.h (should_emit_struct_debug): Remove.
657 (base_of_path): Declare.
658 (set_struct_debug_option): Add gcc_options parameter.
659 * optc-gen.awk, opth-gen.awk: Handle array variables.
660 * opts.c (enum debug_struct_file, debug_struct_ordinary,
661 debug_struct_generic): Remove.
662 (set_struct_debug_option): Add gcc_options parameter.
663 (base_of_path): Remove static.
664 (main_input_basename, main_input_baselength, matches_main_base,
665 dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
667 * toplev.c (main_input_basename, main_input_baselength): Define
669 * toplev.h (main_input_basename, main_input_baselength): Declare
672 2010-11-19 Joseph Myers <joseph@codesourcery.com>
674 * common.opt (flag_instrument_functions_exclude_functions,
675 flag_instrument_functions_exclude_files): New Variable definitions.
676 * flags.h (flag_instrument_functions_exclude_p): Don't declare.
677 * gimplify.c (char_p): Declare type and vectors.
678 (flag_instrument_functions_exclude_p): Moved from opts.c. Make static.
679 * opts.c (flag_instrument_functions_exclude_functions,
680 flag_instrument_functions_exclude_files): Remove.
681 (add_comma_separated_to_vector): Take void **.
682 (flag_instrument_functions_exclude_p): Move to gimplify.c.
683 (common_handle_option): Use options structure for
684 -finstrument-functions-exclude- options.
686 2010-11-19 Joseph Myers <joseph@codesourcery.com>
688 * doc/options.texi (Var): Document effects of Defer.
690 * opt-functions.awk (var_type, var_set): Handle deferred options.
691 * opts-common.c (set_option): Handle CLVC_DEFER.
692 * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
693 fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
694 fstack-limit-symbol=): Mark as deferred.
695 * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
697 (print_filtered_help): Don't report state of CLVC_DEFER options.
698 (common_handle_option): Move code for OPT_fcall_used_,
699 OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
700 OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
701 OPT_fstack_limit_symbol_ to opts-global.c.
702 (option_enabled, get_option_state): Handle CLVC_DEFER.
703 * opts.h: Include vec.h.
704 (enum cl_var_type): Add CLVC_DEFER.
705 (cl_deferred_option): Define type and vectors.
706 (handle_common_deferred_options): Declare.
707 * opts-global.c: New.
708 * toplev.c (toplev_main): Call handle_common_deferred_options
709 * Makefile.in (OPTS_H): Include $(VEC_H).
710 (OBJS-common): Include opts-global.o.
711 (opts.o): Update dependencies.
712 (opts-global.o): Add dependencies.
714 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
716 * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
717 to objc_declare_protocols.
719 2010-11-19 Richard Guenther <rguenther@suse.de>
722 * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
723 IDENTIFIERs do not stream TREE_TYPE.
724 * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
726 2010-11-19 Christian Borntraeger <borntraeger@de.ibm.com>
728 * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
730 2010-11-19 Jakub Jelinek <jakub@redhat.com>
733 * dwarf2out.c (const_ok_for_output_1): Don't complain about
734 non-delegitimized TLS UNSPECs.
736 2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu>
737 Ian Lance Taylor <iant@google.com>
739 * config/darwin-c.c (darwin_additional_format_types): Export.
741 2010-11-18 Paul Koning <ni1d@arrl.net>
743 * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
746 2010-11-18 Paul Koning <ni1d@arrl.net>
748 * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
749 * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
750 * config/pdp11/pdp11.opt (-mabshi): Delete.
752 2010-11-19 Mingjie Xing <mingjie.xing@gmail.com>
754 * resource.h (struct resources): Fix typo in the comment.
756 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
759 * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
761 2010-11-18 Richard Henderson <rth@redhat.com>
764 * function.c (maybe_copy_prologue_epilogue_insn): Rename from
765 maybe_copy_epilogue_insn; handle prologue insns as well.
766 * rtl.h, cfglayout.c: Update for rename.
767 * recog.c (peep2_attempt): Copy prologue/epilogue data for
768 RTX_FRAME_RELATED_P insns.
770 2010-11-18 Jakub Jelinek <jakub@redhat.com>
773 * builtins.c (fold_builtin_printf): Don't copy and modify string
774 before build_string_literal, instead modify what
775 build_string_literal returned.
777 2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
780 * c-typeck.c (build_unary_op): Call build_real_imag_expr for
781 REALPART_EXPR and IMAGPART_EXPR.
783 2010-11-18 Richard Guenther <rguenther@suse.de>
785 PR tree-optimization/46172
786 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
788 (slpeel_tree_peel_loop_to_edge): Call it.
790 2010-11-18 Jeff Law <law@redhat.com>
792 PR middle-end-optimization/46297
793 * postreload.c (reload_combine_note_store): Deal with embedded
794 side effects in MEM expressions.
796 2010-11-18 Richard Guenther <rguenther@suse.de>
799 * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
800 when checking is not enabled.
802 2010-11-18 Richard Guenther <rguenther@suse.de>
805 * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
807 (gimple_register_canonical_type): Also cache the canoncial type
808 for non type leaders.
810 2010-11-18 Richard Guenther <rguenther@suse.de>
812 * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
814 2010-11-18 Alexander Monakov <amonakov@ispras.ru>
817 * sel-sched-ir.c (init_expr): Use the correct type for
819 * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
821 2010-11-17 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
823 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
824 as well as -mrelocatable at the same time.
826 2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com>
829 * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
830 Call the clz builtin.
832 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
833 Steve Ellcey <sje@cup.hp.com>
836 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
837 if section attribute used.
839 2010-11-17 Jan Hubicka <jh@suse.cz>
841 * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
842 expand errno setting variant when optimizing for size.
844 2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
846 * postreload.c (reload_combine): Call control_flow_insn_p only once.
847 Reverse backward loop. Fix formatting issues.
849 2010-11-17 Paolo Bonzini <bonzini@gnu.org>
851 * c-parser.c (c_token_is_qualifier,
852 c_parser_next_token_is_qualifier): New.
853 (c_parser_declaration_or_fndef, c_parser_struct_declaration):
854 Improve error message on specs->tagdef_seen_p.
855 (c_parser_struct_or_union_specifier): Improve error recovery.
856 (c_parser_declspecs): Move exit condition on C_ID_ID early.
857 Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
858 using c_parser_next_token_is_qualifier; extend it to cover
859 a ctsk_tagdef typespec and !typespec_ok in general.
861 2010-11-17 Richard Guenther <rguenther@suse.de>
863 * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
864 (gimple_mod_pow2_value_transform): Likewise.
865 (gimple_mod_subtract_transform): Likewise.
867 2010-11-17 Richard Guenther <rguenther@suse.de>
870 * gimple.c (gimple_register_canonical_type): Make sure to only
871 make type leaders canonical types.
873 2010-11-17 Michael Matz <matz@suse.de>
875 * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
876 TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
877 TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
878 TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
879 * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
880 (pass_build_ssa): ... but here.
881 * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
882 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
883 * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
884 * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
885 * predict.c (rebuild_frequencies): Ditto.
886 * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
887 * emit-rtl.c (verify_rtl_sharing): Ditto.
888 * tree-cfgcleanup.c (repair_loop_structures): Ditto.
889 * tree-ssa-live.c (remove_unused_locals): Ditto.
890 * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
891 * tree-ssa.c (pass_early_warn_uninitialized,
892 execute_update_addresses_taken, pass_update_address_taken): Ditto.
893 * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
894 pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
895 * passes.c (pass_postreload, execute_todo): Ditto.
896 * tree-ssanames.c (pass_release_ssa_names): Ditto.
898 2010-11-17 Joseph Myers <joseph@codesourcery.com>
900 * doc/invoke.texi (-dy): Remove.
901 * langhooks-def.h (lhd_do_nothing_i): Don't declare.
902 (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
903 * langhooks.c (lhd_do_nothing_i): Remove.
904 * langhooks.h (lang_hooks.parse_file): Take no arguments.
905 * toplev.c (set_yydebug): Remove.
906 (compile_file): Update call to lang_hooks.parse_file.
907 (decode_d_option): Don't handle -dy.
909 2010-11-17 Jakub Jelinek <jakub@redhat.com>
911 PR rtl-optimization/46440
912 * combine.c (update_cfg_for_uncondjump): When changing
913 an indirect jump into unconditional jump, remove BARRIERs
916 2010-11-17 Joseph Myers <joseph@codesourcery.com>
918 * opts.c (target_handle_option): Do not assert that loc ==
921 2010-11-17 Jakub Jelinek <jakub@redhat.com>
922 Richard Guenther <rguenther@suse.de>
925 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
926 call_may_clobber_ref_p_1): Return true for __sync_* and some
927 OpenMP builtins that act as threading barriers.
929 2010-11-17 Richard Guenther <rguenther@suse.de>
931 PR tree-optimization/46498
932 * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
934 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
936 * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
937 (xtensa_function_arg_boundary): ...this.
938 * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
939 thinko in declaration.
940 (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
941 number of parameters to picochip_function_arg_boundary.
942 (picochip_arg_advance): Likewise.
944 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
947 * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
948 under check for type.
950 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
952 * ifcvt.c (dead_or_predicable): Fix typo.
954 2010-11-16 Richard Henderson <rth@redhat.com>
956 * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
957 * config/s390/s390.opt (mfused-madd): Remove.
958 * config/s390/s390.c (s390_rtx_costs): Handle FMA.
959 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
960 * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
961 (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
963 2010-11-16 Richard Henderson <rth@redhat.com>
965 * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
966 * config/rs6000/rs6000.opt (mfused-madd): Remove.
967 * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
968 (*altivec_vmaddfp_1): Remove.
969 (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
970 (altivec_mulv4sf3): Expand to FMA directly.
971 (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
972 (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
973 * config/rs6000/paired.md (paired_madds0): Use FMA.
974 (paired_madds1): Likewise.
975 (*paired_madd): Rename from paired_madd; use FMA.
976 (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
977 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
978 consider TARGET_FUSED_MADD wrt rs6000_recip_control.
979 (bdesc_3arg): Update CODE_FOR_* for pattern renames.
980 (rs6000_emit_madd): Use fma_optab.
981 (rs6000_emit_msub): Use fms_optab.
982 (rs6000_emit_nmsub): Expand the FMA pattern directly.
983 * config/rs6000/rs6000.md (FMA_F): New mode iterator.
984 (*fmasf4_fpr): Rename from fmasf4_fpr.
985 (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
986 (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
987 (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
988 (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
989 (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
990 (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
991 (*fmadf4_fpr): Rename from fmadf4_fpr.
992 (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
993 (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
994 (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
995 (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
996 (fmasf4, fmadf4): Macroize into...
997 (fma<FMA_F>4): ... here.
998 (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
999 (nfma<FMA_F>4, nfms<FMA_F>4): New.
1000 * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1002 * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1003 (*vsx_fmadd<mode>4_1): Remove.
1004 (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1005 (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1006 (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1007 (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1008 (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1009 (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1010 (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1012 2010-11-16 Richard Henderson <rth@redhat.com>
1014 * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1015 (fmasf4, fnmadf4, fnmasf4): Likewise.
1016 (unnamed plus+mult insns and splitters): Delete.
1018 2010-11-16 Richard Henderson <rth@redhat.com>
1020 * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1021 (fnma<VSF>4): Rename from fnms_<VSF>.
1022 (fms<VSF>4): Rename from fms_<VSF>.
1023 (fma<VDF>4): Rename from fma_<VDF>.
1024 (fms<VDF>4): Rename from fms_<VDF>.
1025 (nfma<VDF>4): Rename from fnma_<VDF>.
1026 (nfms<VDF>4): Rename from fnms_<VDF>.
1027 (fnma<VDF>4, fnms<VDF>4): New expanders.
1028 (floatunsdisf2): Update for the renames.
1029 (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1030 * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1032 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1034 PR rtl-optimization/46490
1035 * combine.c (expand_compound_operation): Fix thinko.
1037 2010-11-16 Richard Henderson <rth@redhat.com>
1040 * recog.c (peep2_attempt): Convert frame-related info when possible.
1041 (peep2_fill_buffer): Allow frame-related insns into the buffer.
1042 (peephole2_optimize): Allow peep2_attempt to fail.
1044 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1046 PR rtl-optimization/46315
1047 * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1048 * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1050 * dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
1051 (remove_reg_equal_equiv_notes_for_defs): ...this.
1052 (delete_unmarked_insns): Adjust to above renaming.
1053 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1054 referring to registers set in the insns being moved, if any.
1056 * df-core.c (df_ref_dump): New function extracted from...
1057 (df_refs_chain_dump): ...here. Call it.
1058 (df_regs_chain_dump): Likewise.
1059 * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1060 * df-scan.c (df_scan_start_dump): Likewise. Fix long line.
1062 2010-11-16 Andreas Schwab <schwab@linux-m68k.org>
1064 PR rtl-optimization/46395
1065 * postreload.c (reload_combine): Invalidate register use
1066 information on all control flow insns.
1068 * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1069 LABEL_REF in UNSPEC operand.
1071 2010-11-16 Jan Hubicka <jh@suse.cz>
1073 * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1074 when !flag_toplevel_reorder do not remove unless variable is
1075 COMDAT or ARTIFICIAL.
1076 * ipa.c (varpool_can_remove_if_no_refs): ... here.
1077 (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1078 * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1079 * varpool.c (decide_is_variable_needed): Do not handle visibility
1081 (varpool_finalize_decl): Likewise.
1082 (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1083 update outdated comment on DECL_RTL_SET_P check.
1085 2010-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1087 * config/sol2.h (NM_FLAGS): Define.
1088 * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1089 * doc/tm.texi: Update.
1091 2010-11-16 Nick Clifton <nickc@redhat.com>
1093 * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1094 (msubsf4): Rename to fmssf4, and use fma.
1095 (nmaddsf4): Rename to fnmasf4 and use fma.
1096 (nmsubsf4): Rename to fnmssf4 and use fma.
1098 2010-11-16 Joern Rennecke <amylaar@spamcop.net>
1101 * config/score/score3.c (score3_return_in_memory): Constify arguments.
1102 (score3_in_small_data_p, score3_function_value): Likewise.
1103 (score3_trampoline_init): Use LCT_NORMAL.
1104 (score3_print_operand): Initialize code as UNKNOWN.
1105 * config/score/predicates.md (score_load_multiple_operation):
1106 Remove unused variable.
1107 (score_store_multiple_operation): Likewise.
1108 * config/score/score7.c (score7_return_in_memory): Constify arguments.
1109 (score7_in_small_data_p, score7_function_value): Likewise.
1110 (score7_trampoline_init): Use LCT_NORMAL.
1111 (score7_print_operand): Initialize code as UNKNOWN.
1112 * config/score/score3.h (score3_return_in_memory): Update prototype.
1113 (score3_in_small_data_p, score3_function_value): Likewise.
1114 * config/score/score-protos.h (score_function_value): Likewise.
1115 * config/score/score7.h (score7_return_in_memory): Update prototype.
1116 (score7_in_small_data_p, score7_function_value): Likewise.
1117 * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1118 (score_return_in_memory, score_pass_by_reference): Constify arguments.
1119 (score_output_mi_thunk, score_function_prologue): Don't return a value.
1120 (score_function_epilogue, score_in_small_data_p): Likewise.
1121 (score_option_override, score_asm_trampoline_template): Likewise.
1122 (score_trampoline_init, score_print_operand): Likewise.
1123 (score_print_operand_address, score_prologue): Likewise.
1124 (score_epilogue, score_call, score_call_value): Likewise.
1125 (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1126 (score_function_arg_advance): Likewise. Make static.
1127 (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1128 (score_function_arg, score_legitimate_address_p): Make static.
1129 (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1130 * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1131 * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1132 Allow (W) == HOST_BITS_PER_WIDE_INT.
1135 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1136 * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1138 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1140 * config/arc/arc.c: Delete pasto.
1141 * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1143 2010-11-16 Anatoly Sokolov <aesok@post.ru>
1145 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1146 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1147 * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1148 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1149 (mn10300_preferred_reload_class,
1150 mn10300_preferred_output_reload_class): New functions.
1152 2010-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1154 * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1155 (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1156 (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1157 (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1159 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1161 * builtins.c (std_gimplify_va_arg_expr): Use
1162 targetm.calls.function_arg_boundary.
1163 * function.c (assign_parms, locate_and_pad_parm): Likewise.
1164 * calls.c (struct arg_data): Update comment.
1165 * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1166 * target.def (function_arg_boundary): Define.
1167 * targhooks.h (default_function_arg_boundary): Declare.
1168 * targhooks.c (default_function_arg_boundary): Define.
1169 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1170 TARGET_FUNCTION_ARG_BOUNDARY.
1171 (FUNCTION_ARG_BOUNDARY): Delete.
1172 (TARGET_FUNCTION_ARG_BOUNDARY): New.
1173 * doc/tm.texi: Regenerate.
1174 * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1175 * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1176 * config/arc/arc.c (arc_function_arg_boundary): Define.
1177 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1178 * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1179 * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1180 * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1181 (arm_function_arg_boundary): Define.
1182 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1183 * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1184 * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1185 * config/frv/frv.c (frv_function_arg_boundary): Make static.
1186 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1187 * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1188 * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1189 * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1190 (ix86_compat_function_arg_boundary): Take and return unsigned int.
1191 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1192 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1193 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1194 * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1195 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1196 * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1197 * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1198 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1199 * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1200 * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1201 * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1202 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1203 * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1204 * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1205 * config/mips/mips.c (mips_function_arg_boundary): Make static.
1206 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1207 * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1208 * config/pa/pa.c (pa_function_arg_boundary): Define.
1209 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1210 * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1211 * config/picochip/picochip-protos.h
1212 (picochip_get_function_arg_boundary): Delete.
1213 * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1215 (picochip_function_arg_boundary): ...this. Make static.
1216 (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1217 (picochip_arg_advance): Adjust.
1218 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1219 * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1220 * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1221 * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1222 (rs6000_function_arg_boundary): ...this. Make static.
1223 (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1224 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1225 * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1226 * config/rx/rx.c (rx_function_arg_boundary): Define.
1227 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1228 * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1229 * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1230 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1231 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1232 * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1233 * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1234 (xtensa_function_arg_boundary): ...this. Make static.
1235 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1237 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1239 * expr.c (alignment_for_piecewise_move): New function.
1240 (widest_int_mode_for_size): New function.
1241 (move_by_pieces, move_by_pieces_ninsns): Call them.
1242 (can_store_by_pieces, store_by_pieces_1): Likewise.
1244 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1246 * gcc.c (char_p): Define. Define a VEC of it.
1247 (n_linker_options, n_assembler_options, n_preprocessor_options):
1249 (linker_options, assembler_options, preprocessor_options): Convert
1251 (add_preprocessor_option): Adjust.
1252 (add_assembler_option): Adjust.
1253 (add_linker_option): Adjust.
1254 (do_specs_vec): New function.
1255 (do_spec_1): Call it. Adjust for new types.
1257 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1259 * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1260 (sreal.o, statistics.o, stringpool.o): Likewise.
1262 2010-11-16 Richard Guenther <rguenther@suse.de>
1264 PR tree-optimization/44545
1265 * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1266 statements are not reassociatable.
1267 (reassociate_bb): Likewise.
1269 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1271 * bitmap.c: Delete unnecessary includes.
1272 * ebitmap.c: Likewise.
1273 * et-forest.c: Likewise.
1274 * sreal.c: Likewise.
1275 * statistics.c: Likewise.
1276 * stringpool.c: Likewise.
1277 * double-int.c: Add comment for inclusion of tm.h.
1279 2010-11-16 Richard Guenther <rguenther@suse.de>
1281 * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1282 (visit_nary_op): ... this.
1283 (visit_binary_op): Remove.
1284 (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1286 2010-11-16 Richard Guenther <rguenther@suse.de>
1289 * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1291 2010-11-16 Nick Clifton <nickc@redhat.com>
1293 * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1296 2010-11-15 Richard Henderson <rth@redhat.com>
1298 * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1299 WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1302 2010-11-15 Richard Henderson <rth@redhat.com>
1304 * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1305 from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively. Use
1308 2010-11-15 Richard Henderson <rth@redhat.com>
1310 * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1311 and *mulsubsf4 respectively. Use fma rtx_code.
1313 2010-11-15 Joseph Myers <joseph@codesourcery.com>
1315 * gcc.c: Include "vec.h".
1316 (argbuf): Make into a VEC.
1317 (argbuf_length, argbuf_index): Remove.
1318 (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1319 do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1320 compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1321 * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1322 (gcc.o): Depend on $(VEC_H).
1324 2010-11-15 Richard Henderson <rth@redhat.com>
1326 * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1327 via FMA if unsafe math.
1328 (insert_var_expansion_initialization): Handle FMA.
1329 (combine_var_copies_in_loop_exit): Likewise.
1331 2010-11-15 Richard Henderson <rth@redhat.com>
1333 * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1334 * config/ia64/ia64.opt: Remove mfused-madd.
1335 * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1336 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1337 * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1338 * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1339 * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1340 * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1341 (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1342 (fmav2sf4): Rename from fpma; use FMA code.
1343 (fmsv2sf4): Rename from fpms; use FMA code.
1344 (fnmav2sf4): Rename from *fpnma; use FMA code.
1345 * config/ia64/ia64.md (MODE_SDF): New iterator.
1346 (suffix): New mode attribute.
1347 (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1348 (fmssf4): Rename from *fmssf4.
1349 (fnmasf4): Rename from *nfmasf4.
1350 (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1351 (*nmadddf4, *nmadddf4_truncsf): Remove.
1352 (fmsdf4): Rename from *fmsdf4.
1353 (fnmadf4): Rename from *nfmadf4.
1354 (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1355 (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1356 (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1357 (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1358 (fmsxf4): Rename from *fmsxf4.
1359 (fnmaxf4): Rename from *nfmaxf4.
1360 (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1361 (*fnmaxf_trunc_<MODE_SDF>): New.
1363 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1365 PR tree-optimization/46461
1366 * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1369 2010-11-15 Ian Lance Taylor <iant@google.com>
1371 * godump.c: New file.
1372 * common.opt (fdump-go-spec=): New option.
1373 * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1374 (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1375 (TYPE_SYMTAB_IS_DIE): Define.
1376 (struct tree_type): Change GTY for symtab field to use
1377 TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1378 to pick the union field.
1379 * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1380 (dump_go_spec_init): Declare.
1381 * toplev.c (process_options): Handle flag_dump_go_spec.
1382 * debug.c: Include "tree.h".
1383 (do_nothing_debug_hooks): Set tree_type_symtab_field.
1384 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1385 * dbxout.c (dbx_debug_hooks): Likewise.
1386 (xcoff_debug_hooks): Likewise.
1387 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1388 * sdbout.c (sdb_debug_hooks): Likewise. Do not define if
1389 SDB_DEBUGGING_INFO is not defined.
1390 * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1391 (Overall Options): Document -fdump-go-spec.
1392 * Makefile.in (OBJS-common): Add godump.o.
1393 (debug.o): Add dependency on $(TREE_H).
1394 (godump.o): New target.
1395 (GTFILES): Add $(srcdir)/godump.c.
1397 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1400 * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1401 marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1402 style < 0, add REG_FRAME_RELATED_EXPR.
1405 * rtl.h (vt_equate_reg_base_value): New prototype.
1406 * alias.c (vt_equate_reg_base_value): New function.
1407 * var-tracking.c (vt_init_cfa_base): Use it.
1409 2010-11-15 Jan Hubicka <jh@suse.cz>
1410 Diego Novillo <dnovillo@google.com>
1413 * doc/lto.texi: Add.
1414 * doc/gccint.texi: Add reference to lto.texi.
1415 * doc/invoke.texi: Update user documentation for LTO.
1416 Move internal flags to lto.texi
1418 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1420 * c-typeck.c (build_unary_op): Use
1421 objc_build_incr_expr_for_property_ref to build the pre/post
1422 increment/decrement of an Objective-C property ref, and skip the
1423 lvalue_or_else check in that case.
1425 2010-11-15 Martin Jambor <mjambor@suse.cz>
1427 PR tree-optimization/46349
1428 * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1429 (contains_vce_or_bfcref_p): Likewise.
1430 (sra_modify_assign): Use them.
1432 2010-11-15 Richard Guenther <rguenther@suse.de>
1434 PR tree-optimization/46467
1435 * tree-ssa-structalias.c (do_structure_copy): Properly treat
1436 variables without subvars.
1438 2010-11-15 Hariharan Sandanagobalane <hariharan@picochip.com>
1440 * config/picochip/picochip.c (file header): Picochip name change.
1441 * config/picochip/picochip.md (file header): Likewise.
1442 * config/picochip/predicates.md (file header): Likewise.
1443 * config/picochip/dfa_space.md (file header): Likewise.
1444 * config/picochip/dfa_speed.md (file header): Likewise.
1445 * config/picochip/picochip.h(file header): Likewise.
1446 * config/picochip/constraints.md (file header): Likewise.
1447 * config/picochip/picochip-protos.h (file header): Likewise.
1448 * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1449 * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1450 * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1451 * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1452 * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1453 * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1454 * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1455 * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1456 * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1457 * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1458 * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1459 * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1460 * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1461 * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1463 2010-11-15 Richard Guenther <rguenther@suse.de>
1466 * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1468 2010-11-15 Nick Clifton <nickc@redhat.com>
1470 * config/stormy16/stormy16.c (direct_return): Do not generate a
1471 direct return for interrupt handlers.
1473 2010-11-15 Joern Rennecke <amylaar@spamcop.net>
1475 * Makefile.in (tm.texi): Replace with rule for:
1476 ($(srcdir)/doc/tm.texi).
1477 (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1478 $(srcdir)/doc/tm.texi .
1479 (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1483 * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1486 * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1487 (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1490 * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1492 2010-11-15 Richard Guenther <rguenther@suse.de>
1495 * lto-opts.c (lto_write_options): Write -fexceptions even if
1496 not set by the user.
1498 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1501 * c-decl.c (declspecs_add_type): Make variables with error types
1503 * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1504 do not start a declaration before an Objective-C foreach.
1505 (c_parser_declaration_or_fndef): Improve recovery after unknown
1507 (c_parser_for_statement): Hoist entrance of "foreach context"
1508 before ifs, add corresponding reset where it was missing. Do
1509 not set objc_could_be_foreach_context for C.
1511 2010-11-14 Eric Botcazou <ebotcazou@adacore.com>
1513 PR tree-optimization/45722
1514 * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1515 this is a reference to a component.
1516 * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1517 (ipa_note_param_call): Adjust comment.
1519 2010-11-14 Richard Sandiford <rdsandiford@googlemail.com>
1521 * config/mips/mips.c (machine_function): Remove
1522 initialized_mips16_gp_pseudo_p.
1523 (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1524 detect whether a pseudo has already been created. Unconditionally
1525 create a new one if not.
1526 (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1527 expanding to rtl. Create a new pseudo otherwise, if allowed.
1529 2010-11-13 Richard Earnshaw <rearnsha@arm.com>
1532 * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1533 * tm.texi: Regenerated.
1534 * output.h (decode_reg_name_and_count): Declare.
1535 * varasm.c (decode_reg_name_and_count): New function.
1536 (decode_reg_name): Reimplement using decode_reg_name_and_count.
1537 * reginfo.c (fix_register): Use decode_reg_name_and_count and
1538 iterate over all regs used.
1539 * stmt.c (expand_asm_operands): Likewise.
1540 * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1541 (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1542 multiple machine registers.
1544 2010-11-13 Eric Botcazou <ebotcazou@adacore.com>
1546 * stor-layout.c (place_union_field): Do not put location information
1547 on offset expressions.
1548 (place_field): Likewise.
1549 (finalize_record_size): Likewise on size expressions.
1550 (finalize_type_size): Likewise.
1551 (layout_type): Likewise.
1553 2010-11-13 Alexandre Oliva <aoliva@redhat.com>
1556 * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1557 * df-core.c (df_set_bb_dirty_nonrl): Remove.
1558 * df.h (df_set_bb_dirty_nonlr): Likewise.
1560 2010-11-13 Uros Bizjak <ubizjak@gmail.com>
1562 * config/mips/mips.md (call_internal): Pass curr_insn to
1564 (call_internal_direct): Ditto.
1565 (call_value_internal): Ditto.
1566 (call_value_internal_direct): Ditto.
1567 (call_value_multiple_internal): Ditto.
1568 * config/mips/mips.c (mips_split_call): Do not copy
1569 CALL_INSN_FUNCTION_USAGE here.
1571 2010-11-13 Mingming Sun <mingm.sun@gmail.com>
1573 * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1574 * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1575 (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1576 * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1577 (TUNE_LOONGSON_3A): Define.
1578 (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1579 (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1580 * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1581 (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1582 (mips_rtx_cost_data): Add Loongson-3A.
1584 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1586 * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1589 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1591 * dwarf2out.c (macinfo_entry): New struct.
1592 (output_comp_unit): Emit the section start label here and flag that we
1593 will emit an info section.
1594 (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1596 (dwarf2out_end_source_file): Likewise.
1597 (dwarf2out_define): Likewise.
1598 (dwarf2out_undef): Likewise.
1599 (output_macinfo): New.
1600 (dwarf2out_init): Do not emit debug section switches here, allocate a
1601 vec for macinfo, when required.
1602 (dwarf2out_finish): First switch to debug_abbrev_section here.
1603 debug_line_section, debug_macinfo_section, Likewise.
1604 Check that the pubtypes table has at least one unpruned entry before
1607 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1610 * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1611 (c_parser_next_tokens_start_declaration): ... this. Handle 2nd
1613 (c_parser_compound_statement_nostart, c_parser_label,
1614 c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1615 (c_parser_declaration_or_fndef): Detect the case now matched by
1616 c_parser_next_tokens_start_declaration, give error and correct it.
1618 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1620 * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1621 (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1623 * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1624 (shadow_tag_warned, check_compound_literal_type): Adjust
1625 uses of tag_defined_p.
1626 (declspecs_add_type): Set typespec_kind.
1627 * c-parser.c (c_parser_declaration_or_fndef,
1628 c_parser_declspecs, c_parser_struct_declaration,
1629 c_parser_parameter_declaration, c_parser_type_name,
1630 c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1632 * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1633 tag_defined_p, pass ctsk_firstref through.
1635 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1637 * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1638 (struct format_wanted_type): Replace field "name" with "kind", add
1639 "format_start" and "format_length".
1640 (check_format_info_main): Fill in new fields. Fill in
1641 FORMAT_WANTED_TYPES even for missing arguments. Move checks
1642 after the final NUL outside the while loop. Do not include
1643 width and precision modifiers in the format_start/format_length
1645 (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1646 arguments. Compute WANTED_TYPE first so that format_type_warning
1647 can be called for missing arguments. Adjust calls to
1648 format_type_warning.
1649 (format_type_warning): Fetch as much information as possible
1650 from format_wanted_type. Adjust printing now that every
1651 warning has a "descr", as well as for missing argument warnings
1652 and to include % sign for format specifiers.
1654 2010-11-12 Alexander Monakov <amonakov@ispras.ru>
1656 PR rtl-optimization/46204
1657 * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1658 Update all callers. Do not recompute topological order. Adjust
1659 fallthrough edges following a degenerate conditional jump.
1661 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1663 * opts-common.c (control_warning_option): New.
1664 * opts.c (set_default_handlers): New.
1665 (decode_options): Use set_default_handlers and
1666 control_warning_option.
1667 (common_handle_option): Update call to enable_warning_as_error.
1668 (enable_warning_as_error): Take gcc_options parameters. Use
1669 control_warning_option.
1670 * opts.h (set_default_handlers, control_warning_option): Declare.
1672 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1674 * Makefile.in (OPTS_H): Define.
1675 (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1676 c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1677 cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1678 opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1679 ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1680 * gcc.c (driver_handle_option): Take location_t parameter.
1681 (process_command, do_self_spec): Update calls to
1682 read_cmdline_option.
1683 * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1684 * langhooks.c (lhd_handle_option): Take location_t parameter.
1685 * langhooks.h (handle_option): Take location_t parameter.
1686 * lto-opts.c (lto_reissue_options): Update call to set_option.
1687 * opts-common.c (handle_option): Make static. Take location_t
1688 parameter and pass it to other functions.
1689 (handle_generated_option): Take location_t parameter and pass it
1691 (read_cmdline_option): Take location_t parameter and pass it to
1692 other functions. Use warning_at and error_at.
1693 (set_option): Take location_t parameter and pass it to other
1695 * opts.c (common_handle_option): Take location_t parameter and
1696 pass it to other functions.
1697 (enable_warning_as_error): Make static. Take location_t parameter
1698 and pass it to other functions.
1699 (lang_handle_option): Take location_t parameter and pass it to
1701 (target_handle_option): Take location_t parameter.
1702 (read_cmdline_options, maybe_default_option,
1703 maybe_default_options, default_options_optimization,
1704 decode_options): Take location_t parameter and pass it to other
1706 * opts.h: Include input.h.
1707 (struct cl_option_handler_func, decode_options, set_option,
1708 handle_generated_option, read_cmdline_option): Take location_t
1710 (handle_option, enable_warning_as_error): Remove.
1711 * toplev.c (toplev_main): Update call to decode_options.
1713 2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de>
1715 * graphite-cloog-util.c (oppose_constraint,
1716 cloog_matrix_to_ppl_constraint,
1717 new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1718 CLooG isl uses unsigned integers. This triggered a warning.
1720 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1723 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1724 (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1725 (xtensa_function_arg_1): De-constify cum.
1726 (xtensa_expand_prologue): Use add_reg_note.
1729 * config/cris/cris.c (saved_regs_mentioned): Delete.
1730 (cris_reload_address_legitimized): Cast itype to enum reload_type.
1731 Remove unused variable op0p.
1732 (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1733 (cris_emit_movem_store): Use add_reg_note.
1736 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1738 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1740 * function.c (expand_function_end): Set the locator of the prologue on
1741 the stack checking insns.
1743 2010-11-12 Richard Henderson <rth@redhat.com>
1745 * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1746 * config/xtensa/xtensa.opt (mfused-madd): Remove.
1747 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1749 * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1750 (fnmasf4): Rename from mulsubsf3; use fma.
1752 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1753 Richard Henderson <rth@redhat.com>
1756 * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1757 * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1760 2010-11-12 Pat Haugen <pthaugen@us.ibm.com>
1762 * opts-common.c (decode_cmdline_option): Initialize separate_args.
1764 2010-11-12 Jan Hubicka <jh@suse.cz>
1766 * doc/invoke.texi (early-inlining-insns): Update default.
1767 * params.def (early-inlining-insns): Default to 10.
1769 2010-11-12 Olivier Hainque <hainque@adacore.com>
1771 * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1773 2010-11-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1775 * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1776 (SUPPORTS_INIT_PRIORITY): Define.
1778 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1781 * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1782 * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1783 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1784 (avr_device_to_devicelib): Likewise.
1785 * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1787 (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1788 (zero_extendhidi2, zero_extendsidi2): Likewise.
1789 * config/avr/avr.c (avr_num_arg_regs): Constify type.
1790 (avr_return_addr_rtx): De-constify tem.
1791 (avr_rotate_bytes): Move declarations to start of block.
1792 Don't use variable length array. Put nested if/else into block.
1794 PR rtl-optimization/46433
1795 * var-tracking.c: Include tm_p.h .
1799 * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1801 (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1802 * doc/tm.texi: Regenerate.
1805 * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1806 * config/bfin/bfin.c: Include sel-sched.h .
1807 (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1808 (expand_interrupt_handler_prologue): Remove unused variable insn.
1809 (bfin_load_pic_reg): Likewise.
1810 (bfin_rtx_costs): Make code / outer_code variables of type
1811 enum rtx_code, copied from re-named parameters.
1812 (bfin_local_alignment): Change align argument and return type
1814 (bfin_adjust_cost): Remove unused variable insn_type.
1815 Declare variables at start of block.
1816 (struct loop_info): Rename to...
1817 (struct loop_info_d).
1818 (workaround_rts_anomaly): Change type of icode to int.
1819 (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1820 with int-typed variable.
1821 (note_np_check_stores): Likewise.
1822 (trapping_loads_p): Remove unused variable pat.
1823 (bfin_expand_binop_builtin): Use expand_normal.
1824 (bfin_expand_unop_builtin): Likewise.
1825 (bfin_expand_builtin): Likewise. Set tmode before use.
1828 * final.c (split_double): Don't use BITS_PER_WORD directly in
1832 * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1836 * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1838 (xstormy16_function_arg): Dereference cum.
1839 (xstormy16_expand_builtin): Use expand_normal.
1840 Change type of omode to enum machine_mode.
1841 (combine_bnp): Rename and to and_insn.
1844 * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1847 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1850 * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1852 2010-11-11 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1855 * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1857 2010-11-11 Nathan Froyd <froydnj@codesourcery.com>
1860 * common.opt (fmax-errors=): New option.
1861 * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1862 * diagnostic.h (struct diagnostic_context): Add max_errors field.
1863 * diagnostic.c (diagnostic_initialize): Initialize it.
1864 (diagnostic_action_after_output): Exit if more than max_errors
1866 * doc/invoke.texi (Warning Options): Add -fmax-errors.
1867 (-fmax-errors): Document.
1869 2010-11-11 Richard Henderson <rth@redhat.com>
1871 * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1873 2010-11-11 Richard Henderson <rth@redhat.com>
1875 * config/fused-madd.opt: New file.
1876 * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1877 * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1878 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1879 * config/i386/i386.opt (mfused-madd): Remove.
1880 * config/i386/sse.md (split_fma): Remove.
1881 (split_fms, split_fnma, split_fnms): Remove.
1883 2010-11-12 Jakub Jelinek <jakub@redhat.com>
1886 * config/i386/i386.md (*ashl<mode>3_cconly,
1887 *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1888 change nonimmediate_operand predicate to register_operand.
1890 2010-11-11 Paolo Bonzini <bonzini@gnu.org>
1892 * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1894 2010-11-11 Jan Hubicka <jh@suse.cz>
1896 * opts.c (finish_options): Do not error on -flto-partition alone.
1898 * doc/invoke.texi (-fwhopr): Merge into -flto section.
1899 (-flto-partition): Document none.
1900 * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1901 * lto-wrapper.c: Update comment.
1902 (run_gcc): Update LTO option parsing.
1903 * opts.c (finish_options): add support -flto-partition=none
1904 (common_handle_option): Remove fwhopr.
1905 * common.opt: Turn fwhopr into flto.
1906 * collect2.c (main): Update option handling.
1907 * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1908 * ipa-split.c (execute_split_functions): Remove flag_whopr.
1909 * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1910 * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1911 * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1913 2010-11-11 Jan Hubicka <jh@suse.cz>
1915 PR tree-optimize/40436
1916 * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1917 (eliminated_by_inlining_prob): ... this one; return 50% probability
1919 (estimate_function_body_sizes): Update use of
1920 eliminated_by_inlining_prob; estimate static function size
1923 2010-11-11 Joern Rennecke <amylaar@spamcop.net>
1926 * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1927 declare. Change type of argument four to type int.
1928 (mep_secondary_input_reload_class): Returns enum reg_class.
1929 (mep_secondary_output_reload_class): Likewise.
1930 (mep_function_value): Change types of arguments to cont_tree.
1931 * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1932 argument four to type int.
1933 (mep_secondary_input_reload_class): Returns enum reg_class.
1934 (mep_secondary_output_reload_class): Likewise.
1935 (mep_function_value): Change types of arguments to cont_tree.
1936 * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1937 mep_regno_reg_class to enum reg_class.
1939 2010-11-11 Richard Henderson <rth@redhat.com>
1941 * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1942 that the target has the exact fma operation that we matched.
1944 2010-11-11 Joseph Myers <joseph@codesourcery.com>
1946 * reginfo.c (fix_register): Avoid inserting English word in
1947 diagnostic sentence. Use %qs for quoting and %'.
1949 2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
1951 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1952 Intel processor family 6, model 0x2c.
1954 2010-11-11 Joseph Myers <joseph@codesourcery.com>
1956 * opts.c (warning_as_error_callback,
1957 register_warning_as_error_callback): Remove.
1958 (enable_warning_as_error): Don't use warning_as_error_callback.
1959 * opts.h (register_warning_as_error_callback): Remove.
1961 2010-11-11 Richard Henderson <rth@redhat.com>
1963 * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1964 in between the MULT and the PLUS/MINUS.
1966 2010-11-11 Jakub Jelinek <jakub@redhat.com>
1969 * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1970 BLKmode mode for it.
1971 (expand_expr_real_1): Similarly for op0.
1973 2010-11-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1975 * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1976 Document optional target selector.
1978 2010-11-11 Dave Korn <dave.korn.cygwin@gmail.com>
1980 * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1981 assembling high and low parts of size if not using 32-bit HWINT; else
1982 use DECL_SIZE_UNITS, not DECL_SIZE.
1984 2010-11-11 Martin Jambor <mjambor@suse.cz>
1986 PR tree-optimization/46383
1987 * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1989 (compute_complex_ancestor_jump_func): Likewise.
1990 * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1992 2010-11-11 Jakub Jelinek <jakub@redhat.com>
1995 * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1996 true if expr1->hash != expr2->hash.
1998 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2000 * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
2001 diagnostics with lowercase letters.
2002 * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2004 * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2006 * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2007 * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2009 * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2010 Remove trailing ' ' from diagnostic.
2011 * config/avr/avr.c (print_operand_address): Start diagnostic with
2012 a lowercase letter and remove trailing '.'.
2013 * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2014 * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2015 with lowercase letters. Use %' in diagnostics. Remove trailing
2016 '.' from diagnostics.
2017 (bfin_handle_longcall_attribute): Use %' in diagnostic.
2018 * config/cris/cris.c (cris_split_movdx,
2019 cris_expand_pic_call_address): Start diagnostics with lowercase
2021 (cris_asm_output_label_ref): Use %' in diagnostic.
2022 * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2024 * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2026 * config/darwin-c.c (version_as_macro): Start diagnostic with a
2028 * config/darwin-driver.c (darwin_default_min_version): Use %' in
2030 * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2032 * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2033 * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2035 * config/i386/i386.c (ix86_option_override_internal): Write
2036 diagnostic as a single sentence without trailing '.'. Use %' in
2038 (ix86_function_sseregparm, classify_argument): Start diagnostics
2039 with lowercase letters.
2040 (ix86_expand_prologue): Use %' in diagnostic.
2041 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2043 * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2045 * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2047 * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2048 * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2050 * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2052 * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2054 * config/microblaze/microblaze.c (microblaze_handle_option):
2055 Remove trailing '.' from diagnostic.
2056 (print_operand): Start diagnostic with a lowercase letter.
2057 * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2058 lowercase letters. Avoid '`' in diagnostics.
2059 * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2060 lowercase letters. Avoid '`' in diagnostics.
2061 * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2062 lowercase letters. Avoid '`' in diagnostics.
2063 * config/picochip/picochip.c (picochip_option_override,
2064 picochip_emit_save_register, picochip_function_arg,
2065 picochip_output_label, picochip_output_internal_label,
2066 picochip_asm_output_opcode, picochip_output_cbranch,
2067 picochip_output_compare, picochip_output_branch,
2068 picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2069 diagnostics. Start diagnostics with lowercase letters. Use %' in
2071 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2072 "SPE" capitalization. Start diagnostic with a lowercase letter.
2073 (rs6000_handle_option): Start diagnostics with lowercase letters.
2074 (def_builtin): Remove trailing '.' from diagnostic.
2075 (rs6000_savres_routine_name): Start diagnostic with a lowercase
2077 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2079 * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2081 * config/s390/s390.c (s390_option_override) Start diagnostics with
2082 lowercase letters. Use %' in diagnostic.
2083 * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2085 * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2087 * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2089 * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2091 * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2092 * config/spu/spu.c (spu_option_override): Start diagnostics with
2093 lowercase letters. Use %qs for quoting in diagnostics.
2094 (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2095 Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2096 * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2098 * convert.c (convert_to_integer, convert_to_vector): Use %' in
2100 * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2101 letter and use "cannot" spelling.
2102 * expmed.c (extract_fixed_bit_field): Start diagnostic with
2103 lowercase letter and format as a single sentence without '.'.
2104 * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2105 Use %' in diagnostics.
2106 * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2107 Use %' in diagnostics.
2108 * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2109 Use %' in diagnostics.
2110 * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2111 * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2112 with lowercase letters and remove tailing '.' and '\n'.
2113 * lto-cgraph.c (input_profile_summary): Start diagnostic with
2114 lowercase letter and remove trailing '.'.
2115 (input_cgraph): Start diagnostics with lowercase letters and
2116 remove trailing '\n'.
2117 * opts.c (finish_options, common_handle_option): Start diagnostics
2118 with lowercase letters and remove trailing '.'. Fix typo in
2120 * passes.c (position_pass): Start diagnostic with lowercase letter.
2121 * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2122 register_callback, try_init_one_plugin): Start diagnostics with
2124 * reload1.c (spill_failure): Use %' in diagnostic.
2125 (gen_reload): Start diagnostic with a lowercase letter.
2126 * stor-layout.c (place_field): Start diagnostic with a lowercase
2128 * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2129 * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2130 verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2131 Start diagnostics with lowercase letters, remove trailing '.' and
2132 use %' in diagnostics.
2133 * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2134 (verify_ssa): Don't split diagnostic across two error calls.
2135 Spell out "number" and use %' in diagnostic.
2136 * value-prof.c (visit_hist, check_counter): Start diagnostics with
2139 2010-11-10 Uros Bizjak <ubizjak@gmail.com>
2142 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2143 (_mm_cvtpu16_ps): Ditto.
2145 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2147 * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2148 warn_larger_than, larger_than_size, warn_frame_larger_than,
2149 frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2150 default_visibility, flag_tls_default): New Variable declarations.
2151 (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2152 falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2153 (v): Declare as Common and document here.
2154 * flags.h (default_visibility, flag_generate_lto,
2155 warn_larger_than, larger_than_size, warn_frame_larger_than,
2156 frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2157 flag_shlib, flag_excess_precision_cmdline): Remove.
2158 (set_Wstrict_aliasing): Update prototype.
2159 * gcc.c (verbose_flag): Remove.
2160 (driver_handle_option): Add diagnostic_context parameter. Don't
2161 handle OPT_v explicitly here. Set verbose_flag to 1 rather than
2163 * opts-common.c (handle_option): Pass dc to handler.
2164 * opts.c (warn_larger_than, larger_than_size,
2165 warn_frame_larger_than, frame_larger_than_size,
2166 default_visibility): Remove.
2167 (common_handle_option): Add diagnostic_context parameter.
2168 (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2169 gcc_options parameters.
2170 (lang_handle_option, target_handle_option, read_cmdline_options,
2171 decode_options): Add diagnostic_context parameters.
2172 (finish_options): Access option state through opts pointer where
2174 (common_handle_option): Access option state through opts pointer
2175 where possible. Do not set local static variable verbose. Do not
2176 explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2177 OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2178 OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2179 OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2180 OPT_fwhopr_. Do not explicitly set .opt file variables for
2181 OPT_aux_info or OPT_pedantic_errors. Use dc for diagnostic context.
2182 (set_Wstrict_aliasing): Add gcc_options parameter.
2183 * opts.h (struct cl_option_handler_func): Add diagnostic_context
2184 parameter to handler.
2185 (decode_options): Add diagnostic_context parameter.
2186 * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2187 asm_file_name, flag_generate_lto, flag_gen_aux_info,
2188 aux_info_file_name, flag_shlib, flag_tls_default,
2189 flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2190 (toplev_main): Pass global_dc to decode_options.
2191 * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2192 aux_info_file_name, asm_file_name): Remove.
2193 * tree.h (flag_tls_default): Remove.
2195 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
2198 * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2199 (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2201 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2203 * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2204 (x86_64-*-*): Likewise.
2205 * config/i386/cpuid.h: Define TBM bit.
2206 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2208 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2210 * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2211 (OPTION_MASK_ISA_TBM_UNSET): New.
2212 (ix86_handle_option): Handle -mtbm.
2213 (isa_opts): Add -mtbm.
2214 (enum pta_flags): Add PTA_TBM.
2215 (ix86_option_override_internal): Add TBM support.
2216 (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2217 (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2218 (IX86_BUILTIN_BEXTRI64): Likewise.
2219 (bdesc_args): Add TBM intrinsics.
2220 (ix86_expand_builtin): Add TBM specific case.
2221 * config/i386/i386.h (TARGET_TBM): New for TBM.
2222 * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2223 (tbm_bextri_<mode>): Likewise.
2224 (*tbm_blcfill_<mode>): Likewise.
2225 (*tbm_blci_<mode>): Likewise.
2226 (*tbm_blcic_<mode>): Likewise.
2227 (*tbm_blcmsk_<mode>): Likewise.
2228 (*tbm_blcs_<mode>): Likewise.
2229 (*tbm_blsfill_<mode>): Likewise.
2230 (*tbm_blsic_<mode>): Likewise.
2231 (*tbm_t1mskc_<mode>): Likewise.
2232 (*tbm_tzmsk_<mode>): Likewise.
2233 * config/i386/i386.opt: Add -mtbm.
2234 * config/i386/tbmintrin.h (__bextri_u32): New.
2235 (__blcfill_u32): Likewise.
2236 (__blci_u32): Likewise.
2237 (__blcic_u32): Likewise.
2238 (__blcmsk_u32): Likewise.
2239 (__blcs_u32): Likewise.
2240 (__blsfill_u32): Likewise.
2241 (__blsic_u32): Likewise.
2242 (__t1mskc_u32): Likewise.
2243 (__tzmsk_u32): Likewise.
2244 (__bextri_u64): Likewise.
2245 (__blcfill_u64): Likewise.
2246 (__blci_u64): Likewise.
2247 (__blcic_u64): Likewise.
2248 (__blcmsk_u64): Likewise.
2249 (__blcs_u64): Likewise.
2250 (__blsfill_u64): Likewise.
2251 (__blsic_u64): Likewise.
2252 (__t1mskc_u64): Likewise.
2253 (__tzmsk_u64): Likewise.
2254 * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2255 * doc/invoke.texi: Document -mtbm.
2256 * doc/extend.texi: Document TBM built-in functions.
2258 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2260 * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2261 (x86_64-*-*): Likewise.
2262 * config/i386/cpuid.h: Define BMI bit.
2263 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2265 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2267 * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2268 (OPTION_MASK_ISA_BMI_UNSET): New.
2269 (ix86_handle_option): Handle -mbmi.
2270 (isa_opts): Add -mbmi.
2271 (enum pta_flags): Add PTA_BMI.
2272 (ix86_option_override_internal): Add BMI support.
2273 (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2274 (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2275 (IX86_BUILTIN_BEXTR64): Likewise.
2276 (IX86_BUILTIN_CTZS): Likewise.
2277 (bdesc_args): Add BMI intrinsics.
2278 (ix86_expand_args_builtin): Add BMI specific cases.
2279 * config/i386/i386.h (TARGET_BMI): New for BMI.
2280 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2281 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2282 * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2283 (UNSPEC_TZCNT): Likewise.
2284 (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2285 (bmi_andn_<mode>): New for BMI.
2286 (bmi_bextr_<mode>): Likewise.
2287 (bmi_blsi_<mode>): Likewise.
2288 (bmi_blsmsk_<mode>): Likewise.
2289 (bmi_blsr_<mode>): Likewise.
2290 * config/i386/i386.opt: Add -mbmi.
2291 * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2292 * config/i386/bmiintrin.h (__lzcnt_u16): New.
2293 (__tzcnt_u16): Likewise.
2294 (__andn_u32): Likewise.
2295 (__bextr_u32): Likewise.
2296 (__blsi_u32): Likewise.
2297 (__blsmsk_u32): Likewise.
2298 (__blsr_u32): Likewise.
2299 (__lzcnt_u32): Likewise.
2300 (__tzcnt_u32): Likewise.
2301 (__andn_u64): Likewise.
2302 (__bextr_u64): Likewise.
2303 (__blsi_u64): Likewise.
2304 (__blsmsk_u64): Likewise.
2305 (__blsr_u64): Likewise.
2306 (__lzcnt_u64): Likewise.
2307 (__tzcnt_u64): Likewise.
2308 * doc/invoke.texi: Document -mbmi and -mno-bmi.
2309 * doc/extend.texi: Document BMI built-in functions.
2311 2010-11-10 Jan Hubicka <jh@suse.cz>
2313 PR tree-optimize/46228
2314 * doc/invoke.texi (comdat-sharing-probability): Document.
2315 * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2316 * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2318 2010-11-10 Jan Hubicka <jh@suse.cz>
2320 PR tree-optimize/46228
2321 * cgraph.c (cgraph_propagate_frequency): Fix typo.
2323 2010-11-10 H.J. Lu <hongjiu.lu@intel.com>
2325 PR tree-optimization/46414
2326 * tree-inline.c (estimate_move_cost): Check preferred vector
2327 mode for vector type.
2329 2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2331 * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2333 2010-11-10 Sebastian Pop <sebastian.pop@amd.com>
2335 PR tree-optimization/45971
2336 * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2337 for phi nodes analyzable by scev.
2339 2010-11-10 Richard Guenther <rguenther@suse.de>
2341 PR tree-optimization/44964
2342 * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2344 2010-11-10 Martin Jambor <mjambor@suse.cz>
2346 PR tree-optimization/46351
2347 PR tree-optimization/46377
2348 * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2349 aggregate bit-fields.
2351 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2353 * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2354 * doc/tm.texi: Regenerate.
2355 * opts-common.c (tm.h): Don't include.
2356 (target_option_translations): Remove.
2357 (decode_cmdline_options_to_array): Don't handle translating options.
2358 * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2359 * config/darwin-driver.c: Don't condition includes on
2360 CROSS_DIRECTORY_STRUCTURE.
2361 (darwin_default_min_version): Make static.
2362 (darwin_driver_init): New. Call darwin_default_min_version if not
2363 CROSS_DIRECTORY_STRUCTURE.
2364 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2365 (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2366 (ASM_SPEC): Add %{static}.
2367 (darwin_default_min_version): Don't declare.
2368 (darwin_driver_init): Declare.
2369 (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2370 darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2371 * config/darwin.opt (all_load, allowable_client,
2372 arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2373 dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2374 exported_symbols_list, filelist, findirect-virtual-calls,
2375 flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2376 framework, fterminated-vtables, gfull, gused, image_base, init,
2377 install_name, multi_module, multiply_defined,
2378 multiply_defined_unused, no_dead_strip_inits_and_terms,
2379 seg_addr_table, seg_addr_table_filename, segaddr,
2380 segs_read_only_addr, segs_read_write_addr, single_module,
2381 umbrella, unexported_symbols_list, weak_reference_mismatches,
2382 Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2383 Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2384 Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2385 Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2386 * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2387 (ASM_SPEC): Add %{static}.
2388 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2389 * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2390 (DRIVER_SELF_SPECS): Handle options formerly in
2391 TARGET_OPTION_TRANSLATE_TABLE.
2392 * config/mep/mep.opt (mfar): New.
2393 * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2394 (DRIVER_SELF_SPECS): Define. Handle options formerly in
2395 TARGET_OPTION_TRANSLATE_TABLE.
2396 * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2397 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2398 * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2399 ffix-and-continue, findirect-data): New.
2400 * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2401 * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2402 (mnofpu): Define mask and use Report here.
2404 2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2406 * config/s390/s390.c (s390_emit_prologue): Report the stack
2407 size if -fstack-usage is used.
2409 2010-11-10 Richard Guenther <rguenther@suse.de>
2411 PR tree-optimization/46398
2412 * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2414 2010-11-10 Joern Rennecke <amylaar@spamcop.net>
2417 * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2418 (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2419 GP_REG_OR_PSEUDO_STRICT_P.
2420 * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2421 unexpected alternative.
2422 (*movsf_internal): Likewise.
2423 (indirect_jump): Replace call to non-existant function with call to
2425 (tablejump): Likewise.
2426 * config/iq2000/iq2000.c: Include df.h .
2427 (iq2000_function_arg_advance): Use CONST_CAST2.
2428 (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2429 (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2430 a non-zero function address.
2431 (iq2000_initial_elimination_offset): Add gcc_unreachable for
2432 unexpected value of FROM.
2433 (symbolic_expression_p): Delete.
2434 (iq2000_function_value): Constify func.
2435 (expand_one_builtin): Use expand_normal.
2436 (iq2000_print_operand): Don't print VALUE if calculating it failed.
2438 PR rtl-optimization/44764
2439 * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2442 * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2443 * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2444 with ATTRIBUTE_UNUSED.
2445 (valid_psw_flag): Constify parameter which.
2446 (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2449 * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2450 (mmix_dbx_register_number): Likewise.
2451 * config/mmix/mmix.c: Include df.h .
2452 (mmix_local_alignment): Change argument basic_align and return type
2454 (mmix_dbx_register_number): Change argument and return type to
2456 (mmix_expand_prologue): Use add_reg_note.
2459 * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2460 (spu_split_store): Use aform.
2461 (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2463 2010-11-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2466 * doc/gty.texi (GTY Options): Clarify that variable_size produces
2467 allocators taking size in bytes, compare with length option. Add
2468 size calculation example.
2469 (Invoking the garbage collector): Ensure that sentences are
2470 followed by two spaces. Describe that pointer fields must be
2471 initialized at ggc_collect call.
2472 (Troubleshooting): New section.
2474 2010-11-09 Jan Hubicka <jh@suse.cz>
2476 PR tree-optimization/40436
2477 * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2478 * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2479 normal instructions; be sure bultin is not implemented in this file;
2480 compute non-zero return cost.
2481 (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2482 * tree-inline.h (eni_weights_d): Add return cost.
2484 2010-11-09 Joseph Myers <joseph@codesourcery.com>
2486 * c-parser.c (c_parser_struct_declaration): Handle declaration
2487 specifiers followed by CPP_CLOSE_BRACE.
2489 2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2491 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2492 split occurs before reload, and we allocate memory at the time of
2493 the split, not during expansion. Add attributes.
2494 (floatsi<mode>2_lfiwax_mem): Ditto.
2495 (floatunssi<mode>2_lfiwzx): Ditto.
2496 (floatunssi<mode>2_lfiwzx_mem): Ditto.
2497 (floatsidf2): Ditto.
2498 (floatunssisf2): Ditto.
2499 (floatunssidf2): Ditto.
2500 (fix_trunc<mode>si2): Ditto.
2501 (fix_trunc<mode>si2_stfiwx): Ditto.
2502 (fix_trunc<mode>si2_internal): Ditto.
2503 (fix_trunc<mode>si2): Ditto.
2504 (fix_trunc<mode>di2): Ditto.
2505 (fixuns_trunc<mode>si2_stfiwx): Ditto.
2506 (floatsisf2): Ditto.
2507 (floatdidf2_mem): Ditto.
2508 (floatunsdidf2_mem): Ditto.
2509 (floatunsdidf2): Ditto.
2510 (floatdisf2_internal1): Ditto.
2511 (floatdisf2_mem): Ditto.
2512 (floatunsdisf2_mem): Ditto.
2513 (floatsi<mode>2_lfiwax_mem2): Delete.
2514 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2515 (fix_trunc<mode>si2_mem): Ditto.
2516 (fixuns_trunc<mode>si2_mem): Ditto.
2517 (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2518 type operations to reduce copying the values to multiple memory slots.
2519 (roundu32<mode>2_fprs): Ditto.
2521 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2522 PRE_INC, PRE_DEC, PRE_MODIFY.
2523 (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2525 * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2528 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2531 * cfgexpand.c (partition_stack_vars): Call
2532 update_alias_info_with_stack_vars unconditionally.
2533 (update_alias_info_with_stack_vars): Allow unused
2534 unreferenced vars when not optimizing.
2536 2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
2538 PR tree-optimization/46036
2539 * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2540 add_to_dst_predicate_list.
2542 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2545 * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2547 (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2548 argument, call dead_debug_reset when adding REG_UNUSED note.
2549 (dead_debug_reset): New function.
2550 (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2551 df_create_unused_note callers.
2553 2010-11-09 Anatoly Sokolov <aesok@post.ru>
2555 * config/fr30/fr30.c: Include "df.h".
2557 2010-11-09 Richard Guenther <rguenther@suse.de>
2559 PR tree-optimization/46355
2560 * tree-loop-distribution.c (tree_loop_distribution): Do not
2561 distribute loops without a single exit.
2563 2010-11-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2565 PR rtl-optimization/46237
2566 * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2567 saved hard regs if they might get partially clobbered.
2569 2010-11-09 Paul Koning <ni1d@arrl.net>
2571 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2573 2010-11-09 Richard Guenther <rguenther@suse.de>
2575 PR tree-optimization/46177
2576 * tree-loop-distribution.c (prop_phis): Remove.
2577 (generate_builtin): Re-use the old loop exit edge to avoid
2578 needing to update PHI nodes.
2580 2010-11-09 Joern Rennecke <amylaar@spamcop.net>
2582 * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2583 type of args_size to unsigned HOST_WIDE_INT.
2586 * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2587 * config/t-pnt16-warn: New file.
2588 * config/picochip/picochip.c (picochip_emit_stack_allocate):
2590 (picochip_emit_save_register): Likewise.
2591 (picochip_emit_restore_register): Remove variable insn.
2592 (picochip_legitimize_address): Don't use C++ style comments.
2593 (picochip_legitimize_reload_address): Likewise.
2594 (reorder_var_tracking_notes): Remove variable vliw_start.
2595 (picochip_reorg): Cast first arguemnt to emit_note_after to
2597 (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2598 (picochip_expand_builtin_3op): Likewise.
2599 (picochip_expand_builtin_2opvoid): Likewise.
2600 (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2601 (picochip_expand_array_testport): Likewise.
2602 (picochip_init_builtins): Remove unused variables.
2603 * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2604 to unsigned long, and output it as such.
2605 (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2606 * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2607 (schedType): Cast result of picochip_schedule_type to
2608 enum attr_schedType.
2611 * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2612 conditional to type of S.
2613 (mn10300_function_arg): Remove unused variable align.
2614 (mn10300_arg_partial_bytes): Likewise.
2615 * config/mn10300/mn10300.md (attribute cpu): Cast value to
2618 2010-11-09 H.J. Lu <hongjiu.lu@intel.com>
2621 * gengtype-parse.c (type): Call get_input_file_name to get file name.
2623 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
2625 * tree.h (contains_placeholder_p): Fix comment.
2626 (type_contains_placeholder_p): Adjust comment.
2627 * tree.c (contains_placeholder_p): Fix comment.
2628 (type_contains_placeholder_1): Do not recurse on pointed-to types and
2630 (type_contains_placeholder_p): Add comment.
2632 2010-11-09 Paul Koning <ni1d@arrl.net>
2634 * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2635 output of byte values.
2637 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2640 * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2643 2010-11-09 Richard Guenther <rguenther@suse.de>
2646 * varasm.c (compute_visible_aliases): New function.
2647 (remove_unreachable_alias_pairs): Aliases make a target available
2648 even though we reclaimed the cgraph node.
2649 (finish_aliases_1): Likewise.
2650 * Makefile.in (varasm.o): Add pointer-set.h dependency.
2652 2010-11-09 Nick Clifton <nickc@redhat.com>
2654 * config/mn10300/mn10300-modes.def: New file.
2656 2010-11-09 Basile Starynkevitch <basile@starynkevitch.net>
2657 Jeremie Salvucci <jeremie.salvucci@free.fr>
2659 * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2660 (plugin_files, get_file_basename, get_file_realbasename)
2661 (get_file_langdir, error_at_line, gt_files, this_file)
2662 (system_h_file, read_input_list, create_field_all)
2663 (get_file_srcdir_relative_path, get_file_basename)
2664 (get_file_langdir, get_file_gtfilename)
2665 (get_output_file_with_visibility, get_output_file_name)
2666 (struct flist, put_mangled_filename, walk_type)
2667 (put_mangled_filename, finish_root_table, write_roots): Use
2669 (lang_dir_names, num_lang_dirs): Remove static.
2670 (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2671 (main): Use input_file-s.
2673 * gengtype.h: (struct input_file_st, input_file): New type.
2674 (struct fileloc): Use it.
2675 (gt_files, num_gt_files, this_file, system_h_file)
2676 (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2677 (get_input_file_name): New function.
2678 (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2680 (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2681 (get_output_file_name): Ditto.
2683 * gengtype-lex.l (yybegin): Use input_file.
2685 * gengtype-parse.c (parse_error): Use input_file.
2687 2010-11-08 Xinliang David Li <davidxl@google.com>
2689 PR tree-optimization/46316
2690 * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2691 * double-int.h (double_int_mul_with_sign): New function.
2692 * double-int.c (double_int_mul_with_sign): New function.
2694 2010-11-08 Paul Koning <ni1d@arrl.net>
2696 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2698 2010-11-08 Paul Koning <ni1d@arrl.net>
2700 * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2702 2010-11-08 Paul Koning <ni1d@arrl.net>
2704 * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2707 2010-11-08 Michael Meissner <meissner@linux.vnet.ibm.com>
2710 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2711 turn on ISA 2.04 rounding instructions for power5.
2713 * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2717 * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2719 (movdi_low_st): Ditto.
2721 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2722 Richard Henderson <rth@redhat.com>
2725 * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2726 (attribute acc_group): Cast value to enum attr_acc_group.
2727 (*movdi_nodouble+6): Use gen_int_mode.
2728 * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2729 if RTX_CODE is defined or not.
2730 * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2732 (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2733 (frv_frame_access, frv_expand_prologue): Remove unused variables.
2734 (frv_expand_block_clear): Likewise.
2735 (frv_trampoline_init): Use LCT_NORMAL.
2736 (struct frv_packet_group): New struct, broken out of type of
2738 (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2739 use cast in loop counter increment.
2740 (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2741 assigning to io->type.
2742 (bdesc_set): Use rtx_code UNKNOWN in initializer.
2743 (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2744 (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2745 (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2746 (frv_read_argument): Use expand_normal.
2749 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2750 lm32_legitimate_constant_p.
2751 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2752 * config/lm32/lm32.c (gen_int_relational): Make new block for
2753 LE / LT / LEU / LTU case. Declare variables at start of block.
2754 (lm32_block_move_inline): Use XALLOCAVEC.
2756 2010-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2758 * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2760 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2762 * gengtype (get_output_file_for_structure): Ensure type is union
2764 (write_splay_tree_allocator_def): Use
2765 get_output_file_with_visibility.
2767 2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2769 * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2770 to defined values in case of an error.
2771 (s390_option_override): Skip further processing if the -march
2772 parameter wasn't recognized.
2774 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2776 * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2777 assert that REG is a hard register number before using it as an index.
2780 * config/i386/i386.c (ix86_expand_split_stack_prologue):
2781 Avoid warnings when HOST_WIDE_INT is 32 bit.
2783 2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
2786 * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2787 (sparc_promote_prototypes): Likewise.
2788 (sparc_promote_function_mode): Promote in 32-bit mode as well.
2789 (sparc_return_in_memory): Remove superfluous parentheses.
2790 (sparc_struct_value_rtx): Fix long lines.
2791 (sparc_function_value_1): Promote in 32-bit mode as well.
2793 2010-11-08 Andrey Belevantsev <abel@ispras.ru>
2795 PR rtl-optimization/45352
2796 * sel-sched.c (find_best_expr): Do not set pneed_stall when
2797 the variable_issue hook is not implemented.
2798 (fill_insns): Remove dead variable stall_iterations.
2799 (init_seqno_1): Force EBB start for resetting sched cycles on any
2800 successor blocks of the rescheduled region.
2801 (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2802 (reset_sched_cycles_in_current_ebb): Add debug printing.
2803 New variable issued_insns. Advance state when we have issued
2806 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2808 * gengtype (main): Get here's position using POS_HERE macro for
2811 2010-11-07 Ian Lance Taylor <iant@google.com>
2814 * config/i386/i386.c (split_stack_fn_large): New static variable.
2815 (ix86_expand_split_stack_prologue): Handle large model.
2817 2010-11-07 Andreas Schwab <schwab@linux-m68k.org>
2819 * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2820 all possible addressing modes.
2822 2010-11-07 Uros Bizjak <ubizjak@gmail.com>
2824 PR tree-optimization/46346
2825 * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2827 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
2829 * config/mips/mips.c: Revert previous patch.
2830 * config/mips/mips.md: Likewise.
2832 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
2834 * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2835 * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2836 (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2837 (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2838 (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2840 (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2841 (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2842 (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2843 (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2845 2010-11-06 Simon Martin <simartin@users.sourceforge.net>
2848 * c-decl.c (lookup_label): Labels can only be referenced in a
2850 (store_parm_decls_oldstyle): Skip erroneous parameters.
2852 2010-11-06 Anatoly Sokolov <aesok@post.ru>
2854 * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2855 LIBCALL_VALUE): Remove macros.
2856 * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2857 TARGET_FUNCTION_VALUE_REGNO_P): Define.
2858 (fr30_function_value_regno_p, fr30_function_value,
2859 fr30_libcall_value): New functions.
2861 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
2864 * target.def (generate_internal_label): New asm_out hook.
2865 * output.h (default_generate_internal_label): Declare.
2866 * varasm.c (default_generate_internal_label): Define.
2868 2010-11-06 Iain Sandoe <iains@gcc.gnu.org>
2871 * doc/extend.tex (format): Document NSString extension.
2872 (format_arg): Likewise.
2873 (Darwin Format Checks): New section.
2874 * doc/tm.texi: Document string object hooks (generated).
2875 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2876 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2877 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2878 * target.def (objc_construct_string_object): Rename, amend
2880 (string_object_ref_type_p): New hook.
2881 (check_string_object_format_arg): New hook.
2882 * c-parser.c (c_parser_attributes): Allow objective-c class names as
2883 attribute identifiers.
2884 * config/darwin-c.c (darwin_cfstring_ref_p): New.
2885 (darwin_check_cfstring_format_arg): New.
2886 (darwin_additional_format_types): New.
2887 * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2888 (darwin_check_cfstring_format_arg): New.
2889 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2890 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2891 (TARGET_N_FORMAT_TYPES): New.
2892 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2894 2010-11-06 Eric Botcazou <ebotcazou@adacore.com>
2895 Pascal Obry <obry@adacore.com>
2897 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine. Use 33
2898 in 64-bit mode and 17 otherwise.
2900 2010-11-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2903 * var-tracking.c (emit_note_insn_var_location): Make sure that
2904 call related var location notes come before the normal ones.
2906 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
2909 * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2912 2010-11-05 Ian Lance Taylor <iant@google.com>
2914 * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2916 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2919 * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2920 pointer_set_contains if DECL_NAME is NULL.
2922 2010-11-05 Ian Lance Taylor <iant@google.com>
2925 * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2926 request enough additional space for alignment, and force alignment.
2928 2010-11-05 Kai Tietz <kai.tietz@onevision.com>
2930 * config/i386/i386.c (legitimate_pic_address_disp_p):
2931 Handle UNSPEC_PCREL.
2932 (ix86_legitimate_address_p): Likewise.
2933 (legitimize_pic_address): Likewise.
2934 (output_pic_addr_const): Likewise.
2935 (ix86_delegitimize_address): Likewise.
2936 (ix86_find_base_term): Likewise.
2937 (memory_address_length): Likewise.
2938 (x86_output_mi_thunk): Handle special case x64
2939 for non local binding.
2940 * config/i386/i386.md (UNSPEC_PCREL): New.
2941 * config/i386/winnt.c (i386_pe_binds_local_p):
2942 Allow weak symbol for x64 windows with non-local binding.
2944 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2947 * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2948 instead of EXPAND_NORMAL for base expansion.
2950 2010-11-05 Uros Bizjak <ubizjak@gmail.com>
2952 * config.gcc: Support --with-fpmath=avx for x86.
2953 * config/i386/avxmath.h: New.
2954 * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2956 2010-11-05 Ian Lance Taylor <iant@google.com>
2958 * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2959 * gengtype.c (walk_type): Don't recognize descbits option.
2961 2010-11-05 Joseph Myers <joseph@codesourcery.com>
2963 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2964 WORD_SWITCH_TAKES_ARG): Remove.
2965 * doc/options.texi (Args): Document.
2966 * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2967 * doc/tm.texi: Regenerate.
2968 * opt-functions.awk (switch_flags): Handle Args.
2969 * opts-common.c: Update comment on tm.h include.
2970 (decode_cmdline_option): Handle options with multiple arguments.
2971 Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2972 * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2973 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2974 CL_COMMON): Update values.
2975 * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2976 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2977 * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2978 sectobjectsymbols, sectorder, segcreate, segprot): New.
2980 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
2981 Uros Bizjak <ubizjak@gmail.com>
2983 * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2984 256bit AVX register is used.
2985 (ix86_expand_vector_move_misalign): Likewise.
2986 (ix86_expand_vector_move): Replace use_avx256_p with
2987 VALID_AVX256_REG_MODE.
2989 2010-11-05 Joern Rennecke <amylaar@spamcop.net>
2992 * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2993 change. Set $@-warn.o to -Wno-error.
2996 * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2997 comparing it to a signed value.
3000 * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3002 * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3006 * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3007 (m32c_function_arg). Add comma between arguments two and three.
3008 (m32c_promote_prototypes): Remove declaration.
3009 (current_function_special_page_vector): Likewise.
3010 (m32c_regno_reg_class): Change return type to enum reg_class.
3011 (m32c_pushm_popm): Use add_reg_note.
3012 (m32c_push_rounding): Change return type to unsigned int.
3013 (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3015 (m32c_insert_attributes): Constify variable name.
3016 (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3017 (m32c_prepare_shift): Remove variable lref.
3018 (m32c_expand_movcc): Remove variable cmp.
3019 (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3020 (m32c_compare_redundant): Remove variable op2.
3021 * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3022 (m32c_pragma_memregs): Assign the number to target_memregs.
3023 (m32c_pragma_address): Remove variable var_str.
3024 * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3026 (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3027 * config/m32c/bitops.md (andsi3): Add default case to switch.
3028 (iorsi3, xorsi3): Likewise.
3029 * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3030 * config/m32c/jump.md (call, call_value): Likewise.
3031 * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3032 (m32c_regno_reg_class): Likewise.
3033 (current_function_special_page_vector): Declare.
3035 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3037 * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3039 PR tree-optimization/46099
3040 * tree-parloops.c (take_address_of): Add GSI argument. Return NULL
3041 if it is NULL and uid wasn't found in the hash table. Just fold the
3042 result if it is NULL otherwise. Insert other potentially needed
3043 stmts right before current stmt instead of on the entry edge.
3044 (struct elv_data): Add gsi and reset fields.
3045 (eliminate_local_variables_1): Adjust caller. If take_address_of
3046 failed for debug stmt, set dta->reset and return.
3047 (eliminate_local_variables_stmt): Change STMT argument for GSI,
3048 pass GSI through to the callback, handle resetting of debug stmts.
3049 (eliminate_local_variables): Adjust caller. Process debug stmts
3053 * gimplify.c (gimplify_asm_expr): If a "m" input is a
3054 {pre,post}{in,de}crement, fail.
3057 * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3058 * tree-pretty-print.c (dump_generic_node): Likewise.
3059 (op_code_prio): Likewise.
3060 * cfgexpand.c (expand_debug_expr): Likewise.
3062 2010-11-04 Paul Koning <ni1d@arrl.net>
3064 * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3067 2010-11-04 Chao-ying Fu <fu@mips.com>
3069 * configure.ac: Test assembler support for DSP Rev1 mult.
3070 * configure: Regenerate.
3071 * config.in: Regenerate.
3072 * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3073 * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3074 (CODE_FOR_mips_multu): New define.
3075 (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3077 (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3078 Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3079 * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3080 New define_expand patterns.
3081 * config/mips/constraints.md (ka): Update the constraint to test
3082 ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3083 * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3084 mips_multu): Delete.
3085 * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3086 Change target constraint to "ka".
3087 Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3088 (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3089 Emit the accumulator destination when ISA_HAS_DSP_MULT.
3090 (<u>msubsidi4): Add comments. Test ISA_HAS_DSP.
3091 Emit the accumulator destination when ISA_HAS_DSP_MULT.
3092 (<u>maddsidi4): Likewise.
3093 * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3094 msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3096 2010-11-04 Paul Koning <ni1d@arrl.net>
3098 * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3100 2010-11-04 Paul Koning <ni1d@arrl.net>
3102 * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3104 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
3106 Fixed using the Objective-C 2.0 dot-syntax with class names.
3107 * c-parser.c (c_parser_next_token_starts_declspecs): In
3108 Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3109 (c_parser_next_token_starts_declaration): Same.
3110 (c_parser_postfix_expression): Parse the Objective-C 2.0
3111 dot-syntax with a class name.
3113 2010-11-04 Pat Haugen <pthaugen@us.ibm.com>
3115 * final.c (compute_alignments): Compute/free loop info all the time.
3116 * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3117 * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3118 * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3119 * config/rs6000/rs6000.c (cfgloop.h): Include.
3120 (can_override_loop_align): New.
3121 (rs6000_option_override_internal): Set it.
3122 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3123 (rs6000_loop_align): New function.
3124 (rs6000_loop_align_max_skip): Likewise.
3126 2010-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3129 * collect2.c (main): Print --help output to stdout. Do not
3130 exit right away, so ld --help is appended. Add empty lines
3131 to separate output suitably.
3133 2010-11-04 Jakub Jelinek <jakub@redhat.com>
3135 PR tree-optimization/46233
3136 * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3137 after calling analyze_function, not before.
3140 * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3141 instead of build_va_arg_indirect_ref.
3142 * config/spu/spu.c (spu_va_start): Likewise.
3143 * config/s390/s390.c (s390_va_start): Likewise.
3145 2010-11-03 Uros Bizjak <ubizjak@gmail.com>
3148 * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3149 if the innermode is not vector mode, determine the mode of a subreg
3150 by using mode_for_size of inner_size.
3152 2010-11-04 Richard Guenther <rguenther@suse.de>
3154 PR rtl-optimization/46183
3155 * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3156 (execute_rtl_pre): Likewise.
3157 (execute_rtl_hoist): Likewise.
3159 2010-11-04 Richard Guenther <rguenther@suse.de>
3161 PR tree-optimization/46068
3162 * ipa-split.c (consider_split): Remove gcc_unreachable.
3164 2010-11-04 Richard Guenther <rguenther@suse.de>
3166 * tree-nested.c (build_addr): Use build_fold_addr_expr.
3168 2010-11-04 Richard Guenther <rguenther@suse.de>
3170 PR tree-optimization/45991
3171 * gimplify.c (force_gimple_operand_1): Use the provded test
3172 function in the initial test.
3174 2010-11-04 Jeff Law <law@redhat.com>
3176 * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3177 of readonly memory equivalances for const/pure calls.
3179 2010-11-04 Richard Guenther <rguenther@suse.de>
3181 PR tree-optimization/45733
3182 * tree-vect-stmts.c (reverse_vec_elements): Honor the
3183 permute builtins function return type.
3185 2010-11-04 Joern Rennecke <amylaar@spamcop.net>
3188 * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3189 as an index, check it is not INVALID_REGNUM.
3192 * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3194 * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3197 * function.c (thread_prologue_and_epilogue_insns): Add
3198 ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3201 * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3204 * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3205 (pdp11_preferred_reload_class): Rename class to rclass.
3206 (pdp11_preferred_output_reload_class): Likewise.
3207 * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3209 (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3212 * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3213 iteration variables to enum machine_mode.
3216 * config/h8300/h8300.c: Include df.h.
3217 (push, pop): Use add_reg_note.
3218 (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3219 (compute_a_shift_cc): Likewise.
3220 (expand_a_shift): Argument code has type enum rtx_code.
3221 (struct shift_insn): Member cc_valid has type enum attr_cc.
3222 (struct shift_info) <cc_inline, cc_special>: Likewise.
3224 * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3225 (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3227 2010-11-04 Ira Rosen <irar@il.ibm.com>
3229 PR tree-optimization/46213
3230 * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3231 MINUS_EXPR only if the first operand is reduction operand.
3233 2010-11-04 Richard Guenther <rguenther@suse.de>
3234 Richard Henderson <rth@redhat.com>
3236 * tree.def (FMA_EXPR): New tree code.
3237 * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3238 * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3239 * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3240 * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3241 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3242 * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3243 (execute_optimize_widening_mul): Call it. Reorganize to allow
3244 dead stmt removal. Move TODO flags ...
3245 (pass_optimize_widening_mul): ... here.
3246 * flag-types.h (enum fp_contract_mode): New enum.
3247 * common.opt (flag_fp_contract_mode): New variable.
3248 (-ffp-contract): New option.
3249 * opts.c (common_handle_option): Handle it.
3250 * doc/invoke.texi (-ffp-contract): Document.
3251 * tree.h (fold_fma): Declare.
3252 * builtins.c (fold_fma): New function.
3253 (fold_builtin_fma): Likewise.
3254 (fold_builtin_3): Call it for fma.
3255 * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3256 * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3257 * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3259 * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3261 * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3262 * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3263 (fms_optab, fnma_optab, fnms_optab): New defines.
3264 * gimplify.c (gimplify_expr): Handle binary truth expressions
3265 explicitly. Handle FMA_EXPR.
3266 * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3269 2010-11-04 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
3270 Richard Guenther <rguenther@suse.de>
3272 * passes.c (init_optimization_passes): Move veclower after SSA.
3273 * tree-vect-generic.c (uniform_vector_p): New function.
3274 (expand_vector_operations_1): Handle conversion.
3275 (pass_lower_vector): Update SSA form.
3277 2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
3279 * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3280 plugin capabilities.
3281 * configure: Regenerate.
3283 2010-11-03 Xinliang David Li <davidxl@google.com>
3286 * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3287 Adjust cbase if the use stmt is after iv update.
3289 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
3291 * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3293 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
3295 * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3296 comment. Pass true to the last argument of output_stack_adjust.
3298 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3301 * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3302 if 256bit AVX register is used.
3304 2010-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3306 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3307 xsmindp/xsmaxdp on VSX for single precision min/max.
3308 * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3309 (vsx_sminsf3): Ditto.
3311 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
3313 * combine.c (try_combine): Fix formatting issues, improve comments and
3316 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
3318 * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3319 of the result before building binary expressions.
3321 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3323 PR rtl-optimization/45865
3324 * Makefile.in (df-problems.o): Revert revision 164552.
3325 * basic-block.h (enum bb_flags): Likewise.
3326 * cfgcleanup.c (block_was_dirty): Likewise.
3327 (try_forward_edges): Likewise.
3328 (try_crossjump_bb): Likewise.
3329 (try_head_merge_bb): Likewise.
3330 (try_optimize_cfg): Likewise.
3331 (cleanup_cfg): Likewise.
3332 * df-core.c (df_set_bb_dirty): Likewise.
3333 * df-problems.c: Likewise.
3334 (df_simulate_find_uses): Likewise.
3335 (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3336 (find_memory, find_memory_store): Likewise.
3337 (can_move_insns_across): Likewise.
3338 * df.h (can_move_insns_across): Likewise.
3339 * ifcvt.c (find_memory): Likewise.
3340 (dead_or_predicable): Likewise.
3342 2010-11-03 Richard Guenther <rguenther@suse.de>
3345 * predict.c (strip_predict_hints): Simply DCE builtin expect if
3346 the result is unused.
3348 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3350 PR tree-optimization/46009
3351 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3352 cond_if_else_store_replacement if bb1 and bb2 have the same
3354 (cond_store_replacement): Use gimple_assign_single_p, don't
3355 check if rhs is SSA_NAME or invariant. Call release_defs for
3357 (cond_if_else_store_replacement): New function.
3359 2010-11-03 Richard Guenther <rguenther@suse.de>
3361 * opts.c (finish_options): Properly check for all WHOPR
3362 flags before complaining about -flto-partition.
3364 2010-11-04 Alan Modra <amodra@gmail.com>
3366 * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3367 (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3369 * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3370 * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3371 on input, "r" on output.
3373 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
3375 Implemented -fobjc-std=objc1 flag.
3376 * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3378 * doc/standards.texi (Standards): Updated the section on
3379 Objective-C; mention support for Objective-C 2.0 features and the
3380 new -fstd-objc=objc1 flag to disable them.
3382 2010-11-03 Richard Guenther <rguenther@suse.de>
3385 * dwarf2out.c (scope_die_for): Properly detect global scope.
3387 2010-11-03 Richard Guenther <rguenther@suse.de>
3389 PR tree-optimization/46190
3390 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3391 Properly compute peel iterations.
3393 2010-11-03 Richard Guenther <rguenther@suse.de>
3395 PR tree-optimization/46286
3396 * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3397 re-allocated vector data.
3399 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3402 * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3403 calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3406 2010-11-03 Richard Guenther <rguenther@suse.de>