OSDN Git Service

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