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