OSDN Git Service

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