OSDN Git Service

2010-11-22 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
2
3         PR driver/43335
4         * gcc.c (main): Don't crash when lto-wrapper program is not found.
5
6 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
7
8         PR target/46608
9         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
10         * config/picochip/picochip-protos.h: Don't include "target.h" .
11         (picochip_secondary_reload): Don't declare.
12
13 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
14
15         PR bootstrap/46609
16         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
17         (source_dot_c_frul): Likewise.
18
19 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
20
21         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
22
23 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
24
25         PR bootstrap/44970
26         * Makefile.in (fwprop.o) Add sparseset.h.
27         * fwprop.c: Include sparseset.h
28         (struct find_occurrence_data, find_occurrence_callback,
29         find_occurrence): Remove.
30         (active_defs, active_defs_check, register_active_defs,
31         update_df_init, update_uses): New.
32         (update_df): Rewrite.
33         (try_fwprop_subst, forward_propagate_asm): Add calls to
34         update_df_init and update_df.
35         (fwprop_init): Allocate active_defs and active_defs_check.
36         (fwprop_done): Free them.
37         (fwprop, fwprop_addr): Adjust comments.
38         * df.h (df_uses_create): Declare.
39         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
40         (df_ref_create): Return result of df_ref_create_structure directly.
41         (df_ref_create_structure): Call df_install_ref_incremental when
42         no collection_rec is passed.
43         (df_ref_record): Do not create multiword hard reg info when no
44         collection_rec is passed.
45         (df_uses_create): New. 
46
47 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
48
49         PR middle-end/43057
50         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
51         setting location.
52
53 2010-11-22  Richard Guenther  <rguenther@suse.de>
54
55         * gimple-fold.c (maybe_fold_reference): When canonicalizing
56         MEM_REFs, preserve volatileness.
57         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
58         addresses.
59
60 2010-11-22  Richard Guenther  <rguenther@suse.de>
61
62         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
63
64 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
65
66         PR rtl-optimization/45652
67         * alias.c (get_reg_base_value): New.
68         * rtl.h (get_reg_base_value): Add prototype.
69         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
70         non-null REG_BASE_VALUE for renaming.
71
72 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
73             Basile Starynkevitch  <basile@starynkevitch.net>
74
75         * gengtype.c: Include xregex.h and obstack.h
76         Added comments about role of get_output_file_with_visibility and
77         our regexpr machinery.
78         (frul_actionrout_t, struct file_rule_st): New.
79         (hader_dot_h_frul, source_dot_c_frul): New functions.
80         (NULL_REGEX,  NULL_FRULACT): New.
81         (files_rules): New.
82         (matching_file_name_substitute): New function.
83         (get_output_file_with_visibility): Updated comments and rewritten
84         to use the new files_rules machinery.
85
86         * Makefile.in (XREGEX_H): Added variable.
87         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
88
89 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
90
91         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
92
93 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
94
95         * target.def (conditional_register_usage): Define.
96         * reginfo.c (init_reg_sets_1): Call
97         targetm.conditional_register_usage.
98         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
99         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
100         for making it a hook.
101         * doc/tm.texi: Regenerate.
102         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
103         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
104         New function.
105         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
106         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
107         * config/arc/arc.c (arc_conditional_register_usage): ...here.
108         New function.
109         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
110         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
111         * config/arm/arm.c (arm_conditional_register_usage): ...here.
112         New function.
113         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
114         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
115         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
116         * config/bfin/bfin.c (conditional_register_usage): Move code into...
117         (bfin_conditional_register_usage): ...here.  New function.
118         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
119         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
120         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
121         * config/cris/cris.c (cris_conditional_register_usage): Make static.
122         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
123         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
124         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
125         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
126         * config/frv/frv.c (frv_conditional_register_usage): Make static.
127         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
128         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
129         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
130         New function.
131         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
132         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
133         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
134         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
135         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
136         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
137         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
138         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
139         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
140         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
141         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
142         New function.
143         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
144         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
145         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
146         Delete.
147         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
148         static.
149         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
150         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
151         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
152         * config/mep/mep.c (mep_conditional_register_usage): Make static.
153         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
154         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
155         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
156         * config/mips/mips.c (mips_conditional_register_usage): Make static.
157         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
158         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
159         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
160         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
161         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
162         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
163         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
164         ...here.  New function.
165         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
166         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
167         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
168         * config/pa/pa.c (pa_conditional_register_usage): ...here.
169         New function.
170         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
171         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
172         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
173         New function.
174         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
175         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
176         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
177         Delete.
178         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
179         static.
180         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
181         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
182         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
183         * config/rx/rx.c (rx_conditional_register_usage): Make static.
184         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
185         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
186         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
187         * config/s390/s390.c (s390_conditional_register_usage): Make static.
188         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
189         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
190         * config/score/score.c (score_conditional_register_usage): ...here.
191         New function.
192         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
193         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
194         * config/sh/sh.c (sh_conditional_register_usage): ...here.
195         New function.
196         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
197         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
198         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
199         New function.
200         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
201         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
202         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
203         * config/spu/spu.c (spu_conditional_register_usage): Make static.
204         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
205         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
206         * config/v850/v850.c (v850_conditional_register_usage): ...here.
207         New function.
208         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
209
210 2010-11-21  Jan Hubicka  <jh@suse.cz>
211             Dominique d'Humieres <dominiq@lps.ens.ft>
212
213         PR target/46510
214         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
215         finalize external decls.
216
217 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
218
219         * system.h (strerror): Poison.
220
221 2010-11-21  Richard Henderson  <rth@redhat.com>
222
223         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
224         for infq/huge_valq.
225
226 2010-11-21  Richard Henderson  <rth@redhat.com>
227
228         PR rtl-optimization/46571
229         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
230         (compute_hash_table_work): Use NONDEBUG_INSN_P.
231
232 2010-11-21  Paul Koning  <ni1d@arrl.net>
233
234         * config/mips/pdp11.md (negsi2): Fix wrong code.
235
236 2010-11-21  Paul Koning  <ni1d@arrl.net>
237
238         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
239         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
240
241 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
242
243         * config/mips/mips.c (machine_function): Rename load_label_length to
244         load_label_num_insns.
245         (mips_load_label_length): Rename to...
246         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
247         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
248
249 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
250
251         PR target/46533
252         * config/alpha/predicates.md (direct_call_operand): Return false
253         for !TARGET_SMALL_TEXT targets.
254
255 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
256
257         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
258         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
259         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
260         * doc/tm.texi: Regenerate.
261         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
262         HANDLE_PRAGMA_WEAK): Poison.
263         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
264         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
265         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
266         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
267         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
268         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
269         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
270         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
271         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
272         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
273         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
274         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
275         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
276         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
277         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
278         (HANDLE_PRAGMA_WEAK): Don't undefine.
279         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
280         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
281         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
282         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
283         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
284         (HANDLE_PRAGMA_WEAK): Don't undefine.
285         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
286         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
287         (HANDLE_PRAGMA_PACK): Don't undefine.
288         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
289         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
290         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
291         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
292         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
293         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
294         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
295         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
296         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
297         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
298         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
299         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
300         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
301         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
302         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
303         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
304         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
305
306 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
307
308         PR target/31100
309         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
310         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
311         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
312
313 2010-11-20  Jan Hubicka  <jh@suse.cz>
314
315         * cgraph.c (ld_plugin_symbol_resolution_names): New.
316         (dump_cgraph_node): Dump resolution.
317         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
318         (cgraph_comdat_can_be_unshared_p): Dclare.
319         * lto-streamer-out.c (produce_symtab): Use
320         cgraph_comdat_can_be_unshared_p.
321         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
322         (cgraph_comdat_can_be_unshared_p): New function based on logic
323         in cgraph_externally_visible_p.
324         (cgraph_externally_visible_p): Use it.
325         (varpool_externally_visible_p): Virtual tables can be unshared.
326         * varpool.c (dump_varpool_node): Dump resolution.
327
328 2010-11-20  Jan Hubicka  <jh@suse.cz>
329
330         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
331
332 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
333
334         PR other/46202
335         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
336         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
337         shell quoting.
338         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
339         (install-strip): New target.
340         (STRIPPROG): New variable, exported if STRIP is set.
341         * doc/install.texi (Final install): Minor markup and code style
342         fixes.  Document install-strip target.
343
344 2010-11-20  Paul Koning  <ni1d@arrl.net>
345
346         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
347         pdp11_regno_reg_class): New functions.
348         * config/pdp11/pdp11.md (define_constants): Add register numbers.
349         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
350         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
351         functions.
352         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
353         frame pointer and argument pointer pseudo-registers.
354         (ARG_POINTER_REGNUM): Define.
355         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
356         argument pointer.
357         (FIRST_PARM_OFFSET): Update for argument pointer.
358         (INITIAL_FRAME_POINTER_OFFSET): Delete.
359         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
360         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
361         frame pointer and argument pointer.
362
363 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
364
365         PR debug/46561
366         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
367         when looking for immediate uses.
368
369         PR tree-optimization/45830
370         * stmt.c (expand_switch_using_bit_tests_p): New function.
371         (expand_case): Use it.
372         * tree.h (expand_switch_using_bit_tests_p): New prototype.
373         * tree-switch-conversion.c (struct switch_conv_info): Add
374         bit_test_uniq, bit_test_count and bit_test_bb fields.
375         (check_range): Fix a comment.
376         (check_process_case): Compute bit_test_uniq and bit_test_count.
377         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
378         allocation.
379         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
380         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
381         (array_value_type): New function.
382         (build_one_array): Use it, if it returned different type,
383         fold_convert all constructor fields and convert back to the
384         wider type in the generated code.
385         (process_switch): Initialize bit_test_uniq, bit_test_count and
386         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
387         returned true.
388
389 2010-11-19  Michael Matz  <matz@suse.de>
390
391         PR tree-optimization/46077
392         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
393
394 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
395
396         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
397         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
398         function.
399         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
400
401 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
402
403         * mode-switching.c (optimize_mode_switching): Use
404         FOR_BB_INSNS instead of open-coded loop.
405         * cfgrtl.c (redirect_branch_edge): Ditto.
406
407 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
408
409         PR target/46436
410         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
411         to accomodate 32 bit HOST_WIDE_INT.
412         (m68hc11_emit_logical): Remove unused variable insn.
413         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
414         this_insn_uses_iy before use.
415
416         PR target/46434
417         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
418
419 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
420
421         PR c/46547
422         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
423         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
424
425 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
426
427         * doc/extend.texi (Function attributes): Document PowerPC target
428         attributes that are supported.
429         (Pragmas): Document that PowerPC now supports target pragmas.
430
431         * doc/options.texi (TargetVariable): Document TargetVariable,
432         HeaderInclude, and SourceInclude.
433
434         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
435         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
436         -ffp-contract=off.
437
438         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
439         SourceInclude directives.  Fix a cut+paste error with target save
440         enum variables.  Sort enums in the structures after ints and
441         before shorts.
442         * opth-gen.awk: Ditto.
443
444         * configure.ac: Add support for HeaderInclude and SourceInclude option
445         directives to add the appropriate files to the dependency lists.
446         * configure: Regenerate.
447         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
448         (OPTIONS_C_EXTRA): New variable for SourceInclude.
449         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
450         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
451         (gcc-options.o): Ditto.
452         * opt-include.awk: New awk script to handle HeaderInclude and
453         TargetInclude.
454
455         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
456         gets saved in the target options.
457         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
458         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
459         (-mprototype): Ditto.
460         (-mbit-word): ditto.
461         (-mregnames): Ditto.
462         (-msecure-plt): Ditto.
463         (-mbss-plt): Ditto.
464         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
465         (-mpowerpc-gfxopt): Ditto.
466         (-mmfcrf): Ditto.
467         (-mpopcntb): Ditto.
468         (-mfprnd): Ditto.
469         (-mcmpb): Ditto.
470         (-mmmfpgpr): Ditto.
471         (-maltivec): Ditto.
472         (-mhard-dfp): Ditto.
473         (-mmulhw): Ditto.
474         (-mdlmzb): Ditto.
475         (-mmultiple): Ditto.
476         (-mstring): Ditto.
477         (-mpopcntd): Ditto.
478         (-mfriz): Ditto.
479         (-mvsx): Ditto.
480         (-mno-update): Ditto.
481         (-mavoid-indexed-addresses): Ditto.
482         (-mtls-markers): Ditto.
483         (-msched-epilog): Ditto.
484         (-msched-prolog): Ditto.
485         (-maix-struct-return): Ditto.
486         (-msvr4-struct-return): Ditto.
487         (-mxl-compat): Ditto.
488         (-mrecip-precision): Ditto.
489         (-mfp-in-toc): Ditto.
490         (-msum-in-toc): Ditto.
491         (-mvrsave): Ditto.
492         (-mblock-move-inline-limit=): Ditto.
493         (-misel): Ditto.
494         (-mpaired): Ditto.
495         (-mlongcall): Ditto.
496         (-mgen-cell-microcode): Ditto.
497         (-mwarn-cell-microcode): Ditto.
498         (-mwarn-altivec-long): Ditto.
499         (-mprioritize-restricted-insns=): Ditto.
500         (-msingle-float): Ditto.
501         (-mdouble-float): Ditto.
502         (-msimple-fpu): Ditto.
503         (-mxilinx-fpu): Ditto.
504         * config/rs6000/aix64.opt (-mpe): Ditto.
505
506         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
507         (rs6000_cpu): Move variable to be a target variable.  Rename
508         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
509         -mdebug=<xxx> variables into a single int.
510         (rs6000_always_hint): Ditto.
511         (rs6000_sched_groups): Ditto.
512         (rs6000_align_branch_targets): Ditto.
513         (rs6000_sched_costly_dep): Ditto.
514         (rs6000_sched_insert_nops): Ditto.
515         (rs6000_long_double_type_size): Ditto.
516         (rs6000_ieeequad): Ditto.
517         (rs6000_altivec_abi): Ditto.
518         (rs6000_spe): Ditto.
519         (rs6000_spe_abi): Ditto.
520         (rs6000_float_gprs): Ditto.
521         (rs6000_darwin64_abi): Ditto.
522         (can_override_loop_align): Ditto.
523         (rs6000_sdata): Ditto.
524         (rs6000_tls_size): Ditto.
525         (rs6000_current_abi): Ditto.
526         (rs6000_traceback): Ditto.
527         (rs6000_alignment_flags): Ditto.
528         (rs6000_current_cmodel): Ditto.
529         (rs6000_recip_control): Ditto.
530         (rs6000_cpu_index): Ditto.
531         (rs6000_tune_index): Ditto.
532         (rs6000_debug): Ditto.
533         (rs6000_target_flags_explict): Ditto.
534
535         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
536         declaration.
537
538         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
539         cmodel.  Change all uses.
540
541         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
542         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
543         Rename cmodel to rs6000_current_cmodel.
544         (rs6000_sched_groups): Ditto.
545         (rs6000_align_branch_targets): Ditto.
546         (rs6000_sched_costly_dep): Ditto.
547         (rs6000_sched_insert_nops): Ditto.
548         (rs6000_long_double_type_size): Ditto.
549         (rs6000_ieeequad): Ditto.
550         (rs6000_altivec_abi): Ditto.
551         (rs6000_spe): Ditto.
552         (rs6000_spe_abi): Ditto.
553         (rs6000_float_gprs): Ditto.
554         (rs6000_darwin64_abi): Ditto.
555         (can_override_loop_align): Ditto.
556         (rs6000_sdata): Ditto.
557         (rs6000_tls_size): Ditto.
558         (rs6000_current_abi): Ditto.
559         (rs6000_traceback): Ditto.
560         (rs6000_alignment_flags): Ditto.
561         (rs6000_current_cmodel): Ditto.
562         (rs6000_recip_control): Ditto.
563         (rs6000_cpu_index): Ditto.
564         (rs6000_tune_index): Ditto.
565         (rs6000_debug): Ditto.
566         (rs6000_target_flags_explict): Ditto.
567         (rs6000_sched_insert_nops_str): Make static.
568         (rs6000_sched_costly_dep_str): Ditto.
569         (rs6000_recip_name): Ditto.
570         (rs6000_abi_name): Ditto.
571         (rs6000_sdata_name): Ditto.
572         (enum rs6000_traceback_name): Move to rs6000-opts.h.
573         (rs6000_parse_tls_size_option): Delete.
574         (rs6000_valid_attribute_p): New function for target attributes and
575         pragmas.
576         (rs6000_function_specific_save): Ditto.
577         (rs6000_function_specific_restore): Ditto.
578         (rs6000_function_specific_print): Ditto.
579         (rs6000_can_inline_p): Ditto.
580         (rs6000_set_current_function): Ditto.
581         (rs6000_inner_target_options): Ditto.
582         (rs6000_debug_target_options): Ditto.
583         (rs6000_pragma_target_parse): Ditto.
584         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
585         attributes and pragmas.
586         (TARGET_OPTION_SAVE): Ditto.
587         (TARGET_OPTION_RESTORE): Ditto.
588         (TARGET_OPTION_PRINT): Ditto.
589         (TARGET_CAN_INLINE_P): Ditto.
590         (TARGET_SET_CURRENT_FUNCTION): Ditto.
591         (POWER_MASKS): Move to file level scope from the
592         rs6000_option_override_internal function.
593         (POWERPC_MASKS): Ditto.
594         (ISA_*_MASKS): Ditto.
595         (struct rs6000_ptt): Ditto.
596         (processor_target_table): Ditto.
597         (rs6000_cpu_name_lookup): Map cpu name to an index in
598         processor_target_table.
599         (rs6000_debug_reg_global): Print more information on processor
600         options for -mdebug=reg.
601         (rs6000_init_hard_regno_mode_ok): Add support for target
602         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
603         Allow -mdebug=val1,val2.  Rename cmodel variable.
604         (rs6000_option_override_internal): Ditto.
605         (rs6000_option_override): Ditto.
606         (rs6000_handle_option): Ditto.
607         (rs6000_conditional_register_usage): Add debug trace message.
608         (struct rs6000_opt_mask): New for target attribute/pragma support.
609         (rs6000_opt_masks): Ditto.
610         (struct rs6000_opt_var): Ditto.
611         (rs6000_opt_vars): Ditto.
612         (rs6000_previous_function): Ditto.
613
614         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
615         wasn't already included.
616         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
617         (enum processor_type): Ditto.
618         (rs6000_cpu): Ditto.
619         (enum fpu_type_t): Ditto.
620         (fpu_type): Ditto.
621         (enum rs6000_dependence_cost): Ditto.
622         (enum rs6000_nop_insertion): Ditto.
623         (enum group_termination): Ditto.
624         (rs6000_long_double_type_size): Ditto.
625         (rs6000_ieeequad): Ditto.
626         (rs6000_altivec_abi): Ditto.
627         (rs6000_spe_abi): Ditto.
628         (rs6000_spe): Ditto.
629         (rs6000_float_gprs): Ditto.
630         (rs6000_alignment_flags): Ditto.
631         (rs6000_sched_insert_nops): Ditto.
632         (enum rs6000_vector): Ditto.
633         (enum rs6000_abi): Ditto.
634         (rs6000_current_opt): Ditto.
635         (rs6000_debug_*): Delete.
636         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
637         (TARGET_DEBUG*): Ditto.
638
639         * config/rs6000/rs6000-opts.h: New header file to define the enums
640         that are used in target variables that are now defined in rs6000.opt.
641
642         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
643         rs6000-opts.h.
644         (rs6000_sdata): Ditto.
645         (rs6000_abi_name): Delete.
646         (rs6000_sdata_name): Ditto.
647         (rs6000_tls_size_string): Ditto.
648
649 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
650
651         * common.opt (debug_struct_ordinary, debug_struct_generic): New
652         Variable entries.
653         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
654         should_emit_struct_debug): Move from opts.c.
655         * flag-types.h (enum debug_struct_file): Move from opts.c.
656         * flags.h (should_emit_struct_debug): Remove.
657         (base_of_path): Declare.
658         (set_struct_debug_option): Add gcc_options parameter.
659         * optc-gen.awk, opth-gen.awk: Handle array variables.
660         * opts.c (enum debug_struct_file, debug_struct_ordinary,
661         debug_struct_generic): Remove.
662         (set_struct_debug_option): Add gcc_options parameter.
663         (base_of_path): Remove static.
664         (main_input_basename, main_input_baselength, matches_main_base,
665         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
666         Remove.
667         * toplev.c (main_input_basename, main_input_baselength): Define
668         here.
669         * toplev.h (main_input_basename, main_input_baselength): Declare
670         here.
671
672 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
673
674         * common.opt (flag_instrument_functions_exclude_functions,
675         flag_instrument_functions_exclude_files): New Variable definitions.
676         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
677         * gimplify.c (char_p): Declare type and vectors.
678         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
679         * opts.c (flag_instrument_functions_exclude_functions,
680         flag_instrument_functions_exclude_files): Remove.
681         (add_comma_separated_to_vector): Take void **.
682         (flag_instrument_functions_exclude_p): Move to gimplify.c.
683         (common_handle_option): Use options structure for
684         -finstrument-functions-exclude- options.
685
686 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
687
688         * doc/options.texi (Var): Document effects of Defer.
689         (Defer): Document.
690         * opt-functions.awk (var_type, var_set): Handle deferred options.
691         * opts-common.c (set_option): Handle CLVC_DEFER.
692         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
693         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
694         fstack-limit-symbol=): Mark as deferred.
695         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
696         plugin.h.
697         (print_filtered_help): Don't report state of CLVC_DEFER options.
698         (common_handle_option): Move code for OPT_fcall_used_,
699         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
700         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
701         OPT_fstack_limit_symbol_ to opts-global.c.
702         (option_enabled, get_option_state): Handle CLVC_DEFER.
703         * opts.h: Include vec.h.
704         (enum cl_var_type): Add CLVC_DEFER.
705         (cl_deferred_option): Define type and vectors.
706         (handle_common_deferred_options): Declare.
707         * opts-global.c: New.
708         * toplev.c (toplev_main): Call handle_common_deferred_options
709         * Makefile.in (OPTS_H): Include $(VEC_H).
710         (OBJS-common): Include opts-global.o.
711         (opts.o): Update dependencies.
712         (opts-global.o): Add dependencies.
713
714 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
715
716         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
717         to objc_declare_protocols.
718
719 2010-11-19  Richard Guenther  <rguenther@suse.de>
720
721         PR lto/45789
722         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
723         IDENTIFIERs do not stream TREE_TYPE.
724         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
725
726 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
727
728         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
729
730 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
731
732         PR target/45870
733         * dwarf2out.c (const_ok_for_output_1): Don't complain about
734         non-delegitimized TLS UNSPECs.
735
736 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
737             Ian Lance Taylor  <iant@google.com>
738
739         * config/darwin-c.c (darwin_additional_format_types): Export.
740
741 2010-11-18  Paul Koning  <ni1d@arrl.net>
742
743         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
744         pointer.
745
746 2010-11-18  Paul Koning  <ni1d@arrl.net>
747
748         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
749         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
750         * config/pdp11/pdp11.opt (-mabshi): Delete.
751
752 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
753
754         * resource.h (struct resources): Fix typo in the comment.
755
756 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
757
758         PR target/46546
759         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
760
761 2010-11-18  Richard Henderson  <rth@redhat.com>
762
763         PR middle-end/46515
764         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
765         maybe_copy_epilogue_insn; handle prologue insns as well.
766         * rtl.h, cfglayout.c: Update for rename.
767         * recog.c (peep2_attempt): Copy prologue/epilogue data for
768         RTX_FRAME_RELATED_P insns.
769
770 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
771
772         PR middle-end/46534
773         * builtins.c (fold_builtin_printf): Don't copy and modify string
774         before build_string_literal, instead modify what
775         build_string_literal returned.
776
777 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
778
779         PR c/33193
780         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
781         REALPART_EXPR and IMAGPART_EXPR.
782
783 2010-11-18  Richard Guenther  <rguenther@suse.de>
784
785         PR tree-optimization/46172
786         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
787         function.
788         (slpeel_tree_peel_loop_to_edge): Call it.
789
790 2010-11-18  Jeff Law  <law@redhat.com>
791
792         PR middle-end-optimization/46297
793         * postreload.c (reload_combine_note_store): Deal with embedded
794         side effects in MEM expressions.
795
796 2010-11-18  Richard Guenther  <rguenther@suse.de>
797
798         PR lto/45089
799         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
800         when checking is not enabled.
801
802 2010-11-18  Richard Guenther  <rguenther@suse.de>
803
804         PR lto/46525
805         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
806         type leaders.
807         (gimple_register_canonical_type): Also cache the canoncial type
808         for non type leaders.
809
810 2010-11-18  Richard Guenther  <rguenther@suse.de>
811
812         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
813
814 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
815
816         PR middle-end/46518
817         * sel-sched-ir.c (init_expr): Use the correct type for
818         target_available.
819         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
820
821 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
822
823         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
824         as well as -mrelocatable at the same time.
825
826 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
827
828         PR target/46422
829         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
830         Call the clz builtin.
831
832 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
833             Steve Ellcey  <sje@cup.hp.com>
834
835         PR middle-end/31490
836         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
837         if section attribute used.
838
839 2010-11-17  Jan Hubicka  <jh@suse.cz>
840
841         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
842         expand errno setting variant when optimizing for size.
843
844 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
845
846         * postreload.c (reload_combine): Call control_flow_insn_p only once.
847         Reverse backward loop.  Fix formatting issues.
848
849 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
850
851         * c-parser.c (c_token_is_qualifier,
852         c_parser_next_token_is_qualifier): New.
853         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
854         Improve error message on specs->tagdef_seen_p.
855         (c_parser_struct_or_union_specifier): Improve error recovery.
856         (c_parser_declspecs): Move exit condition on C_ID_ID early.
857         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
858         using c_parser_next_token_is_qualifier; extend it to cover
859         a ctsk_tagdef typespec and !typespec_ok in general.
860
861 2010-11-17  Richard Guenther  <rguenther@suse.de>
862
863         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
864         (gimple_mod_pow2_value_transform): Likewise.
865         (gimple_mod_subtract_transform): Likewise.
866
867 2010-11-17  Richard Guenther  <rguenther@suse.de>
868
869         PR lto/46504
870         * gimple.c (gimple_register_canonical_type): Make sure to only
871         make type leaders canonical types.
872
873 2010-11-17  Michael Matz  <matz@suse.de>
874
875         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
876         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
877         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
878         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
879         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
880         (pass_build_ssa): ... but here.
881         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
882         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
883         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
884         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
885         * predict.c (rebuild_frequencies): Ditto.
886         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
887         * emit-rtl.c (verify_rtl_sharing): Ditto.
888         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
889         * tree-ssa-live.c (remove_unused_locals): Ditto.
890         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
891         * tree-ssa.c (pass_early_warn_uninitialized,
892         execute_update_addresses_taken, pass_update_address_taken): Ditto.
893         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
894         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
895         * passes.c (pass_postreload, execute_todo): Ditto.
896         * tree-ssanames.c (pass_release_ssa_names): Ditto.
897
898 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
899
900         * doc/invoke.texi (-dy): Remove.
901         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
902         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
903         * langhooks.c (lhd_do_nothing_i): Remove.
904         * langhooks.h (lang_hooks.parse_file): Take no arguments.
905         * toplev.c (set_yydebug): Remove.
906         (compile_file): Update call to lang_hooks.parse_file.
907         (decode_d_option): Don't handle -dy.
908
909 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
910
911         PR rtl-optimization/46440
912         * combine.c (update_cfg_for_uncondjump): When changing
913         an indirect jump into unconditional jump, remove BARRIERs
914         from bb's footer.
915
916 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
917
918         * opts.c (target_handle_option): Do not assert that loc ==
919         UNKNOWN_LOCATION.
920
921 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
922             Richard Guenther  <rguenther@suse.de>
923
924         PR middle-end/45838
925         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
926         call_may_clobber_ref_p_1): Return true for __sync_* and some
927         OpenMP builtins that act as threading barriers.
928
929 2010-11-17  Richard Guenther  <rguenther@suse.de>
930
931         PR tree-optimization/46498
932         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
933
934 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
935
936         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
937         (xtensa_function_arg_boundary): ...this.
938         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
939         thinko in declaration.
940         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
941         number of parameters to picochip_function_arg_boundary.
942         (picochip_arg_advance): Likewise.
943
944 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
945
946         PR target/46512
947         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
948         under check for type.
949
950 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
951
952         * ifcvt.c (dead_or_predicable): Fix typo.
953
954 2010-11-16  Richard Henderson  <rth@redhat.com>
955
956         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
957         * config/s390/s390.opt (mfused-madd): Remove.
958         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
959         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
960         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
961         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
962
963 2010-11-16  Richard Henderson  <rth@redhat.com>
964
965         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
966         * config/rs6000/rs6000.opt (mfused-madd): Remove.
967         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
968         (*altivec_vmaddfp_1): Remove.
969         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
970         (altivec_mulv4sf3): Expand to FMA directly.
971         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
972         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
973         * config/rs6000/paired.md (paired_madds0): Use FMA.
974         (paired_madds1): Likewise.
975         (*paired_madd): Rename from paired_madd; use FMA.
976         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
977         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
978         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
979         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
980         (rs6000_emit_madd): Use fma_optab.
981         (rs6000_emit_msub): Use fms_optab.
982         (rs6000_emit_nmsub): Expand the FMA pattern directly.
983         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
984         (*fmasf4_fpr): Rename from fmasf4_fpr.
985         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
986         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
987         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
988         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
989         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
990         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
991         (*fmadf4_fpr): Rename from fmadf4_fpr.
992         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
993         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
994         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
995         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
996         (fmasf4, fmadf4): Macroize into...
997         (fma<FMA_F>4): ... here.
998         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
999         (nfma<FMA_F>4, nfms<FMA_F>4): New.
1000         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1001         TARGET_FUSED_MADD.
1002         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1003         (*vsx_fmadd<mode>4_1): Remove.
1004         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1005         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1006         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1007         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1008         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1009         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1010         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1011
1012 2010-11-16  Richard Henderson  <rth@redhat.com>
1013
1014         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1015         (fmasf4, fnmadf4, fnmasf4): Likewise.
1016         (unnamed plus+mult insns and splitters): Delete.
1017
1018 2010-11-16  Richard Henderson  <rth@redhat.com>
1019
1020         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1021         (fnma<VSF>4): Rename from fnms_<VSF>.
1022         (fms<VSF>4): Rename from fms_<VSF>.
1023         (fma<VDF>4): Rename from fma_<VDF>.
1024         (fms<VDF>4): Rename from fms_<VDF>.
1025         (nfma<VDF>4): Rename from fnma_<VDF>.
1026         (nfms<VDF>4): Rename from fnms_<VDF>.
1027         (fnma<VDF>4, fnms<VDF>4): New expanders.
1028         (floatunsdisf2): Update for the renames.
1029         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1030         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1031
1032 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1033
1034         PR rtl-optimization/46490
1035         * combine.c (expand_compound_operation): Fix thinko.
1036
1037 2010-11-16  Richard Henderson  <rth@redhat.com>
1038
1039         PR target/46470
1040         * recog.c (peep2_attempt): Convert frame-related info when possible.
1041         (peep2_fill_buffer): Allow frame-related insns into the buffer.
1042         (peephole2_optimize): Allow peep2_attempt to fail.
1043
1044 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1045
1046         PR rtl-optimization/46315
1047         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1048         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1049         extracted from...
1050         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
1051         (remove_reg_equal_equiv_notes_for_defs): ...this.
1052         (delete_unmarked_insns): Adjust to above renaming.
1053         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1054         referring to registers set in the insns being moved, if any.
1055
1056         * df-core.c (df_ref_dump): New function extracted from...
1057         (df_refs_chain_dump): ...here.  Call it.
1058         (df_regs_chain_dump): Likewise.
1059         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1060         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
1061
1062 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
1063
1064         PR rtl-optimization/46395
1065         * postreload.c (reload_combine): Invalidate register use
1066         information on all control flow insns.
1067
1068         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1069         LABEL_REF in UNSPEC operand.
1070
1071 2010-11-16  Jan Hubicka  <jh@suse.cz>
1072
1073         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1074         when !flag_toplevel_reorder do not remove unless variable is
1075         COMDAT or ARTIFICIAL.
1076         * ipa.c (varpool_can_remove_if_no_refs): ... here.
1077         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1078         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1079         * varpool.c (decide_is_variable_needed): Do not handle visibility
1080         issues.
1081         (varpool_finalize_decl): Likewise.
1082         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1083         update outdated comment on DECL_RTL_SET_P check.
1084
1085 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1086
1087         * config/sol2.h (NM_FLAGS): Define.
1088         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1089         * doc/tm.texi: Update.
1090
1091 2010-11-16  Nick Clifton  <nickc@redhat.com>
1092
1093         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1094         (msubsf4): Rename to fmssf4, and use fma.
1095         (nmaddsf4): Rename to fnmasf4 and use fma.
1096         (nmsubsf4): Rename to fnmssf4 and use fma.
1097
1098 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
1099
1100         PR target/44762
1101         * config/score/score3.c (score3_return_in_memory): Constify arguments.
1102         (score3_in_small_data_p, score3_function_value): Likewise.
1103         (score3_trampoline_init): Use LCT_NORMAL.
1104         (score3_print_operand): Initialize code as UNKNOWN.
1105         * config/score/predicates.md (score_load_multiple_operation):
1106         Remove unused variable.
1107         (score_store_multiple_operation): Likewise.
1108         * config/score/score7.c (score7_return_in_memory): Constify arguments.
1109         (score7_in_small_data_p, score7_function_value): Likewise.
1110         (score7_trampoline_init): Use LCT_NORMAL.
1111         (score7_print_operand): Initialize code as UNKNOWN.
1112         * config/score/score3.h (score3_return_in_memory): Update prototype.
1113         (score3_in_small_data_p, score3_function_value): Likewise.
1114         * config/score/score-protos.h (score_function_value): Likewise.
1115         * config/score/score7.h (score7_return_in_memory): Update prototype.
1116         (score7_in_small_data_p, score7_function_value): Likewise.
1117         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1118         (score_return_in_memory, score_pass_by_reference): Constify arguments.
1119         (score_output_mi_thunk, score_function_prologue): Don't return a value.
1120         (score_function_epilogue, score_in_small_data_p): Likewise.
1121         (score_option_override, score_asm_trampoline_template): Likewise.
1122         (score_trampoline_init, score_print_operand): Likewise.
1123         (score_print_operand_address, score_prologue): Likewise.
1124         (score_epilogue, score_call, score_call_value): Likewise.
1125         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1126         (score_function_arg_advance): Likewise. Make static.
1127         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1128         (score_function_arg, score_legitimate_address_p): Make static.
1129         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1130         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1131         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1132         Allow (W) == HOST_BITS_PER_WIDE_INT.
1133
1134         PR java/46386
1135         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1136         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1137
1138 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1139
1140         * config/arc/arc.c: Delete pasto.
1141         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1142
1143 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
1144
1145         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1146         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1147         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1148         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1149         (mn10300_preferred_reload_class,
1150         mn10300_preferred_output_reload_class): New functions.
1151
1152 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1153
1154         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1155         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1156         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1157         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1158
1159 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1160
1161         * builtins.c (std_gimplify_va_arg_expr): Use
1162         targetm.calls.function_arg_boundary.
1163         * function.c (assign_parms, locate_and_pad_parm): Likewise.
1164         * calls.c (struct arg_data): Update comment.
1165         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1166         * target.def (function_arg_boundary): Define.
1167         * targhooks.h (default_function_arg_boundary): Declare.
1168         * targhooks.c (default_function_arg_boundary): Define.
1169         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1170         TARGET_FUNCTION_ARG_BOUNDARY.
1171         (FUNCTION_ARG_BOUNDARY): Delete.
1172         (TARGET_FUNCTION_ARG_BOUNDARY): New.
1173         * doc/tm.texi: Regenerate.
1174         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1175         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1176         * config/arc/arc.c (arc_function_arg_boundary): Define.
1177         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1178         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1179         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1180         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1181         (arm_function_arg_boundary): Define.
1182         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1183         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1184         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1185         * config/frv/frv.c (frv_function_arg_boundary): Make static.
1186         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1187         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1188         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1189         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1190         (ix86_compat_function_arg_boundary): Take and return unsigned int.
1191         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1192         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1193         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1194         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1195         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1196         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1197         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1198         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1199         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1200         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1201         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1202         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1203         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1204         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1205         * config/mips/mips.c (mips_function_arg_boundary): Make static.
1206         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1207         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1208         * config/pa/pa.c (pa_function_arg_boundary): Define.
1209         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1210         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1211         * config/picochip/picochip-protos.h
1212         (picochip_get_function_arg_boundary): Delete.
1213         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1214         Rename to...
1215         (picochip_function_arg_boundary): ...this.  Make static.
1216         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1217         (picochip_arg_advance): Adjust.
1218         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1219         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1220         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1221         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1222         (rs6000_function_arg_boundary): ...this.  Make static.
1223         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1224         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1225         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1226         * config/rx/rx.c (rx_function_arg_boundary): Define.
1227         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1228         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1229         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1230         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1231         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1232         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1233         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1234         (xtensa_function_arg_boundary): ...this.  Make static.
1235         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1236
1237 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1238
1239         * expr.c (alignment_for_piecewise_move): New function.
1240         (widest_int_mode_for_size): New function.
1241         (move_by_pieces, move_by_pieces_ninsns): Call them.
1242         (can_store_by_pieces, store_by_pieces_1): Likewise.
1243
1244 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1245
1246         * gcc.c (char_p): Define.  Define a VEC of it.
1247         (n_linker_options, n_assembler_options, n_preprocessor_options):
1248         Delete.
1249         (linker_options, assembler_options, preprocessor_options): Convert
1250         to a VEC.
1251         (add_preprocessor_option): Adjust.
1252         (add_assembler_option): Adjust.
1253         (add_linker_option): Adjust.
1254         (do_specs_vec): New function.
1255         (do_spec_1): Call it.  Adjust for new types.
1256
1257 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1258
1259         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1260         (sreal.o, statistics.o, stringpool.o): Likewise.
1261
1262 2010-11-16  Richard Guenther  <rguenther@suse.de>
1263
1264         PR tree-optimization/44545
1265         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1266         statements are not reassociatable.
1267         (reassociate_bb): Likewise.
1268
1269 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1270
1271         * bitmap.c: Delete unnecessary includes.
1272         * ebitmap.c: Likewise.
1273         * et-forest.c: Likewise.
1274         * sreal.c: Likewise.
1275         * statistics.c: Likewise.
1276         * stringpool.c: Likewise.
1277         * double-int.c: Add comment for inclusion of tm.h.
1278
1279 2010-11-16  Richard Guenther  <rguenther@suse.de>
1280
1281         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1282         (visit_nary_op): ... this.
1283         (visit_binary_op): Remove.
1284         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1285
1286 2010-11-16  Richard Guenther  <rguenther@suse.de>
1287
1288         PR middle-end/45172
1289         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1290
1291 2010-11-16  Nick Clifton  <nickc@redhat.com>
1292
1293         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1294         record is packed.
1295
1296 2010-11-15  Richard Henderson  <rth@redhat.com>
1297
1298         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1299         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1300         DOT_PROD_EXPR.
1301
1302 2010-11-15  Richard Henderson  <rth@redhat.com>
1303
1304         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1305         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
1306         fma rtx_code.
1307
1308 2010-11-15  Richard Henderson  <rth@redhat.com>
1309
1310         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1311         and *mulsubsf4 respectively.  Use fma rtx_code.
1312
1313 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
1314
1315         * gcc.c: Include "vec.h".
1316         (argbuf): Make into a VEC.
1317         (argbuf_length, argbuf_index): Remove.
1318         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1319         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1320         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1321         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1322         (gcc.o): Depend on $(VEC_H).
1323
1324 2010-11-15  Richard Henderson  <rth@redhat.com>
1325
1326         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1327         via FMA if unsafe math.
1328         (insert_var_expansion_initialization): Handle FMA.
1329         (combine_var_copies_in_loop_exit): Likewise.
1330
1331 2010-11-15  Richard Henderson  <rth@redhat.com>
1332
1333         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1334         * config/ia64/ia64.opt: Remove mfused-madd.
1335         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1336         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1337         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1338         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1339         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1340         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1341         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1342         (fmav2sf4): Rename from fpma; use FMA code.
1343         (fmsv2sf4): Rename from fpms; use FMA code.
1344         (fnmav2sf4): Rename from *fpnma; use FMA code.
1345         * config/ia64/ia64.md (MODE_SDF): New iterator.
1346         (suffix): New mode attribute.
1347         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1348         (fmssf4): Rename from *fmssf4.
1349         (fnmasf4): Rename from *nfmasf4.
1350         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1351         (*nmadddf4, *nmadddf4_truncsf): Remove.
1352         (fmsdf4): Rename from *fmsdf4.
1353         (fnmadf4): Rename from *nfmadf4.
1354         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1355         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1356         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1357         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1358         (fmsxf4): Rename from *fmsxf4.
1359         (fnmaxf4): Rename from *nfmaxf4.
1360         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1361         (*fnmaxf_trunc_<MODE_SDF>): New.
1362
1363 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1364
1365         PR tree-optimization/46461
1366         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1367         a gimple val.
1368
1369 2010-11-15  Ian Lance Taylor  <iant@google.com>
1370
1371         * godump.c: New file.
1372         * common.opt (fdump-go-spec=): New option.
1373         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1374         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1375         (TYPE_SYMTAB_IS_DIE): Define.
1376         (struct tree_type): Change GTY for symtab field to use
1377         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1378         to pick the union field.
1379         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1380         (dump_go_spec_init): Declare.
1381         * toplev.c (process_options): Handle flag_dump_go_spec.
1382         * debug.c: Include "tree.h".
1383         (do_nothing_debug_hooks): Set tree_type_symtab_field.
1384         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1385         * dbxout.c (dbx_debug_hooks): Likewise.
1386         (xcoff_debug_hooks): Likewise.
1387         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1388         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
1389         SDB_DEBUGGING_INFO is not defined.
1390         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1391         (Overall Options): Document -fdump-go-spec.
1392         * Makefile.in (OBJS-common): Add godump.o.
1393         (debug.o): Add dependency on $(TREE_H).
1394         (godump.o): New target.
1395         (GTFILES): Add $(srcdir)/godump.c.
1396
1397 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1398
1399         PR debug/46095
1400         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1401         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1402         style < 0, add REG_FRAME_RELATED_EXPR.
1403
1404         PR debug/46387
1405         * rtl.h (vt_equate_reg_base_value): New prototype.
1406         * alias.c (vt_equate_reg_base_value): New function.
1407         * var-tracking.c (vt_init_cfa_base): Use it.
1408
1409 2010-11-15  Jan Hubicka  <jh@suse.cz>
1410             Diego Novillo  <dnovillo@google.com>
1411
1412         PR lto/41528
1413         * doc/lto.texi: Add.
1414         * doc/gccint.texi: Add reference to lto.texi.
1415         * doc/invoke.texi: Update user documentation for LTO.
1416         Move internal flags to lto.texi
1417
1418 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1419
1420         * c-typeck.c (build_unary_op): Use
1421         objc_build_incr_expr_for_property_ref to build the pre/post
1422         increment/decrement of an Objective-C property ref, and skip the
1423         lvalue_or_else check in that case.
1424
1425 2010-11-15  Martin Jambor  <mjambor@suse.cz>
1426
1427         PR tree-optimization/46349
1428         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1429         (contains_vce_or_bfcref_p): Likewise.
1430         (sra_modify_assign): Use them.
1431
1432 2010-11-15  Richard Guenther  <rguenther@suse.de>
1433
1434         PR tree-optimization/46467
1435         * tree-ssa-structalias.c (do_structure_copy): Properly treat
1436         variables without subvars.
1437
1438 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
1439
1440         * config/picochip/picochip.c (file header): Picochip name change.
1441         * config/picochip/picochip.md (file header): Likewise.
1442         * config/picochip/predicates.md (file header): Likewise.
1443         * config/picochip/dfa_space.md (file header): Likewise.
1444         * config/picochip/dfa_speed.md (file header): Likewise.
1445         * config/picochip/picochip.h(file header): Likewise.
1446         * config/picochip/constraints.md (file header): Likewise.
1447         * config/picochip/picochip-protos.h (file header): Likewise.
1448         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1449         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1450         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1451         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1452         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1453         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1454         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1455         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1456         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1457         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1458         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1459         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1460         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1461         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1462
1463 2010-11-15  Richard Guenther  <rguenther@suse.de>
1464
1465         PR bootstrap/46474
1466         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1467
1468 2010-11-15  Nick Clifton  <nickc@redhat.com>
1469
1470         * config/stormy16/stormy16.c (direct_return): Do not generate a
1471         direct return for interrupt handlers.
1472
1473 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
1474
1475         * Makefile.in (tm.texi): Replace with rule for:
1476         ($(srcdir)/doc/tm.texi).
1477         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1478         $(srcdir)/doc/tm.texi .
1479         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1480         tm.texi .
1481
1482         PR target/46427
1483         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1484
1485         PR bootstrap/45444
1486         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1487         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1488
1489         PR target/46432
1490         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1491
1492 2010-11-15  Richard Guenther  <rguenther@suse.de>
1493
1494         PR lto/44150
1495         * lto-opts.c (lto_write_options): Write -fexceptions even if
1496         not set by the user.
1497
1498 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1499
1500         PR c/46462
1501         * c-decl.c (declspecs_add_type): Make variables with error types
1502         integers.
1503         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1504         do not start a declaration before an Objective-C foreach.
1505         (c_parser_declaration_or_fndef): Improve recovery after unknown
1506         type name.
1507         (c_parser_for_statement): Hoist entrance of "foreach context"
1508         before ifs, add corresponding reset where it was missing.  Do
1509         not set objc_could_be_foreach_context for C.
1510
1511 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1512
1513         PR tree-optimization/45722
1514         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1515         this is a reference to a component.
1516         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1517         (ipa_note_param_call): Adjust comment.
1518
1519 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
1520
1521         * config/mips/mips.c (machine_function): Remove
1522         initialized_mips16_gp_pseudo_p.
1523         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1524         detect whether a pseudo has already been created.  Unconditionally
1525         create a new one if not.
1526         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1527         expanding to rtl.  Create a new pseudo otherwise, if allowed.
1528
1529 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
1530
1531         PR target/43440
1532         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1533         * tm.texi: Regenerated.
1534         * output.h (decode_reg_name_and_count): Declare.
1535         * varasm.c (decode_reg_name_and_count): New function.
1536         (decode_reg_name): Reimplement using decode_reg_name_and_count.
1537         * reginfo.c (fix_register): Use decode_reg_name_and_count and
1538         iterate over all regs used.
1539         * stmt.c (expand_asm_operands): Likewise.
1540         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1541         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1542         multiple machine registers.
1543
1544 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1545
1546         * stor-layout.c (place_union_field): Do not put location information
1547         on offset expressions.
1548         (place_field): Likewise.
1549         (finalize_record_size): Likewise on size expressions.
1550         (finalize_type_size): Likewise.
1551         (layout_type): Likewise.
1552
1553 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
1554
1555         PR debug/42889
1556         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1557         * df-core.c (df_set_bb_dirty_nonrl): Remove.
1558         * df.h (df_set_bb_dirty_nonlr): Likewise.
1559
1560 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
1561
1562         * config/mips/mips.md (call_internal): Pass curr_insn to
1563         mips_split_call.
1564         (call_internal_direct): Ditto.
1565         (call_value_internal): Ditto.
1566         (call_value_internal_direct): Ditto.
1567         (call_value_multiple_internal): Ditto.
1568         * config/mips/mips.c (mips_split_call): Do not copy
1569         CALL_INSN_FUNCTION_USAGE here.
1570
1571 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
1572
1573         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1574         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1575         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1576         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1577         (TUNE_LOONGSON_3A): Define.
1578         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1579         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1580         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1581         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1582         (mips_rtx_cost_data): Add Loongson-3A.
1583
1584 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1585
1586         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1587         switches.
1588
1589 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1590
1591         * dwarf2out.c (macinfo_entry): New struct.
1592         (output_comp_unit): Emit the section start label here and flag that we
1593         will emit an info section.
1594         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1595         emitting directly.
1596         (dwarf2out_end_source_file): Likewise.
1597         (dwarf2out_define): Likewise.
1598         (dwarf2out_undef): Likewise.
1599         (output_macinfo): New.
1600         (dwarf2out_init): Do not emit debug section switches here, allocate a
1601         vec for macinfo, when required.
1602         (dwarf2out_finish): First switch to debug_abbrev_section here.
1603         debug_line_section,  debug_macinfo_section, Likewise.
1604         Check that the pubtypes table has at least one unpruned entry before
1605         trying to emit it.
1606
1607 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1608
1609         PR c/20385
1610         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1611         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
1612         token lookahead.
1613         (c_parser_compound_statement_nostart, c_parser_label,
1614         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1615         (c_parser_declaration_or_fndef): Detect the case now matched by
1616         c_parser_next_tokens_start_declaration, give error and correct it.
1617
1618 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1619
1620         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1621         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1622         with typespec_kind.
1623         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1624         (shadow_tag_warned, check_compound_literal_type): Adjust
1625         uses of tag_defined_p.
1626         (declspecs_add_type): Set typespec_kind.
1627         * c-parser.c (c_parser_declaration_or_fndef,
1628         c_parser_declspecs, c_parser_struct_declaration,
1629         c_parser_parameter_declaration, c_parser_type_name,
1630         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1631         of type_seen_p.
1632         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1633         tag_defined_p, pass ctsk_firstref through.
1634
1635 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1636
1637         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1638         (struct format_wanted_type): Replace field "name" with "kind", add
1639         "format_start" and "format_length".
1640         (check_format_info_main): Fill in new fields.  Fill in
1641         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
1642         after the final NUL outside the while loop.  Do not include
1643         width and precision modifiers in the format_start/format_length
1644         of the main format.
1645         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1646         arguments.  Compute WANTED_TYPE first so that format_type_warning
1647         can be called for missing arguments.  Adjust calls to
1648         format_type_warning.
1649         (format_type_warning): Fetch as much information as possible
1650         from format_wanted_type.  Adjust printing now that every
1651         warning has a "descr", as well as for missing argument warnings
1652         and to include % sign for format specifiers.
1653
1654 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
1655
1656         PR rtl-optimization/46204
1657         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1658         Update all callers.  Do not recompute topological order.  Adjust
1659         fallthrough edges following a degenerate conditional jump.
1660
1661 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1662
1663         * opts-common.c (control_warning_option): New.
1664         * opts.c (set_default_handlers): New.
1665         (decode_options): Use set_default_handlers and
1666         control_warning_option.
1667         (common_handle_option): Update call to enable_warning_as_error.
1668         (enable_warning_as_error): Take gcc_options parameters.  Use
1669         control_warning_option.
1670         * opts.h (set_default_handlers, control_warning_option): Declare.
1671
1672 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1673
1674         * Makefile.in (OPTS_H): Define.
1675         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1676         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1677         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1678         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1679         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1680         * gcc.c (driver_handle_option): Take location_t parameter.
1681         (process_command, do_self_spec): Update calls to
1682         read_cmdline_option.
1683         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1684         * langhooks.c (lhd_handle_option): Take location_t parameter.
1685         * langhooks.h (handle_option): Take location_t parameter.
1686         * lto-opts.c (lto_reissue_options): Update call to set_option.
1687         * opts-common.c (handle_option): Make static.  Take location_t
1688         parameter and pass it to other functions.
1689         (handle_generated_option): Take location_t parameter and pass it
1690         to other functions.
1691         (read_cmdline_option): Take location_t parameter and pass it to
1692         other functions.  Use warning_at and error_at.
1693         (set_option): Take location_t parameter and pass it to other
1694         functions.
1695         * opts.c (common_handle_option): Take location_t parameter and
1696         pass it to other functions.
1697         (enable_warning_as_error): Make static.  Take location_t parameter
1698         and pass it to other functions.
1699         (lang_handle_option): Take location_t parameter and pass it to
1700         other functions.
1701         (target_handle_option): Take location_t parameter.
1702         (read_cmdline_options, maybe_default_option,
1703         maybe_default_options, default_options_optimization,
1704         decode_options): Take location_t parameter and pass it to other
1705         functions.
1706         * opts.h: Include input.h.
1707         (struct cl_option_handler_func, decode_options, set_option,
1708         handle_generated_option, read_cmdline_option): Take location_t
1709         parameters.
1710         (handle_option, enable_warning_as_error): Remove.
1711         * toplev.c (toplev_main): Update call to decode_options.
1712
1713 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
1714
1715         * graphite-cloog-util.c (oppose_constraint,
1716         cloog_matrix_to_ppl_constraint,
1717         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1718         CLooG isl uses unsigned integers.  This triggered a warning.
1719
1720 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1721
1722         PR target/46438
1723         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1724         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1725         (xtensa_function_arg_1): De-constify cum.
1726         (xtensa_expand_prologue): Use add_reg_note.
1727
1728         PR target/46435
1729         * config/cris/cris.c (saved_regs_mentioned): Delete.
1730         (cris_reload_address_legitimized): Cast itype to enum reload_type.
1731         Remove unused variable op0p.
1732         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1733         (cris_emit_movem_store): Use add_reg_note.
1734
1735         PR bootstrap/46456
1736         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1737
1738 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1739
1740         * function.c (expand_function_end): Set the locator of the prologue on
1741         the stack checking insns.
1742
1743 2010-11-12  Richard Henderson  <rth@redhat.com>
1744
1745         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1746         * config/xtensa/xtensa.opt (mfused-madd): Remove.
1747         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1748         MASK_FUSED_MADD.
1749         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1750         (fnmasf4): Rename from mulsubsf3; use fma.
1751
1752 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1753             Richard Henderson  <rth@redhat.com>
1754
1755         PR target/46428
1756         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1757         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1758         comparison.
1759
1760 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
1761
1762         * opts-common.c (decode_cmdline_option): Initialize separate_args.
1763
1764 2010-11-12  Jan Hubicka  <jh@suse.cz>
1765
1766         * doc/invoke.texi (early-inlining-insns): Update default.
1767         * params.def (early-inlining-insns): Default to 10.
1768
1769 2010-11-12  Olivier Hainque  <hainque@adacore.com>
1770
1771         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1772
1773 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1774
1775         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1776         (SUPPORTS_INIT_PRIORITY): Define.
1777
1778 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1779
1780         PR target/46430
1781         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1782         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1783         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1784         (avr_device_to_devicelib): Likewise.
1785         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1786         into block.
1787         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1788         (zero_extendhidi2, zero_extendsidi2): Likewise.
1789         * config/avr/avr.c (avr_num_arg_regs): Constify type.
1790         (avr_return_addr_rtx): De-constify tem.
1791         (avr_rotate_bytes): Move declarations to start of block.
1792         Don't use variable length array.  Put nested if/else into block.
1793
1794         PR rtl-optimization/46433
1795         * var-tracking.c: Include tm_p.h .
1796
1797         PR bootstrap/44756
1798         PR build/44767
1799         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1800         should be unsigned.
1801         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1802         * doc/tm.texi: Regenerate.
1803
1804         PR target/46412
1805         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1806         * config/bfin/bfin.c: Include sel-sched.h .
1807         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1808         (expand_interrupt_handler_prologue): Remove unused variable insn.
1809         (bfin_load_pic_reg): Likewise.
1810         (bfin_rtx_costs): Make code / outer_code variables of type
1811         enum rtx_code, copied from re-named parameters.
1812         (bfin_local_alignment): Change align argument and return type
1813         to unsigned.
1814         (bfin_adjust_cost): Remove unused variable insn_type.
1815         Declare variables at start of block.
1816         (struct loop_info): Rename to...
1817         (struct loop_info_d).
1818         (workaround_rts_anomaly): Change type of icode to int.
1819         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1820         with int-typed variable.
1821         (note_np_check_stores): Likewise.
1822         (trapping_loads_p): Remove unused variable pat.
1823         (bfin_expand_binop_builtin): Use expand_normal.
1824         (bfin_expand_unop_builtin): Likewise.
1825         (bfin_expand_builtin): Likewise.  Set tmode before use.
1826
1827         PR middle-end/44769
1828         * final.c (split_double): Don't use BITS_PER_WORD directly in
1829         shift count.
1830
1831         PR target/46431
1832         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1833         assignment.
1834
1835         PR target/46450
1836         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1837         Use add_reg_note.
1838         (xstormy16_function_arg): Dereference cum.
1839         (xstormy16_expand_builtin): Use expand_normal.
1840         Change type of omode to enum machine_mode.
1841         (combine_bnp): Rename and to and_insn.
1842
1843         PR target/46437
1844         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1845         localreg.
1846
1847 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1848
1849         PR debug/46375
1850         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1851
1852 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1853
1854         PR lto/46376
1855         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1856
1857 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
1858
1859         PR c/44782
1860         * common.opt (fmax-errors=): New option.
1861         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1862         * diagnostic.h (struct diagnostic_context): Add max_errors field.
1863         * diagnostic.c (diagnostic_initialize): Initialize it.
1864         (diagnostic_action_after_output): Exit if more than max_errors
1865         have been output.
1866         * doc/invoke.texi (Warning Options): Add -fmax-errors.
1867         (-fmax-errors): Document.
1868
1869 2010-11-11  Richard Henderson  <rth@redhat.com>
1870
1871         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1872
1873 2010-11-11  Richard Henderson  <rth@redhat.com>
1874
1875         * config/fused-madd.opt: New file.
1876         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1877         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1878         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1879         * config/i386/i386.opt (mfused-madd): Remove.
1880         * config/i386/sse.md (split_fma): Remove.
1881         (split_fms, split_fnma, split_fnms): Remove.
1882
1883 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
1884
1885         PR target/46088
1886         * config/i386/i386.md (*ashl<mode>3_cconly,
1887         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1888         change nonimmediate_operand predicate to register_operand.
1889
1890 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
1891
1892         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1893
1894 2010-11-11  Jan Hubicka  <jh@suse.cz>
1895
1896         * opts.c (finish_options): Do not error on -flto-partition alone.
1897
1898         * doc/invoke.texi (-fwhopr): Merge into -flto section.
1899         (-flto-partition): Document none.
1900         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1901         * lto-wrapper.c: Update comment.
1902         (run_gcc): Update LTO option parsing.
1903         * opts.c (finish_options): add support -flto-partition=none
1904         (common_handle_option): Remove fwhopr.
1905         * common.opt: Turn fwhopr into flto.
1906         * collect2.c (main): Update option handling.
1907         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1908         * ipa-split.c (execute_split_functions): Remove flag_whopr.
1909         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1910         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1911         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1912
1913 2010-11-11  Jan Hubicka  <jh@suse.cz>
1914
1915         PR tree-optimize/40436
1916         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1917         (eliminated_by_inlining_prob): ... this one; return 50% probability
1918         for SRA.
1919         (estimate_function_body_sizes): Update use of
1920         eliminated_by_inlining_prob; estimate static function size
1921         for 2 instructions.
1922
1923 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
1924
1925         PR target/44749
1926         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1927         declare.  Change type of argument four to type int.
1928         (mep_secondary_input_reload_class): Returns enum reg_class.
1929         (mep_secondary_output_reload_class): Likewise.
1930         (mep_function_value): Change types of arguments to cont_tree.
1931         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1932         argument four to type int.
1933         (mep_secondary_input_reload_class): Returns enum reg_class.
1934         (mep_secondary_output_reload_class): Likewise.
1935         (mep_function_value): Change types of arguments to cont_tree.
1936         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1937         mep_regno_reg_class to enum reg_class.
1938
1939 2010-11-11  Richard Henderson  <rth@redhat.com>
1940
1941         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1942         that the target has the exact fma operation that we matched.
1943
1944 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1945
1946         * reginfo.c (fix_register): Avoid inserting English word in
1947         diagnostic sentence.  Use %qs for quoting and %'.
1948
1949 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
1950
1951         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1952         Intel processor family 6, model 0x2c.
1953
1954 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1955
1956         * opts.c (warning_as_error_callback,
1957         register_warning_as_error_callback): Remove.
1958         (enable_warning_as_error): Don't use warning_as_error_callback.
1959         * opts.h (register_warning_as_error_callback): Remove.
1960
1961 2010-11-11  Richard Henderson  <rth@redhat.com>
1962
1963         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1964         in between the MULT and the PLUS/MINUS.
1965
1966 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1967
1968         PR middle-end/46388
1969         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1970         BLKmode mode for it.
1971         (expand_expr_real_1): Similarly for op0.
1972
1973 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1974
1975         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1976         Document optional target selector.
1977
1978 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1979
1980         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1981         assembling high and low parts of size if not using 32-bit HWINT; else
1982         use DECL_SIZE_UNITS, not DECL_SIZE.
1983
1984 2010-11-11  Martin Jambor  <mjambor@suse.cz>
1985
1986         PR tree-optimization/46383
1987         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1988         offsets.
1989         (compute_complex_ancestor_jump_func): Likewise.
1990         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1991
1992 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1993
1994         PR debug/46150
1995         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1996         true if expr1->hash != expr2->hash.
1997
1998 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1999
2000         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
2001         diagnostics with lowercase letters.
2002         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2003         lowercase letters.
2004         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2005         diagnostic.
2006         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2007         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2008         lowercase letters.
2009         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2010         Remove trailing ' ' from diagnostic.
2011         * config/avr/avr.c (print_operand_address): Start diagnostic with
2012         a lowercase letter and remove trailing '.'.
2013         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2014         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2015         with lowercase letters.  Use %' in diagnostics.  Remove trailing
2016         '.' from diagnostics.
2017         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2018         * config/cris/cris.c (cris_split_movdx,
2019         cris_expand_pic_call_address): Start diagnostics with lowercase
2020         letters.
2021         (cris_asm_output_label_ref): Use %' in diagnostic.
2022         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2023         letter.
2024         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2025         lowercase letter.
2026         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2027         lowercase letter.
2028         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2029         diagnostic.
2030         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2031         diagnostic.
2032         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2033         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2034         diagnostics.
2035         * config/i386/i386.c (ix86_option_override_internal): Write
2036         diagnostic as a single sentence without trailing '.'.  Use %' in
2037         diagnostics.
2038         (ix86_function_sseregparm, classify_argument): Start diagnostics
2039         with lowercase letters.
2040         (ix86_expand_prologue): Use %' in diagnostic.
2041         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2042         diagnostic.
2043         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2044         lowercase letter.
2045         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2046         diagnostic.
2047         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2048         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2049         '`' in help text.
2050         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2051         lowercase letter.
2052         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2053         lowercase letters.
2054         * config/microblaze/microblaze.c (microblaze_handle_option):
2055         Remove trailing '.' from diagnostic.
2056         (print_operand): Start diagnostic with a lowercase letter.
2057         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2058         lowercase letters.  Avoid '`' in diagnostics.
2059         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2060         lowercase letters.  Avoid '`' in diagnostics.
2061         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2062         lowercase letters.  Avoid '`' in diagnostics.
2063         * config/picochip/picochip.c (picochip_option_override,
2064         picochip_emit_save_register, picochip_function_arg,
2065         picochip_output_label, picochip_output_internal_label,
2066         picochip_asm_output_opcode, picochip_output_cbranch,
2067         picochip_output_compare, picochip_output_branch,
2068         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2069         diagnostics. Start diagnostics with lowercase letters.  Use %' in
2070         diagnostics.
2071         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2072         "SPE" capitalization.  Start diagnostic with a lowercase letter.
2073         (rs6000_handle_option): Start diagnostics with lowercase letters.
2074         (def_builtin): Remove trailing '.' from diagnostic.
2075         (rs6000_savres_routine_name): Start diagnostic with a lowercase
2076         letter.
2077         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2078         diagnostic.
2079         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2080         lowercase letter.
2081         * config/s390/s390.c (s390_option_override) Start diagnostics with
2082         lowercase letters.  Use %' in diagnostic.
2083         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2084         lowercase letters.
2085         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2086         diagnostic.
2087         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2088         diagnostic.
2089         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2090         diagnostic.
2091         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2092         * config/spu/spu.c (spu_option_override): Start diagnostics with
2093         lowercase letters.  Use %qs for quoting in diagnostics.
2094         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2095         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2096         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2097         from diagnostic.
2098         * convert.c (convert_to_integer, convert_to_vector): Use %' in
2099         diagnostics.
2100         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2101         letter and use "cannot" spelling.
2102         * expmed.c (extract_fixed_bit_field): Start diagnostic with
2103         lowercase letter and format as a single sentence without '.'.
2104         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2105         Use %' in diagnostics.
2106         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2107         Use %' in diagnostics.
2108         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2109         Use %' in diagnostics.
2110         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2111         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2112         with lowercase letters and remove tailing '.' and '\n'.
2113         * lto-cgraph.c (input_profile_summary): Start diagnostic with
2114         lowercase letter and remove trailing '.'.
2115         (input_cgraph): Start diagnostics with lowercase letters and
2116         remove trailing '\n'.
2117         * opts.c (finish_options, common_handle_option): Start diagnostics
2118         with lowercase letters and remove trailing '.'.  Fix typo in
2119         diagnostic.
2120         * passes.c (position_pass): Start diagnostic with lowercase letter.
2121         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2122         register_callback, try_init_one_plugin): Start diagnostics with
2123         lowercase letters.
2124         * reload1.c (spill_failure): Use %' in diagnostic.
2125         (gen_reload): Start diagnostic with a lowercase letter.
2126         * stor-layout.c (place_field): Start diagnostic with a lowercase
2127         letter.
2128         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2129         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2130         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2131         Start diagnostics with lowercase letters, remove trailing '.' and
2132         use %' in diagnostics.
2133         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2134         (verify_ssa): Don't split diagnostic across two error calls.
2135         Spell out "number" and use %' in diagnostic.
2136         * value-prof.c (visit_hist, check_counter): Start diagnostics with
2137         lowercase letters.
2138
2139 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
2140
2141         PR middle-end/46419
2142         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2143         (_mm_cvtpu16_ps): Ditto.
2144
2145 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2146
2147         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2148         warn_larger_than, larger_than_size, warn_frame_larger_than,
2149         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2150         default_visibility, flag_tls_default): New Variable declarations.
2151         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2152         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2153         (v): Declare as Common and document here.
2154         * flags.h (default_visibility, flag_generate_lto,
2155         warn_larger_than, larger_than_size, warn_frame_larger_than,
2156         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2157         flag_shlib, flag_excess_precision_cmdline): Remove.
2158         (set_Wstrict_aliasing): Update prototype.
2159         * gcc.c (verbose_flag): Remove.
2160         (driver_handle_option): Add diagnostic_context parameter.  Don't
2161         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
2162         incrementing it.
2163         * opts-common.c (handle_option): Pass dc to handler.
2164         * opts.c (warn_larger_than, larger_than_size,
2165         warn_frame_larger_than, frame_larger_than_size,
2166         default_visibility): Remove.
2167         (common_handle_option): Add diagnostic_context parameter.
2168         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2169         gcc_options parameters.
2170         (lang_handle_option, target_handle_option, read_cmdline_options,
2171         decode_options): Add diagnostic_context parameters.
2172         (finish_options): Access option state through opts pointer where
2173         possible.
2174         (common_handle_option): Access option state through opts pointer
2175         where possible.  Do not set local static variable verbose.  Do not
2176         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2177         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2178         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2179         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2180         OPT_fwhopr_.  Do not explicitly set .opt file variables for
2181         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
2182         (set_Wstrict_aliasing): Add gcc_options parameter.
2183         * opts.h (struct cl_option_handler_func): Add diagnostic_context
2184         parameter to handler.
2185         (decode_options): Add diagnostic_context parameter.
2186         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2187         asm_file_name, flag_generate_lto, flag_gen_aux_info,
2188         aux_info_file_name, flag_shlib, flag_tls_default,
2189         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2190         (toplev_main): Pass global_dc to decode_options.
2191         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2192         aux_info_file_name, asm_file_name): Remove.
2193         * tree.h (flag_tls_default): Remove.
2194
2195 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2196
2197         PR target/45986
2198         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2199         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2200
2201 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2202
2203         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2204         (x86_64-*-*): Likewise.
2205         * config/i386/cpuid.h: Define TBM bit.
2206         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2207         and set has_tbm.
2208         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2209         isa_flag for TBM.
2210         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2211         (OPTION_MASK_ISA_TBM_UNSET): New.
2212         (ix86_handle_option): Handle -mtbm.
2213         (isa_opts): Add -mtbm.
2214         (enum pta_flags): Add PTA_TBM.
2215         (ix86_option_override_internal): Add TBM support.
2216         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2217         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2218         (IX86_BUILTIN_BEXTRI64): Likewise.
2219         (bdesc_args): Add TBM intrinsics.
2220         (ix86_expand_builtin): Add TBM specific case.
2221         * config/i386/i386.h (TARGET_TBM): New for TBM.
2222         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2223         (tbm_bextri_<mode>): Likewise.
2224         (*tbm_blcfill_<mode>): Likewise.
2225         (*tbm_blci_<mode>): Likewise.
2226         (*tbm_blcic_<mode>): Likewise.
2227         (*tbm_blcmsk_<mode>): Likewise.
2228         (*tbm_blcs_<mode>): Likewise.
2229         (*tbm_blsfill_<mode>): Likewise.
2230         (*tbm_blsic_<mode>): Likewise.
2231         (*tbm_t1mskc_<mode>): Likewise.
2232         (*tbm_tzmsk_<mode>): Likewise.
2233         * config/i386/i386.opt: Add -mtbm.
2234         * config/i386/tbmintrin.h (__bextri_u32): New.
2235         (__blcfill_u32): Likewise.
2236         (__blci_u32): Likewise.
2237         (__blcic_u32): Likewise.
2238         (__blcmsk_u32): Likewise.
2239         (__blcs_u32): Likewise.
2240         (__blsfill_u32): Likewise.
2241         (__blsic_u32): Likewise.
2242         (__t1mskc_u32): Likewise.
2243         (__tzmsk_u32): Likewise.
2244         (__bextri_u64): Likewise.
2245         (__blcfill_u64): Likewise.
2246         (__blci_u64): Likewise.
2247         (__blcic_u64): Likewise.
2248         (__blcmsk_u64): Likewise.
2249         (__blcs_u64): Likewise.
2250         (__blsfill_u64): Likewise.
2251         (__blsic_u64): Likewise.
2252         (__t1mskc_u64): Likewise.
2253         (__tzmsk_u64): Likewise.
2254         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2255         * doc/invoke.texi: Document -mtbm.
2256         * doc/extend.texi: Document TBM built-in functions.
2257
2258 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2259
2260         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2261         (x86_64-*-*): Likewise.
2262         * config/i386/cpuid.h: Define BMI bit.
2263         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2264         and set has_bmi.
2265         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2266         isa_flag for BMI.
2267         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2268         (OPTION_MASK_ISA_BMI_UNSET): New.
2269         (ix86_handle_option): Handle -mbmi.
2270         (isa_opts): Add -mbmi.
2271         (enum pta_flags): Add PTA_BMI.
2272         (ix86_option_override_internal): Add BMI support.
2273         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2274         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2275         (IX86_BUILTIN_BEXTR64): Likewise.
2276         (IX86_BUILTIN_CTZS): Likewise.
2277         (bdesc_args): Add BMI intrinsics.
2278         (ix86_expand_args_builtin): Add BMI specific cases.
2279         * config/i386/i386.h (TARGET_BMI): New for BMI.
2280         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2281         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2282         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2283         (UNSPEC_TZCNT): Likewise.
2284         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2285         (bmi_andn_<mode>): New for BMI.
2286         (bmi_bextr_<mode>): Likewise.
2287         (bmi_blsi_<mode>): Likewise.
2288         (bmi_blsmsk_<mode>): Likewise.
2289         (bmi_blsr_<mode>): Likewise.
2290         * config/i386/i386.opt: Add -mbmi.
2291         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2292         * config/i386/bmiintrin.h (__lzcnt_u16): New.
2293         (__tzcnt_u16): Likewise.
2294         (__andn_u32): Likewise.
2295         (__bextr_u32): Likewise.
2296         (__blsi_u32): Likewise.
2297         (__blsmsk_u32): Likewise.
2298         (__blsr_u32): Likewise.
2299         (__lzcnt_u32): Likewise.
2300         (__tzcnt_u32): Likewise.
2301         (__andn_u64): Likewise.
2302         (__bextr_u64): Likewise.
2303         (__blsi_u64): Likewise.
2304         (__blsmsk_u64): Likewise.
2305         (__blsr_u64): Likewise.
2306         (__lzcnt_u64): Likewise.
2307         (__tzcnt_u64): Likewise.
2308         * doc/invoke.texi: Document -mbmi and -mno-bmi.
2309         * doc/extend.texi: Document BMI built-in functions.
2310
2311 2010-11-10  Jan Hubicka  <jh@suse.cz>
2312
2313         PR tree-optimize/46228
2314         * doc/invoke.texi (comdat-sharing-probability): Document.
2315         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2316         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2317
2318 2010-11-10  Jan Hubicka  <jh@suse.cz>
2319
2320         PR tree-optimize/46228
2321         * cgraph.c (cgraph_propagate_frequency): Fix typo.
2322
2323 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
2324
2325         PR tree-optimization/46414
2326         * tree-inline.c (estimate_move_cost): Check preferred vector
2327         mode for vector type.
2328
2329 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2330
2331         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2332
2333 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
2334
2335         PR tree-optimization/45971
2336         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2337         for phi nodes analyzable by scev.
2338
2339 2010-11-10  Richard Guenther  <rguenther@suse.de>
2340
2341         PR tree-optimization/44964
2342         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2343
2344 2010-11-10  Martin Jambor  <mjambor@suse.cz>
2345
2346         PR tree-optimization/46351
2347         PR tree-optimization/46377
2348         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2349         aggregate bit-fields.
2350
2351 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2352
2353         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2354         * doc/tm.texi: Regenerate.
2355         * opts-common.c (tm.h): Don't include.
2356         (target_option_translations): Remove.
2357         (decode_cmdline_options_to_array): Don't handle translating options.
2358         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2359         * config/darwin-driver.c: Don't condition includes on
2360         CROSS_DIRECTORY_STRUCTURE.
2361         (darwin_default_min_version): Make static.
2362         (darwin_driver_init): New.  Call darwin_default_min_version if not
2363         CROSS_DIRECTORY_STRUCTURE.
2364         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2365         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2366         (ASM_SPEC): Add %{static}.
2367         (darwin_default_min_version): Don't declare.
2368         (darwin_driver_init): Declare.
2369         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2370         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2371         * config/darwin.opt (all_load, allowable_client,
2372         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2373         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2374         exported_symbols_list, filelist, findirect-virtual-calls,
2375         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2376         framework, fterminated-vtables, gfull, gused, image_base, init,
2377         install_name, multi_module, multiply_defined,
2378         multiply_defined_unused, no_dead_strip_inits_and_terms,
2379         seg_addr_table, seg_addr_table_filename, segaddr,
2380         segs_read_only_addr, segs_read_write_addr, single_module,
2381         umbrella, unexported_symbols_list, weak_reference_mismatches,
2382         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2383         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2384         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2385         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2386         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2387         (ASM_SPEC): Add %{static}.
2388         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2389         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2390         (DRIVER_SELF_SPECS): Handle options formerly in
2391         TARGET_OPTION_TRANSLATE_TABLE.
2392         * config/mep/mep.opt (mfar): New.
2393         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2394         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
2395         TARGET_OPTION_TRANSLATE_TABLE.
2396         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2397         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2398         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2399         ffix-and-continue, findirect-data): New.
2400         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2401         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2402         (mnofpu): Define mask and use Report here.
2403
2404 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2405
2406         * config/s390/s390.c (s390_emit_prologue): Report the stack
2407         size if -fstack-usage is used.
2408
2409 2010-11-10  Richard Guenther  <rguenther@suse.de>
2410
2411         PR tree-optimization/46398
2412         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2413
2414 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
2415
2416         PR target/44760
2417         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2418         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2419         GP_REG_OR_PSEUDO_STRICT_P.
2420         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2421         unexpected alternative.
2422         (*movsf_internal): Likewise.
2423         (indirect_jump): Replace call to non-existant function with call to
2424         internal_error.
2425         (tablejump): Likewise.
2426         * config/iq2000/iq2000.c: Include df.h .
2427         (iq2000_function_arg_advance): Use CONST_CAST2.
2428         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2429         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2430         a non-zero function address.
2431         (iq2000_initial_elimination_offset): Add gcc_unreachable for
2432         unexpected value of FROM.
2433         (symbolic_expression_p): Delete.
2434         (iq2000_function_value): Constify func.
2435         (expand_one_builtin): Use expand_normal.
2436         (iq2000_print_operand): Don't print VALUE if calculating it failed.
2437
2438         PR rtl-optimization/44764
2439         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2440
2441         PR target/46407
2442         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2443         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2444         with ATTRIBUTE_UNUSED.
2445         (valid_psw_flag): Constify parameter which.
2446         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2447
2448         PR target/46415
2449         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2450         (mmix_dbx_register_number): Likewise.
2451         * config/mmix/mmix.c: Include df.h .
2452         (mmix_local_alignment): Change argument basic_align and return type
2453         to unsigned.
2454         (mmix_dbx_register_number): Change argument and return type to
2455         unsigned.
2456         (mmix_expand_prologue): Use add_reg_note.
2457
2458         PR target/46417
2459         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2460         (spu_split_store): Use aform.
2461         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2462
2463 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2464
2465         PR/46268
2466         * doc/gty.texi (GTY Options): Clarify that variable_size produces
2467         allocators taking size in bytes, compare with length option.  Add
2468         size calculation example.
2469         (Invoking the garbage collector): Ensure that sentences are
2470         followed by two spaces.  Describe that pointer fields must be
2471         initialized at ggc_collect call.
2472         (Troubleshooting): New section.
2473
2474 2010-11-09  Jan Hubicka  <jh@suse.cz>
2475
2476         PR tree-optimization/40436
2477         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2478         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2479         normal instructions; be sure bultin is not implemented in this file;
2480         compute non-zero return cost.
2481         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2482         * tree-inline.h (eni_weights_d): Add return cost.
2483
2484 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
2485
2486         * c-parser.c (c_parser_struct_declaration): Handle declaration
2487         specifiers followed by CPP_CLOSE_BRACE.
2488
2489 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2490
2491         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2492         split occurs before reload, and we allocate memory at the time of
2493         the split, not during expansion.  Add attributes.
2494         (floatsi<mode>2_lfiwax_mem): Ditto.
2495         (floatunssi<mode>2_lfiwzx): Ditto.
2496         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2497         (floatsidf2): Ditto.
2498         (floatunssisf2): Ditto.
2499         (floatunssidf2): Ditto.
2500         (fix_trunc<mode>si2): Ditto.
2501         (fix_trunc<mode>si2_stfiwx): Ditto.
2502         (fix_trunc<mode>si2_internal): Ditto.
2503         (fix_trunc<mode>si2): Ditto.
2504         (fix_trunc<mode>di2): Ditto.
2505         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2506         (floatsisf2): Ditto.
2507         (floatdidf2_mem): Ditto.
2508         (floatunsdidf2_mem): Ditto.
2509         (floatunsdidf2): Ditto.
2510         (floatdisf2_internal1): Ditto.
2511         (floatdisf2_mem): Ditto.
2512         (floatunsdisf2_mem): Ditto.
2513         (floatsi<mode>2_lfiwax_mem2): Delete.
2514         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2515         (fix_trunc<mode>si2_mem): Ditto.
2516         (fixuns_trunc<mode>si2_mem): Ditto.
2517         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2518         type operations to reduce copying the values to multiple memory slots.
2519         (roundu32<mode>2_fprs): Ditto.
2520
2521         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2522         PRE_INC, PRE_DEC, PRE_MODIFY.
2523         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2524
2525         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2526         Delete prototype.
2527
2528 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2529
2530         PR target/43808
2531         * cfgexpand.c (partition_stack_vars): Call
2532         update_alias_info_with_stack_vars unconditionally.
2533         (update_alias_info_with_stack_vars): Allow unused
2534         unreferenced vars when not optimizing.
2535
2536 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
2537
2538         PR tree-optimization/46036
2539         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2540         add_to_dst_predicate_list.
2541
2542 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2543
2544         PR debug/46171
2545         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2546         earlier.
2547         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2548         argument, call dead_debug_reset when adding REG_UNUSED note.
2549         (dead_debug_reset): New function.
2550         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2551         df_create_unused_note callers.
2552
2553 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
2554
2555         * config/fr30/fr30.c: Include "df.h".
2556
2557 2010-11-09  Richard Guenther  <rguenther@suse.de>
2558
2559         PR tree-optimization/46355
2560         * tree-loop-distribution.c (tree_loop_distribution): Do not
2561         distribute loops without a single exit.
2562
2563 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2564
2565         PR rtl-optimization/46237
2566         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2567         saved hard regs if they might get partially clobbered.
2568
2569 2010-11-09  Paul Koning  <ni1d@arrl.net>
2570
2571         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2572
2573 2010-11-09  Richard Guenther  <rguenther@suse.de>
2574
2575         PR tree-optimization/46177
2576         * tree-loop-distribution.c (prop_phis): Remove.
2577         (generate_builtin): Re-use the old loop exit edge to avoid
2578         needing to update PHI nodes.
2579
2580 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
2581
2582         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2583         type of args_size to unsigned HOST_WIDE_INT.
2584
2585         PR target/44755
2586         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2587         * config/t-pnt16-warn: New file.
2588         * config/picochip/picochip.c (picochip_emit_stack_allocate):
2589         Use add_reg_note.
2590         (picochip_emit_save_register): Likewise.
2591         (picochip_emit_restore_register): Remove variable insn.
2592         (picochip_legitimize_address): Don't use C++ style comments.
2593         (picochip_legitimize_reload_address): Likewise.
2594         (reorder_var_tracking_notes): Remove variable vliw_start.
2595         (picochip_reorg): Cast first arguemnt to emit_note_after to
2596         enum insn_note.
2597         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2598         (picochip_expand_builtin_3op): Likewise.
2599         (picochip_expand_builtin_2opvoid): Likewise.
2600         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2601         (picochip_expand_array_testport): Likewise.
2602         (picochip_init_builtins): Remove unused variables.
2603         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2604         to unsigned long, and output it as such.
2605         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2606         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2607         (schedType): Cast result of picochip_schedule_type to
2608         enum attr_schedType.
2609
2610         PR target/44759
2611         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2612         conditional to type of S.
2613         (mn10300_function_arg): Remove unused variable align.
2614         (mn10300_arg_partial_bytes): Likewise.
2615         * config/mn10300/mn10300.md (attribute cpu): Cast value to
2616         enum attr_cpu.
2617
2618 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
2619
2620         PR bootstrap/46392
2621         * gengtype-parse.c (type): Call get_input_file_name to get file name.
2622
2623 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2624
2625         * tree.h (contains_placeholder_p): Fix comment.
2626         (type_contains_placeholder_p): Adjust comment.
2627         * tree.c (contains_placeholder_p): Fix comment.
2628         (type_contains_placeholder_1): Do not recurse on pointed-to types and
2629         adjust comment.
2630         (type_contains_placeholder_p): Add comment.
2631
2632 2010-11-09  Paul Koning  <ni1d@arrl.net>
2633
2634         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2635         output of byte values.
2636
2637 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2638
2639         PR middle-end/46360
2640         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2641         not in SSA mode.
2642
2643 2010-11-09  Richard Guenther  <rguenther@suse.de>
2644
2645         PR middle-end/46221
2646         * varasm.c (compute_visible_aliases): New function.
2647         (remove_unreachable_alias_pairs): Aliases make a target available
2648         even though we reclaimed the cgraph node.
2649         (finish_aliases_1): Likewise.
2650         * Makefile.in (varasm.o): Add pointer-set.h dependency.
2651
2652 2010-11-09  Nick Clifton  <nickc@redhat.com>
2653
2654         * config/mn10300/mn10300-modes.def: New file.
2655
2656 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
2657             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2658
2659         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2660         (plugin_files, get_file_basename, get_file_realbasename)
2661         (get_file_langdir, error_at_line, gt_files, this_file)
2662         (system_h_file, read_input_list, create_field_all)
2663         (get_file_srcdir_relative_path, get_file_basename)
2664         (get_file_langdir, get_file_gtfilename)
2665         (get_output_file_with_visibility, get_output_file_name)
2666         (struct flist, put_mangled_filename, walk_type)
2667         (put_mangled_filename, finish_root_table, write_roots): Use
2668         input_file-s.
2669         (lang_dir_names, num_lang_dirs): Remove static.
2670         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2671         (main): Use input_file-s.
2672
2673         * gengtype.h: (struct input_file_st, input_file): New type.
2674         (struct fileloc): Use it.
2675         (gt_files, num_gt_files, this_file, system_h_file)
2676         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2677         (get_input_file_name): New function.
2678         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2679         use input_file.
2680         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2681         (get_output_file_name): Ditto.
2682
2683         * gengtype-lex.l (yybegin): Use input_file.
2684
2685         * gengtype-parse.c (parse_error): Use input_file.
2686
2687 2010-11-08  Xinliang David Li  <davidxl@google.com>
2688
2689         PR tree-optimization/46316
2690         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2691         * double-int.h (double_int_mul_with_sign): New function.
2692         * double-int.c (double_int_mul_with_sign): New function.
2693
2694 2010-11-08  Paul Koning  <ni1d@arrl.net>
2695
2696         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2697
2698 2010-11-08  Paul Koning  <ni1d@arrl.net>
2699
2700         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2701
2702 2010-11-08  Paul Koning  <ni1d@arrl.net>
2703
2704         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2705         to 8 bits.
2706
2707 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2708
2709         PR target/46378
2710         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2711         turn on ISA 2.04 rounding instructions for power5.
2712
2713         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2714         not ISA 2.02.
2715
2716         PR target/45585
2717         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2718         in FPR registers.
2719         (movdi_low_st): Ditto.
2720
2721 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2722             Richard Henderson  <rth@redhat.com>
2723
2724         PR target/44758
2725         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2726         (attribute acc_group): Cast value to enum attr_acc_group.
2727         (*movdi_nodouble+6): Use gen_int_mode.
2728         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2729         if RTX_CODE is defined or not.
2730         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2731         struct frv_io.
2732         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2733         (frv_frame_access, frv_expand_prologue): Remove unused variables.
2734         (frv_expand_block_clear): Likewise.
2735         (frv_trampoline_init): Use LCT_NORMAL.
2736         (struct frv_packet_group): New struct, broken out of type of
2737         frv_packet.
2738         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2739         use cast in loop counter increment.
2740         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2741         assigning to io->type.
2742         (bdesc_set): Use rtx_code UNKNOWN in initializer.
2743         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2744         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2745         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2746         (frv_read_argument): Use expand_normal.
2747
2748         PR target/44757
2749         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2750         lm32_legitimate_constant_p.
2751         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2752         * config/lm32/lm32.c (gen_int_relational): Make new block for
2753         LE / LT / LEU / LTU case.  Declare variables at start of block.
2754         (lm32_block_move_inline): Use XALLOCAVEC.
2755
2756 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2757
2758         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2759
2760 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2761
2762         * gengtype (get_output_file_for_structure): Ensure type is union
2763         or struct.
2764         (write_splay_tree_allocator_def): Use
2765         get_output_file_with_visibility.
2766
2767 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2768
2769         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2770         to defined values in case of an error.
2771         (s390_option_override): Skip further processing if the -march
2772         parameter wasn't recognized.
2773
2774 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2775
2776         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2777         assert that REG is a hard register number before using it as an index.
2778
2779         PR bootstrap/46358
2780         * config/i386/i386.c (ix86_expand_split_stack_prologue):
2781         Avoid warnings when HOST_WIDE_INT is 32 bit.
2782
2783 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2784
2785         PR target/46208
2786         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2787         (sparc_promote_prototypes): Likewise.
2788         (sparc_promote_function_mode): Promote in 32-bit mode as well.
2789         (sparc_return_in_memory): Remove superfluous parentheses.
2790         (sparc_struct_value_rtx): Fix long lines.
2791         (sparc_function_value_1): Promote in 32-bit mode as well.
2792
2793 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
2794
2795         PR rtl-optimization/45352
2796         * sel-sched.c (find_best_expr): Do not set pneed_stall when
2797         the variable_issue hook is not implemented.
2798         (fill_insns): Remove dead variable stall_iterations.
2799         (init_seqno_1): Force EBB start for resetting sched cycles on any
2800         successor blocks of the rescheduled region.
2801         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2802         (reset_sched_cycles_in_current_ebb): Add debug printing.
2803         New variable issued_insns.  Advance state when we have issued
2804         issue_rate insns.
2805
2806 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2807
2808         * gengtype (main): Get here's position using POS_HERE macro for
2809         do*typedef calls.
2810
2811 2010-11-07  Ian Lance Taylor  <iant@google.com>
2812
2813         PR target/46089
2814         * config/i386/i386.c (split_stack_fn_large): New static variable.
2815         (ix86_expand_split_stack_prologue): Handle large model.
2816
2817 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
2818
2819         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2820         all possible addressing modes.
2821
2822 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
2823
2824         PR tree-optimization/46346
2825         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2826
2827 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2828
2829         * config/mips/mips.c: Revert previous patch.
2830         * config/mips/mips.md: Likewise.
2831
2832 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2833
2834         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2835         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2836         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2837         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2838         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2839         to use FMA.
2840         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2841         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2842         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2843         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2844
2845 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
2846
2847         PR c/43384
2848         * c-decl.c (lookup_label): Labels can only be referenced in a
2849         function's scope.
2850         (store_parm_decls_oldstyle): Skip erroneous parameters.
2851
2852 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
2853
2854         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2855         LIBCALL_VALUE): Remove macros.
2856         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2857         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2858         (fr30_function_value_regno_p, fr30_function_value,
2859         fr30_libcall_value): New functions.
2860
2861 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
2862
2863         PR middle-end/46314
2864         * target.def (generate_internal_label): New asm_out hook.
2865         * output.h (default_generate_internal_label): Declare.
2866         * varasm.c (default_generate_internal_label): Define.
2867
2868 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
2869
2870         PR target/44981
2871         * doc/extend.tex (format): Document NSString extension.
2872         (format_arg): Likewise.
2873         (Darwin Format Checks): New section.
2874         * doc/tm.texi: Document string object hooks (generated).
2875         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2876         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2877         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2878         * target.def (objc_construct_string_object): Rename, amend
2879         documentation.
2880         (string_object_ref_type_p): New hook.
2881         (check_string_object_format_arg): New hook.
2882         * c-parser.c (c_parser_attributes): Allow objective-c class names as
2883         attribute identifiers.
2884         * config/darwin-c.c (darwin_cfstring_ref_p): New.
2885         (darwin_check_cfstring_format_arg): New.
2886         (darwin_additional_format_types): New.
2887         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2888         (darwin_check_cfstring_format_arg): New.
2889         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2890         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2891         (TARGET_N_FORMAT_TYPES): New.
2892         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2893
2894 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
2895             Pascal Obry  <obry@adacore.com>
2896
2897         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
2898         in 64-bit mode and 17 otherwise.
2899
2900 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2901
2902         PR debug/45939
2903         * var-tracking.c (emit_note_insn_var_location): Make sure that
2904         call related var location notes come before the normal ones.
2905
2906 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2907
2908         PR target/46326
2909         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2910         in the last change.
2911
2912 2010-11-05  Ian Lance Taylor  <iant@google.com>
2913
2914         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2915
2916 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2917
2918         PR c/44772
2919         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2920         pointer_set_contains if DECL_NAME is NULL.
2921
2922 2010-11-05  Ian Lance Taylor  <iant@google.com>
2923
2924         PR target/46084
2925         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2926         request enough additional space for alignment, and force alignment.
2927
2928 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
2929
2930         * config/i386/i386.c (legitimate_pic_address_disp_p):
2931         Handle UNSPEC_PCREL.
2932         (ix86_legitimate_address_p): Likewise.
2933         (legitimize_pic_address): Likewise.
2934         (output_pic_addr_const): Likewise.
2935         (ix86_delegitimize_address): Likewise.
2936         (ix86_find_base_term): Likewise.
2937         (memory_address_length): Likewise.
2938         (x86_output_mi_thunk): Handle special case x64
2939         for non local binding.
2940         * config/i386/i386.md (UNSPEC_PCREL): New.
2941         * config/i386/winnt.c (i386_pe_binds_local_p):
2942         Allow weak symbol for x64 windows with non-local binding.
2943
2944 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2945
2946         PR target/45670
2947         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2948         instead of EXPAND_NORMAL for base expansion.
2949
2950 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
2951
2952         * config.gcc: Support --with-fpmath=avx for x86.
2953         * config/i386/avxmath.h: New.
2954         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2955
2956 2010-11-05  Ian Lance Taylor  <iant@google.com>
2957
2958         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2959         * gengtype.c (walk_type): Don't recognize descbits option.
2960
2961 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
2962
2963         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2964         WORD_SWITCH_TAKES_ARG): Remove.
2965         * doc/options.texi (Args): Document.
2966         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2967         * doc/tm.texi: Regenerate.
2968         * opt-functions.awk (switch_flags): Handle Args.
2969         * opts-common.c: Update comment on tm.h include.
2970         (decode_cmdline_option): Handle options with multiple arguments.
2971         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2972         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2973         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2974         CL_COMMON): Update values.
2975         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2976         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2977         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2978         sectobjectsymbols, sectorder, segcreate, segprot): New.
2979
2980 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2981             Uros Bizjak  <ubizjak@gmail.com>
2982
2983         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2984         256bit AVX register is used.
2985         (ix86_expand_vector_move_misalign): Likewise.
2986         (ix86_expand_vector_move): Replace use_avx256_p with
2987         VALID_AVX256_REG_MODE.
2988
2989 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
2990
2991          PR target/44750
2992         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2993         change.  Set $@-warn.o to -Wno-error.
2994
2995         PR bootstrap/44756
2996         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2997         comparing it to a signed value.
2998
2999         PR middle-end/44766
3000         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3001         PR bootstrap/44770
3002         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3003         to i.
3004
3005         PR target/44754
3006         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3007         (m32c_function_arg).  Add comma between arguments two and three.
3008         (m32c_promote_prototypes): Remove declaration.
3009         (current_function_special_page_vector): Likewise.
3010         (m32c_regno_reg_class): Change return type to enum reg_class.
3011         (m32c_pushm_popm): Use add_reg_note.
3012         (m32c_push_rounding): Change return type to unsigned int.
3013         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3014         enum reload_type.
3015         (m32c_insert_attributes): Constify variable name.
3016         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3017         (m32c_prepare_shift): Remove variable lref.
3018         (m32c_expand_movcc): Remove variable cmp.
3019         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3020         (m32c_compare_redundant): Remove variable op2.
3021         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3022         (m32c_pragma_memregs): Assign the number to target_memregs.
3023         (m32c_pragma_address): Remove variable var_str.
3024         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3025         enum reg_class.
3026         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3027         * config/m32c/bitops.md (andsi3): Add default case to switch.
3028         (iorsi3, xorsi3): Likewise.
3029         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3030         * config/m32c/jump.md (call, call_value): Likewise.
3031         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3032         (m32c_regno_reg_class): Likewise.
3033         (current_function_special_page_vector): Declare.
3034
3035 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3036
3037         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3038
3039         PR tree-optimization/46099
3040         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
3041         if it is NULL and uid wasn't found in the hash table.  Just fold the
3042         result if it is NULL otherwise.  Insert other potentially needed
3043         stmts right before current stmt instead of on the entry edge.
3044         (struct elv_data): Add gsi and reset fields.
3045         (eliminate_local_variables_1): Adjust caller.  If take_address_of
3046         failed for debug stmt, set dta->reset and return.
3047         (eliminate_local_variables_stmt): Change STMT argument for GSI,
3048         pass GSI through to the callback, handle resetting of debug stmts.
3049         (eliminate_local_variables): Adjust caller.  Process debug stmts
3050         in second phase.
3051
3052         PR middle-end/43690
3053         * gimplify.c (gimplify_asm_expr): If a "m" input is a
3054         {pre,post}{in,de}crement, fail.
3055
3056         PR debug/46307
3057         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3058         * tree-pretty-print.c (dump_generic_node): Likewise.
3059         (op_code_prio): Likewise.
3060         * cfgexpand.c (expand_debug_expr): Likewise.
3061
3062 2010-11-04  Paul Koning  <ni1d@arrl.net>
3063
3064         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3065         constraints.
3066
3067 2010-11-04  Chao-ying Fu  <fu@mips.com>
3068
3069         * configure.ac: Test assembler support for DSP Rev1 mult.
3070         * configure: Regenerate.
3071         * config.in: Regenerate.
3072         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3073         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3074         (CODE_FOR_mips_multu): New define.
3075         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3076         dspr2_32 to dsp_32.
3077         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3078         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3079         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3080         New define_expand patterns.
3081         * config/mips/constraints.md (ka): Update the constraint to test
3082         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3083         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3084         mips_multu): Delete.
3085         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3086         Change target constraint to "ka".
3087         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3088         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3089         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3090         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
3091         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3092         (<u>maddsidi4): Likewise.
3093         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3094         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3095
3096 2010-11-04  Paul Koning  <ni1d@arrl.net>
3097
3098         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3099
3100 2010-11-04  Paul Koning  <ni1d@arrl.net>
3101
3102         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3103
3104 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
3105
3106         Fixed using the Objective-C 2.0 dot-syntax with class names.
3107         * c-parser.c (c_parser_next_token_starts_declspecs): In
3108         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3109         (c_parser_next_token_starts_declaration): Same.
3110         (c_parser_postfix_expression): Parse the Objective-C 2.0
3111         dot-syntax with a class name.
3112
3113 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
3114
3115         * final.c (compute_alignments): Compute/free loop info all the time.
3116         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3117         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3118         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3119         * config/rs6000/rs6000.c (cfgloop.h): Include.
3120         (can_override_loop_align): New.
3121         (rs6000_option_override_internal): Set it.
3122         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3123         (rs6000_loop_align): New function.
3124         (rs6000_loop_align_max_skip): Likewise.
3125
3126 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3127
3128         PR driver/45703
3129         * collect2.c (main): Print --help output to stdout.  Do not
3130         exit right away, so ld --help is appended.  Add empty lines
3131         to separate output suitably.
3132
3133 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
3134
3135         PR tree-optimization/46233
3136         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3137         after calling analyze_function, not before.
3138
3139         PR target/46234
3140         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3141         instead of build_va_arg_indirect_ref.
3142         * config/spu/spu.c (spu_va_start): Likewise.
3143         * config/s390/s390.c (s390_va_start): Likewise.
3144
3145 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
3146
3147         PR middle-end/46292
3148         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3149         if the innermode is not vector mode, determine the mode of a subreg
3150         by using mode_for_size of inner_size.
3151
3152 2010-11-04  Richard Guenther  <rguenther@suse.de>
3153
3154         PR rtl-optimization/46183
3155         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3156         (execute_rtl_pre): Likewise.
3157         (execute_rtl_hoist): Likewise.
3158
3159 2010-11-04  Richard Guenther  <rguenther@suse.de>
3160
3161         PR tree-optimization/46068
3162         * ipa-split.c (consider_split): Remove gcc_unreachable.
3163
3164 2010-11-04  Richard Guenther  <rguenther@suse.de>
3165
3166         * tree-nested.c (build_addr): Use build_fold_addr_expr.
3167
3168 2010-11-04  Richard Guenther  <rguenther@suse.de>
3169
3170         PR tree-optimization/45991
3171         * gimplify.c (force_gimple_operand_1): Use the provded test
3172         function in the initial test.
3173
3174 2010-11-04  Jeff Law  <law@redhat.com>
3175
3176         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3177         of readonly memory equivalances for const/pure calls.
3178
3179 2010-11-04  Richard Guenther  <rguenther@suse.de>
3180
3181         PR tree-optimization/45733
3182         * tree-vect-stmts.c (reverse_vec_elements): Honor the
3183         permute builtins function return type.
3184
3185 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
3186
3187         PR middle-end/44765
3188         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3189         as an index, check it is not INVALID_REGNUM.
3190
3191         PR bootstrap/44756
3192         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3193         unsignedp.
3194         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3195
3196         PR bootstrap/44756
3197         * function.c (thread_prologue_and_epilogue_insns): Add
3198         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3199
3200         PR bootstrap/44756
3201         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3202
3203         PR target/44750
3204         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3205         (pdp11_preferred_reload_class): Rename class to rclass.
3206         (pdp11_preferred_output_reload_class): Likewise.
3207         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3208         ALL_COMPILERFLAGS .
3209         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3210
3211         PR bootstrap/44756
3212         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3213         iteration variables to enum machine_mode.
3214
3215         PR target/44751
3216         * config/h8300/h8300.c: Include df.h.
3217         (push, pop): Use add_reg_note.
3218         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3219         (compute_a_shift_cc): Likewise.
3220         (expand_a_shift): Argument code has type enum rtx_code.
3221         (struct shift_insn): Member cc_valid has type enum attr_cc.
3222         (struct shift_info) <cc_inline, cc_special>: Likewise.
3223         enum attr_cc.
3224         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3225         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3226
3227 2010-11-04  Ira Rosen  <irar@il.ibm.com>
3228
3229         PR tree-optimization/46213
3230         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3231         MINUS_EXPR only if the first operand is reduction operand.
3232
3233 2010-11-04  Richard Guenther  <rguenther@suse.de>
3234             Richard Henderson  <rth@redhat.com>
3235
3236         * tree.def (FMA_EXPR): New tree code.
3237         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3238         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3239         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3240         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3241         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3242         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3243         (execute_optimize_widening_mul): Call it.  Reorganize to allow
3244         dead stmt removal.  Move TODO flags ...
3245         (pass_optimize_widening_mul): ... here.
3246         * flag-types.h (enum fp_contract_mode): New enum.
3247         * common.opt (flag_fp_contract_mode): New variable.
3248         (-ffp-contract): New option.
3249         * opts.c (common_handle_option): Handle it.
3250         * doc/invoke.texi (-ffp-contract): Document.
3251         * tree.h (fold_fma): Declare.
3252         * builtins.c (fold_fma): New function.
3253         (fold_builtin_fma): Likewise.
3254         (fold_builtin_3): Call it for fma.
3255         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3256         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3257         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3258         New expanders.
3259         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3260         named patterns.
3261         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3262         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3263         (fms_optab, fnma_optab, fnms_optab): New defines.
3264         * gimplify.c (gimplify_expr): Handle binary truth expressions
3265         explicitly.  Handle FMA_EXPR.
3266         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3267         operations.
3268
3269 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3270             Richard Guenther  <rguenther@suse.de>
3271
3272         * passes.c (init_optimization_passes): Move veclower after SSA.
3273         * tree-vect-generic.c (uniform_vector_p): New function.
3274         (expand_vector_operations_1): Handle conversion.
3275         (pass_lower_vector): Update SSA form.
3276
3277 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
3278
3279         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3280         plugin capabilities.
3281         * configure: Regenerate.
3282
3283 2010-11-03  Xinliang David Li  <davidxl@google.com>
3284
3285         PR target/46200
3286         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3287         Adjust cbase if the use stmt is after iv update.
3288
3289 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3290
3291         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3292
3293 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3294
3295         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3296         comment.  Pass true to the last argument of output_stack_adjust.
3297
3298 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3299
3300         PR target/46295
3301         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3302         if 256bit AVX register is used.
3303
3304 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3305
3306         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3307         xsmindp/xsmaxdp on VSX for single precision min/max.
3308         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3309         (vsx_sminsf3): Ditto.
3310
3311 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3312
3313         * combine.c (try_combine): Fix formatting issues, improve comments and
3314         fix a pasto.
3315
3316 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3317
3318         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3319         of the result before building binary expressions.
3320
3321 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3322
3323         PR rtl-optimization/45865
3324         * Makefile.in (df-problems.o): Revert revision 164552.
3325         * basic-block.h (enum bb_flags): Likewise.
3326         * cfgcleanup.c (block_was_dirty): Likewise.
3327         (try_forward_edges): Likewise.
3328         (try_crossjump_bb): Likewise.
3329         (try_head_merge_bb): Likewise.
3330         (try_optimize_cfg): Likewise.
3331         (cleanup_cfg): Likewise.
3332         * df-core.c (df_set_bb_dirty): Likewise.
3333         * df-problems.c: Likewise.
3334         (df_simulate_find_uses): Likewise.
3335         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3336         (find_memory, find_memory_store): Likewise.
3337         (can_move_insns_across): Likewise.
3338         * df.h (can_move_insns_across): Likewise.
3339         * ifcvt.c (find_memory): Likewise.
3340         (dead_or_predicable): Likewise.
3341
3342 2010-11-03  Richard Guenther  <rguenther@suse.de>
3343
3344         PR middle-end/46288
3345         * predict.c (strip_predict_hints): Simply DCE builtin expect if
3346         the result is unused.
3347
3348 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3349
3350         PR tree-optimization/46009
3351         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3352         cond_if_else_store_replacement if bb1 and bb2 have the same
3353         single successor.
3354         (cond_store_replacement): Use gimple_assign_single_p, don't
3355         check if rhs is SSA_NAME or invariant.  Call release_defs for
3356         assign.
3357         (cond_if_else_store_replacement): New function.
3358
3359 2010-11-03  Richard Guenther  <rguenther@suse.de>
3360
3361         * opts.c (finish_options): Properly check for all WHOPR
3362         flags before complaining about -flto-partition.
3363
3364 2010-11-04  Alan Modra  <amodra@gmail.com>
3365
3366         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3367         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3368         TARGET_SECURE_PLT.
3369         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3370         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3371         on input, "r" on output.
3372
3373 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
3374
3375         Implemented -fobjc-std=objc1 flag.
3376         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3377         option.
3378         * doc/standards.texi (Standards): Updated the section on
3379         Objective-C; mention support for Objective-C 2.0 features and the
3380         new -fstd-objc=objc1 flag to disable them.
3381
3382 2010-11-03  Richard Guenther  <rguenther@suse.de>
3383
3384         PR middle-end/46241
3385         * dwarf2out.c (scope_die_for): Properly detect global scope.
3386
3387 2010-11-03  Richard Guenther  <rguenther@suse.de>
3388
3389         PR tree-optimization/46190
3390         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3391         Properly compute peel iterations.
3392
3393 2010-11-03  Richard Guenther  <rguenther@suse.de>
3394
3395         PR tree-optimization/46286
3396         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3397         re-allocated vector data.
3398
3399 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3400
3401         PR target/46285
3402         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3403         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3404         is completed.
3405
3406 2010-11-03  Richard Guenther  <rguenther@suse.de>
3407
3408         PR tree-optimization/46217
3409         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
3410         flag matches.
3411         (execute_update_addresses_taken): Likewise.
3412
3413 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3414
3415         PR bootstrap/44335
3416         * targhooks.c (targhook_words_big_endian): New function.
3417         (targhook_float_words_big_endian): Likewise.
3418         * targhooks.h (targhook_words_big_endian): Declare.
3419         (targhook_float_words_big_endian): Likewise.
3420         * target.def (words_big_endian, float_words_big_endian): New hooks.
3421
3422 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3423
3424         PR tree-optimization/46165
3425         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3426         a normal call into noreturn call.
3427
3428 2010-11-03  Richard Guenther  <rguenther@suse.de>
3429
3430         PR middle-end/46251
3431         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3432         not INDIRECT_REFs.
3433
3434 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3435
3436         PR tree-optimization/46107
3437         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3438         if cfg_hook_duplicate_loop_to_header_edge failed.
3439
3440 2010-11-03  Ian Lance Taylor  <iant@google.com>
3441
3442         PR lto/46273
3443         * config.gcc: Don't set lto_binary_reader.
3444         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3445         (Configuration): Mention --disable-lto.  Remove --with-libelf
3446         paragraph.
3447
3448 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3449
3450         PR debug/46252
3451         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3452         prev_real_insn.
3453         * gcse.c (insert_insn_end_basic_block): Likewise.
3454
3455         PR rtl-optimization/46034
3456         PR rtl-optimization/46212
3457         PR rtl-optimization/46248
3458         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3459         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3460         before i0dest -> i0src substitution and pass 1 instead of 0 as last
3461         argument to subst on i2pat.
3462
3463 2010-11-02  Ian Lance Taylor  <iant@google.com>
3464
3465         * configure.ac: Use AC_SYS_LARGEFILE.
3466         * configure: Rebuild.
3467         * config.in: Rebuild.
3468
3469 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3470
3471         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3472         fold_convert.
3473         * c-typeck.c (build_function_call_vec): Likewise.
3474         * cfgexpand.c (expand_debug_expr): Likewise.
3475         * cgraphunit.c (assemble_thunk): Likewise.
3476         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3477         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3478         (fold_binary_loc, fold_ternary_loc): Likewise.
3479         * gimple-fold.c (get_symbol_constant_value): Likewise.
3480         * gimple-low.c (lower_builtin_setjmp): Likewise.
3481         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3482         * gimplify.c (gimplify_init_constructor): Likewise.
3483         * lambda.h (build_linear_expr): Likewise.
3484         * omp-low.c (omp_reduction_init): Likewise.
3485         * tree-inline.c (remap_ssa_name): Likewise.
3486         * tree-object-size.c (compute_object_sizes): Likewise.
3487         * tree-sra.c (init_subtree_with_zero): Likewise.
3488         (sra_ipa_modify_assign): Likewise.
3489         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3490         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3491         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3492         (undistribute_ops_list): Likewise.
3493         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3494         * tree-vect-stmts.c (vectorizable_call): Likewise.
3495         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3496         (build_zero_cst): Handle more cases directly.  Update comment.
3497
3498 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3499
3500         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3501         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3502
3503         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3504         and call ix86_split_call_vzeroupper instead of
3505         ix86_split_call_pop_vzeroupper.
3506         (*call_pop_1_vzeroupper): Likewise.
3507         (*sibcall_pop_1_vzeroupper): Likewise.
3508         (*call_value_pop_0_vzeroupper): Likewise.
3509         (*call_value_pop_1_vzeroupper): Likewise.
3510         (*sibcall_value_pop_1_vzeroupper): Likewise.
3511
3512 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3513
3514         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3515
3516 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
3517
3518         * basic-block.h (insert_insn_end_bb_new): Delete.
3519         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3520
3521 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
3522             H.J. Lu  <hongjiu.lu@intel.com>
3523
3524         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3525         (ix86_split_call_pop_vzeroupper): Likewise.
3526
3527         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3528         (ix86_expand_call): Conditionally decorate calls with
3529         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3530         (ix86_split_call_vzeroupper): New.
3531         (ix86_split_call_pop_vzeroupper): Likewise.
3532
3533         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3534         (*call_pop_0_vzeroupper): New insn_and_split pattern.
3535         (*call_pop_1_vzeroupper): Likewise.
3536         (*sibcall_pop_1_vzeroupper): Likewise.
3537         (*call_0_vzeroupper): Likewise.
3538         (*call_1_vzeroupper): Likewise.
3539         (*sibcall_1_vzeroupper): Likewise.
3540         (*call_1_rex64_vzeroupper): Likewise.
3541         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3542         (*call_1_rex64_large_vzeroupper): Likewise.
3543         (*sibcall_1_rex64_vzeroupper): Likewise.
3544         (*call_value_pop_0_vzeroupper): Likewise.
3545         (*call_value_pop_1_vzeroupper): Likewise.
3546         (*sibcall_value_pop_1_vzeroupper): Likewise.
3547         (*call_value_0_vzeroupper): Likewise.
3548         (*call_value_0_rex64_vzeroupper): Likewise.
3549         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3550         (*call_value_1_vzeroupper): Likewise.
3551         (*sibcall_value_1_vzeroupper): Likewise.
3552         (*call_value_1_rex64_vzeroupper): Likewise.
3553         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3554         (*call_value_1_rex64_large_vzeroupper): Likewise.
3555         (*sibcall_value_1_rex64_vzeroupper): Likewise.
3556
3557 2010-11-02  Ian Lance Taylor  <iant@google.com>
3558
3559         PR lto/46273
3560         * config.gcc: Revert last patch: set lto_binary_reader.
3561
3562 2010-11-02  Richard Guenther  <rguenther@suse.de>
3563
3564         PR tree-optimization/46149
3565         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3566         non-indirect MEM_REF variants.
3567
3568 2010-11-02  Richard Guenther  <rguenther@suse.de>
3569
3570         PR tree-optimization/46216
3571         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3572         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3573
3574 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3575
3576         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3577         (*-*-osf*): Likewise.
3578         * configure: Regenerate.
3579
3580 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3581
3582         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3583         for Intel Core 2 and Core i7.
3584
3585 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
3586
3587         Model decoder of Core 2/i7 for multipass scheduling.
3588
3589         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3590         New type to hold target-specific data for multipass scheduling.
3591         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3592         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3593         Core 2/i7.
3594         (core2i7_secondary_decoder_max_insn_size,)
3595         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3596         New static variables.
3597         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3598         ([_]ix86_first_cycle_multipass_data): New static variable.
3599         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3600         Implement targetm.sched hooks.
3601         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3602         of ...
3603         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3604         Implement new targetm.sched hooks.
3605         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3606         targetm.sched hook to install multipass scheduling hooks on demand.
3607
3608         * doc/tm.texi.in: Document new targetm.sched hooks.
3609         * doc/tm.texi: Regenerate.
3610
3611         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3612         (first_cycle_multipass_data_t): New typedef.
3613         (struct choice_entry: target_data): New field.
3614         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
3615         to allow target model restrictions not represented in DFA.
3616         (choose_ready, schedule_block): Update.
3617         (sched_extend_ready_list, sched_finish_ready_list): Call new target
3618         hooks to initialize target-specific data for multipass scheduling.
3619         * sched-int.h (max_issue): Update declaration.
3620         * sel-sched.c (choose_best_insn): Update.
3621         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3622         (first_cycle_multipass_{init, fini}): Define and document new
3623         targetm.sched hooks.
3624
3625 2010-11-02  Richard Guenther  <rguenther@suse.de>
3626
3627         PR tree-optimization/46184
3628         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3629         input vector type from the reduction operand as well.
3630
3631 2010-11-02  Richard Guenther  <rguenther@suse.de>
3632
3633         PR tree-optimization/46177
3634         * tree-loop-distribution.c (prop_phis): Use
3635         mark_virtual_phi_result_for_renaming.
3636
3637 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3638
3639         PR middle-end/46120
3640         * tree.c (get_binfo_at_offset): Bail out on artificial
3641         fields.  Identify primary bases according to their offsets.
3642
3643 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3644
3645         PR tree-optimization/45875
3646         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3647         (gimple_get_relevant_ref_binfo): Detect primary bases according to
3648         their field offset.
3649
3650 2010-11-02  Ian Lance Taylor  <iant@google.com>
3651
3652         * doc/install.texi (Configuration): Note in two places that Java
3653         is not enabled by default.
3654
3655 2010-11-02  Ian Lance Taylor  <iant@google.com>
3656
3657         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3658         (Configuration): Mention --disable-lto.  Remove --with-libelf
3659         paragraph.
3660
3661 2010-11-02  Ian Lance Taylor  <iant@google.com>
3662
3663         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
3664         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
3665         LIBELFINC.  Remove HAVE_libelf.
3666         * config.gcc: Don't set lto_binary_reader.
3667         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3668         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3669         (LIBS): Remove $(LIBELFLIBS).
3670         (INCLUDES): Remove $(LIBELFINC).
3671         * configure: Rebuild.
3672         * config.in: Rebuild.
3673
3674 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3675
3676         * config/microblaze/microblaze-protos.h (function_arg): Delete.
3677         (function_arg_advance): Delete.
3678         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3679         (FUNCTION_ARG): Delete.
3680         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
3681         (microblaze_function_arg_advance): ...this.  Make static.  Take a
3682         const_tree and a bool.
3683         (function-arg): Rename to...
3684         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
3685         and a bool.
3686         (microblaze_expand_prologue): Call targetm.calls.function_arg and
3687         targetm.calls.function_arg_advance.
3688         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3689
3690 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3691
3692         Merge from FSF "apple/trunk" branch.
3693
3694         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
3695         * config/darwin.opt: .. to here.
3696         (matt-stubs): New option.
3697         * config/i386/darwin.opt: Delete.
3698         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
3699         (MACHO_DYNAMIC_NO_PIC_P): New.
3700         (MACHOPIC_INDIRECT): New.
3701         (MACHOPIC_PURE): New.
3702         * config/i386/darwin.h (DARWIN_X86) Define to 1.
3703         (MACHOPIC_ATT_STUB): New.
3704         (CC1_SPEC): Do not remove mdynamic-no-pic.
3705         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3706         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3707         (FUNCTION_PROFILER): Correct over-length line.
3708         (SUBTARGET_OVERRIDE_OPTIONS): New.
3709         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3710         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
3711         (legitimate_constant_p): Handle mdynamic-no-pic.
3712         (ix86_legitimate_address_p): Likewise.
3713         (ix86_legitimize_address): Likewise.
3714         (ix86_expand_move): Likewise.
3715         (machopic_output_stub): Update for ATT-style stubs and
3716         mdynamic-no-pic.
3717         * config/darwin-protos.h (machopic_symbol_defined_p): New.
3718         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
3719         TARGET_DYNAMIC_NO_PIC: Remove.
3720         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3721         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3722         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
3723         Remove handling of mdynamic-no-pic.
3724         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
3725         Define if required.
3726         (machopic_symbol_defined_p): Do not try to use current_function_decl
3727         when generating _get_pc thunks within stubs.
3728         (machopic_indirect_data_reference): Rework for direct conditionals
3729         rather than #ifdefs, add x86 mdynamic-no-pic
3730         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
3731         defined value.
3732         (darwin_override_options): Handle mdynamic-no-pic here.
3733         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
3734         (machopic_lazy_symbol_ptr3_section): New.
3735         (machopic_picsymbol_stub2_section): New.
3736         (machopic_picsymbol_stub3_section): New.
3737         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
3738         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3739         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3740         Moved common definition from x86 and rs6000.
3741         (MACHO_DYNAMIC_NO_PIC_P): Override value.
3742         (MACHOPIC_INDIRECT): Likewise.
3743         (MACHOPIC_PURE): Likewise.
3744         * config.gcc (x86-darwin-*): Remove darwin.opt.
3745
3746 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
3747
3748         PR debug/46255
3749         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
3750         instead of gsi_last_bb.
3751
3752 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3753             Maxim Kuvyrkov  <maxim@codesourcery.com>
3754
3755         * config/i386/i386.c (cpu_names): Add "corei7".
3756         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3757
3758 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3759             Maxim Kuvyrkov  <maxim@codesourcery.com>
3760
3761         Tune alignment for Intel Core i7
3762
3763         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3764         (enum processor_type): Update comment.  Add entries for Core i7.
3765         * config/i386-c.c (ix86_target_macros_internal): Update.
3766         * config/i386.c (m_COREI7{_32,_64}): New macros.
3767         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3768         (processor_target_table): Tune alignment for Core i7.
3769         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3770
3771         * doc/invoke.texi: Document "corei7" option value.
3772
3773 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3774             Maxim Kuvyrkov  <maxim@codesourcery.com>
3775             H.J. Lu  <hjl.tools@gmail.com>
3776
3777         Basic support for Intel Core i7
3778
3779         * i386.c (ix86_option_override_internal): Add entry for corei7, use
3780         generic tuning.  Use generic32 when compiling for 32-bit ABI.
3781
3782 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3783
3784         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
3785         sections and call darwin_asm_dwarf_section() to handle them.
3786         (darwin_asm_dwarf_section): New.
3787         (darwin_file_start): Remove code emitting dwarf section symbols.
3788
3789 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
3790
3791         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
3792         explicitly disable stack protection when building libgcc.
3793         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
3794
3795 2010-11-01  Jason Merrill  <jason@redhat.com>
3796
3797         * fold-const.c (fold_indirect_ref_1): Handle folding
3798         POINTER_PLUS_EXPR to ARRAY_REF.
3799
3800 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3801
3802         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
3803         (sh_delegitimize_address): New function.
3804
3805 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3806
3807         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
3808         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
3809         (CC1_SPEC): Don't handle -target.
3810         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
3811         options.
3812         * config/darwin.opt (Zallowable_client, Zbundle_loader,
3813         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
3814         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
3815         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
3816         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
3817         Zweak_reference_mismatches, client_name, compatibility_version,
3818         current_version, dylinker_install_name, pagezero_size,
3819         read_only_relocs, seg1addr, segs_read_only_addr,
3820         segs_read_write_addr, sub_library, sub_umbrella): New.
3821         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
3822         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
3823         * config/freebsd.opt: New.
3824         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
3825         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
3826         * config/rpath.opt: New.
3827         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
3828         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
3829         Use rpath.opt.
3830
3831 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3832
3833         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
3834         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
3835         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
3836         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
3837         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
3838         Document that options in .opt files do not need to be included.
3839         * doc/tm.texi: Regenerate.
3840         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
3841         * opts-common.c: Update comment on tm.h include.
3842         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
3843         * system.h (SWITCH_TAKES_ARG): Poison.
3844         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
3845         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
3846         in darwin.opt.
3847         (LINK_COMMAND_SPEC_A): Don't include %{x}.
3848         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3849         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
3850         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
3851         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3852         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
3853         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
3854         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
3855         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
3856         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3857         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
3858         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
3859         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
3860         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
3861         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
3862         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
3863         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
3864         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
3865         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
3866         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
3867         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
3868         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
3869         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
3870         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3871
3872 2010-11-01  Paul Koning  <ni1d@arrl.net>
3873
3874         * config/pdp11/pdp11.md: Use iterators.
3875         (addqi3, subqi3, iorsi3, xorsi3): Delete.
3876
3877 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
3878
3879         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
3880         GCC_INSN_FLAGS_H.
3881         * libgcov.c (__gcov_indirect_call_profiler): Set
3882         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
3883         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
3884
3885 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3886
3887         PR tree-optimization/46259
3888
3889         Revert:
3890         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3891         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
3892         build_vector_from_val.
3893
3894 2010-11-01  DJ Delorie  <dj@redhat.com>
3895
3896         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
3897         as well as an assertion.
3898
3899 2010-11-01  Paul Koning  <ni1d@arrl.net>
3900
3901         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
3902         complex modes in memory.
3903
3904 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3905
3906         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
3907
3908 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
3909
3910         PR target/45250
3911         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
3912         (cfa_base_offset): New variable.
3913         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
3914         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
3915         is NULL.
3916         (vt_init_cfa_base): Initialize cfa_base_offset.
3917
3918 2010-11-01  Alan Modra  <amodra@gmail.com>
3919
3920         PR target/46030
3921         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
3922         and savres_strategy.
3923         (stack_info): New file scope var.
3924         (rs6000_init_machine_status): Init stack_info.
3925         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
3926         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
3927         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
3928         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
3929         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
3930         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
3931         (rs6000_savres_strategy): Rewrite.
3932         (rs6000_stack_info): Use "stack_info" in place of local "info".
3933         Return cached stack info when reload_completed unless ENABLE_CHECKING
3934         in which case confirm newly calculated stack info matches old info.
3935         Delay calculation of lr_save_p, set it for out of line gp save/restore
3936         as well as fp.  Call rs6000_savres_strategy from here..
3937         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
3938         (rs6000_output_function_prologue): Use info->savres_strategy to
3939         determine whether fp save/restore externs need to be emitted.
3940
3941 2010-10-31  Jason Merrill  <jason@redhat.com>
3942
3943         * tree.h (EXPR_LOC_OR_HERE): New macro.
3944         * builtins.c (c_strlen): Use it.
3945         * c-decl.c (build_enumerator): Likewise.
3946         * gimplify.c (internal_get_tmp_var): Likewise.
3947         (shortcut_cond_expr): Likewise.
3948         (gimplify_one_sizepos): Likewise.
3949
3950 2010-10-31  Richard Henderson  <rth@redhat.com>
3951
3952         * config/i386/cygming.h (TARGET_SEH): New.
3953         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
3954         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
3955         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
3956         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
3957         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
3958         (ASM_DECLARE_FUNCTION_SIZE): New.
3959         * config/i386/i386-protos.h: Update.
3960         * config/i386/i386.c (ix86_option_override_internal): Enable
3961         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
3962         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
3963         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
3964         (ix86_compute_frame_layout): For SEH, disable
3965         use_fast_prologue_epilogue, move frame pointer to the end of
3966         the frame.  Initialize hfp_save_offset.
3967         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
3968         at end of prologue for SEH.
3969         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
3970         emit blockage at beginning of epilogue.
3971         (ix86_expand_binary_operator): After reload, emit LEA if needed.
3972         (ix86_output_call_insn): New.
3973         * config/i386/i386.h (TARGET_SEH): New.
3974         (struct machine_function): Add member seh.
3975         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
3976         * config/i386/winnt.c (struct seh_frame_state): New.
3977         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
3978         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
3979         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
3980         i386_pe_start_function, i386_pe_end_function): New.
3981
3982         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
3983         as CFA_STORE in rules 12 and 13.
3984
3985 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
3986
3987         PR tree-optimization/46142
3988         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
3989         accommodate third function argument.
3990
3991 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3992
3993         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
3994
3995 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3996
3997         * fold-const.c (build_zero_vector): Use build_vector_from_val.
3998         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3999         (get_initial_def_for_reduction): Likewise.
4000         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4001         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
4002         * tree.c (build_one_cst): Likewise.
4003         (build_vector_from_val): Use types_compatible_p for assert.
4004
4005 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4006
4007         * emit-rtl.c (mark_used_flags): New function.
4008         (set_used_flags, reset_used_flags): Call it.
4009
4010 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
4011
4012         PR middle-end/44569
4013         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
4014         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
4015
4016 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
4017
4018         PR target/46195
4019         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4020         (ix86_compat_aligned_value_p): This.
4021         (ix86_old_function_arg_boundary): Renamed to ...
4022         (ix86_compat_function_arg_boundary): This.  Updated.
4023         (ix86_contains_aligned_value_p): New.
4024         (ix86_function_arg_boundary): Align long double parameters on
4025         stack to 4byte in 32bit.
4026
4027 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4028
4029         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4030         * c-parser.c (c_parser_objc_at_property_declaration): Removed
4031         parsing of RID_COPIES and RID_IVAR.  Updated call to
4032         objc_add_property_declaration.
4033         * c-typecheck.c (build_component_ref): Call
4034         objc_maybe_build_component_ref instead of objc_build_setter_call.
4035         Use objc_is_property_ref to improve Objective-C checks.
4036         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4037         of objc_build_getter_call.
4038
4039 2010-10-29  Paul Koning  <ni1d@arrl.net>
4040
4041         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4042         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
4043         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
4044         (REG_OK_STRICT): Move description.
4045
4046 2010-10-29  Paul Koning  <ni1d@arrl.net>
4047
4048         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
4049
4050 2010-10-29  Paul Koning  <ni1d@arrl.net>
4051
4052         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
4053
4054 2010-10-29  Paul Koning  <ni1d@arrl.net>
4055
4056         PR/41822
4057         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
4058
4059 2010-10-29  Richard Henderson  <rth@redhat.com>
4060
4061         PR rtl-opt/46226
4062         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
4063         for asm goto.
4064
4065 2010-10-29  Paul Koning  <ni1d@arrl.net>
4066
4067         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
4068         register to register move.
4069
4070 2010-10-29  Paul Koning  <ni1d@arrl.net>
4071
4072         * config/pdp11/pdp11.c (print_operand_address): Correct handling
4073         of integer constant addresses, delete vax-only logic.
4074
4075 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
4076
4077         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
4078         a conditional expression.
4079
4080 2010-10-29  Paul Koning  <ni1d@arrl.net>
4081
4082         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
4083         instruction encoding.
4084
4085 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4086             Andrew Pinski  <pinskia@gmail.com>
4087
4088         * tree.h (build_vector_from_val): Declare.
4089         * tree.c (build_vector_from_val): New function.
4090         * c-typeck.c (build_binary_op): Handle vector shifting.
4091         * doc/extend.texi: Description of the vector shifting operation.
4092
4093 2010-10-29  Paul Koning  <pkoning@equallogic.com>
4094
4095         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
4096         pdp11_secondary_memory_needed): Declare.
4097         * config/pdp11/predicates.md (float_operand): New predicate.
4098         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
4099         (cbranchdf4, movdf): Change predicate.
4100         (movsf): Handle FPU register case.
4101         (truncdfsf2, extendsfdf2): Add FPU register case.
4102         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
4103         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
4104         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4105         (pdp11_register_move_cost): Update cost matrix.
4106         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
4107         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
4108         pdp11_secondary_memory_needed): New function.
4109         (pdp11_return_in_memory): Add other float types.
4110         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
4111         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
4112         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
4113         REGISTER_MOVE_COST): Delete.
4114         (BASE_RETURN_VALUE_REG): Add other float types.
4115
4116 2010-10-29  Nick Clifton  <nickc@redhat.com>
4117
4118         * doc/invoke.texi: Document -mam34 and -mtune options.
4119         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
4120         (mn10300_tune_cpu): New variable.
4121         (mn10300_handle_option): Handle -mam34 and -mtune options.
4122         (mn10300_option_override): Convert tune string into tune cpu variable.
4123         (mn10300_legitimate_constant_p): Delete unused local variable.
4124         (is_load_insn): New function.
4125         (is_store_insn): New function.
4126         (mn10300_adjust_schedule_cost): New function.
4127         (TARGET_SCHED_ADJUST_COST): Define.
4128         * config/mn10300/mn10300.opt (mam34): New option.
4129         (mtune): New option.
4130         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
4131         (enum processor_type): Add AM34.
4132         (TARGET_AM34): Define.
4133         * config/mn10300/mn10300.md (attr cpu): Add am34.
4134         Add pipeline description.
4135         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
4136         Remove unneeded alternatives.  Add timing attribute.
4137         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
4138         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
4139         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
4140         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
4141         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
4142         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
4143         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
4144         float_conditional_branch, jump, indirect_jump, tablejump,
4145         call_internal, call_value_internal, zero_extendqisi2_am33,
4146         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
4147         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
4148         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
4149         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
4150         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
4151         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
4152         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
4153         return_internal_regs, store_movm, return, call_next_insn):
4154         Add timing attribute.
4155         (am33_subsi3): Add missing clobber of CC_REG.
4156         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
4157         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
4158         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
4159         extendqisi2): Fix predicates.
4160         (call_internal, call_internal_value): Separate alternatives.
4161         * config/mn10300/t-mn10300: Add AM34 multilib.
4162
4163 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
4164
4165         * config/sh/sh.c (sh_promote_function_mode): Use
4166         default_promote_function_mode if !sh_promote_prototypes.
4167
4168 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
4169
4170         * recog.c (split_all_insns): Remove dead code.
4171
4172 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4173
4174         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4175
4176 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4177
4178         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4179         (FUNCTION_ARG_ADVANCE): Delete.
4180         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
4181         functions.
4182         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
4183         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4184         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4185
4186 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4187
4188         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
4189         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4190         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4191         Take a const_tree and a bool.
4192         (mcore_function_arg_advance): New function.
4193         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4194
4195 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4196
4197         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
4198         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4199         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4200         Take a const_tree and a bool.
4201         (mcore_function_arg_advance): New function.
4202         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4203
4204 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4205
4206         * config/h8300/h8300-protos.h (function_arg): Delete.
4207         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4208         * config/h8300/h8300.c (function_arg): Rename to...
4209         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
4210         a bool.
4211         (h8300_function_arg_advance): New function.
4212         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4213
4214 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4215
4216         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
4217         to...
4218         * config/arc/arc.c (arc_function_arg): ...here and...
4219         (arc_function_arg_advance): ...here.  New functions.
4220         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4221
4222 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4223
4224         * config/crx/crx-protos.h (crx_function_arg): Delete.
4225         (crx_function_arg_advance): Delete.
4226         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4227         * config/crx/crx.c (crx_function_arg): Make static.  Take a
4228         const_tree and a bool.
4229         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
4230         (enough_regs_for_param): Take a const_tree.
4231         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4232
4233 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4234
4235         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
4236         (m68hc11_function_arg_advance): Delete.
4237         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
4238         (FUNCTION_ARG_ADVANCE): Delete.
4239         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
4240         Take a const_tree and a bool.
4241         (m68hc11_function_arg_advance): Likewise.
4242         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4243
4244 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4245
4246         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
4247         (xstormy16_function_arg_advance): Delete.
4248         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
4249         (FUNCTION_ARG_ADVANCE): Delete.
4250         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
4251         Take a const_tree and a bool.
4252         (xstormy16_function_arg_advance): Likewise.  Return void, updating
4253         the CUM parameter instead.
4254         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4255
4256 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4257
4258         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
4259         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4260         (MOXIE_FUNCTION_ARG_SIZE): Move to...
4261         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
4262         (moxie_function_arg): Make static.  Take a const_tree and a bool.
4263         (moxie_function_arg_advance): New function.
4264         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4265
4266 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4267
4268         * config/mn10300/mn10300-protos.h (function_arg): Delete.
4269         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
4270         (FUNCTION_ARG_ADVANCE): Delete.
4271         * config/mn10300/mn10300.c (function_arg): Rename to...
4272         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
4273         and a bool.
4274         (mn10300_function_arg_advance): New function.
4275         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4276
4277 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4278
4279         * config/iq2000/iq2000-protos.h (function_arg): Delete.
4280         (function_arg_advance): Delete.
4281         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4282         * config/iq2000/iq2000.c (function_arg): Rename to...
4283         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
4284         a bool.
4285         (function_arg_advance): Rename to...
4286         (iq2000_function_arg_advance): ...this.  Make static.  Take a
4287         const_tree and a bool.
4288         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
4289         iq2000_function_arg.
4290         (iq2000_pass_by_reference): Call iq2000_function_arg).
4291         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4292
4293 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4294
4295         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
4296         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4297         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
4298         const_tree.
4299         (fr30_function_arg): New function.
4300         (fr30_function_arg_advance): New function.
4301         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4302
4303 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4304
4305         * config/frv/frv-protos.h (frv_function_arg): Delete.
4306         (frv_function_arg_advance): Delete.
4307         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4308         * config/frv/frv.c (frv_function_arg): Rename to...
4309         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
4310         (frv_function_arg, frv_function_incoming_arg): New functions.
4311         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
4312         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4313         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4314
4315 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
4316
4317         PR target/46153
4318         * config/i386/sse.md (sse_movhlps_exp): Use destination
4319         returned from ix86_fixup_binary_operands to expand insn.
4320         (sse_movlhps_exp): Ditto.
4321         (sse_loadhps_exp): Ditto.
4322         (sse_loadlps_exp): Ditto.
4323         (sse2_loadhpd_exp): Ditto.
4324         (sse2_loadlpd_exp): Ditto.
4325
4326 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
4327
4328         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
4329         constants in thumb2.
4330
4331 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
4332
4333         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
4334         arithmetics in masking operations.
4335         (contains_muldiv): Likewise.
4336         (try_combine): Likewise.
4337         (find_split_point): Likewise.
4338         (combine_simplify_rtx): Likewise.
4339         (simplify_if_then_else): Likewise.
4340         (simplify_set): Likewise.
4341         (expand_compound_operation): Likewise.
4342         (expand_field_assignment): Likewise.
4343         (make_extraction): Likewise.
4344         (extract_left_shift): Likewise.
4345         (make_compound_operation): Likewise.
4346         (force_to_mode): Likewise.
4347         (make_field_assignment): Likewise.
4348         (reg_nonzero_bits_for_combine): Likewise.
4349         (simplify_shift_const_1): Likewise.
4350         (simplify_comparison): Likewise.
4351
4352 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
4353
4354         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
4355         (ia64_function_arg_advance): Delete.
4356         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4357         (FUNCTION_ARG_ADVANCE): Delete.
4358         * config/ia64/ia64.c (ia64_function_arg): Rename to...
4359         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
4360         bool arguments.
4361         (ia64_function_arg, ia64_function_incoming_arg): New functions.
4362         (ia64_function_arg_advance): Make static.  Take a const_tree and
4363         a bool.
4364         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4365         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4366
4367 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
4368
4369         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
4370         (TARGET_GET_RAW_ARG_MODE): New.
4371         * doc/tm.texi: Regenerate.
4372         * target.def (get_raw_result_mode): New.
4373         (get_raw_arg_mode): New.
4374         * targhooks.c (default_get_reg_raw_mode): New.
4375         * targhooks.h (default_get_reg_raw_mode): New.
4376         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
4377         (apply_result_size): Ditto.
4378         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
4379         (TARGET_GET_RAW_RESULT_MODE): Define.
4380         (TARGET_GET_RAW_ARG_MODE): Ditto.
4381
4382 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4383
4384         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
4385         for newer Solaris 10 release.
4386         (sparc_fallback_frame_state): Likewise.
4387
4388 2010-10-27  Jason Merrill  <jason@redhat.com>
4389
4390         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
4391         variables sooner.
4392
4393 2010-10-27  Jie Zhang  <jie@codesourcery.com>
4394             Maxim Kuvyrkov  <maxim@codesourcery.com>
4395
4396         * haifa-sched.c (ISSUE_POINTS): Remove.
4397         (max_issue): Don't issue more than issue_rate instructions.
4398
4399 2010-10-27  Ian Lance Taylor  <iant@google.com>
4400
4401         PR target/46197
4402         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
4403         (split_stack_return): Replace UNSPEC_STACK_CHECK with
4404         UNSPECV_SPLIT_STACK_RETURN.
4405
4406 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
4407
4408         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
4409
4410         * config/i386/i386.c (block_info): New.
4411         (BLOCK_INFO): Likewise.
4412         (call_avx256_state): Likewise.
4413         (check_avx256_stores): Likewise.
4414         (move_or_delete_vzeroupper_2): Likewise.
4415         (move_or_delete_vzeroupper_1): Likewise.
4416         (move_or_delete_vzeroupper): Likewise.
4417         (use_avx256_p): Likewise.
4418         (function_pass_avx256_p): Likewise.
4419         (flag_opts): Add -mvzeroupper.
4420         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
4421         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
4422         is disabled.
4423         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
4424         generate vzeroupper.
4425         (init_cumulative_args): Add an int to indicate caller.  Set
4426         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
4427         based on return type.
4428         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
4429         caller_pass_avx256_p based on argument type.
4430         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
4431         is used, but not returned by caller.
4432         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
4433         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
4434         is used.
4435         (ix86_minimum_alignment): Likewise.
4436         (ix86_expand_special_args_builtin): Set target to
4437         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
4438         (ix86_reorg): Run the vzeroupper optimization if needed.
4439
4440         * config/i386/i386.h (ix86_args): Add caller.
4441         (INIT_CUMULATIVE_ARGS): Updated.
4442         (machine_function): Add use_vzeroupper_p, use_avx256_p,
4443         caller_pass_avx256_p, caller_return_avx256_p,
4444         callee_pass_avx256_p and callee_return_avx256_p.
4445
4446         * config/i386/i386.opt (-mvzeroupper): New.
4447
4448         * config/i386/predicates.md (vzeroupper_operation): Removed.
4449
4450         * config/i386/sse.md (avx_vzeroupper): Removed.
4451         (*avx_vzeroupper): Removed.
4452         (avx_vzeroupper): New.
4453
4454         * doc/invoke.texi: Document -mvzeroupper.
4455
4456 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4457
4458         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
4459         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
4460         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
4461
4462 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4463             Olivier Hainque  <hainque@adacore.com>
4464
4465         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
4466         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
4467         fs->signal_frame instead.
4468
4469 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4470
4471         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
4472         parsing of RID_COPIES and RID_IVAR.
4473
4474 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4475
4476         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
4477         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
4478         Do not use objc_set_property_attr, but use local variables
4479         instead.  Detect repeated usage of setter, getter and ivar
4480         attributes.  Improved error processing when a setter name does not
4481         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
4482         that the token is a keyword.  Updated call to
4483         objc_add_property_declaration.
4484
4485 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4486
4487         * c-parser.c (c_parser_objc_at_property): Renamed to
4488         c_parser_objc_at_property_declaration.  Updated calls to
4489         objc_add_property_variable, now objc_add_property_declaration.
4490         Code rewritten to be much more robust in recovering from syntax
4491         errors.  Added comments.
4492         (c_parser_objc_property_attrlist): Removed.
4493         (c_parser_external_declaration): Updated calls to
4494         c_parser_objc_at_property, now
4495         c_parser_objc_at_property_declaration.
4496         (c_parser_objc_methodprotolist): Same change.
4497
4498 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4499
4500         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
4501
4502 2010-10-26  Jan Hubicka  <jh@suse.cz>
4503
4504         * ipa.c (process_references): Enqueue all referenced nodes;
4505         mark as reachable only non-external nodes.
4506         (cgraph_remove_unreachable_nodes): All referenced nodes should
4507         be enqueued; remove bogues node->needed check.
4508
4509 2010-10-26  Jan Hubicka  <jh@suse.cz>
4510
4511         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
4512         to represent OMP.
4513
4514 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4515
4516         * config/i386/i386.md (split_stack_return): Replace
4517         unspec_volatile with unspec.
4518
4519 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
4520
4521         * doc/install.texi: Fix typo in --with-sysroot description.
4522
4523 2010-10-26  Jan Hubicka  <jh@suse.cz>
4524
4525         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
4526         Use info provided by linker plugin.
4527
4528 2010-10-26  Jason Merrill  <jason@redhat.com>
4529
4530         * varasm.c (constructor_static_from_elts_p): Don't require a
4531         CONSTRUCTOR to have elements to be suitable for static
4532         initialization.  Allow ARRAY_TYPE as well.
4533
4534 2010-10-26  Jan Hubicka  <jh@suse.cz>
4535
4536         PR middle-end/45736
4537         * cgraph.c (cgraph_set_readonly_flag): Rename to...
4538         (cgraph_set_const_flags) ... this one; get also looping argument;
4539         clear constructor/destructor flags.
4540         (cgraph_set_pure_flag): Likewise.
4541         (cgraph_set_looping_const_or_pure_flag): Remove.
4542         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
4543         to optimize away static ctors/dtors; it does not work on inline clones;
4544         external functions can always be rmeoved.
4545         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
4546         inline clones; in LTO external functions always can go.
4547         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
4548         (cgraph_mark_address_taken_node): Assert that we are not taking
4549         address of inline clone.
4550         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
4551         external functions.
4552         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
4553         address taken.
4554         (ipcp_initialize_node_lattices): Only local functions can be
4555         handled without cloning.
4556         * cgraph.h (cgraph_set_readonly_flag,
4557         cgraph_set_looping_const_or_pure_flag): Remove.
4558         (cgraph_set_const_flag): Declare.
4559         (cgraph_set_pure_flag): Update.
4560         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
4561         flags setting code.
4562         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
4563         look at inline clones; fix handling of external definitions.
4564         (cgraph_postorder): Do not look at inline clones in the first pass.
4565         (function_and_variable_visibility): Drop constructors/destructor
4566         flags at pure and const functions.
4567         * tree-profile.c (tree_profiling): Update.
4568         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
4569         address taken; external functions do not account to whole program size.
4570         (cgraph_decide_inlining): Likewise; do not try to inline
4571         functions already inlined.
4572
4573 2010-10-26  Jie Zhang  <jie@codesourcery.com>
4574
4575         * doc/invoke.texi: Improve documentation of
4576         -fstrict-volatile-bitfields.
4577
4578 2010-10-26  Ira Rosen  <irar@il.ibm.com>
4579
4580         PR tree-optimization/46167
4581         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
4582         is basic block for the statement.
4583
4584 2010-10-26  Paul Koning  <ni1d@arrl.net>
4585
4586         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
4587         current definition of struct_real_format.
4588
4589 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4590
4591         PR target/44948
4592         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
4593         (ix86_function_arg_boundary): Always align parameters on stack
4594         in 64bit and align parameters with alignment >= 16byte on stack
4595         in 32bit.  Warn alignment change.
4596
4597 2010-10-26  Ian Lance Taylor  <iant@google.com>
4598
4599         PR middle-end/45687
4600         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
4601         offset.
4602
4603 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4604
4605         Implement opaque-enum-specifiesr for C++0x
4606         * tree.h (ENUM_IS_OPAQUE): New.
4607         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
4608
4609 2010-10-26  Jie Zhang  <jie@codesourcery.com>
4610
4611         * stor-layout.c (layout_decl): Use the field's type to
4612         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
4613         * config/arm/arm.c (arm_override_options): Default to
4614         -fstrict-volatile-bitfields.
4615
4616 2010-10-25  Paul Koning  <ni1d@arrl.net>
4617
4618         * config/pdp11/pdp11.md: Add define_constants for register
4619         numbers, branch offset limits.
4620         * config/pdp11/pdp11.c: Use named constants instead of numbers.
4621         * config/pdp11.pdp11.h: Ditto.
4622
4623 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
4624
4625         * configure.ac: Use $cpu_type instead of $target to define the nop.
4626         * configure: Regenerate.
4627
4628 2010-10-25  Jie Zhang  <jie@codesourcery.com>
4629
4630         * combine.c (try_combine): If insns need to be kept around, check that
4631         they can be copied in the merged instruction.
4632
4633 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4634
4635         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
4636         has been modified.
4637         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
4638         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
4639         it has been modified.
4640
4641 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4642
4643         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
4644
4645 2010-10-24  Paul Koning  <ni1d@arrl.net>
4646
4647         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
4648         * config/pdp11/pdp11.c (output_jump): Ditto.
4649
4650 2010-10-24  Ian Lance Taylor  <iant@google.com>
4651
4652         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
4653
4654 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4655
4656         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
4657         least one insn with a locus corresponding to an edge's goto_locus,
4658         disregard non-fallthru edges to the exit block and merge the blocks
4659         created for the same goto_locus.
4660
4661 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
4662
4663         * gcc.c (n_switches_alloc_debug_check): New.
4664         (set_option_handlers): New.
4665         (process_command): Use set_option_handlers.
4666         (do_self_spec): Pass spec-generated options through option handlers.
4667         (main): Also save and restore n_switches_alloc when swapping
4668         switch arrays.
4669
4670 2010-10-23  Richard Henderson  <rth@redhat.com>
4671
4672         PR target/46144
4673         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
4674         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
4675         Honor matching operands when splitting to XOR.
4676
4677 2010-10-23  Ian Lance Taylor  <iant@google.com>
4678
4679         * tree-vrp.c (extract_range_from_binary_expr): If
4680         flag_non_call_exceptions don't eliminate division by zero.
4681         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4682
4683 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
4684
4685         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
4686         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
4687         __ORDER_PDP_ENDIAN__.
4688         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4689         (struct DWstruct): Define based on __BYTE_ORDER__.
4690         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4691         (struct INTstruct): Define based on __BYTE_ORDER__.
4692         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4693         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
4694         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
4695         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4696         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4697         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4698         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4699         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4700         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4701         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4702         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4703         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4704         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4705         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4706         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4707         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4708         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4709         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4710         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4711         * doc/tm.texi: Regenerate.
4712         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
4713         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
4714
4715 2010-10-23  Jie Zhang  <jie@codesourcery.com>
4716
4717         PR rtl-optimization/37360
4718         * config/mips/mips.c (cached_can_issue_more): New local variable.
4719         (mips_sched_reorder_1): New.
4720         (mips_sched_reorder): Use mips_sched_reorder_1.
4721         (mips_sched_reorder2): New.
4722         (mips_variable_issue): Set cached_can_issue_more.
4723         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
4724         instead of mips_sched_reorder.
4725
4726         Revert:
4727         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
4728         PR rtl-optimization/37360
4729         * haifa-sched.c (max_issue): Do not assert that we never issue more
4730         insns than issue_rate.  Add comment.
4731
4732 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
4733
4734         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
4735         location info of the expression.
4736
4737 2010-10-22  DJ Delorie  <dj@redhat.com>
4738
4739         * doc/extend.texi (Named Address Spaces): Document the M32C named
4740         address space.
4741
4742         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
4743         __far address space.
4744         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
4745         "__far" address space for R8C and M16C processor variants.
4746         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
4747         (far_addr_space_p): New.
4748         (encode_pattern_1): Add sign and zero extend support.
4749         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
4750         (m32c_extra_constraint_p2): Add SF constraint.
4751         (m32c_legitimate_address_p): Support __far addresses.
4752         (m32c_addr_space_pointer_mode): New.
4753         (m32c_addr_space_address_mode): New.
4754         (m32c_addr_space_legitimate_address_p): New.
4755         (m32c_addr_space_legitimize_address): New.
4756         (m32c_addr_space_subset_p): New.
4757         (m32c_addr_space_convert): New.
4758         (conversions): Add __far operand patterns.
4759         (m32c_prepare_move): Force constants into registers for __far moves.
4760         (m32c_split_move): __far moves are always split.
4761         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
4762         * config/m32c/mov.md (mov<mode>_far_op1): New.
4763         (mov<mode>_far_op2): New.
4764         (movqi_op): Add __far (SF) support.
4765         (movhi_op): Likewise.
4766         (movsi_splittable): Split A1A0 also.
4767
4768 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4769             Andrew Pinski  <pinskia@gmail.com>
4770
4771         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
4772         * doc/extend.texi: New paragraph
4773
4774 2010-10-22  Paul Koning  <ni1d@arrl.net>
4775
4776         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
4777
4778 2010-10-22  DJ Delorie  <dj@redhat.com>
4779
4780         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
4781
4782 2010-10-22  Paul Koning  <ni1d@arrl.net>
4783
4784         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
4785
4786 2010-10-22  Richard Henderson  <rth@redhat.com>
4787
4788         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
4789         cases for __builtin_fma and __builtin_fmaf.
4790
4791 2010-10-22  Richard Henderson  <rth@redhat.com>
4792
4793         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
4794         NEG+USE for vectors as well.
4795         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
4796         and splitter.
4797
4798 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4799
4800         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
4801         SWITCH_CURTAILS_COMPILATION): Remove.
4802         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
4803         * doc/tm.texi: Regenerate.
4804         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
4805
4806 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
4807
4808         * config/i386/bdver1.md: New file.
4809         * config/i386/i386.md (include "bdver1.md"): Invoke the
4810         pipeline description for bdver1.
4811         (x86_sahf_1): Add "bdver1_decode" attribute.
4812         (*cmpfp_i_mixed): Likewise.
4813         (*cmpfp_i_sse): Likewise.
4814         (*cmpfp_i_i387): Likewise.
4815         (*cmpfp_iu_mixed): Likewise.
4816         (*cmpfp_iu_sse): Likewise.
4817         (*cmpfp_iu_387): Likewise.
4818         (*swap<mode>,*swap<mode>_1): Likewise.
4819         (fixuns_trunc<mode>hi2): Likewise.
4820         (fix_trunc<mode>si_sse): Likewise.
4821         (x86_fnstcw_1): Likewise.
4822         (x86_fldcw_1): Likewise.
4823         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
4824         (*floatsi<mode>2_vector_mixed): Likewise.
4825         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
4826         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
4827         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
4828         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
4829         (*floatsi<mode>2_vector_sse): Likewise.
4830         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
4831         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
4832         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
4833         (*mul<mode>3_1): Likewise.
4834         (*mulsi3_1_zext): Likewise.
4835         (*mulhi3_1): Likewise.
4836         (*mulqi3_1): Likewise.
4837         (*<u>mul<mode><dwi>3_1): Likewise.
4838         (*<u>mulqihi3_1): Likewise.
4839         (*<s>muldi3_highpart_1): Likewise.
4840         (*<s>mulsi3_highpart_1): Likewise.
4841         (*<s>mulsi3_highpart_zext): Likewise.
4842         (x86_64_shld): Likewise.
4843         (x86_shld): Likewise.
4844         (x86_64_shrd): Likewise.
4845         (x86_shrd): Likewise.
4846         (sqrtxf2): Likewise.
4847         (sqrt_extend<mode>xf2_i387): Likewise.
4848         (*sqrt<mode>2_sse): Likewise.
4849         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
4850         (sse_cvtsi2ssq): Likewise.
4851         (sse_cvtss2si): Likewise.
4852         (sse_cvtss2si_2): Likewise.
4853         (sse_cvtss2siq): Likewise.
4854         (sse_cvtss2siq_2): Likewise.
4855         (sse_cvttss2si): Likewise.
4856         (sse_cvttss2siq): Likewise.
4857         (sse2_cvtpi2pd): Likewise.
4858         (sse2_cvttpd2pi): Likewise.
4859         (sse2_cvtsi2sd): Likewise.
4860         (sse2_cvtsi2sdq): Likewise.
4861         (sse2_cvtsd2si): Likewise.
4862         (sse2_cvtsd2si_2): Likewise.
4863         (sse2_cvtsd2siq): Likewise.
4864         (sse2_cvtsd2siq_2): Likewise.
4865         (sse2_cvttsd2si): Likewise.
4866         (sse2_cvttsd2siq): Likewise.
4867         (*sse2_cvtpd2dq): Likewise.
4868         (*sse2_cvttpd2dq): Likewise.
4869         (sse2_cvtsd2ss): Likewise.
4870         (sse2_cvtss2sd): Likewise.
4871         (*sse2_cvtpd2ps): Likewise.
4872         (sse2_cvtps2pd): Likewise.
4873
4874 2010-10-22  Richard Guenther  <rguenther@suse.de>
4875
4876         PR middle-end/46137
4877         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
4878         remove the virtual operands if they are not needed.
4879
4880 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
4881
4882         * config/i386/i386.c (processor_costs bdver1_cost): Update
4883         insn costs and architectural parameters for bdver1.
4884
4885 2010-10-22  Richard Guenther  <rguenther@suse.de>
4886
4887         * gimple.h (gimple_register_canonical_type): Declare.
4888         * gimple.c (gimple_canonical_types): New global hashtable.
4889         (struct gimple_type_leader_entry_s): New type.
4890         (gimple_type_leader): New global cache.
4891         (gimple_lookup_type_leader): New function.
4892         (gtc_visit): Query the proper cache.
4893         (gimple_types_compatible_p): Likewise.
4894         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
4895         (gimple_canonical_type_eq): New function.
4896         (gimple_register_canonical_type): Likewise.
4897         (print_gimple_types_stats): Adjust for gimple_canonical_types.
4898         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
4899         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
4900         gimple_types_compatible_p for LTO.
4901
4902 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
4903
4904         PR target/46098
4905         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
4906         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
4907         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
4908         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
4909         (<sse>_movu<ssemodesuffix>): New expander.
4910         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
4911         (avx_movdqu<avxmodesuffix>): New expander.
4912         (*sse2_movdqu): Rename from sse2_movdqu.
4913         (sse2_movdqu): New expander.
4914
4915 2010-10-22  Richard Guenther  <rguenther@suse.de>
4916
4917         PR tree-optimization/45720
4918         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
4919         Handle negative step.
4920         (vect_enhance_data_refs_alignment): Likewise.
4921         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
4922         (vect_create_cond_for_align_checks): Likewise.
4923         (vect_create_cond_for_alias_checks): Likewise.
4924
4925 2010-10-22  Ira Rosen  <irar@il.ibm.com>
4926
4927         PR tree-optimization/46126
4928         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
4929         vectorizable_shift in case of basic block vectorization.
4930
4931 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4932
4933         * target.h (enum opt_levels, struct default_options): New.
4934         * target.def (handle_ofast): Remove hook.
4935         (target_option.optimization): Change to
4936         target_option.optimization_table.
4937         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
4938         TARGET_OPTION_OPTIMIZATION_TABLE.
4939         (CAN_DEBUG_WITHOUT_FP): Remove.
4940         * doc/tm.texi: Regenerate.
4941         * opts.c (maybe_default_option, maybe_default_options,
4942         default_options_table): New.
4943         (default_options_optimization): Take extra parameters.  Don't
4944         assert that global_options and global_options_set are in use.  Use
4945         maybe_default_options.
4946         (decode_options): Pass extra parameters to
4947         default_options_optimization.
4948         * common.opt (falign-loops): Use value 0 with Var.
4949         (frerun-cse-after-loop, ftree-ter): Remove Init.
4950         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
4951         TARGET_OPTION_OPTIMIZATION): Remove.
4952         * targhooks.c (empty_optimization_table): New.
4953         * targhooks.h (empty_optimization_table): Declare.
4954         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
4955         * config/alpha/alpha.c (alpha_option_optimization_table,
4956         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4957         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
4958         * config/arm/arm.c (arm_option_optimization: Change to
4959         arm_option_optimization_table.
4960         (TARGET_OPTION_OPTIMIZATION): Change to
4961         TARGET_OPTION_OPTIMIZATION_TABLE.
4962         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
4963         * config/avr/avr.c (avr_option_optimization_table,
4964         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4965         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
4966         * config/cris/cris.c (cris_option_optimization): Change to
4967         cris_option_optimization_table.
4968         (TARGET_OPTION_OPTIMIZATION): Change to
4969         TARGET_OPTION_OPTIMIZATION_TABLE.
4970         * config/crx/crx.c (crx_option_optimization): Change to
4971         crx_option_optimization_table.
4972         (TARGET_OPTION_OPTIMIZATION): Change to
4973         TARGET_OPTION_OPTIMIZATION_TABLE.
4974         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
4975         * config/fr30/fr30.c (fr30_option_optimization_table,
4976         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4977         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
4978         * config/frv/frv.c (frv_option_optimization_table,
4979         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4980         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
4981         * config/h8300/h8300.c (h8300_option_optimization): Change to
4982         h8300_option_optimization_table.
4983         (TARGET_OPTION_OPTIMIZATION): Change to
4984         TARGET_OPTION_OPTIMIZATION_TABLE.
4985         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
4986         * config/i386/i386.c (ix86_option_optimization): Change to
4987         ix86_option_optimization_table.
4988         (TARGET_OPTION_OPTIMIZATION): Change to
4989         TARGET_OPTION_OPTIMIZATION_TABLE.
4990         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
4991         as initializer.
4992         * config/ia64/ia64.c (ia64_option_optimization): Change to
4993         ia64_option_optimization_table.
4994         (TARGET_OPTION_OPTIMIZATION): Change to
4995         TARGET_OPTION_OPTIMIZATION_TABLE.
4996         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
4997         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
4998         initializer.
4999         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5000         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5001         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5002         * config/lm32/lm32.c (lm32_option_optimization_table,
5003         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5004         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
5005         * config/m32r/m32r.c (m32r_option_optimization): Change to
5006         m32r_option_optimization_table.
5007         (TARGET_OPTION_OPTIMIZATION): Change to
5008         TARGET_OPTION_OPTIMIZATION_TABLE.
5009         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
5010         CAN_DEBUG_WITHOUT_FP): Remove.
5011         * config/mcore/mcore.c (mcore_option_optimization): Change to
5012         mcore_option_optimization_table.
5013         (TARGET_OPTION_OPTIMIZATION): Change to
5014         TARGET_OPTION_OPTIMIZATION_TABLE.
5015         * config/mep/mep.c (mep_option_optimization): Change to
5016         mep_option_optimization_table.
5017         (TARGET_OPTION_OPTIMIZATION): Change to
5018         TARGET_OPTION_OPTIMIZATION_TABLE.
5019         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5020         * config/microblaze/microblaze.c
5021         (microblaze_option_optimization_table,
5022         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5023         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5024         * config/mips/mips.c (mips_option_optimization_table,
5025         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5026         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5027         * config/mmix/mmix.c (mmix_option_optimization): Change to
5028         mmix_option_optimization_table.
5029         (TARGET_OPTION_OPTIMIZATION): Change to
5030         TARGET_OPTION_OPTIMIZATION_TABLE.
5031         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5032         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5033         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5034         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5035         * config/pa/pa.c (pa_option_optimization_table,
5036         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5037         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5038         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
5039         pdp11_option_optimization_table.
5040         (TARGET_OPTION_OPTIMIZATION): Change to
5041         TARGET_OPTION_OPTIMIZATION_TABLE.
5042         * config/picochip/picochip.c (picochip_option_optimization_table,
5043         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5044         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
5045         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
5046         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5047         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5048         * config/rx/rx.c (rx_option_optimization_table,
5049         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5050         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5051         * config/s390/s390.c (s390_option_optimization): Change to
5052         s390_option_optimization_table.
5053         (s390_option_override): Update comment.
5054         (TARGET_OPTION_OPTIMIZATION): Change to
5055         TARGET_OPTION_OPTIMIZATION_TABLE.
5056         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
5057         * config/score/score.c (score_option_optimization_table,
5058         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5059         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
5060         * config/sh/sh.c (sh_option_optimization): Change to
5061         sh_option_optimization_table.
5062         (TARGET_OPTION_OPTIMIZATION): Change to
5063         TARGET_OPTION_OPTIMIZATION_TABLE.
5064         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
5065         (sh_option_override, expand_block_move, multcosts, find_barrier,
5066         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
5067         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
5068         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
5069         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
5070         instead of TARGET_SMALLCODE.
5071         * config/sh/sh.opt (mspace): Make into an alias for -Os.
5072         * config/sparc/sparc.c (sparc_option_optimization_table,
5073         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5074         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
5075         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5076         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5077         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
5078         * config/v850/v850.c (v850_option_optimization): Change to
5079         v850_option_optimization_table.
5080         (TARGET_OPTION_OPTIMIZATION): Change to
5081         TARGET_OPTION_OPTIMIZATION_TABLE.
5082         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
5083         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
5084         xtensa_option_optimization_table.
5085         (TARGET_OPTION_OPTIMIZATION): Change to
5086         TARGET_OPTION_OPTIMIZATION_TABLE.
5087         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5088
5089 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
5090
5091         Based on the CFString implementation in FSF apple/trunk branch.
5092
5093         * target.def (objc_construct_string): New Hook.
5094         * doc/tm.texi (objc_construct_string): Document.
5095         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
5096         * config/t-darwin: Amend build rules for darwin.o.
5097         * config/darwin.opt: Add cfstrings flags.
5098         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
5099         (darwin_objc_construct_string): New.
5100         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
5101         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
5102         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
5103         (darwin_fold_builtin): Likewise.
5104         (darwin_build_constant_cfstring): Likewise.
5105         (darwin_objc_construct_string): Likewise.
5106         (darwin_cfstring_p): Likewise.
5107         (darwin_enter_string_into_cfstring_table): Likewise.
5108         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
5109         * config/darwin.c (darwin_running_cxx): New var.
5110         (machopic_select_section): Return cfstring_constant_object_section.
5111         (darwin_override_options): Set darwin_running_cxx.
5112         (add_builtin_field_decl): New.
5113         (darwin_init_cfstring_builtins): New.
5114         (darwin_build_constant_cfstring): New.
5115         (darwin_fold_builtin): New.
5116         (cfstring_hash): New.
5117         (cfstring_eq): New.
5118         (darwin_enter_string_into_cfstring_table): New.
5119         * config/darwin-sections.def (cfstring_constant_object_section): New.
5120         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
5121         (TARGET_OBJC_CONSTRUCT_STRING): Define.
5122
5123 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5124
5125         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
5126         TYPE_STUB_DECL instead of TREE_CHAIN.
5127         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
5128         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
5129         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
5130         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
5131         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
5132         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
5133         Likewise.
5134         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
5135
5136 2010-10-22  Jie Zhang  <jie@codesourcery.com>
5137
5138         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
5139         (copy_blkmode_from_reg): Likewise.
5140         (read_complex_part): Likewise.
5141         (expand_expr_real_1): Calculate packedp and pass it to
5142         extract_bit_field.
5143         * expr.h (extract_bit_field): Update declaration.
5144         * calls.c (store_unaligned_arguments_into_pseudos): Update call
5145         to extract_bit_field.
5146         * expmed.c (extract_fixed_bit_field): Update calls to
5147         extract_fixed_bit_field.
5148         (store_split_bit_field): Likewise.
5149         (extract_bit_field_1): Add new argument packedp.
5150         (extract_bit_field): Add new argument packedp.
5151         (extract_fixed_bit_field): Add new argument packedp and let
5152         packed attribute override volatile.
5153         * stmt.c (expand_return): Update call to extract_bit_field.
5154
5155 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5156
5157         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
5158
5159 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5160
5161         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
5162         of gcc_checking_assert.
5163         * sel-sched.c (code_motion_process_successors): Likewise.
5164
5165 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
5166
5167         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
5168         when stopping because of a different locus on edge or insn.
5169         (try_optimize_cfg): Add comment.
5170         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
5171         block is a forwarder block, propagate locus on the edge.
5172         (cfg_layout_merge_blocks): Likewise.
5173
5174 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
5175
5176         PR target/45946
5177         * config/i386/i386.md (*pushti2): New insn pattern.
5178         (pushti2 splitter): New insn splitter.
5179         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
5180         DWI mode iterator.
5181
5182 2010-10-21  Paul Koning  <ni1d@arrl.net>
5183
5184         * config/pdp11/pdp11-protos.md (arith_operand,
5185         const_immediate_operand, expand_shift_operand,
5186         immediate15_operand): Delete
5187         * config/pdp11/pdp11.c: Ditto.
5188         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
5189         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5190         EXTRA_CONSTRAINT): Delete.
5191         * config/pdp11/pdp11.md (various): Use standard constraints
5192         instead of removed ones.
5193         * config/pdp11/constraints.md: New file.
5194         * config/pdp11/predicates.md: New file.
5195
5196 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
5197
5198         PR c/45834
5199         * alias.c (true_dependence_1): Remove obsolete check for QImode.
5200         (may_alias_p): Ditto.
5201
5202 2010-10-21  Martin Jambor  <mjambor@suse.cz>
5203
5204         PR tree-optimization/45875
5205         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
5206
5207 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5208
5209         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
5210         variables.
5211         (create_new_def_for): Likewise.
5212
5213 2010-10-21  Nick Clifton  <nickc@redhat.com>
5214
5215         * config/mn10300/mn10300.c: Fold code to 80-character width.
5216         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5217         MEM, CONST_INT and CONST_DOUBLE.
5218         (targetm): Move initialization to end of file.
5219         (print_operand): Rename to mn10300_print_operand.
5220         (print_operand_address): Rename to mn10300_print_operand_address.
5221         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
5222         (expand_prologue): Rename to mn10300_expand_prologue.
5223         (expand_epilogue): Rename to mn10300_expand_epilogue.
5224         (initial_offset): Rename to mn10300_initial_offset.
5225         (function_arg): Rename to mn10300_function_arg.
5226         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
5227         (symbolic_operand): Rename to mn10300_symbolic_operand.
5228         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
5229         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
5230         * config/mn10300/mn10300-protos.h: Update prototypes.
5231         * config/mn10300/mn10300.h: Fold code to 80-character width.
5232         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5233         MEM, CONST_INT and CONST_DOUBLE.
5234         (CPP_SPEC): Move to...
5235         (TARGET_CPU_CPP_BUILTINS): ... here.
5236         * config/mn10300/mn10300.md: Fold code to 80-character width.
5237         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5238         MEM, CONST_INT and CONST_DOUBLE.
5239
5240 2010-10-21  Ira Rosen  <irar@il.ibm.com>
5241
5242         PR tree-optimization/46049
5243         PR tree-optimization/46052
5244         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
5245         (vect_get_slp_defs): Add arguments.
5246         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
5247         operands to vect_get_slp_defs.
5248         (vectorizable_reduction): Fix comment, pass scalar operands to
5249         vect_get_slp_defs.
5250         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
5251         type to determine number of units in the created vector.
5252         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
5253         (vectorizable_conversion): Fix comment.
5254         (vectorizable_shift): New function.
5255         (vectorizable_operation): Move code that handles shifts to
5256         vectorizable_shift.
5257         (vectorizable_type_demotion): Fix comment, pass scalar operands to
5258         vect_get_slp_defs.
5259         (vectorizable_type_promotion, vectorizable_store): Likewise.
5260         (vectorizable_condition): Fix comment.
5261         (vect_analyze_stmt): Call vectorizable_shift.
5262         (vect_transform_stmt): Likewise.
5263         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
5264         Use it as the operand to create vectors for, except reduction
5265         initial definition and store.  Use operands type.
5266         (vect_get_slp_defs): Add new arguments.  Pass them to
5267          vect_get_constant_vectors.
5268
5269 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5270
5271         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
5272         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
5273         * cfghooks.c (fixup_reorder_chain): Likewise.
5274         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
5275         * cgraph.c (cgraph_add_thunk): Likewise.
5276         (cgraph_create_edge_1): Likewise.
5277         (cgraph_create_virtual_clone): Likewise.
5278         * ddg.c (add_cross_iteration_register_deps): Likewise.
5279         * dwarf2out.c (modified_type_die): Likewise.
5280         * emit-rtl.c (set_mem_alias_set): Likewise.
5281         * ggc-zone.c (zone_allocate_marks): Likewise.
5282         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
5283         * gimple.c (iterative_hash_gimple_type): Likewise.
5284         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
5285         (create_single_exit_edge): Likewise.
5286         * haifa-sched.c (choose_ready): Likewise.
5287         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5288         * passes.c (execute_todo): Likewise.
5289         * sched-ebb.c (begin_schedule_ready): Likewise.
5290         * sel-sched.c (code_motion_process_successors): Likewise.
5291         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
5292         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
5293         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
5294         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
5295         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
5296         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
5297         (ssa_conflicts_add): Likewise.
5298         * tree-ssa-copy.c (replace_exp): Likewise.
5299         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
5300         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
5301         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
5302         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
5303         (compute_antic): Likewise.
5304         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
5305         (add_dependence): Likewise.
5306         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
5307         * tree-vrp.c (supports_overflow_infinity): Likewise.
5308         (make_overflow_infinity, negative_overflow_infinity): Likewise.
5309         (avoid_overflow_infinity, register_new_assert_for): Likewise.
5310         (process_assert_insertions_for): Likewise.
5311         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
5312         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
5313         (intersect_loc_chains, variable_merge_over_cur): Likewise.
5314
5315 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5316
5317         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
5318         * reload1.c (has_nonexceptional_receiver): Likewise.
5319         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
5320         (create_new_def_for): Likewise.
5321         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
5322         (merge_phi_nodes): Likewise.
5323         (has_abnormal_incoming_edge_p): Delete.
5324
5325 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
5326
5327         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
5328
5329 2010-10-21  Richard Guenther  <rguenther@suse.de>
5330             Michael Matz  <matz@suse.de>
5331
5332         PR tree-optimization/45764
5333         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5334         Adjust initial misalignment for negative DR_STEP.
5335         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
5336         do not have the same alignment over the whole iteration domain.
5337
5338 2010-10-21  Richard Guenther  <rguenther@suse.de>
5339
5340         PR tree-optimization/46111
5341         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
5342
5343 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5344
5345         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
5346
5347 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5348
5349         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
5350         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
5351
5352 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5353
5354         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
5355         signal_frame.
5356         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
5357
5358 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5359
5360         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
5361         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
5362
5363 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
5364
5365         * basic-block.h (find_fallthru_edge): Define.
5366         * cfgcleanup.c (merge_blocks_move): Use it.
5367         (try_crossjump_bb): Likewise.
5368         * cfglayout.c (fixup_reorder_chains): Likewise.
5369         (fixup_fallthru_exit_predecessor): Likewise.
5370         * cfgrtl.c (rtl_split_edge): Likewise.
5371         (rtl_verify_flow_info): Likewise.
5372         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5373         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
5374         * ifcvt.c (block_fallthru): Likewise.
5375         * reload1.c (fixup_abnormal_edges): Likewise.
5376         * sched-ebb.c (being_schedule_ready): Likewise.
5377         (schedule_ebb): Likwise.
5378         * sched-rgn.c (find_single_block_region): Likewise.
5379         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
5380         * tree-complex.c (expand_complex_move): Likewise.
5381         * sched-int.h (find_fallthru_edge): Rename to...
5382         (find_fallthru_edge_from): ...this.
5383         * haifa-sched.c (find_fallthru_edge): Rename to...
5384         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
5385         (init_before_recovery): Call find_fallthru_edge_from.
5386         * sel-sched-ir.c (merge_fences): Likewise.
5387         * sel-sched.c (in_fallthru_bb_p): Likewise.
5388         (move_cond_jump): Likewise.
5389
5390 2010-10-20  Paul Koning  <ni1d@arrl.net>
5391
5392         * config/pdp11/pdp11.md (various): Fix conditions on a number of
5393         insn to check for target 11/40 or higher.
5394
5395 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5396
5397         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
5398         bool instead of a tree.
5399         (c_parser_objc_method_decl): Added bool argument.  Updated call to
5400         objc_build_method_signature.
5401         (c_parser_objc_method_definition): Do not call
5402         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
5403         c_parser_objc_method_decl and objc_start_method_definition.
5404         (c_parser_objc_methodproto): Do not call objc_set_method_type.
5405         Updated calls to c_parser_objc_method_type,
5406         c_parser_objc_method_decl and objc_add_method_declaration.
5407
5408 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
5409
5410         PR tree-optimization/45919
5411         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
5412         array members.
5413
5414         PR tree-optimization/46066
5415         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
5416         instead of gsi_last_bb.
5417
5418 2010-10-20  DJ Delorie  <dj@redhat.com>
5419
5420         * config/m32c/m32c.c (m32c_option_override): Always disable
5421         function-cse in 16-bit mode.  Indirect calls are always worse than
5422         direct calls as there is no 16-bit indirect call opcode.
5423         (m32c_override_options_after_change): New, likewise.
5424
5425 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
5426
5427         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
5428         emitting the conditional move in the inner mode of the SUBREG.
5429
5430 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
5431
5432         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
5433         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
5434         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5435         (ia64_preferred_reload_class): Make static.  Change rclass argument
5436         and result types from enum reg_class to reg_class_t.
5437
5438 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
5439
5440         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
5441         call for single operand expression.
5442
5443 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5444
5445         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
5446         if there is a call statement to pure or const function in the block.
5447
5448 2010-10-20  Paul Koning  <pkoning@equallogic.com>
5449
5450         Fix several build errors for pdp11 target.
5451         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
5452         (cbranchdf4): Conditional on TARGET_FPU.
5453         (movdf): Ditto; correct alternatives check.
5454         (movmemhi): Fix predicate and constraint.
5455         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
5456
5457 2010-10-20  Richard Guenther  <rguenther@suse.de>
5458
5459         PR lto/45667
5460         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
5461         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
5462         (verify_gimple_assign_single): Disable ADDR_EXPR type check
5463         when in LTO.
5464
5465 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
5466
5467         PR fortran/42169
5468         * ira-emit.c (store_can_be_removed_p): Return false instead of
5469         gcc_unreachable.
5470
5471 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
5472
5473         * fold-const.c (fold_binary_loc): New transformation.
5474
5475 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
5476
5477         PR target/46085
5478         * config/i386/sse.md (reduc_splus_v8sf): Updated.
5479         (reduc_splus_v4df): Likewise.
5480
5481 2010-10-20  Richard Guenther  <rguenther@suse.de>
5482
5483         PR tree-optimization/45860
5484         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
5485         conditional store replacement for non-register type stores.
5486
5487 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5488
5489         * stor-layout.c (skip_simple_constant_arithmetic): New function.
5490         (self_referential_size): Use it instead of skip_simple_arithmetic.
5491
5492 2010-10-20  Olivier Hainque  <hainque@adacore.com>
5493
5494         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
5495         If the current function calls eh_return, claim live all registers
5496         that we need to check for liveness otherwise.
5497
5498 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5499
5500         * c-decl.c (c_write_global_declarations): Call
5501         objc_write_global_declarations when compiling Objective-C.
5502         * c-lang.c (finish_file): Removed.
5503
5504 2010-10-19  DJ Delorie  <dj@redhat.com>
5505
5506         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
5507         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
5508         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5509         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5510         * doc/tm.texi: Regenerate.
5511         * targhooks.h (default_label_align_after_barrier_max_skip,
5512         default_loop_align_max_skip, default_label_align_max_skip,
5513         default_jump_align_max_skip): Declare.
5514         * target.def (label_align_after_barrier_max_skip): New.
5515         (loop_align_max_skip): New.
5516         (label_align_max_skip): New.
5517         (jump_align_max_skip): New.
5518         * system.h (poison): Add those macros to the list.
5519         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
5520         (LOOP_ALIGN_MAX_SKIP): Remove.
5521         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
5522         (JUMP_ALIGN_MAX_SKIP): Remove.
5523         (default_label_align_after_barrier_max_skip): New.
5524         (default_loop_align_max_skip): New.
5525         (default_label_align_max_skip): New.
5526         (default_jump_align_max_skip): New.
5527         (compute_alignments): Use the new hooks.
5528         (shorten_branches): Likewise.
5529
5530 2010-10-19  Richard Henderson  <rth@redhat.com>
5531
5532         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
5533         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
5534         (fma4i_fmadd_<mode>): New.
5535         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
5536         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
5537         standard fma patterns.
5538         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
5539         enable for FMA.
5540         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5541         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5542         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
5543
5544 2010-10-19  Paul Koning  <pkoning@equallogic.com>
5545
5546         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
5547         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
5548
5549 2010-10-19  Richard Henderson  <rth@redhat.com>
5550
5551         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
5552         (fmadf4, *fmsdf4, *nfmadf4): New.
5553         (fmaxf4, *fmsxf4, *nfmaxf4): New.
5554
5555 2010-10-19  Michael Eager  <eager@eagercon.com>
5556
5557         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
5558         Use sjlj unwind info for exceptions.
5559
5560 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
5561
5562         PR fortran/43414
5563         * dwarf2out.c (add_calling_convention_attribute): Flag main
5564         Fortran subroutine with DW_AT_main_subprogram.
5565
5566 2010-10-19  Nick Clifton  <nickc@redhat.com>
5567
5568         * config/rx/rx.c (rx_function_value): Small integer types are
5569         promoted to SImode.
5570         (rx_promote_function_mode): New function.
5571         (TARGET_PROMOTE_FUNCTION_MODE): Define.
5572
5573 2010-10-19  Nick Clifton  <nickc@redhat.com>
5574
5575         * config/mep/mep.c (mep_print_operand): Use
5576         targetm.strip_name_encoding.
5577         (mep_output_aligned_common): Likewise.
5578
5579 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
5580
5581         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
5582
5583 2010-10-18  Richard Henderson  <rth@redhat.com>
5584
5585         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
5586         (fma (neg a) (neg b) c) and (fma a (neg b) c).
5587
5588 2010-10-18  Richard Henderson  <rth@redhat.com>
5589
5590         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
5591         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
5592         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
5593         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
5594         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
5595         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
5596         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
5597         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
5598         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
5599         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
5600         (bdesc_multi_arg): Remove the corresponding builtins.
5601         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
5602         (UNSPEC_FMA4_FMSUBADD): Remove.
5603         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
5604         * config/i386/sse.md (FMA4MODEF4): Remove.
5605         (FMAMODE): Add.
5606         (fma<mode>4): New expander.
5607         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
5608         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
5609         (*fma4i_fmsub_<mode>): Similarly.
5610         (*fma4i_fnmadd_<mode>): Similarly.
5611         (*fma4i_fnmsub_<mode>): Similarly.
5612         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
5613         with the first operand.
5614         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
5615         of explicit arithmetic.  Macroize with AVXMODEF2P.
5616         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
5617         (xop_frcz<mode>2): Macroize with FMAMODE.
5618         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
5619         the first operand.
5620         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
5621         extra negations.
5622         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
5623         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
5624         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
5625         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
5626         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
5627         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
5628         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
5629         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
5630
5631 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
5632
5633         PR rtl-optimization/45966
5634         * combine.c (try_combine): If added_sets_2, deal with the case
5635         where i0 feeds i1 and i1 feeds i2.
5636
5637 2010-10-18  Jan Hubicka  <jh@suse.cz>
5638
5639         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
5640         preserve flags before trying to guess on visibility.
5641         (varpool_externally_visible_p): New function.
5642         (function_and_variable_visibility): Use it.
5643
5644 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5645
5646         Implemented parsing @synthesize and @dynamic for Objective-C.
5647         * c-parser.c (c_parser_external_declaration): Recognize
5648         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
5649         (c_parser_objc_at_synthesize_declaration): New.
5650         (c_parser_objc_at_dynamic_declaration): New.
5651
5652 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5653
5654         * c-parser.c (c_parser_objc_class_declaration): After finding an
5655         error, parse the whole declaration then reset parser->error.
5656
5657 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5658
5659         PR target/46041
5660         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
5661         * builtins.c (mode_has_fma): Ditto.
5662
5663 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
5664
5665         PR target/36898
5666         PR middle-end/43760
5667         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
5668
5669 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
5670
5671         * config/i386/i386.c (ix86_option_override_internal): Define and
5672         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
5673         default.
5674         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5675         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
5676
5677 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5678
5679         Merge from 'apple/trunk' branch on FSF servers.
5680         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
5681         following Objective-C change:
5682
5683         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
5684
5685         Radar 4301047
5686         * c-parse.in (objc_quals): Build objc qualifier list same way
5687         as gcc-3.3
5688
5689 2010-10-18  Jan Hubicka  <jh@suse.cz>
5690
5691         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
5692         function_and_variable_visibility): Revert accidental commit.
5693
5694 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5695
5696         Merge from 'apple/trunk' branch on FSF servers.
5697         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
5698         the following Objective-C change:
5699
5700         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
5701
5702         Radar 4204796
5703         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
5704         'volatilized' type used in a typeof operator.
5705
5706 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
5707
5708         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
5709         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
5710         rewrite modelled on gimple_purge_dead_eh_edges.
5711         (gimple_purge_all_dead_abnormal_call_edges): New function.
5712         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
5713         directly instead of through gimple_purge_dead_abnormal_call_edges.
5714         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
5715         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
5716         removed AB side-effects from one of its statements.
5717         (init_pre): Initialize need_ab_cleanup.
5718         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
5719         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
5720
5721 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5722
5723         PR c/46015
5724         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
5725         on computed goto argument.
5726
5727 2010-10-18  Richard Guenther  <rguenther@suse.de>
5728
5729         PR tree-optimization/45967
5730         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
5731         (could_have_pointers): Likewise.
5732         (handle_rhs_call, handle_const_call, handle_pure_call,
5733         find_func_aliases, intra_create_variable_infos): Remove calls to them.
5734         (struct fieldoff): Add must_have_pointers field.
5735         (type_must_have_pointers): New function.
5736         (field_must_have_pointers): Likewise.
5737         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
5738         Adjust field merging.
5739         (create_function_info_for): May-have-pointers of varinfo is
5740         almost always true.
5741         (create_variable_info_for_1): Likewise.
5742
5743 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
5744
5745         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
5746         of operands to vec_concat.
5747
5748 2010-10-18  Richard Guenther  <rguenther@suse.de>
5749
5750         PR lto/44950
5751         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
5752         also clear references to entries of it.
5753
5754 2010-10-18  Andi Kleen  <ak@linux.intel.com>
5755
5756         PR other/43448
5757         * gccbug.in: Remove.
5758         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
5759         (doc, distclean, install-common): Remove reference to gccbug.
5760         * configure: Regenerate.
5761         * configure.ac (all_outputs): Remove gccbug.
5762         * doc/configfiles.texi: Remove references to gccbug.
5763         * doc/sourcebuild.texi: Dito.
5764
5765 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5766
5767         PR middle-end/46019
5768         * fold-const.c (fold_binary_loc): If integer_pow2p has
5769         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
5770
5771 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5772             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5773
5774         * gengtype.c (verbosity_level): Add variable.
5775         (set_gc_used): Count variables for verbosity.
5776         (close_output_files): Backing up files, counting written ones
5777         verbosily.
5778         (write_types): Count emitted functions for verbosity. Added
5779         debug messages.
5780         (write_enum_defn): Count structures for verbosity. Added debug
5781         messages.
5782         (gengtype_long_options): Add "verbose" & "backupdir".
5783         (print_usage): Ditto.
5784         (main): Verbose display of parsed files.
5785
5786         * gengtype.h (verbosity_level): Add declaration.
5787
5788 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5789
5790         * gengtype.c (parse_program_options): Add allocation of
5791         plugin_files, and correct test on nb_plugin_files.
5792
5793 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5794
5795         Merge from 'apple/trunk' branch on FSF servers.
5796
5797         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
5798
5799         Radar 4133425
5800         * c-decl.c (undeclared_variable): Issue diagnostic on
5801         private 'ivar' access.
5802
5803 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
5804
5805         PR target/46051
5806         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
5807         generated sequence to match *avx_vperm2f128<mode>_nozero.
5808         (vec_interleave_lowv4df): Ditto.
5809         (vec_interleave_highv8sf): Ditto.
5810         (vec_interleave_lowv8sf): Ditto.
5811
5812 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
5813
5814         * libgcov.c (create_file_directory): Enable it for win32 case.
5815         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
5816         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
5817         (GCOV_PREFIX_SKIP): Likewise.
5818
5819 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5820
5821         * doc/objc.texi (GNU Objective-C runtime API): New section.
5822         (Modern GNU Objective-C runtime API): New section.
5823         (Traditional GNU Objective-C runtime API): New section.
5824         (Executing code before main): Mention that this section is
5825         specific to the GNU Objective-C runtime.
5826         (Garbage Collection): Same.
5827
5828 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
5829
5830         * c-parser.c (c_parser_for_statement): Move initialization of
5831         cond and incr before if.
5832
5833 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
5834
5835         * target.def (preferred_output_reload_class): New hook.
5836         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
5837         * doc/tm.texi: Regenerate.
5838         * targhooks.c (default_preferred_output_reload_class): New function.
5839         * targhooks.h (default_preferred_output_reload_class): Declare.
5840         * reload.c (find_dummy_reload): Change rclass argument type from
5841         enum reg_class to reg_class_t. Change this_alternative array type
5842         from enum reg_class to reg_class_t.
5843         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
5844         (push_reload): Change preferred_class variable type to reg_class_t.
5845         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
5846         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
5847         argument type from enum reg_class to reg_class_t. Use
5848         HARD_REGISTER_NUM_P predicate.
5849         * recog.h (reg_fits_class_p): Update prototype.
5850
5851         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5852         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
5853         Remove.
5854         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
5855         static. Change regclass argument and result types from enum reg_class
5856         to reg_class_t.
5857         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5858
5859 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
5860
5861         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
5862         visibility enum, and handle @package.
5863
5864 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5865
5866         * doc/objc.texi (What you can and what you cannot do in +load):
5867         Document that sending messages to constant string objects in +load
5868         is not guaranteed to work.
5869
5870 2010-10-16  Jan Hubicka  <jh@suse.cz>
5871
5872         PR middle-end/44206
5873         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
5874         existence of refrences before removing the function.
5875
5876 2010-10-16  Jan Hubicka  <jh@suse.cz>
5877
5878         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
5879         only_called_at_startup and only_called_at_exit.
5880         (cgraph_propagate_frequency): Compute only_called_at_startup and
5881         only_called_at_exit.
5882         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
5883         only_called_at_exit.
5884         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
5885         flags.
5886         * predict.c (compute_function_frequency): Initialize the new flags.
5887
5888 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
5889
5890         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
5891         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
5892         on the bounds of its domain.
5893         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
5894
5895 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
5896
5897         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
5898         * config/avr/avr-protos.h (preferred_reload_class): Remove.
5899         * config/avr/avr.c (preferred_reload_class): Remove.
5900         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
5901         * config/pa/pa.c (emit_move_sequence): Update comment
5902         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
5903         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
5904         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
5905         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
5906         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
5907         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
5908         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
5909         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
5910         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
5911         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
5912         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
5913         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
5914         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
5915
5916 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5917
5918         * opts.c (set_fast_math_flags,
5919         set_unsafe_math_optimizations_flags): Make static.
5920         * toplev.h (set_fast_math_flags,
5921         set_unsafe_math_optimizations_flags): Remove prototypes.
5922
5923 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5924
5925         * config/arm/arm.c (arm_option_optimization): Set
5926         flag_section_anchors to 1 not 2.
5927         * config/i386/i386.c (ix86_option_override_internal): Check
5928         global_options_set.x_flag_zee and
5929         global_options_set.x_flag_omit_frame_pointer.
5930         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
5931         flag_zee to 2.
5932         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
5933         global_options_set.x_flag_omit_frame_pointer.
5934         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
5935         opts->x_flag_section_anchors to 1 not 2.
5936         * config/sh/sh.c (sh_option_optimization): Don't set
5937         flag_schedule_insns to 2.
5938         (sh_option_override): Check
5939         global_options_set.x_flag_schedule_insns.
5940         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
5941
5942 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
5943
5944         * configure.ac: Make sure inhibit_libc remains false for mingw targets
5945         as cross.
5946         * configure: Regenerated.
5947
5948 2010-10-15  Xinliang David Li  <davidxl@google.com>
5949
5950         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
5951         function.
5952         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
5953         into a recursive function.
5954
5955 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
5956
5957         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
5958         (*movdfcc_1): ditto.
5959
5960 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5961
5962         * target.def (target_option.init_struct): New hook.
5963         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
5964         * doc/tm.texi: Regenerate.
5965         * hooks.c (hook_void_gcc_optionsp): New.
5966         * hooks.h (hook_void_gcc_optionsp): Declare.
5967         * langhooks-def.h (lhd_init_options_struct): Remove.
5968         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
5969         * langhooks.c (lhd_init_options_struct): Remove.
5970         * opts.c (init_options_struct): Also call
5971         targetm.target_option.init_struct.
5972         * config/i386/i386.c (ix86_option_init_struct,
5973         TARGET_OPTION_INIT_STRUCT): New.
5974         (ix86_option_optimization): Move some settings to
5975         ix86_option_init_struct.
5976         * config/pdp11/pdp11.c (pdp11_option_init_struct,
5977         TARGET_OPTION_INIT_STRUCT): New.
5978         (pdp11_option_optimization): Move some settings to
5979         pdp11_option_init_struct.
5980         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
5981         rs6000_option_init_struct.  Use options structure pointer.
5982         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5983         * config/s390/s390.c (s390_option_init_struct,
5984         TARGET_OPTION_INIT_STRUCT): New.
5985         (s390_option_optimization): Don't set
5986         flag_asynchronous_unwind_tables here.
5987         * config/sh/sh.c (sh_option_init_struct,
5988         TARGET_OPTION_INIT_STRUCT): New.
5989         (sh_option_optimization): Don't set flag_finite_math_only here.
5990         * config/spu/spu.c (spu_option_optimization): Replace by
5991         spu_option_optimization.  Use options structure pointer.
5992         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5993
5994 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5995
5996         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
5997
5998         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
5999         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
6000         (Standard names): Document fma.
6001
6002         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
6003         __FP_FAST_FMAF, __FP_FAST_FMAL.
6004
6005         * builitns.c (expand_builtin_mathfn_ternary): New function for
6006         expanding ternary math functions, like fma.
6007         (expand_builtin): Call it for the fma builtins.
6008
6009         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
6010         ops at present.
6011
6012         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
6013         vectorizable functions to support vectorizing fma.
6014
6015         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6016         Handle fma builtins.
6017
6018         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6019         (UNSPEC_VSX_MSUB): Ditto.
6020         (UNSPEC_VSX_NMADD): Ditto.
6021         (UNSPEC_VSX_NMSUB): Ditto.
6022         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6023         of UNSPEC. Renumber combiner patterns.
6024         (vsx_fmsub<mode>4*): Ditto.
6025         (vsx_fnmadd<mode>4*): Ditto.
6026         (vsx_fnmsub<mode>4*): Ditto.
6027
6028         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6029         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6030         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
6031         (altivec_vmaddfp_1): Ditto.
6032         (altivec_vmaddfp_2): Ditto.
6033         (atlivec_mulv4sf3): Ditto.
6034         (altivec_vnmsubfp): Ditto.
6035         (altivec_vnmsubfp_1): Ditto.
6036         (altivec_vnmsubfp_2): Ditto.
6037         (altivec_vnmsubfp_3): Delete.
6038
6039         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
6040         (fmasf4_fpr): Ditto.
6041         (fmssf4_fpr): Ditto.
6042         (fnmasf4_fpr): Ditto.
6043         (fnmssf4_fpr): Ditto.
6044         (fmadf4): Ditto.
6045         (fmadf4_fpr): Ditto.
6046         (fmsdf4_fpr): Ditto.
6047         (fnmadf4_fpr): Ditto.
6048         (fnmsdf4_fpr): Ditto.
6049
6050         * optabs.h (OTI_fma): Add fma optab.
6051         (fma_optab): Ditto.
6052
6053         * genopinit.c (optabs): Set fma optab.
6054
6055         * rtl.def (FMA): Add FMA rtl.
6056
6057         * tree.h (mode_has_fma): New function to return if MODE supports a
6058         fast multiply and add instruction.
6059         * builtins.c (mode_has_fma): Ditto.
6060
6061 2010-10-15  Jan Hubicka  <jh@suse.cz>
6062
6063         * lto-streamer-out.c (write_symbol): Use pointer set of seen
6064         objects instead of bitmap.
6065         (produce_symtab): Likewise; output defined symbols first.
6066
6067 2010-10-15  Jie Zhang  <jie@codesourcery.com>
6068
6069         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
6070         Option Summary and Index.
6071
6072 2010-10-15  Richard Guenther  <rguenther@suse.de>
6073
6074         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
6075         for automatic variables again.
6076
6077 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6078
6079         * doc/extend.texi (Variable Length): Don't refer to VLAs not
6080         conforming to C99.
6081
6082 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6083
6084         * config/rx/rx.c (rx_option_optimization): Change to
6085         rx_override_options_after_change.  Don't change
6086         flag_lto_compression_level.  Don't check for changes to whether
6087         FPU instructions can be used.  Check and set only
6088         flag_finite_math_only, not other fast-math flags.
6089         (rx_option_override): Call rx_override_options_after_change.
6090         (TARGET_OPTION_OPTIMIZATION): Remove.
6091         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6092
6093 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6094
6095         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
6096         disable section anchors for lang_hooks.name[4] != 'O'.
6097
6098 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6099
6100         * config/frv/frv.c (frv_option_optimization,
6101         TARGET_OPTION_OPTIMIZATION): Remove.
6102         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
6103
6104 2010-10-15  Michael Matz  <matz@suse.de>
6105
6106         * cgraphunit.c (clone_of_p): Define unconditionally.
6107
6108 2010-10-15  Richard Guenther  <rguenther@suse.de>
6109
6110         PR lto/45957
6111         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
6112
6113 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
6114
6115         * ifcvt.c (find_active_insn_before): New function.
6116         (find_active_insn_after): New function.
6117         (cond_exec_process_if_block): Use new functions to replace
6118         prev_active_insn() and next_active_insn().
6119
6120 2010-10-14  Yao Qi  <yao@codesourcery.com>
6121
6122         PR target/45447
6123         * config/arm/arm.c (arm_build_builtin_va_list): Assign
6124         va_list_name to TYPE_STUB_DECL (va_list_type).
6125
6126 2010-10-14  Jan Hubicka  <jh@suse.cz>
6127
6128         PR middle-end/45621
6129         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
6130         redirected to clone, be happy.
6131         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
6132         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
6133         former_clone_of unconditionally.
6134
6135 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6136
6137         Merge from FSF apple 'trunk' branch.
6138         2006 Fariborz Jahanian  <fjahanian@apple.com>
6139
6140         Radars 4436866, 4505126, 4506903, 4517826
6141         * c-parser.c (c_parser, objc_property_attr_context) New flag.
6142         (c_lex_one_token): Handle property attributes.
6143         (c_parser_external_declaration): Handle @property.
6144         (c_parser_declaration_or_fndef): Warn on invalid attributes before
6145         @alias, @class, @end and @property objc keywords.
6146         (c_parser_objc_methodprotolist): Handle @property.
6147         (c_parser_objc_property_attrlist): New.
6148         (c_parser_objc_at_property): New.
6149         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
6150         (build_modify_expr): Likewise.
6151
6152 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6153
6154         PR tree-optimization/46008
6155         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
6156
6157 2010-10-14  Richard Guenther  <rguenther@suse.de>
6158
6159         PR tree-optimization/44913
6160         * tree-data-ref.c (disjoint_objects_p): Remove.
6161         (dr_may_alias_p): Simplify.  Only hand the base object to
6162         the alias-oracle.
6163         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6164         some more trees, bail out instead of asserting.
6165         (ptr_derefs_may_alias_p): Likewise.  Export.
6166         (refs_may_alias_p_1): Handle STRING_CSTs.
6167         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
6168
6169 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6170
6171         PR c/45969
6172         * c-typeck.c (build_binary_op): Don't try to compute a semantic
6173         type with excess precision for boolean operations.
6174
6175 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
6176             Basile Starynkevitch  <basile@starynkevitch.net>
6177
6178         * gengtype.c:  Include getopt.h and version.h.
6179
6180         (lang_bitmap, struct outf, outf_p)
6181         (get_output_file_with_visibility, oprintf): Definitions moved to
6182         gengtype.h
6183         (output_files, header_file, srcdir, srcdir_len, this_file)
6184         (do_dump): No more static variables.
6185         (do_debug): New.
6186         (dbgprint_count_type_at): Added new function.
6187         (gengtype_long_options): New.
6188         (print_usage, print_version, parse_program_options): New.
6189         (main): Call parse_program_options, and removed old option
6190         handling code.  Added some debug output.
6191
6192         * gengtype.h:  Updated copyright year.
6193         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
6194         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
6195         Moved from gengtype.c to here.
6196         (do_debug, read_state_filename, write_state_filename): New variables.
6197         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
6198
6199         * Makefile.in:
6200         (REVISION): Always defined.
6201         (version.o): Removed ifdef REVISION_c.
6202         (s-gtype): Pass arguments to build/gengtype program.
6203         (build/version.o): Added building rule.
6204         (build/gengtype$(build_exeext)): Added build/version.o.
6205
6206 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6207
6208         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
6209         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
6210         __strong macros.
6211
6212 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
6213
6214         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
6215         may_trap_or_fault_p instead of may_trap_p predicate.
6216         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
6217         (substitute_placeholder_in_expr): Likewise.
6218         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
6219         flag on MEM_REF nodes.
6220         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
6221         flags on INDIRECT_REF nodes.
6222
6223 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
6224
6225         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
6226         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
6227         (arm*-*-eabi*) <tm_file>: Likewise.
6228         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
6229         (frv-*-*linux*) <tm_file>: Likewise.
6230         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
6231         and associated helper macros.
6232         * config/frv/frv-abi.h: Delete.
6233
6234 2010-10-14  Richard Guenther  <rguenther@suse.de>
6235
6236         PR lto/44561
6237         * tree.def (NULLPTR_TYPE): New tree code.
6238         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
6239         * dwarf2out.c (is_base_type): Likewise.
6240         (gen_type_die_with_usage): Likewise.
6241         * sdbout.c (plain_type_1): Likewise.
6242         * tree.c (build_int_cst_wide): Likewise.
6243         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
6244
6245 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6246
6247         * params.c (params_finished): New.
6248         (add_params): Assert !params_finished.
6249         (finish_params): New.
6250         (set_param_value_internal): Take params and params_set
6251         parameters.  Assert params_finished.
6252         (set_param_value, maybe_set_param_value): Take params and
6253         params_set parameters.  Update calls to set_param_value_internal.
6254         (set_default_param_value): Assert !params_finished.  Don't use
6255         set_param_value_internal.
6256         (default_param_value, init_param_values): New.
6257         * params.h (struct param_info): Change value to default_value.
6258         Remove set.
6259         (set_param_value, maybe_set_param_value): Add params and
6260         params_set parameters.
6261         (PARAM_VALUE): Get parameters from global_options.
6262         (PARAM_SET_P): Remove.
6263         (finish_params, default_param_value, init_param_values): New.
6264         * common.opt (param_values): New Variable.
6265         * config/arm/arm.c (arm_option_override): Pass extra arguments to
6266         maybe_set_param_value.
6267         * config/i386/i386.c (ix86_option_override_internal): Pass extra
6268         arguments to maybe_set_param_value.
6269         * config/picochip/picochip.c (picochip_option_override): Pass
6270         extra arguments to maybe_set_param_value.
6271         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
6272         extra arguments to maybe_set_param_value.
6273         * config/s390/s390.c (s390_option_override): Use
6274         maybe_set_param_value instead of set_param_value.  Pass extra
6275         arguments to maybe_set_param_value.
6276         * config/sparc/sparc.c (sparc_option_override): Pass extra
6277         arguments to maybe_set_param_value.
6278         * config/spu/spu.c (spu_option_override): Pass extra arguments to
6279         maybe_set_param_value.
6280         * opts.c (handle_param): Take opts and opts_set parameters.
6281         Update call to set_param_value.
6282         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
6283         initial_loop_invariant_max_bbs_in_loop): Remove.
6284         (init_options_once): Don't set them.
6285         (init_options_struct): Initialize parameters structures.
6286         (default_options_optimization): Use default_param_value when
6287         restoring defaults.  Update calls to maybe_set_param_value.
6288         (finish_options): Update calls to maybe_set_param_value.
6289         (common_handle_option): Update calls to handle_param and
6290         set_param_value.
6291         * toplev.c (DEFPARAM): Update definition for changes to param_info.
6292         (general_init): Call finish_params.
6293
6294 2010-10-14  Nick Clifton  <nickc@redhat.com>
6295
6296         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
6297         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
6298         (FIRST_PSEUDO_REGISTER): Increase by one.
6299         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
6300         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
6301         (MODES_TIEABLE): Call mn10300_modes_tieable.
6302         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
6303         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
6304         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
6305         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
6306         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
6307         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
6308         (mn10300_cc_status_mdep): Delete.
6309         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
6310         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
6311         the combine-stack-adjust pass.
6312         (print_operand): Use the mode of the comparison operation to
6313         select the comparison suffix.
6314         (notice_update_cc): Delete.
6315         (mn10300_secondary_reload_class): Remove test for stack pointer
6316         based arithmetic.
6317         (output_tst): Rename to mn10300_output_cmp.
6318         (impossible_plus_operand): Move into predicates.md.
6319         (mn10300_legitimize_address): Make static.
6320         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
6321         constant pic operands.
6322         (mn10300_legitimate_constant_p): New function.
6323         (mn10300_case_values_threshold): Make static.
6324         (mn10300_hard_regno_mode_ok): New function.
6325         (mn10300_modes_tieable): New function.
6326         (mn10300_select_cc_mode): New function.
6327         * config/mn10300/predicates.md (impossible_plus_operand): Define.
6328         * config/mn10300/mn10300-protos.h: Tidy.
6329         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
6330         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
6331         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
6332         with clobbers or sets of CC_REG.
6333         (CC_REG): Define.
6334         (mov*): Remove use of CLR instruction.
6335         (cbranch_si4_<code>): New pattern/split.
6336         (integer_conditional_branch): New pattern.
6337         (cbranch_sf4_<code>): New pattern/split.
6338         (float_conditional_branch): New pattern.
6339         (casesi): Use addsi3 pattern instead of movsi pattern to add and
6340         move a value at the same time.
6341         (cc0 peepholes): Remove.
6342
6343 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6344
6345         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
6346         on RTX_FRAME_RELATED_P insns and the insn to which
6347         NOTE_INSN_EPILOGUE_BEG is attached.
6348         * sched-vis.c (print_value): Allow NULL value.
6349
6350 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6351
6352         PR rtl-optimization/45570
6353         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
6354         assert that we are pipelining outer loops.  Allow returning
6355         zero predecessors.
6356
6357 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6358
6359         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
6360         (tidy_control_flow): Tidy vertical space.
6361         (sel_remove_bb): New variable idx.  Use it to remember the basic
6362         block index before deleting the block.
6363         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
6364         (sel_merge_blocks): ... here.
6365         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
6366
6367 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6368
6369         * cse.c (is_dead_reg): Change into inline function that is not
6370         called through for_each_rtx.
6371         (set_live_p): Adjust caller.
6372         (insn_live_p): Don't reset DEBUG_INSNs here.
6373         (struct dead_debug_insn_data): New data.
6374         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
6375         (delete_trivially_dead_insns): If there is just one setter for the
6376         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
6377         and add DEBUG_INSN for it right before the removed setter and
6378         use the DEBUG_EXPR instead of the dead pseudo.
6379
6380 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
6381
6382         * et-forest.c (et_nca): Return NULL immediately when
6383         the dominance forest has disjoint components.
6384
6385 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
6386
6387         * ira.c (setup_class_hard_regs): Fix typo in indexing
6388         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
6389
6390 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
6391
6392         * graph.c (inbb): New variable.
6393         (start_bb): Set inbb to 1 if output is inside of a building block.
6394         (end_bb): Check if output is inside of a building block.
6395
6396 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
6397
6398         PR rtl-optimization/45912
6399         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
6400         regno of registers instead of their index to compute the alignment.
6401
6402 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
6403
6404         * config/i386/i386.c (ix86_build_const_vector): Check vector
6405         mode instead of scalar mode.
6406         (ix86_build_signbit_mask): Likewise.
6407         (ix86_expand_fp_absneg_operator): Updated.
6408         (ix86_expand_copysign): Likewise.
6409         (ix86_expand_int_vcond): Likewise.
6410         (ix86_emit_swdivsf): Likewise.
6411         (ix86_sse_copysign_to_positive): Likewise.
6412         (ix86_expand_sse_fabs): Likewise.
6413         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
6414         * config/i386/sse.md (copysign<mode>3): Likewise.
6415         (sse2_cvtudq2ps): Likewise.
6416         (vec_unpacku_float_hi_v4si): Likewise.
6417         (vec_unpacku_float_lo_v4si): Likewise.
6418
6419         * config/i386/i386.c (ix86_builtins): Add
6420         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
6421         (bdesc_args): Likewise.
6422         (ix86_builtin_vectorized_function): Support
6423         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
6424         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
6425         and IX86_BUILTIN_CVTPS2DQ256.
6426         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
6427
6428         * config/i386/sse.md (STORENT_MODE): New.
6429         (VEC_FLOAT_MODE): Likewise.
6430         (VEC_EXTRACT_MODE): Likewise.
6431         (*avx_cvtdq2pd256_2): Likewise.
6432         (vec_pack_trunc_v4df): Likewise.
6433         (vec_interleave_highv8sf): Likewise.
6434         (vec_interleave_lowv8sf): Likewise.
6435         (storent<mode>): Macroized.
6436         (<code><mode>2: absneg): Likewise.
6437         (copysign<mode>3): Likewise.
6438         (vec_extract<mode>): Likewise.
6439
6440         PR target/44180
6441         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
6442         for V8SFmode.
6443
6444 2010-10-13  Richard Guenther  <rguenther@suse.de>
6445             H.J. Lu  <hongjiu.lu@intel.com>
6446
6447         * config/i386/sse.md (reduc_splus_v8sf): Add.
6448         (reduc_splus_v4df): Likewise.
6449         (vec_unpacks_hi_v8sf): Likewise.
6450         (vec_unpacks_lo_v8sf): Likewise.
6451         (*avx_cvtps2pd256_2): Likewise.
6452         (vec_unpacks_float_hi_v8si): Likewise.
6453         (vec_unpacks_float_lo_v8si): Likewise.
6454         (vec_interleave_highv4df): Likewise.
6455         (vec_interleave_lowv4df): Likewise.
6456
6457 2010-10-13  Richard Guenther  <rguenther@suse.de>
6458
6459         PR objc/45878
6460         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
6461         alone if there are no virtual methods.
6462
6463 2010-10-13  Richard Henderson  <rth@redhat.com>
6464
6465         * expr.c (build_personality_function): Take parameter LANG instead
6466         of parameter NAME.  Build the name based on the lang prefix and the
6467         unwind method in use.
6468         * tree.c (lhd_gcc_personality): Update call to
6469         build_personality_function.
6470
6471 2010-10-13  Richard Guenther  <rguenther@suse.de>
6472
6473         PR objc/45878
6474         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
6475
6476 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
6477
6478         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
6479         Canonicalize input operands of ASM_OPERANDS insns.
6480
6481 2010-10-13  Richard Guenther  <rguenther@suse.de>
6482
6483         PR tree-optimization/45788
6484         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
6485         EH update until fixup-cfg.
6486
6487 2010-10-13  Julian Brown  <julian@codesourcery.com>
6488
6489         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
6490         from CORE_REGS and GENERAL_REGS classes.
6491         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
6492         final constraint for register preferencing.
6493
6494 2010-10-13  Richard Guenther  <rguenther@suse.de>
6495
6496         PR tree-optimization/45970
6497         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
6498         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
6499         (stmt_kills_ref_p): Likewise.
6500         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
6501
6502 2010-10-13  Richard Guenther  <rguenther@suse.de>
6503
6504         PR tree-optimization/45982
6505         * tree-ssa-structalias.c (make_constraints_to): New function.
6506         (make_constraint_to): Implement in terms of make_constraints_to.
6507         (find_func_aliases): Properly make return values of pure/const
6508         functions escape if they assign to sth that is not a pointer.
6509
6510 2010-10-13  Richard Guenther  <rguenther@suse.de>
6511
6512         PR middle-end/45874
6513         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
6514         Fixup the CFG when EH was fixed up.
6515
6516 2010-10-13  Ira Rosen  <irar@il.ibm.com>
6517
6518         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
6519         Use operand's type for POINTER_PLUS_EXPR.
6520
6521 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
6522
6523         * c-parser.c (c_parser_for_statement): Initialize incr.
6524
6525 2010-10-12  Xinliang David Li  <davidxl@google.com>
6526
6527         PR tree-optimization/45972
6528         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
6529         with too many arguments.
6530
6531 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
6532
6533         PR fortran/45636
6534         * tree-ssa-forwprop.c: Include expr.h.
6535         (constant_pointer_difference, simplify_builtin_call): New functions.
6536         (tree_ssa_forward_propagate_single_use_vars): Call
6537         simplify_builtin_call on builtin calls.
6538
6539 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
6540
6541         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
6542         (*adddi3_extend_sp32): Likewise.
6543         (*subdi3_insn_sp32): Likewise.
6544         (*subdi3_extend_sp32): Likewise.
6545         (*negdi2_sp32): Use negative test for consistency.
6546
6547 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
6548
6549         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
6550         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6551         * config/fixed-bit.h: Likewise.
6552         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6553         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6554         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
6555         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
6556         (DF_SIZE): Likewise.
6557         * doc/tm.texi: Regenerate.
6558
6559 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
6560
6561         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
6562         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
6563         (*isel_reversed_unsigned_<mode>): New.
6564         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
6565         as valid comparisons and adjust operands and output appropriately.
6566         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
6567
6568 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
6569
6570         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
6571         DATA_ALIGNMENT and add COND parameter. Update comments above.
6572         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
6573         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
6574
6575 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
6576
6577         PR bootstrap/45958
6578         * exec-tool.in: Support '-plugin' as the second option to the linker.
6579
6580 2010-10-12  Richard Henderson  <rth@redhat.com>
6581
6582         PR middle-end/45962
6583         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
6584         (expand_stack_vars): Assert large base allocated when used.
6585
6586 2010-10-12  Richard Guenther  <rguenther@suse.de>
6587
6588         * tree-ssa-structalias.c (get_constraint_for_1): Constants
6589         only point to nonlocal, not anything.
6590
6591 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6592
6593         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
6594         unwind info for exceptions.
6595
6596 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6597
6598         PR testsuite/45851
6599         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
6600         Document optional target selector.
6601
6602 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
6603
6604         * flag-types.h: New.
6605         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
6606         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
6607         options.h.
6608         (OPTIONS_H): Define.
6609         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
6610         of options.h.
6611         * configure.ac (tm_include_list): Include options.h not flags.h.
6612         * configure: Regenerate.
6613         * flags.h: Include flag-types.h.  Include options.h at top of file
6614         again.
6615         (enum debug_info_type, enum debug_info_level, enum
6616         debug_info_usage, enum symbol_visibility, struct visibility_flags,
6617         enum ira_algorithm, enum ira_region, enum excess_precision, enum
6618         graph_dump_types, enum stack_check_type,
6619         enum warn_strict_overflow_code): Move to flag-types.h
6620         * opth-gen.awk: Include flag-types.h in options.h.
6621
6622 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
6623
6624         * expr.c (store_expr): Share code for STRING_CST and
6625         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
6626         check if target is a MEM.
6627
6628         * rtl.h: Include hashtab.h.
6629         (iterative_hash_rtx): New prototype.
6630         * rtl.c (iterative_hash_rtx): New function.
6631         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
6632         (output_loc_list): Return immediately if emitted is set, set it.
6633         (hash_loc_operands, hash_locs, hash_loc_list,
6634         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
6635         optimize_location_lists_1, optimize_location_lists): New function.
6636         (dwarf2out_finish): Call optimize_location_lists.
6637         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
6638
6639 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6640
6641         PR testsuite/45974
6642         Revert:
6643         * Makefile.in ($(lang_checks_parallel))
6644         ($(lang_checks_parallelized)): Use single quotes for
6645         $(RUNTESTFLAGS), to allow passing quoted content.
6646
6647 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6648
6649         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
6650         actual_oldval.  Use __builtin_expect.
6651         (SUBWORD_VAL_CAS): Likewise.
6652
6653 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6654
6655         * recog.c (nonmemory_operand): Call immediate_operand for
6656         CONSTANT_P operands.
6657
6658 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
6659
6660         * config/i386/i386.md (movmem<mode>): Macroize expander from
6661         movmem{si,di} using SWI48 mode iterator.
6662         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
6663         *strmovsi_rex_1 using P mode iterator.
6664         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
6665         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
6666         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
6667         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
6668         (setmem<mode>): Macroize expander from setmem{si,di} using
6669         SWI48 mode iterator.
6670         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
6671         *strsetsi_rex_1 using P mode iterator.
6672         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
6673         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
6674         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
6675         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
6676         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
6677         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
6678         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
6679         mode iterator.
6680         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
6681         *strlenqi_rex_1 using P mode iterator.
6682
6683 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
6684
6685         PR bootstrap/45445
6686         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
6687         static functions.
6688         (mark_ref_live, mark_ref_dead): Use them.
6689         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
6690         Save the original reg, and use the new functions.
6691         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
6692         changed.
6693         (check_and_make_def_conflict): Save the original reg.
6694
6695 2010-10-11  Martin Jambor  <mjambor@suse.cz>
6696
6697         PR middle-end/45699
6698         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
6699         thunks.
6700
6701 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6702
6703         * Makefile.in ($(lang_checks_parallel))
6704         ($(lang_checks_parallelized)): Use single quotes for
6705         $(RUNTESTFLAGS), to allow passing quoted content.
6706
6707         PR bootstrap/35855
6708         * opt-functions.awk (BEGIN): New section.
6709         (lower, upper, digit, alnum): New variables.
6710         (static_var, opt_sanitized_name): Use alnum instead of character
6711         classes, for non-C locale.
6712         * optc-gen.awk: Likewise.
6713         * opth-gen.awk: Likewise.
6714
6715 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
6716
6717         * target.def (preferred_reload_class): New hook.
6718         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
6719         * doc/tm.texi: Regenerate.
6720         * targhooks.c (default_preferred_reload_class): New function.
6721         * targhooks.h (default_preferred_reload_class): Declare.
6722         * reload.c (find_dummy_reload): Change preferred_class variable type
6723         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
6724         target hook.
6725         (find_reloads): Change goal_alternative array type from int to
6726         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
6727         (push_reload, find_reloads_address_part): Use
6728         TARGET_PREFERRED_RELOAD_CLASS target hook.
6729         * reload1.c (emit_input_reload_insns): Ditto.
6730         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
6731         hook. Change rclass argument and secondary_class variable types from
6732         'enum reg_class' to reg_class_t.
6733
6734         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
6735         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
6736         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
6737         Change regclass argument and result types from enum reg_class to
6738         reg_class_t.
6739         (TARGET_PREFERRED_RELOAD_CLASS): Define.
6740
6741 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
6742
6743         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
6744         in masking operations.
6745         (simplify_const_unary_operation): Likewise.
6746         (simplify_binary_operation_1): Likewise.
6747         (simplify_const_binary_operation): Likewise.
6748         (simplify_const_relational_operation): Likewise.
6749         (simplify_ternary_operation): Likewise.
6750         (simplify_immed_subreg): Likewise.
6751
6752 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6753
6754         PR middle-end/45862
6755         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
6756         (TARGET_SUPPORTS_WEAK): New.
6757         * doc/tm.texi: Regenerate.
6758         * defaults.h (SUPPORTS_WEAK): Update comment.
6759         (TARGET_SUPPORTS_WEAK): New.
6760         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
6761         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
6762         SUPPORTS_WEAK.
6763         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
6764         make_decl_one_only): Likewise.
6765         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
6766         TARGET_SUPPORTS_WEAK.
6767         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
6768         instead of SUPPORTS_WEAK.
6769
6770 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6771
6772         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
6773
6774 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6775
6776         * vec.h (VEC_qsort): Define.
6777         * dbxout.c (output_used_types): Use it.
6778         * df-scan.c (df_sort_and_compress_refs): Likewise.
6779         (df_sort_and_compress_mws): Likewise.
6780         * genautomata.c (uniq_sort_alt_states): Likewise.
6781         (evaluate_equiv_classes): Likewise.
6782         (output_trans_table): Likewise.
6783         (output_state): Likewise.
6784         * gimplify.c (compare_case_labels): Likewise.
6785         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
6786         * ipa.c (build_cdtor_fns): Likewise.
6787         * lto.c (lto_wpa_write_files): Likewise.
6788         * sel-sched.c (fill_vec_av_set): Likewise.
6789         * tree-predcom.c (determine_roots_comp): Likewise.
6790         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
6791         (splice_param_accesses): Likewise.
6792         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
6793         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6794         (reassociate_bb): Likewise.
6795         * tree-ssa-sccvn.c (sort_scc): Likewise.
6796         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
6797
6798 2010-10-11  Ian Lance Taylor  <iant@google.com>
6799
6800         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
6801         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
6802         TREE_THIS_NOTRAP when appropriate.
6803         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
6804         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
6805         newly created MEM_REF.
6806
6807 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6808
6809         Nathan Froyds patch to hooks FUNCTION_ARG etc.
6810         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
6811         (picochip_incoming_function_arg): Delete.
6812         (picochip_arg_advance): Delete.
6813         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
6814         (FUNCTION_INCOMING_ARG): Delete.
6815         (FUNCTION_ARG_ADVANCE): Delete.
6816         * config/picochip/picochip.c (picochip_function_arg): Take a
6817         const_tree and a bool.
6818         (picochip_incoming_function_arg): Likewise.
6819         (picochip_arg_advance): Likewise.
6820         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6821         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6822
6823 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6824
6825         PR middle-end/45955
6826         * ipa.c (build_cdtor): Delete endless loop.
6827
6828 2010-10-07  Andi Kleen  <ak@linux.intel.com>
6829
6830         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
6831         checksum-options.
6832         (checksum-options): Add.
6833         (cc1-dummy): Remove.
6834         (cc1-checksum): Change to run checksum over object files
6835         and options only.
6836         * dummy-checksum.c: Remove.
6837         * genchecksum.c: Update copyright.
6838         (usage): Allow multiple arguments.
6839         (BLOCKSIZE): Add.
6840         (dosum): Change for incremental checksum. Remove C output.
6841         (main): Iterate over all argument files. Add C output.
6842
6843 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
6844
6845         * params.c (set_param_value_internal): New.
6846         (set_param_value): Use set_param_value_internal.
6847         (maybe_set_param_value, set_default_param_value): New.
6848         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
6849         (maybe_set_param_value, set_default_param_value): Declare.
6850         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
6851         * config/i386/i386.c (ix86_option_override_internal): Use
6852         maybe_set_param_value.
6853         * config/ia64/ia64.c (ia64_option_default_params,
6854         TARGET_OPTION_DEFAULT_PARAMS): New.
6855         (ia64_option_optimization): Move some code to
6856         ia64_option_default_params.
6857         * config/picochip/picochip.c (picochip_option_override): Use
6858         maybe_set_param_value.
6859         * config/rs6000/rs6000.c (rs6000_option_default_params,
6860         TARGET_OPTION_DEFAULT_PARAMS): New.
6861         (rs6000_option_override_internal): Use maybe_set_param_value.
6862         (rs6000_option_optimization): Move some code to
6863         rs6000_option_default_params.
6864         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
6865         * config/sh/sh.c (sh_option_default_params,
6866         TARGET_OPTION_DEFAULT_PARAMS): New.
6867         (sh_option_optimization): Move some code to sh_option_default_params.
6868         * config/sparc/sparc.c (sparc_option_override): Use
6869         maybe_set_param_value.
6870         * config/spu/spu.c (spu_option_default_params,
6871         TARGET_OPTION_DEFAULT_PARAMS): New.
6872         (spu_option_optimization): Move some code to spu_option_default_params.
6873         (spu_option_override): Use maybe_set_param_value.
6874         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
6875         * doc/tm.texi: Regenerate.
6876         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
6877         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
6878         compiler_params.
6879         (default_options_optimization): Use maybe_set_param_value.
6880         (finish_options): Use maybe_set_param_value.
6881         * target.def (target_option.default_params): New hook.
6882         * toplev.c (general_init): Call targetm.target_option.default_params.
6883
6884 2010-10-11  Ira Rosen  <irar@il.ibm.com>
6885
6886         PR tree-optimization/45902
6887         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
6888         vector type for constants, unless it's a pointer.
6889
6890 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6891
6892         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
6893
6894 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
6895
6896         PR target/45870
6897         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
6898         (ix86_delegitimize_address): Use it.
6899
6900 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
6901
6902         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
6903
6904 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
6905
6906         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
6907         to cum struct in the call to function_arg_advance.
6908         (alpha_function_arg_advance): Mark named as unused.
6909
6910 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
6911
6912         * config/mips/mips.c (mips_handle_option): Make "value" with
6913         ATTRIBUTE_UNUSED.
6914
6915 2010-10-09  Richard Henderson  <rth@redhat.com>
6916
6917         PR rtl-opt/33721
6918         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
6919         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
6920         required_align, tidy the code a bit.  Emit split_stack code in the
6921         right place.  Mark the return value with the alignment properly.
6922         * expr.h (allocate_dynamic_stack_space): Update decl.
6923         * builtins.c (expand_builtin_apply): Update call to
6924         allocate_dynamic_stack_space.
6925         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
6926         * calls.c (initialize_argument_information): Update call to
6927         allocate_dynamic_stack_space.
6928         (expand_call): Likewise.
6929
6930         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
6931         Don't update_stack_alignment here.
6932         (alloc_stack_frame_space): Make ALIGN unsigned.
6933         (stack_var_cmp): Sort by alignment too.
6934         (partition_stack_vars): Don't merge large and small alignment vars.
6935         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
6936         Take care when BASE is not virtual_stack_vars_rtx.
6937         (expand_stack_vars): Allocate dynamic stack space for large
6938         alignment variables.
6939         (expand_one_stack_var): Update all to expand_one_stack_var_at.
6940         (defer_stack_allocation): True for large alignment vars.
6941         (update_stack_alignment): Merge into ...
6942         (expand_one_var): ... here.
6943         (gimple_expand_cfg): Place code from expand_stack_vars.
6944
6945 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6946
6947         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6948         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
6949         (pdp11_function_arg_advance): New function.
6950         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6951
6952 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6953
6954         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
6955         * libgcc2.c: Likewise.
6956
6957 2010-10-09  Richard Guenther  <rguenther@suse.de>
6958
6959         PR lto/45956
6960         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
6961         Properly check if a decl is an automatic var.
6962
6963 2010-10-09  Richard Guenther  <rguenther@suse.de>
6964
6965         PR lto/45947
6966         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
6967
6968 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6969
6970         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
6971         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6972         * config/mmix/mmix.c (mmix_function_arg): Rename to...
6973         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
6974         bool arguments.
6975         (mmix_function_arg): New function.
6976         (mmix_function_incoming_arg): New function.
6977         (mmix_function_arg_advance): New function.
6978         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6979         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6980
6981 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6982
6983         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6984         * config/vax/vax.c (vax_function_arg): New function.
6985         (vax_function_arg_advance): New function.
6986         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6987
6988 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6989
6990         * config/pa/pa-protos.h (function_arg): Delete.
6991         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6992         * config/pa/pa.c (function_arg): Rename to...
6993         (pa_function_arg): ...this.  Make static.  Take a const_tree and
6994         a bool.
6995         (pa_function_arg_advance): New function.
6996         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6997
6998 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6999
7000         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7001         * config/m68k/m68k.c (m68k_function_arg): New function.
7002         (m68k_function_arg_advance): New function.
7003         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7004
7005 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7006
7007         * config/avr/avr-protos.h (function_arg): Delete.
7008         (function_arg_advance): Delete.
7009         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7010         * config/avr/avr.c (function_arg): Rename to...
7011         (avr_function_arg): ...this.  Make static.  Take a const_tree and
7012         a bool.
7013         (function_arg_advance): Rename to...
7014         (avr_function_arg_advance): ...this.  Make static.  Take a
7015         const_tree and a bool.
7016         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7017
7018 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7019
7020         * config/alpha/alpha-protos.h (function_arg): Delete.
7021         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7022         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7023         * config/alpha/alpha.c (function_arg): Rename to...
7024         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
7025         a bool.  Delete TARGET_ABI_UNICOSMK code.
7026         (alpha_function_arg_advance): New function.
7027         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7028
7029 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7030
7031         * config/mep/mep-protos.h (mep_function_arg): Delete.
7032         (mep_function_arg_advance): Delete.
7033         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7034         * config/mep/mep.c (mep_function_arg): Make static.  Take a
7035         const_tree and a bool.
7036         (mep_function_arg_advance): Likewise.
7037         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7038
7039 2010-10-09  Richard Guenther  <rguenther@suse.de>
7040
7041         PR tree-optimization/45945
7042         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
7043
7044 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
7045
7046         PR tree-optimization/45612
7047         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
7048         Test LABEL_DECLs as well.  Fix formatting issues.
7049         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
7050         whose label is present in NON_SSA_VARS.
7051         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
7052         as well.  Fix formatting issues.
7053         (visit_bb): Fix typos and formatting issue.
7054
7055 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7056
7057         PR tree-optimization/45950
7058         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
7059         before initializing vno->op.
7060
7061 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
7062
7063         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
7064         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
7065
7066 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
7067
7068         PR target/45913
7069         * config/i386/i386.c (ix86_binary_operator_ok): Support
7070         "andhi/andsi/anddi" as a zero-extending move.
7071
7072 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7073
7074         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
7075         into a temporary array.
7076
7077 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
7078
7079         PR tree-optimization/45903
7080         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
7081         of {A,L}SHIFTRT of MEM.
7082
7083 2010-10-08  Richard Guenther  <rguenther@suse.de>
7084
7085         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7086         Re-construct BLOCK_VARS.
7087         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
7088         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7089         * tree.c (free_lang_data_in_block): Remove.
7090         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
7091         Do not touch the BLOCK tree.
7092         * expr.c (expand_expr_real_1): Allow externals.
7093
7094 2010-10-08  Richard Guenther  <rguenther@suse.de>
7095
7096         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
7097         Do not output BLOCK_SUBBLOCKS.
7098         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
7099         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
7100         Re-construct BLOCK_SUBBLOCKS of parent block.
7101         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
7102         for BINFO_BASE_ACCESSES.
7103
7104 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
7105
7106         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
7107         (TREE_H): Include $(FLAGS_H) instead of options.h.
7108         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
7109         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7110         * common.opt (flag_complex_method, flag_evaluation_order,
7111         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
7112         Variable declarations.
7113         * configure.ac (tm_include_list): Include flags.h instead of options.h.
7114         * configure: Regenerate.
7115         * flags.h: Condition out contents for target libraries.  Include
7116         options.h at end of file.
7117         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
7118         flag_evaluation_order, flag_warn_unused_result): Remove.
7119         * gcc.c (main): Intialize global_options with global_options_init.
7120         * langhooks-def.h (lhd_init_options_struct): Declare.
7121         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7122         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
7123         * langhooks.c (lhd_init_options_struct): New.
7124         * langhooks.h (struct lang_hooks): Add init_options_struct.
7125         Update comment on init_options.
7126         * optc-gen.awk: Generate initializer for global_options_init, not
7127         global_options.
7128         * opth-gen.awk: Condition out structure declarations for target
7129         libraries.  Declare global_options_init.
7130         * opts-common.c: Include flags.h instead of options.h.
7131         * opts.c (flag_warn_unused_result): Remove.
7132         (read_cmdline_options): Take gcc_options parameters.  Pass them to
7133         read_cmdline_option.
7134         (initial_lang_mask, initial_min_crossjump_insns,
7135         initial_max_fields_for_field_sensitive,
7136         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
7137         (init_options_once): New.  Split out of decode_options.
7138         (init_options_struct): New.  Split out of decode_options.
7139         (decode_cmdline_options_to_array_default_mask): New.
7140         (default_options_optimization): New.  Split out of decode_options.
7141         (decode_options): Move most code to other functions.  Update call
7142         to read_cmdline_options.
7143         (finish_options): New.  Split out of decode_options.
7144         * opts.h (decode_options): Add gcc_options parameters.
7145         (init_options_once, init_options_struct,
7146         decode_cmdline_options_to_array_default_mask): New.
7147         * toplev.c (flag_complex_method, flag_ira_algorithm,
7148         flag_ira_region, flag_evaluation_order): Remove.
7149         (general_init): Use global_options_init for initial flag values
7150         for global_dc.
7151         (toplev_main): Call init_options_once, init_options_struct,
7152         lang_hooks.init_options_struct,
7153         decode_cmdline_options_to_array_default_mask and
7154         lang_hooks.init_option before decode_options.  Update arguments to
7155         decode_options.
7156         * tree.h: Include flags.h instead of options.h.
7157
7158 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7159
7160         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7161
7162 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7163
7164         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
7165         Delete.
7166         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
7167         (FUNCTION_INCOMING_ARG): Delete.
7168         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
7169         (function_arg_slotno): Likewise.  Take bool arguments.
7170         (sparc_arg_partial_bytes): Update call to it.
7171         (function_arg): Rename to...
7172         (sparc_function_arg_1): ...this.  Take bool arguments.
7173         (sparc_function_arg, sparc_function_incoming_arg): New functions.
7174         (function_arg_advance): Rename to...
7175         (sparc_function_arg_advance): ...this.  Take bool argument.
7176         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
7177         (TARGET_FUNCTION_INCOMING_ARG): Define.
7178
7179 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7180
7181         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
7182         Delete.
7183         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7184         * config/bfin/bfin.c (function_arg_advance): Rename to...
7185         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
7186         and bool arguments.
7187         (function_arg): Rename to...
7188         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
7189         arguments.
7190         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7191
7192 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7193
7194         * config/score/score-protos.h (score_function_arg): Delete.
7195         (score_function_arg_advance): Delete.
7196         * config/score/score3.h (score3_function_arg_advance): Take a
7197         const_tree and a bool.
7198         (score3_function_arg): Likewise.
7199         * config/score/score7.h (score7_function_arg_advance): Likewise.
7200         (score7_function_arg): Likewise.
7201         * config/score/score3.c (score3_classify_arg): Likewise.
7202         (score3_function_arg_advance, score3_function_arg): Likewise.
7203         * config/score/score7.c (score7_classify_arg): Likewise.
7204         (score7_function_arg_advance, score7_function_arg): Likewise.
7205         * config/score/score.c (score_function_arg_advance): Likewise.
7206         (score_function_arg): Likewise.  De-const-ify `cum' argument.
7207         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7208
7209 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7210
7211         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
7212         (s390_function_arg): Delete.
7213         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7214         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
7215         (s390_function_arg_integer): Likewise.
7216         (s390_function_arg_advance): Make static.  Take a const_tree and
7217         a bool.
7218         (s390_function_arg): Likewise.
7219         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7220
7221 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7222
7223         * config/spu/spu-protos.h (spu_function_arg): Delete.
7224         * config/spu/spu.h (FUNCTION_ARG): Delete.
7225         (FUNCTION_ARG_ADVANCE): Move code to ...
7226         * config/spu/spu.c (spu_function_arg_advance): New function.
7227         (spu_function_arg): Make static.  Take a const_tree and a bool.
7228         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
7229         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7230
7231 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7232
7233         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7234
7235 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7236
7237         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
7238         (init_vn_nary_op_from_op): New function.
7239         (init_vn_nary_op_from_stmt): New function.
7240         (vn_nary_op_lookup_1): New function.
7241         (sizeof_vn_nary_op): New function.
7242         (alloc_vn_nary_op_noinit): New function.
7243         (alloc_vn_nary_op): New function.
7244         (vn_nary_op_insert_into): New function.
7245         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
7246         (vn_nary_op_lookup): Likewise.
7247         (vn_nary_op_lookup_stmt): Likewise.
7248         (vn_nary_op_insert_pieces): Likewise.
7249         (vn_nary_op_insert): Likewise.
7250         (vn_nary_op_insert_stmt): Likewise.
7251         (copy_nary): Likewise.
7252         (set_value_id_for_result): New function.
7253         (set_hashtable_value_ids): Call it.
7254
7255 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7256
7257         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7258         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
7259
7260 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7261
7262         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
7263         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7264
7265 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
7266
7267         PR debug/45656
7268         * cse.c (cse_extended_basic_block): Preserve cc0 info across
7269         debug isnsn.  Skip them when searching for cc0 setter.
7270         (set_live_p): Skip debug insns when searching for cc0 user.
7271
7272 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
7273
7274         PR debug/45673
7275         PR debug/45604
7276         PR debug/45419
7277         PR debug/45408
7278         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
7279         type of MEM_REFs to INTEGER_CSTs.
7280
7281 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
7282
7283         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
7284         m68hc11_print_operand_address.
7285
7286 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
7287
7288         * builtins.c (rewrite_call_expr): Move code to...
7289         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
7290         (rewrite_call_expr_array): New function.
7291         (fold_builtin_sprintf_chk_1): New function.
7292         (fold_builtin_sprintf_chk): Call it.
7293         (gimple_fold_builtin_sprintf_chk): Likewise.
7294         (fold_builtin_snprintf_chk_1): New function.
7295         (fold_builtin_snprintf_chk): Call it.
7296         (gimple_fold_builtin_snprintf_chk): Likewise.
7297         (gimple_rewrite_call_expr): Delete.
7298
7299 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7300
7301         * config.host: Update copyright year.
7302
7303 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7304
7305         * config.host (host_lto_plugin_soname): New shell variable.
7306         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
7307         * config.in: Regenerate.
7308         * configure: Regenerate.
7309         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
7310         LTO plugin shared library.
7311
7312 2010-10-07  Richard Henderson  <rth@redhat.com>
7313
7314         * target.h (enum unwind_info_type): Move ...
7315         * coretypes.h: ... here.
7316
7317 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
7318
7319         * doc/objc.texi (Fast enumeration protocol): Mention that
7320         'unsigned int' can also be used instead of 'unsigned long' in
7321         countByEnumeratingWithState:objects:count:.
7322
7323 2010-10-07  Martin Jambor  <mjambor@suse.cz>
7324
7325         * tree-sra.c (struct access): New field grp_assignment_write.
7326         (dump_access): Dump grp_assignment_write.
7327         (build_accesses_from_assign): Set grp_assignment_write.
7328         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
7329         (mark_read_status): Renamed to mark_rw_status, individual values
7330         renamed too.
7331         (analyze_access_subtree): Changed type of mark_write to
7332         mark_read_status.  Fixed propagating of mark_read and
7333         mark_write.  Changed benefit estimate.  Updated comment.
7334
7335 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
7336
7337         PR Tree-Vect/45847
7338         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
7339         check for vectype_out returned by get_vectype_for_scalar_type().
7340
7341 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
7342
7343         PR target/45805
7344         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
7345         constraint, add register specifier in instruction template.
7346         (neon_vec_pack_trunc_<mode>): Likewise.
7347         (neon_vec_<US>mult_<mode>): Add register specifier to
7348         instruction template.
7349
7350 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7351
7352         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
7353         cygwin2.o.
7354         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
7355         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
7356         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
7357         (cygwin2.o): Likewise.
7358         * config/i386/cygwin1.c: Delete file.
7359         * config/i386/cygwin2.c: Likewise.
7360         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
7361         make all {%!mno-cygwin} ones unconditional.
7362         (STARTFILE_SPEC): Likewise.
7363         (REAL_LIBGCC_SPEC): Likewise.
7364         (LIB_SPEC): Likewise.
7365         (CXX_WRAP_SPEC): Likewise.
7366         (LINK_SPEC): Likewise.
7367         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
7368         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
7369         (cygwin_gplusplus_include_dir): Delete now-unused array.
7370         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
7371         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
7372         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
7373         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
7374         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
7375         (cygwin_local_include_dir): Delete now-unused array.
7376         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
7377         (cygwin_cross_include_dir): Delete now-unused array.
7378         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
7379         (cygwin_tool_include_dir): Delete now-unused array.
7380         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
7381         (cygwin_standard_include_dir): Delete now-unused array.
7382         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
7383         (GEN_CVT_ARRAY): Delete now-unused macro definition.
7384         (cvt_to_mingw): Delete now-unused array.
7385         (mingw_scan): Remove prototype of deleted function.
7386         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
7387         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
7388         * doc/invoke.texi (-mcygwin): Don't document removed option.
7389         (-mno-cygwin): Likewise.
7390
7391 2010-10-07  Richard Guenther  <rguenther@suse.de>
7392
7393         * machmode.h (mode_for_vector): Declare.
7394         * stor-layout.c (mode_for_vector): New function, split out from ...
7395         (layout_type): ... here.
7396         * tree-vectorizer.h (current_vector_size): Declare.
7397         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
7398         mask vector type is available.
7399         (get_vectype_for_scalar_type): Rename to ...
7400         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
7401         size argument.
7402         (get_vectype_for_scalar_type): New wrapper around
7403         get_vectype_for_scalar_type_and_size using current_vector_size.
7404         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
7405         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
7406         of vect_analyze_loop here.
7407         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
7408         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
7409         to autodetect.
7410         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
7411         V8SF to V8SI conversion builtin.
7412
7413 2010-10-07  Richard Guenther  <rguenther@suse.de>
7414
7415         * target.def (autovectorize_vector_sizes): New target hook.
7416         * targhooks.c (default_autovectorize_vector_sizes): New function.
7417         * targhooks.h (default_autovectorize_vector_sizes): Declare.
7418         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
7419         Document.
7420         * doc/tm.texi: Update.
7421         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
7422         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7423
7424 2010-10-07  Richard Guenther  <rguenther@suse.de>
7425
7426         * target.def (units_per_simd_word): Rename to ...
7427         (preferred_simd_mode): ... this.  Return mode instead of size.
7428         * targhooks.c (default_units_per_simd_word): Rename to ...
7429         (default_preferred_simd_mode): ... this.  Return word_mode.
7430         * targhooks.h (default_preferred_simd_mode): Declare.
7431         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
7432         (arm_preferred_simd_mode): ... this.  Re-implement.
7433         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
7434         (ix86_preferred_simd_mode): ... this.  Re-implement.
7435         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
7436         (sparc_preferred_simd_mode): ... this.  Re-implement.
7437         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
7438         (mips_preferred_simd_mode): ... this.  Re-implement.
7439         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
7440         (rs6000_preferred_simd_mode): ... this.  Re-implement.
7441         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
7442         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
7443         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
7444         * doc/tm.texi: Update.
7445
7446 2010-10-07  Richard Guenther  <rguenther@suse.de>
7447
7448         PR middle-end/45869
7449         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
7450         of pointers.
7451
7452 2010-10-07  Alan Modra  <amodra@gmail.com>
7453
7454         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
7455         rather than sign extension by hand.
7456
7457 2010-10-07  Jan Hubicka  <jh@suse.cz>
7458
7459         PR middle-end/45926
7460         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
7461
7462 2010-10-07  Richard Guenther  <rguenther@suse.de>
7463
7464         PR bootstrap/45914
7465         * configure.ac: Fix typo.
7466         * configure: Regenerated.
7467
7468 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7469
7470         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
7471         define_builtin_std where it's unnecessary.
7472         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
7473
7474 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
7475
7476         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
7477         * doc/tm.texi.in: Regenerate.
7478         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
7479         * targhooks.c (default_class_likely_spilled_p): Don't use the
7480         CLASS_LIKELY_SPILLED_P macro.
7481
7482         * config/arm/arm.md: Update comment.
7483
7484 2010-10-06  Jan Hubicka  <jh@suse.cz>
7485
7486         * ipa.c (cgraph_remove_unreachable_nodes): External references can
7487         always be removed.
7488         (cgraph_externally_visible_p): We can not bring local comdats that
7489         are known to linker; fix handling of internal visibility.
7490         (function_and_variable_visibility): Likewise.
7491
7492 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
7493
7494         PR rtl-optimization/45394
7495         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
7496         (struct rtx_subst_pair): Remove AFTER field.
7497         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
7498         (propagate_for_debug): Remove MOVE parameter and adjust.
7499         (try_combine): In the special case where I2 is a PARALLEL, combine only
7500         destinations of SETs and set I2SRC to the I2 source.
7501         Adjust calls to propagate_for_debug throughout.
7502         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
7503         insns.
7504
7505 2010-10-06  Olivier Hainque  <hainque@adacore.com>
7506
7507         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
7508         switch on insn codes as sequence of ifs.
7509
7510 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
7511
7512         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
7513         be UI_NONE for picochip.
7514         (picochip_option_override): Do not disable exception flags.
7515         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
7516         Declare.
7517
7518 2010-10-06  Richard Guenther  <rguenther@suse.de>
7519
7520         * Makefile.in (regmove.o): Depend on $(TARGET_H).
7521
7522 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7523
7524         Implemented fast enumeration for Objective-C.
7525         * c-parser.c (objc_could_be_foreach_context): New.
7526         (c_lex_one_token): Recognize RID_IN keyword in a potential
7527         Objective-C foreach context.
7528         (c_parser_declaration_or_fndef): Added parameter.  Accept
7529         Objective-C RID_IN keyword as terminating a declaration; in that
7530         case, return the declaration in the new parameter.
7531         (c_parser_extenral_declaration): Updated calls to
7532         c_parser_declaration_or_fndef.
7533         (c_parser_declaration_or_fndef): Same change.
7534         (c_parser_compound_statement_nostart): Same change.
7535         (c_parser_label): Same change.
7536         (c_parser_objc_methodprotolist): Same change.
7537         (c_parser_omp_for_loop): Same change.
7538         (c_parser_for_statement): Detect and parse Objective-C foreach
7539         statements.
7540         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
7541         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
7542         fast enumeration parsing code to turn off the c99 error but still
7543         perform checks on the loop declarations.
7544         * c-tree.h (check_for_loop_decls): Updated declaration.
7545         * doc/objc.texi: Document fast enumeration.
7546
7547 2010-10-06  Nick Clifton  <nickc@redhat.com>
7548
7549         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
7550         (MDR_REGNUM): Define.
7551         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
7552         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
7553         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
7554         (REGISTER_NAMES): Add MDR.
7555         (DWARF2_DEBUGGING_INFO): Define to 1.
7556         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7557         (F): New function.  Sets RTX_FRAME_RELATED_P.
7558         (mn10300_gen_multiple_store): Use F.
7559         (expand_prologue): Use F.  Use gen_movsf() to push floating
7560         point registers.
7561         (expand_epilogue): Use gen_movsf() to pop floating point registers.
7562         (mn10300_option_override): Disable combine stack adjust pass.
7563
7564 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
7565
7566         PR target/45901
7567         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
7568         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
7569
7570 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
7571
7572         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
7573         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
7574         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
7575         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
7576         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
7577         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
7578         BUILT_IN_TOUPPER): Mark as leaf.
7579
7580         PR middle-end/45838
7581         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
7582         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
7583         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
7584         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
7585         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
7586         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
7587         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
7588
7589 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
7590
7591         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
7592         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7593         (m68hc11_class_likely_spilled_p): New function.
7594
7595 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
7596
7597         * c-parser.c (c_parser_objc_method_definition): Updated comment.
7598
7599 2010-10-05  Jan Hubicka  <jh@suse.cz>
7600
7601         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
7602         Document.
7603         * opts.c (decode_options): Handle lto partitions.
7604         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
7605         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
7606
7607 2010-10-05  Jan Hubicka  <jh@suse.cz>
7608
7609         * cgraphunit.c (assemble_function): Output thunks and aliases before
7610         the function itself.
7611
7612 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7613
7614         * config/picochip/picochip.c (picochip_option_override): Disable
7615         exception flags for picochip.
7616
7617 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
7618
7619         * opts-common.c (handle_option, handle_generated_option,
7620         read_cmdline_option, set_option): Add diagnostic_context
7621         parameter.  Update calls among these functions.
7622         (set_option): Don't use global_dc.
7623         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
7624         (decode_options): Pass global_dc to enable_warning_as_error.
7625         (common_handle_option): Pass global_dc to enable_warning_as_error.
7626         (enable_warning_as_error): Add diagnostic_context parameter.
7627         Document parameters.  Don't use global_dc.  Pass
7628         diagnostic_context parameter to handle_generated_option.
7629         * opts.h (set_option, handle_option, handle_generated_option,
7630         read_cmdline_option, enable_warning_as_error): Add
7631         diagnostic_context parameter.
7632         * Makefile.in (lto-opts.o): Update dependencies.
7633         * coretypes.h (struct diagnostic_context, diagnostic_context):
7634         Declare here.
7635         * diagnostic.h (diagnostic_context): Don't declare typedef here.
7636         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
7637         * langhooks-def.h (struct diagnostic_context): Don't declare here.
7638         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
7639         using diagnostic_context typedef.
7640         * langhooks.c (lhd_initialize_diagnostics): Declare using
7641         diagnostic_context typedef.
7642         * langhooks.h (struct diagnostic_context): Don't declare here.
7643         (initialize_diagnostics, print_error_function): Declare using
7644         diagnostic_context typedef.
7645         * lto-opts.c: Include diagnostic.h.
7646         (lto_reissue_options): Pass global_dc to set_option.  Pass
7647         DK_UNSPECIFIED not 0.
7648         * plugin.c (plugins_internal_error_function): Declare using
7649         diagnostic_context typedef.
7650         * plugin.h (struct diagnostic_context): Don't declare here.
7651         (plugins_internal_error_function): Declare using
7652         diagnostic_context typedef.
7653
7654 2010-10-05  Olivier Hainque  <hainque@adacore.com>
7655             Nicolas Roche  <roche@adacore.com>
7656
7657         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
7658         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
7659
7660 2010-10-05  Ira Rosen  <irar@il.ibm.com>
7661
7662         PR tree-optimization/45752
7663         * tree-vect-slp.c (vect_get_mask_element): Remove static
7664         variables, make them function arguments.
7665         (vect_transform_slp_perm_load): Pass new arguments to
7666         vect_get_mask_element.
7667
7668 2010-10-05  Richard Guenther  <rguenther@suse.de>
7669
7670         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
7671         (gimple_mod_pow2): Likewise.
7672         (gimple_mod_subtract): Likewise.
7673         (gimple_ic): Likewise.
7674         (gimple_stringop_fixed_value): Likewise.
7675         * tree-profile.c (tree_init_edge_profiler): Mark profile
7676         functions nothrow and leaf.
7677         (add_abnormal_goto_call_edges): Remove.
7678         (tree_gen_edge_profiler): Work on SSA form.
7679         (tree_gen_ic_profiler): Likewise.  Simplify.
7680         (do_tree_profiling): Update SSA form.
7681         (pass_tree_profile): Remove.
7682         (do_tree_profiling): Likewise.
7683         (gate_tree_profile_ipa): New function.
7684         (pass_ipa_tree_profile): New.
7685         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
7686         state of instrumented functions.
7687         * passes.c (init_optimization_passes): Remove early non-SSA
7688         inlining.  Move profiling after early optimizations.
7689         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
7690         (pass_ipa_early_inline): Likewise.
7691         * tree-pass.h (pass_ipa_early_inline): Remove.
7692         (pass_tree_profile): Likewise.
7693         (pass_ipa_tree_profile): Declare.
7694
7695 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7696             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
7697
7698         * config/s390/s390.c (z196_cost): New.
7699         (s390_handle_arch_option): Add -march=z196.
7700         (s390_option_override): Use the new cost function and use the z10
7701         defaults also for z196.
7702         (legitimate_reload_constant_p): Adjust comment.
7703         (legitimate_reload_fp_constant_p): New function.
7704         (s390_preferred_reload_class): Distingiush between FP and Int constants.
7705         (preferred_la_operand_p): Avoid la with index on z196.
7706         (s390_adjust_priority): Trigger also for z196.
7707         (s390_issue_rate): Issue rate for z196 is 3.
7708         (s390_z10_fix_long_loop_prediction): Rename to ...
7709         (s390_fix_long_loop_prediction): ... this.
7710         (s390_reorg): Apply the z10 adjustments also for z196.
7711         (s390_loop_unroll_adjust): Do this also for z196.
7712         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
7713         (enum processor_flags): Add PF_Z196.
7714         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
7715         (TARGET_CPU_Z196, TARGET_Z196): New macros.
7716         * config.gcc: Enable z196 for --with-arch.
7717         * config/s390/2817.md: New file.
7718         * config/s390/2084.md: New type for multiply and add.
7719         * config/s390/2097.md: Likewise.
7720         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
7721         (UNSPECV_ATOMIC_OP): New constants.
7722         (fmadddf, fmaddsf): New values for type attribute.
7723         (z196prop): New insn attribute.
7724         (cpu, cpu_facility): Add z196.
7725         (ATOMIC_Z196): New code iterator.
7726         (noxa): New code attribute.
7727         (gk): New mode attribute.
7728         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
7729         Support load zero for fp constants.
7730         (fixuns_truncdddi2, fixuns_trunctddi2)
7731         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
7732         for z196.
7733         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
7734         (popcounthi2, popcountqi2): New expander.
7735         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
7736         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
7737         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
7738         insn definition.
7739         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
7740         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
7741         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
7742         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
7743         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
7744         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
7745         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
7746         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
7747         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
7748         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
7749         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
7750         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
7751         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
7752         Support new z196 instructions.
7753
7754 2010-10-05  Richard Guenther  <rguenther@suse.de>
7755
7756         PR middle-end/45877
7757         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
7758         case where gimplification optimizes away the stmt.
7759
7760 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7761
7762         PR debug/45849
7763         * var-tracking.c (strip_pointer_flags): New function.
7764         (emit_note_insn_var_location): If rtx_equal_p check failed,
7765         retry on locations simplified with simplify_replace_fn_rtx
7766         and strip_pointer_flags as its callback.
7767
7768 2010-10-04  Jan Hubicka  <jh@suse.cz>
7769
7770         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
7771         (can_refer_decl_in_current_unit_p): ... this one; reverse return
7772         value; handle comdats too.
7773         (canonicalize_constructor_val): Use it; handle function_decls
7774         correctly.
7775         (gimple_fold_obj_type_ref_known_binfo): Likewise.
7776         * gimple.c (get_base_address): Accept all kinds of decls.
7777
7778 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7779
7780         * flags.h (g_switch_value, g_switch_set): Remove.
7781         * opts.c (g_switch_value, g_switch_set): Remove.
7782         * config/g.opt (G): Add Var(g_switch_value).
7783         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
7784         (alpha_option_override): Check global_options_set.x_g_switch_value
7785         instead of g_switch_set.
7786         (alpha_in_small_data_p): Remove cast in comparison with
7787         g_switch_value.
7788         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
7789         g_switch_value to unsigned HOST_WIDE_INT.
7790         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
7791         with g_switch_value.
7792         (frv_handle_option): Don't handle -G here.
7793         (frv_option_override): Check global_options_set.x_g_switch_value
7794         instead of g_switch_set.  Don't modify g_switch_set.
7795         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
7796         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
7797         g_switch_value to unsigned HOST_WIDE_INT.
7798         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
7799         (ia64_option_override): Check global_options_set.x_g_switch_value
7800         instead of g_switch_set.
7801         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
7802         Remove.
7803         (lm32_in_small_data_p): Remove cast in comparison with
7804         g_switch_value.
7805         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
7806         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
7807         HOST_WIDE_INT.
7808         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
7809         (m32r_init): Check global_options_set.x_g_switch_value instead of
7810         g_switch_set.
7811         (m32r_in_small_data_p): Remove cast in comparison with
7812         g_switch_value.
7813         (m32r_file_start): Format g_switch_value with %d.
7814         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
7815         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
7816         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
7817         handle -G here.
7818         (microblaze_option_override): Check
7819         global_options_set.x_g_switch_value instead of g_switch_set.
7820         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
7821         (mips_option_override): Check global_options_set.x_g_switch_value
7822         instead of g_switch_set.
7823         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
7824         (rs6000_file_start): Format g_switch_value with %d.
7825         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
7826         comparisons with g_switch_value.
7827         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7828         global_options_set.x_g_switch_value instead of g_switch_set.
7829         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7830         global_options_set.x_g_switch_value instead of g_switch_set.
7831         * config/score/score.c (score_handle_option): Don't handle -G here.
7832         * config/score/score3.c (score3_option_override): Check
7833         global_options_set.x_g_switch_value instead of g_switch_set.
7834         * config/score/score7.c (score7_option_override): Check
7835         global_options_set.x_g_switch_value instead of g_switch_set.
7836
7837 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7838
7839         * common.opt (fira-coalesce): Remove.
7840
7841         * doc/invoke.texi (flag_ira_coalesce): Remove.
7842
7843         * ira-color.c (allocno_coalesced_p): Move before
7844         copy_freq_compare_func.
7845         processed_coalesced_allocno_bitmap): Ditto.
7846         (update_conflict_hard_regno_costs): Don't use
7847         ALLOCNO_FIRST_COALESCED_ALLOCNO.
7848         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
7849         (assign_hard_reg): Assume no coalesced allocnos.
7850         (get_coalesced_allocnos_attributes): Remove.
7851         (bucket_allocno_compare_func): Assume no coalesced allocnos.
7852         (push_allocno_to_stack): Ditto.
7853         (remove_allocno_from_bucket_and_push): Use
7854         ira_print_expanded_allocno instead of print_coalesced_allocno.
7855         (push_allocnos_to_stack): Assume uncoalesced allocnos.
7856         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
7857         all_conflicting_hard_regs.
7858         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
7859         (setup_allocno_left_conflicts_size): Ditto.
7860         (put_allocno_into_bucket): Ditto.
7861         (copy_freq_compare_func): Remove.
7862         (copy_freq_compare_func, merge_allocnos): Move before
7863         coalesced_pseudo_reg_freq_compare.
7864         coalesced_allocno_conflict_p): Ditto.
7865         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
7866         parameter.  Assume it true.
7867         (color_allocnos): Assume uncoalesced allocnos.  Use
7868         ira_print_expanded_allocno instead of print_coalesced_allocno.
7869         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
7870         parameter.
7871
7872         * ira.c: Remove comment about coalescing.
7873
7874 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7875
7876         * config/mips/mips.h (target_flags_explicit): Declare for
7877         GENERATOR_FILE.
7878
7879 2010-10-04  Andi Kleen  <ak@linux.intel.com>
7880
7881         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
7882         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
7883
7884 2010-10-04  Matthias Klose  <doko@ubuntu.com>
7885
7886         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
7887         multilib osdirname if it exists.
7888         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
7889
7890 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7891
7892         PR middle-end/45876
7893         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
7894         arg0's type or its unsigned counterpart as utype.  Convert
7895         arg1 to utype unconditionally.
7896
7897 2010-10-04  Julian Brown  <julian@codesourcery.com>
7898
7899         * expr.c (expand_assignment): Add assertion to prevent emitting
7900         null rtx for movmisalign pattern.
7901         (expand_expr_real_1): Likewise.
7902         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
7903         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
7904         (arm_vector_alignment_reachable): New.
7905         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
7906         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
7907         (arm_print_operand): Include alignment qualifier in %A.
7908         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
7909         (movmisalign<mode>): New expander.
7910         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
7911         insn patterns.
7912
7913 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7914
7915         * optc-gen.awk: Define global_options_set.  Don't define
7916         target_flags_explicit.
7917         * opth-gen.awk: Declare global_options_set.  Define
7918         target_flags_explicit as macro.
7919         * opts-common.c (handle_option): Take opts_set and generated_p
7920         parameters.
7921         (handle_generated_option, read_cmdline_option, set_option): Take
7922         opts_set parameter.
7923         (set_option): Use opts_set instead of hardcoding target_flags and
7924         target_flags_explicit.
7925         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
7926         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
7927         flag_value_profile_transformations_set, flag_peel_loops_set,
7928         flag_branch_probabilities_set, flag_inline_functions_set,
7929         flag_ipa_cp_set, flag_ipa_cp_clone_set,
7930         flag_predictive_commoning_set, flag_unswitch_loops_set,
7931         flag_gcse_after_reload_set): Remove.
7932         (common_handle_option, lang_handle_option, target_handle_option):
7933         Take opts_set parameter.  Assert that it is &global_options_set.
7934         (common_handle_option): Don't set _set variables.  Check opts_set
7935         instead of such variables.
7936         (enable_warning_as_error): Pass &global_options_set to
7937         handle_generated_option.
7938         * opts.h (cl_option_handler_func.handler, set_option,
7939         handle_option, handle_generated_option, read_cmdline_option): Add
7940         opts_set parameters.
7941         (handle_option): Add generated_p parameter.
7942         * config/i386/i386.c (ix86_function_specific_save,
7943         ix86_function_specific_restore): Updat for renaming of
7944         target_flags_explicit field.
7945         * config/i386/i386.opt (target_flags_explicit): Rename to
7946         ix86_target_flags_explicit.
7947         * config/ia64/ia64.c (ia64_override_options_after_change): Check
7948         global_options_set.x_flag_selective_scheduling and
7949         global_options_set.x_flag_selective_scheduling2, not
7950         sel_sched_switch_set.
7951         * flags.h (sel_sched_switch_set,
7952         flag_speculative_prefetching_set): Remove.
7953         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
7954         that it is &global_options_set.
7955         (process_command): Pass &global_options_set to read_cmdline_option.
7956         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
7957         set_option.
7958         * toplev.c (target_flags_explicit): Remove.
7959
7960 2010-10-04  Jan Hubicka  <jh@suse.cz>
7961
7962         PR middle-end/45871
7963         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
7964         use get_ref_base_and_offset to handle references.
7965         (fold_const_aggregate_ref): Update.
7966
7967 2010-10-04  Martin Jambor  <mjambor@suse.cz>
7968
7969         PR tree-optimization/45572
7970         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
7971         ipa_check_create_node_params.
7972         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
7973
7974 2010-10-04  Yao Qi  <yao@codesourcery.com>
7975
7976         * doc/passes.texi: Clean up.
7977
7978 2010-10-03  Ian Lance Taylor  <iant@google.com>
7979
7980         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
7981         referring to a field using a typedef name.
7982         (find_anonymous_field_with_type): New static function.
7983         (convert_to_anonymous_field): New static function.
7984         (convert_for_assignment): If -fplan9-extensions, permit converting
7985         pointer to struct to pointer to anonymous field.
7986         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
7987         (is_duplicate_field): New static function.
7988         (detect_field_duplicates_hash): If -fplan9-extensions, check for
7989         typedef names duplicating field names.
7990         (detect_field_duplicates): Likewise.
7991         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
7992         (C Dialect Options): Document -fplan9-extensions.
7993         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
7994
7995 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
7996
7997         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
7998         revision 164914.
7999         (vect_create_data_ref_ptr): Likewise.
8000         * tree-vect-stmts.c (vectorizable_store): Likewise.
8001         (perm_mask_for_reverse): Likewise.
8002         (reverse_vec_elements): Likewise.
8003         (vectorizable_load): Likewise.
8004
8005 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8006
8007         * cppbuiltin.c: New file.
8008         * cppbuiltin.h: New file.
8009         * Makefile.in: Take into account cppbuiltin.{h,c}.
8010
8011 2010-10-03  Andi Kleen  <ak@linux.intel.com>
8012
8013         * lto-cgraph.c (input_cgraph): Check for missing sections.
8014
8015 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
8016
8017         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
8018         to nonimmediate_operand.  Force operand 2 to register when allowed.
8019         (*<shiftrt_insn><mode>3_mask): Ditto.
8020         (*<rotate_insn><mode>3_mask): Ditto.
8021
8022 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
8023
8024         PR tree-optimization/45720
8025         PR tree-optimization/45764
8026         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8027         Don't accept backwards consecutive accesses.
8028         (vect_create_data_ref_ptr): Disallow negative steps.
8029
8030         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8031         (perm_mask_for_reverse): Removed.
8032         (reverse_vec_elements): Likewise.
8033         (vectorizable_load): Don't handle negative steps.
8034
8035 2010-10-02  Jan Hubicka  <jh@suse.cz>
8036
8037         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8038         call destination is known.
8039
8040 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8041
8042         PR target/45820
8043         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
8044         earlier.
8045
8046 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8047
8048         * doc/install.texi (Configuration): Document build_configargs,
8049         host_configargs, target_configargs.
8050
8051 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
8052
8053         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
8054         (*<shiftrt_insn><mode>3_mask): Ditto.
8055         (*<rotate_insn><mode>3_mask): Ditto.
8056
8057 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
8058
8059         PR tree-optimization/44716
8060         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
8061         (HOT_TEXT_SECTION_NAME): Define.
8062
8063 2010-10-01  Nick Clifton  <nickc@redhat.com>
8064
8065         * common.opt: Add -fcombine-stack-adjustments.
8066         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
8067         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
8068         flag_combine_stack_adjustments.
8069         * doc/invoke.texi: Document the new option.
8070
8071 2010-10-01  Richard Guenther  <rguenther@suse.de>
8072
8073         PR tree-optimization/45854
8074         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
8075
8076 2010-10-01  Anthony Green  <green@moxielogic.com>
8077
8078         * config.gcc: Fix moxie-*-rtems* configuration.
8079
8080 2010-10-01  Richard Guenther  <rguenther@suse.de>
8081
8082         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
8083         (gen_decl_die): Likewise.
8084
8085 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8086
8087         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
8088         to the function code for SPU MD builtins.
8089         (spu_expand_builtin): Update.
8090         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
8091
8092 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8093
8094         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
8095         sjlj_except_unwind_info.
8096
8097 2010-10-01  Tristan Gingold  <gingold@adacore.com>
8098
8099         * configure.ac: Define the nop insn for avr*-*-*
8100         * configure: Regenerate.
8101
8102 2010-10-01  Alan Modra  <amodra@gmail.com>
8103
8104         PR target/45807
8105         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
8106         extend toc_restore_insn.
8107
8108 2010-09-30  Richard Guenther  <rguenther@suse.de>
8109
8110         PR tree-optimization/43959
8111         * function.c (gimplify_parameters): Use create_tmp_reg instead of
8112         create_tmp_var.
8113
8114 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8115
8116         * config/sh/sh.c (sh_expand_prologue): Set
8117         current_function_static_stack_size.
8118
8119 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8120
8121         * configure.ac: Check for Solaris 8 ld with .hidden support.
8122         * configure: Regenerate.
8123
8124 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8125
8126         PR middle-end/45758
8127         * graphite.c (graphite_initialize): Call scev_reset.
8128
8129 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8130
8131         * sese.h (scev_analyzable_p): Return false for real or floating
8132         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
8133
8134 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8135
8136         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
8137         and ps.
8138         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
8139         domain.
8140         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
8141         Do not allocate ub_expr, it is passed in initialized.
8142
8143 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8144
8145         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
8146         (build_cloog_prog): Dump CLooG input file when
8147         flag_graphite_dump_cloog is set.  This is disabled on trunk.
8148         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
8149
8150 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8151
8152         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
8153         verify_dominators for CDI_POST_DOMINATORS.
8154         * sese.h: Remove comment about CDI_POST_DOMINATORS.
8155         (recompute_all_dominators): Remove call to free_dominance_info
8156         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
8157         for CDI_POST_DOMINATORS.
8158
8159 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8160
8161         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
8162         over pbb_dim_iter_domain.
8163
8164 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8165
8166         * graphite-flattening.c: Fix comments.
8167
8168 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8169
8170         * Makefile.in (OBJS-common): Add graphite-flattening.o.
8171         (graphite-flattening.o): New rule.
8172         * common.opt (floop-flatten): New flag.
8173         * doc/invoke.texi (-floop-flatten): Documented.
8174         * graphite-flattening.c: New.
8175         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
8176         * graphite-poly.h (flatten_all_loops): Declared.
8177         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
8178         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
8179         is set, also set flag_graphite.
8180
8181 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8182
8183         * graphite-poly.c (cloog_checksum): New.
8184         * graphite-poly.h (cloog_checksum): Declared.
8185
8186 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8187
8188         * graphite-poly.c (pbb_number_of_iterations): Removed.
8189         (pbb_number_of_iterations_at_time): Correctly compute the number
8190         of iterations in the transformed loop.
8191         * graphite-poly.h (pbb_number_of_iterations): Removed.
8192
8193 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8194
8195         * graphite-poly.h (lst_update_scattering_seq): Removed.
8196         (lst_update_scattering): Correctly handle outermost loop dewey
8197         renumbering.
8198
8199 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8200
8201         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
8202         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
8203         * graphite-poly.h (lst_niter_for_loop): New.
8204
8205 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8206
8207         * graphite-poly.c (apply_poly_transforms): Do not abort when the
8208         transform read from disk is not legal.  Call fatal_error instead.
8209
8210 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8211
8212         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
8213         (print_scop_header): Removed.  Inlined in the only call place...
8214         (print_scop): ... here.
8215
8216 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8217
8218         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
8219
8220 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8221
8222         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
8223
8224 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8225
8226         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
8227         (dot_deps_stmt): Same.
8228         * graphite-poly.c (dot_lst): Same.
8229
8230 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8231
8232         * graphite-blocking.c (scop_do_strip_mine): Do not call
8233         graphite_legal_transform.
8234         (scop_do_block): Same.
8235
8236 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
8237
8238         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
8239         description.
8240
8241 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8242
8243         * tree-scalar-evolution.c (instantiate_array_ref): New.
8244         (instantiate_scev_r): Also handle ARRAY_REFs.
8245
8246 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8247
8248         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8249         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
8250         RESULT_DECL, and FIELD_DECL.  Return false for an
8251         SSA_NAME_IS_DEFAULT_DEF.
8252         (compute_scalar_evolution_in_loop): Do not further analyze the
8253         scalar evolution when no_evolution_in_loop_p returns true.
8254
8255 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8256
8257         * tree-chrec.h (evolution_function_is_affine_p): Do not check
8258         whether CHREC_LEFT is invariant.  A function is affine when
8259         CHREC_RIGHT is invariant.
8260
8261 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8262
8263         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
8264         is_gimple_reg.
8265         (rewrite_degenerate_phi): Same.
8266         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
8267
8268 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
8269
8270         * graphite-scop-detection.c (graphite_can_represent_scev,
8271         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
8272         graphite_can_represent_loop): Remove outermost_loop.
8273
8274 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8275
8276         PR middle-end/45229
8277         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
8278         handle GIMPLE_CALLs with no LHS.
8279
8280 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8281
8282         * graphite-poly.c (init_graphite_out_file): New.
8283         (init_graphite_in_file): New.
8284         (apply_poly_transforms): Updated to enable reading and writing of
8285         multiple scop files.
8286
8287 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
8288
8289         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
8290         redundant checks.
8291
8292 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8293
8294         * graphite-clast-to-gimple.c (precision_for_value): Adjust
8295         computation of precision by 1.
8296
8297 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8298
8299         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
8300         (openscop_read_polyhedron_matrix): New.
8301         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
8302         (openscop_read_N_int): Same.
8303         * graphite-poly.c (openscop_read_N_int): New.
8304         (openscop_read_one_int): New.
8305         (openscop_read_N_string): New.
8306         (openscop_read_one_string): New.
8307         (openscop_read_powerset_matrix): New.
8308         (graphite_read_transforms): Remove.
8309         (graphite_read_scatt): New.
8310         (graphite_read_scop_file): New.
8311         (apply_poly_transforms): Updated to call graphite_read_scop_file.
8312
8313 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8314
8315         * graphite-poly.c: Change include order.
8316
8317 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8318
8319         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
8320         (cloog_matrix_nrows): New.
8321
8322 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8323
8324         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
8325         from matrix lines.
8326         * graphite-poly.c (openscop_print_scattering_function_1): Same.
8327         (print_scattering_function_1): Same.
8328         (openscop_print_pbb_domain): Same.
8329         (openscop_print_scop_context): Same.
8330         (print_scop_context): Same.
8331
8332 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
8333
8334         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
8335         (openscop_print_pdr_polyhedron): Print pph.
8336
8337 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8338
8339         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
8340         priority signed types.
8341
8342 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8343
8344         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
8345         the call to lang_hooks.types.type_for_size.  Call
8346         build_nonstandard_integer_type.
8347
8348 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8349
8350         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
8351         (openscop_print_polyhedron_matrix): New.
8352         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
8353         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
8354         (openscop_print_pdr_powerset): New.
8355         (openscop_print_powerset_matrix): New.
8356         (openscop_print_scattering_function_1): New.
8357         (print_scattering_function): Add support for scattering names and
8358         OpenScop format.
8359         (graphite_write_transforms): Remove.
8360         (print_pdr_access_layout): Updated to support OpenScop format.
8361         (print_pdr): Same.
8362         (openscop_print_pbb_domain): New.
8363         (print_pbb_body): Added a parameter to allow indicating that pbb_body
8364         is not provided.
8365         (print_pbb): Updated to call the new print_pbb_body.
8366         (openscop_print_scop_context): New.
8367         (print_scop_header): New.
8368         (print_scop): Updated to call print_scop_header.
8369         * graphite-poly.h: Document OpenScop format.
8370
8371 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
8372
8373         * config/cris/m32c.c (cris_memory_move_cost): New.
8374         (cris_register_move_cost): Make static. Change arguments type from
8375         enum reg_class to reg_class_t.
8376         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8377         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8378         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
8379
8380 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
8381
8382         PR target/45843
8383         * config/i386/i386.c (ix86_gimplify_va_arg): Use
8384         INTVAL (XEXP (slot, 1)) as prev_size.
8385
8386 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
8387
8388         PR target/45837
8389         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
8390         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
8391         defined.
8392         * config/rs6000/option-defaults.h (toplevel): Change #if
8393         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
8394         global option changes.
8395
8396 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
8397
8398         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
8399
8400         PR tree-optimization/31261
8401         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
8402         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
8403
8404 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8405
8406         PR bootstrap/45796
8407         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
8408         special-casing for generators and turn into ...
8409         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
8410         rule, for better error messages in case of toplevel dependency errors.
8411         (genprog): Add hooks, rename to ...
8412         (genprogerr): ... this, and let genprog also contain check,
8413         checksum, condmd.
8414         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
8415         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
8416         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
8417
8418 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
8419             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8420
8421         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
8422         for GMP, MPFR and MPC.
8423
8424 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8425
8426         * config/sparc/sparc.opt (mimpure-text): Move ...
8427         * config/sol2.opt: ... here.  Correct description.
8428         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
8429         * doc/invoke.texi (Option Summary, SPARC Options): Move
8430         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
8431         (Option Summary, Solaris 2 Options): ... here.
8432         (Submodel Options, Solaris 2 Options): New menu entry.
8433         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
8434         (Solaris 2 Options): ... here.
8435
8436 2010-09-30  Michael Eager  <eager@eagercon.com>
8437
8438         * extend.texi (interrupt_handler): Add MicroBlaze to list.
8439         (save_volatiles): Describe option for MicroBlaze.
8440         * invoke.texi: Add MicroBlaze Options.
8441         * contrib.texi: Add acknowledgment.
8442         * md.texi: Add MicroBlaze d and z constraints.
8443         * install.texi: Add microblaze-*-elf.
8444         * configure.ac: Add microblaze-*-* to target list.
8445         * configure: Regenerate.
8446         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
8447         * config/microblaze/microblaze-protos.h: New.
8448         * config/microblaze/crti.s: New.
8449         * config/microblaze/predicates.md: New.
8450         * config/microblaze/linux.h: New.
8451         * config/microblaze/microblaze.md: New.
8452         * config/microblaze/constraints.md: New.
8453         * config/microblaze/crtn.s: New.
8454         * config/microblaze/microblaze.opt: New.
8455         * config/microblaze/microblaze-c.c: New.
8456         * config/microblaze/t-microblaze: New.
8457         * config/microblaze/microblaze.c: New.
8458         * config/microblaze/microblaze.h: New.
8459
8460 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
8461
8462         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
8463         parse @optional/@required and set the flags as appropriate.
8464
8465 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
8466
8467         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
8468
8469 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
8470
8471         * opt-functions.awk (static_var): Update comment.
8472         (var_ref): Return offsetof expression or -1, not variable address.
8473         * optc-gen.awk: Generate structure field initializers instead of
8474         static variables.  Expect -1 for missing variables instead of null
8475         pointer.  Add gcc_options parameters to generated functions.
8476         * opth-gen.awk: Generate structure fields for static variables.
8477         Add gcc_options parameters to generated functions.
8478         * common.opt (optimize, optimize_size): Add variables.
8479         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
8480         &global_options to cl_target_option_restore.
8481         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
8482         &global_options to cl_optimization_restore, cl_target_option_save
8483         and cl_target_option_restore.
8484         (ix86_set_current_function): Pass &global_options to
8485         cl_target_option_restore.
8486         * config/pdp11/pdp11.h (optimize): Remove.
8487         * config/rs6000/rs6000.h (optimize): Remove.
8488         * config/sh/sh.h (optimize): Remove.
8489         * config/xtensa/xtensa.h (optimize): Remove.
8490         * coretypes.h (struct gcc_options): Declare.
8491         * diagnostic.c (diagnostic_initialize): Initialize
8492         context->option_state.
8493         (diagnostic_report_diagnostic): Pass option_state to
8494         option_enabled hook.
8495         * diagnostic.h (diagnostic_context.option_enabled): Add void *
8496         parameter.
8497         (diagnostic_context.option_state): New field.
8498         * final.c (final_start_function, final, final_scan_insn): Rename
8499         optimize parameter to optimize_p.
8500         * flags.h (optimize, optimize_size): Remove.
8501         * function.c (invoke_set_current_function_hook): Pass
8502         &global_options to cl_optimization_restore.
8503         * gcc.c (driver_handle_option): Take gcc_options parameter.
8504         Assert that it is &global_options.
8505         (process_command): Pass &global_options to read_cmdline_option.
8506         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
8507         option_enabled.
8508         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
8509         &global_options to set_option.
8510         * opts-common.c (handle_option, handle_generated_option,
8511         read_cmdline_option, set_option): Take explicit gcc_options
8512         parameters.  Use option_flag_var.
8513         (option_flag_var): New.
8514         * opts.c (common_handle_option, lang_handle_option,
8515         target_handle_option): Take gcc_options parameter.  Assert that it
8516         is &global_options.
8517         (read_cmdline_options): Pass &global_options to read_cmdline_option.
8518         (print_filtered_help): Use option_flag_var.  Pass &global_options
8519         to option_enabled.
8520         (common_handle_option): Use option_flag_var.
8521         (option_enabled): Take opts parameter.  Use option_flag_var.
8522         (get_option_state): Take gcc_options parameter.  Use
8523         option_flag_var.  Pass gcc_options parameter to option_enabled.
8524         (enable_warning_as_error): Pass &global_options to
8525         handle_generated_option.
8526         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
8527         (cl_option_handler_func.handler): Take gcc_options parameter.
8528         (option_enabled, get_option_state, set_option, handle_option,
8529         handle_generated_option, read_cmdline_option): Take gcc_options
8530         parameters.
8531         * toplev.c (optimize, optimize_size): Remove.
8532         (print_switch_values): Pass &global_options to option_enabled.
8533         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
8534         to get_option_state.
8535         (general_init): Initialize global_dc->option_state.
8536         * tree.c (build_optimization_node): Pass &global_options to
8537         cl_optimization_save.
8538         (build_target_option_node): Pass &global_options to
8539         cl_target_option_save.
8540
8541 2010-09-30  Martin Jambor  <mjambor@suse.cz>
8542
8543         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
8544         zero sized bit-fields.
8545
8546 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
8547
8548         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
8549         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
8550         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
8551         (c_parser_objc_class_declaration): Same change.
8552         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
8553         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8554         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
8555         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
8556         and RID_AT_PUBLIC instead of RID_PUBLIC.
8557         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
8558         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8559
8560 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
8561
8562         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
8563         Add links to current providers of packages for Solaris and IRIX.
8564
8565 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8566
8567         Merge from 'apple/trunk' branch on FSF servers.
8568         * c-parser.c: Applied change originally in c-parse.in.
8569
8570         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
8571
8572         Radar 4281748
8573         * c-decl.c (start_decl): Check for redeclaration of class name.
8574         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
8575
8576 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
8577
8578         * config/ia64/ia64.c (ia64_builtin_decl): New.
8579         (TARGET_BUILTIN_DECL): Define.
8580         (ia64_builtins): New.
8581         (ia64_init_builtins): Save decls in ia64_builtins.
8582
8583 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
8584
8585         PR target/40457
8586         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
8587         (move2add_use_add3_insn): Likewise.
8588         (reload_cse_move2add): Likewise.
8589         * rtlanal.c (get_full_rtx_cost): New function.
8590         * rtl.h (struct full_rtx_costs): New.
8591         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
8592         costs_add_n_insns): New inline functions.
8593         (get_full_rtx_cost): Declare.
8594
8595         PR c/45054
8596         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
8597         invariants.  Check for reg_equiv_invariant.
8598         (reload): Assert that spilled_pseudos is empty when returning.
8599
8600 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
8601
8602         * config/i386/mingw32.h (TARGET_64BIT): replaced by
8603         TARGET_64BIT_DEFAULT in #if check.
8604
8605 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
8606
8607         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
8608
8609 2010-09-29  Mike Stump  <mikestump@comcast.net>
8610
8611         * config/darwin.h (flag_mkernel): Remove.
8612         (flag_apple_kext): Likewise.
8613
8614 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8615             Jack Howarth  <howarth@bromo.med.uc.edu>
8616
8617         * config/darwin.opt (undefined): Add.
8618
8619 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
8620
8621         PR testsuite/45664
8622         * configure.ac: Add --enable-indirect-function option.
8623         * config.gcc: Add default_gnu_indirect_function.
8624         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
8625         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
8626         * varasm.c (do_assemble_alias): Adjust for macro name change.
8627         * configure: Rebuilt.
8628         * doc/install.texi: Document --enable-indirect-function.
8629
8630 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8631
8632         * doc/options.texi (Variable, Var, Init): Update documentation
8633         without reference to VarExists.
8634         (VarExists): Remove.
8635         * common.opt, config/i386/i386.opt, config/linux.opt,
8636         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
8637         Don't use VarExists.
8638
8639 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8640
8641         * optc-gen.awk: Generate global_options initializer instead of
8642         individual variables.  Add x_ prefix to names of structure members.
8643         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
8644         names of structure members.
8645         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8646         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
8647         * doc/tm.texi: Regenerate.
8648         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8649         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8650         * c-parser.c (disable_extension_diagnostics,
8651         restore_extension_diagnostics): Update names of cpp_options members.
8652         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8653         * common.opt (fcompare-debug-second): Don't use Var.
8654         * config/alpha/alpha.h (target_flags): Remove.
8655         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8656         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8657         * config/bfin/bfin.h (target_flags): Remove.
8658         * config/cris/cris.h (target_flags): Remove.
8659         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
8660         cl_target_option members.
8661         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
8662         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
8663         ix86_can_inline_p): Update names of cl_target_option members.
8664         * config/i386/i386.h (ix86_isa_flags): Remove.
8665         * config/lm32/lm32.h (target_flags): Remove.
8666         * config/mcore/mcore.h (mcore_stack_increment): Remove.
8667         * config/mcore/mcore.md (addsi3): Remove extern declaration of
8668         flag_omit_frame_pointer.
8669         * config/mep/mep.h (target_flags): Remove.
8670         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8671         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8672         * config/mmix/mmix.h (target_flags): Remove.
8673         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
8674         flag_expensive_optimizations): Remove.
8675         * config/s390/s390.h (flag_pic): Remove.
8676         * config/score/score-conv.h (target_flags): Remove.
8677         * config/sh/sh.h (sh_fixed_range_str): Remove.
8678         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
8679         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8680         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8681         * diagnostic.c (diagnostic_initialize): Update names of
8682         diagnostic_context members.
8683         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
8684         warn_system_headers.
8685         (diagnostic_report_warnings_p): Update for new names.
8686         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8687         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
8688         HARD_FRAME_POINTER_IS_ARG_POINTER.
8689         * flags.h (flag_compare_debug): Declare.
8690         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8691         * opts.c (flag_compare_debug): Define.
8692         (common_handle_option): Update names of diagnostic_context
8693         members.  Handle -fcompare-debug-second.
8694         (fast_math_flags_struct_set_p): Update names of cl_optimization
8695         members.
8696         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8697         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8698         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8699         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8700         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8701         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8702         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
8703         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8704         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8705
8706 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8707
8708         * config/picochip/picochip.c (picochip_output_internal_label):
8709         This function can now be called for debug CFI labels, which can come
8710         in the middle of a vliw instruction.  Postpone until end of vliw.
8711
8712 2010-09-29  Richard Guenther  <rguenther@suse.de>
8713
8714         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
8715         (DECL_FILE_SCOPE_P): Use it.
8716         (TYPE_FILE_SCOPE_P): New macro.
8717
8718 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8719
8720         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
8721         a CPP_NAME which is a reserved word, clearly separate cases for
8722         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
8723
8724 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8725
8726         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
8727         token->value with the canonical spelling.  Do exactly like C and
8728         C++ and leave it as it is.
8729
8730 2010-09-28  Richard Henderson  <rth@redhat.com>
8731
8732         * config/alpha/alpha.c (alpha_builtins): New.
8733         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
8734         (alpha_builtin_function): New.
8735         (alpha_add_builtins, alpha_init_builtins): Use it.
8736
8737 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
8738
8739         * doc/standards.texi (Standards): Expanded the section on
8740         Objective-C and Objective-C++.
8741
8742 2010-09-28  DJ Delorie  <dj@redhat.com>
8743
8744         PR target/45800
8745         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
8746         volatile MEMs.
8747
8748 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
8749
8750         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
8751         attributes on methods.
8752          (c_parser_objc_method_definition): Handle attributes.
8753         (c_parser_objc_methodproto): Likewise.
8754         (c_parser_objc_maybe_method_attributes): New.
8755         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
8756         missing definition, similar to that in ObjC++.
8757
8758 2010-09-28  Richard Henderson  <rth@redhat.com>
8759
8760         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
8761         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8762         (CONFIG_SJLJ_EXCEPTIONS): Remove.
8763         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
8764         (STACK_CHECK_PROTECT): Likewise.
8765         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
8766         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
8767         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
8768         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
8769         (dwarf2out_assembly_start): Likewise.
8770         * except.c (init_eh): Use targetm.except_unwind_info.
8771         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
8772         (output_one_function_exception_table): Likewise.
8773         * final.c: Unconditionally include dwarf2out.h.
8774         (final_start_function): Unconditionally call dwarf2out routines.
8775         (final_end_function, final_scan_insn): Likewise.
8776         * function.c (expand_function_end): Use targetm.except_unwind_info.
8777         * opts.c (decode_options): Use targetm.except_unwind_info.
8778         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
8779         * target.def (debug_unwind_info, except_unwind_info): New.
8780         * target.h (enum unwind_info_type): New.
8781         * targhooks.c (default_debug_unwind_info): New.
8782         (default_except_unwind_info): New.
8783         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
8784         * targhooks.h: Declare them.
8785         * tree-tailcall.c: Include "target.h"
8786         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
8787         * Makefile.in (tree-tailcall.o): Update.
8788         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
8789         (lhd_gcc_personality): Likewise.
8790
8791         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
8792         (TARGET_EXCEPT_UNWIND_INFO): New.
8793         (DWARF2_UNWIND_INFO): Update.
8794         (TARGET_DEBUG_UNWIND_INFO): New.
8795         * doc/tm.texi: Rebuild.
8796
8797         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
8798         targetm.except_unwind_info.
8799
8800         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
8801         (arm_except_unwind_info): New.
8802         (arm_compute_func_type): Use it.
8803         (arm_expand_prologue, thumb_pushpop): Likewise.
8804         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
8805         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
8806         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
8807         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
8808         (DWARF2_UNWIND_INFO): Remove.
8809         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8810         (ARM_EABI_UNWIND_TABLES): Remove.
8811
8812         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
8813         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
8814         (ia64_except_unwind_info): New.
8815         (ia64_output_function_prologue): Use it.
8816         (ia64_add_bundle_selector_before): Likewise.
8817         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
8818         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
8819         (TARGET_UNWIND_INFO): Remove.
8820
8821         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
8822
8823 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
8824
8825         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
8826         (c_parser_objc_protocol_definition): Likewise.
8827         (c_parser_external_declaration): Provide dummy attribute arguments.
8828         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
8829         (c_parser_objc_class_definition): Handle attributes.
8830         (c_parser_objc_protocol_definition): Likewise.
8831
8832 2010-09-28  Tobias Burnus  <burnus@net-b.de>
8833
8834         PR fortran/40569
8835         PR fortran/40568
8836         * toplev.h (save_decoded_options, save_decoded_options_count):
8837         New global variables.
8838         * toplev.c (save_decoded_options, save_decoded_options_count):
8839         Export variables.
8840
8841 2010-09-28  Ian Lance Taylor  <iant@google.com>
8842
8843         * config/i386/i386.c (ix86_supports_split_stack): Test
8844         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
8845
8846 2010-09-28  Ian Lance Taylor  <iant@google.com>
8847
8848         PR target/45815
8849         * opts.c (decode_options): Don't test whether the target supports
8850         split stack if flag_split_stack == 0.
8851
8852 2010-09-28  Jan Hubicka  <jh@suse.cz>
8853
8854         * builtin-attrs.def (ATTR_LEAF): New attribute.
8855         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
8856         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
8857         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
8858         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
8859         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
8860         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
8861         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
8862         * sync-builtins.def: Annotate all builtins by leaf.
8863         * omp-builtins.def: Annotate all builtins by leaf.
8864         * builtins.def: Annotate relevant builtins with leaf attribute.
8865         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
8866         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
8867         leaf.
8868
8869 2010-09-28  Jan Hubicka  <jh@suse.cz>
8870
8871         * tree-ssa-ccp.c (fold_ctor_reference): New function.
8872         (fold_const_aggregate_ref): Use it.
8873         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
8874         into external static.
8875
8876 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8877
8878         PR target/44452
8879         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
8880         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
8881         (ix86_solaris_return_in_memory): Remove.
8882         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
8883         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
8884         (TARGET_SUBTARGET_DEFAULT): Redefine.
8885         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
8886         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
8887         (TARGET_SUBTARGET_DEFAULT): Redefine.
8888         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
8889         -mvect8-ret-in-mem.
8890         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
8891
8892 2010-09-29  Alan Modra  <amodra@gmail.com>
8893
8894         PR target/45807
8895         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
8896         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
8897         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
8898         Delete.
8899         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
8900         (rs6000_emit_prologue): Don't just create frame save info for r2,
8901         actually save r2.
8902
8903 2010-09-28  Richard Henderson  <rth@redhat.com>
8904
8905         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
8906         when 8 bytes are requested.
8907
8908 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8909
8910         * config/avr/avr.c (expand_prologue): Set
8911         current_function_static_stack_size.
8912
8913 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8914
8915         * config/alpha/alpha.md: Change the initial condition of the
8916         probing loop.
8917
8918 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
8919
8920         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
8921         Split from *avx_<maxmin:code><mode>3.
8922         (*avx_<smaxmin:code><mode>3): Ditto.
8923         * config/i386/i386.md (maxmin): Remove code iterator.
8924
8925 2010-09-27  Ian Lance Taylor  <iant@google.com>
8926
8927         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
8928         requires assembler support for CFI directives.
8929
8930 2010-09-27  Richard Henderson  <rth@redhat.com>
8931
8932         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
8933
8934 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8935
8936         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
8937         that AFTER is not in the range FROM..TO, inclusive.
8938
8939 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8940             Bernd Schmidt  <bernds@codesourcery.com>
8941
8942         PR rtl-optimization/45792
8943         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
8944         If not all insns are to be merged, for each edge, stash the
8945         next candidate after the to-be-merged insns before doing the
8946         merge, and use them for the retry at the new insertion point.
8947         Handle CC0 targets when retrying.
8948
8949 2010-09-27  Ian Lance Taylor  <iant@google.com>
8950
8951         * common.opt (fsplit-stack): New option.
8952         * opts.c (decode_options): Set flag_split_stack to final value.
8953         * target.def (supports_split_stack): New hook.
8954         * gcc.c (STACK_SPLIT_SPEC): Define.
8955         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
8956         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
8957         (Code Gen Options): Document -fsplit-stack.
8958         * doc/extend.texi (Function Attributes): Mention no_split_stack.
8959         (Function Attributes): Document no_split_stack.
8960         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
8961         TARGET_SUPPORTS_SPLIT_STACK.
8962         * doc/tm.texi: Rebuild.
8963         * function.c (thread_prologue_and_epilogue_insns): If
8964         flag_split_stack, add split stack prologue.
8965         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
8966         * varasm.c (saw_no_split_stack): New static variable.
8967         (assemble_start_function): Set saw_no_split_stack if the function
8968         has the no_split_stack attribute.
8969         (file_end_indicate_split_stack): New function.
8970         * output.h (file_end_indicate_split_stack): Declare.
8971         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
8972         and function.
8973         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
8974         routines.
8975         * config/i386/i386.c (ix86_option_override_internal): Don't set
8976         expand_builtin_va_start to NULL if -fsplit-stack.
8977         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
8978         -fsplit-stack.
8979         (ix86_va_start): If -fsplit-stack, get overflow pointer from
8980         scratch register set by prologue.
8981         (ix86_code_end): If -fsplit-stack, call
8982         file_end_indicate_split_stack.
8983         (ix86_supports_split_stack): New static function.
8984         (SPLIT_STACK_AVAILABLE): Define.
8985         (split_stack_prologue_scratch_regno): New static function.
8986         (split_stack_fn): New static variable.
8987         (ix86_expand_split_stack_prologue): New function.
8988         (ix86_live_on_entry): New static function.
8989         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
8990         (output_pic_addr_const): Likewise.
8991         (i386_asm_output_addr_const_extra): Likewise.
8992         (ix86_expand_call): Change return type to rtx.  Return the new
8993         call instruction.
8994         (TARGET_SUPPORTS_SPLIT_STACK): Define.
8995         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8996         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
8997         (split_stack_prologue, split_stack_return): New insns.
8998         (split_stack_space_check): New insn.
8999         * config/i386/i386.h (struct machine_function): Add
9000         split_stack_varargs_pointer field.
9001         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
9002         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9003         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
9004         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9005         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
9006         Declare.
9007         (ix86_expand_call): Update declaration.
9008
9009 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9010
9011         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
9012         code.  Added byref, which was missing in the list of codes.
9013         Explain that enumeration values are encoded as the integer type
9014         that the compiler uses to store them.  Explain and make examples
9015         of how 'const' interacts with pointers, and the complication of
9016         the encoding of 'const char *'.
9017         (Legacy type encoding): New subsection, explaining that GCC emits
9018         incorrect type encodings for the NeXT runtime for compatibility
9019         reasons.
9020         (@@encode): New subsection, explaining @encode and particularly
9021         that protocol qualifiers are not recognized inside an @encode()
9022         expression.
9023         (Method signatures): New subsection, explaining how method
9024         signatures are encoded.
9025
9026 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9027
9028         Merge from 'apple/trunk' branch on FSF servers.  Removed small
9029         change in build_conditional_expr that had been added when fixing
9030         PR objc/27377 and which did the same check in a less complete way.
9031
9032         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
9033
9034         Radar 4229905
9035         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9036         looking for objective-c common pointer types.
9037
9038         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
9039
9040         Radar 4154928
9041         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
9042         use their ObjC common type.
9043
9044 2010-09-27  Richard Guenther  <rguenther@suse.de>
9045
9046         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
9047
9048 2010-09-27  Jie Zhang  <jie@codesourcery.com>
9049
9050         * print-tree.c (print_node): Print in-constant-pool.
9051
9052 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
9053
9054         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
9055         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
9056         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
9057         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
9058
9059 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9060
9061         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
9062         from pro_epilogue_adjust_stack_<mode>_{1,2}.
9063         (pro_epilogue_adjust_stack_<mode>_add): Rename from
9064         pro_epilogue_adjust_stack_<mode>_3.
9065         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
9066         renamed pro_epilogue_adjust_stack_{si,di}_add.
9067         (ix86_expand_prologue): Use indirect functions.  Update for renamed
9068         pro_epilogue_adjust_stack_{si,di}_sub.
9069
9070 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9071
9072         * config/i386/i386.md (movmsk_df): New insn.
9073         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
9074         sequence for TARGET_SSE_MATH.
9075
9076 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
9077
9078         * config/mips/mips.c (mips_builtin_decls): Declare.
9079         (mips_init_builtins): Store function declarations in
9080         mips_builtin_decls.
9081         (mips_builtin_decl): New function.
9082         (TARGET_BUILTIN_DECL): Define.
9083
9084 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
9085             Richard Henderson  <rth@redhat.com>
9086
9087         * config/i386/cygwin.asm: Include auto-host.h.
9088         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
9089         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
9090         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
9091         alignment code from the 64-bit path.  Use gas local labels.
9092         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
9093         from _di_2.  Remove the useless constant integer argument.
9094         (pro_epilogue_adjust_stack_<mode>_3): New.
9095         (allocate_stack_worker_probe_<mode>): Macroize from
9096         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
9097         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
9098         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
9099         (__chkstk_ms): New function.
9100         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
9101         * config/i386/t-interix: Likewise.
9102         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
9103         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9104         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
9105         * configure, config.in: Rebuild.
9106
9107 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9108
9109         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
9110         statements because of the return slot optimization.
9111
9112 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
9113
9114         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
9115         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
9116         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9117         (class_likely_spilled_p): Rename to...
9118         (avr_class_likely_spilled_p): ...this. Make static. Change argument
9119         type to reg_class_t.
9120
9121 2010-09-24  Jan Hubicka  <jh@suse.cz>
9122
9123         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
9124         (lto_symtab_resolve_symbols): Set it.
9125         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
9126         store resolution field in cgraph/varpool.
9127         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
9128         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
9129         (cgraph_dump_node): Drop used_from_object_file.
9130         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
9131         (cgraph_function_body_availability): Use decl_replaceable_p.
9132         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
9133         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
9134         cgraph_used_from_object_file_p.
9135         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
9136         cgraph_used_from_object_file_p.
9137         (resolution_used_from_other_file_p): New functoin.
9138         (cgraph_used_from_object_file_p): New predicate.
9139         * cgraph.h: Include plugin-api.h
9140         (struct cgraph_local_info): Remove used_from_object_file.
9141         (struct cgraph_node): Add resolution field.
9142         (struct varpool_node): Likewise; remove used_from_object_file;
9143         reove const_value_known.
9144         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
9145         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
9146         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
9147         varpool_used_from_object_file_p): Declare.
9148         (varpool_get_node, varpool_extra_name_alias): Update prototype.
9149         * tree.h (DECL_REPLACEABLE_P): Remove.
9150         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
9151         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
9152         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9153         input_overwrite_node, input_node, input_varpool_node): Stream
9154         resolution.
9155         * expr.c (expand_expr_real_1): Use const_value_known_p
9156         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
9157         const_value_known.
9158         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
9159         (function_and_variable_visibility): Set resolution for local vars
9160         and functions; use varpool_used_from_object_file_p.
9161         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
9162         static functions.
9163         (default_binds_local_p_1): Use resolutoin info.
9164         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
9165         * varpool.c (varpool_get_node): Constify.
9166         (const_value_known_p): Do not use vnode->const_value_known;
9167         use decl_replaceable_p.
9168         (varpool_finalize_decl): Do not set const_value_known.
9169         (cgraph_variable_initializer_availability): Use decl_replaceable_p
9170         (varpool_extra_name_alias): Return new node.
9171         (varpool_used_from_object_file_p): New function.
9172
9173 2010-09-24  Richard Henderson  <rth@redhat.com>
9174
9175         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
9176         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
9177         (do_spill): Use REG_CFA_OFFSET.
9178         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
9179         as appropriate.
9180         (ia64_expand_epilogue): Likewise.
9181         (process_set): Split into ...
9182         (process_cfa_adjust_cfa): this,
9183         (process_cfa_register): this,
9184         (process_cfa_offset): and this new function.
9185         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
9186         instead of REG_FRAME_RELATED_EXPR.
9187
9188 2010-09-24  Olivier Hainque  <hainque@adacore.com>
9189
9190         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
9191
9192 2010-09-24  Jan Hubicka  <jh@suse.cz>
9193
9194         * doc/extend.texi: (attribute leaf): Document.
9195         * tree.c (local_define_builtin): Handle ECF_LEAF.
9196         (build_common_builtin_nodes): Set ECF_LEAF where needed.
9197         * tree.h (ECF_LEAF): New.
9198         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
9199         overwrittable and unavailable functions.
9200         (ipa_init): Put all_module_statics into optimization_summary_obstack.
9201         (copy_global_bitmap): Do not copy all_module_statics.
9202         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
9203         (propagate): Handle overwritable and unavailable leaf functions;
9204         initialize global info for overwritable and unavailable leaf functions;
9205         do not free all module statics.
9206         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
9207         local statics.
9208         * calls.c (flags_from_decl_or_type): Handle leaf.
9209         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
9210         abnormal gotos.
9211
9212 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
9213
9214         * gengtype.c: Reindented.
9215         * gengtype.h: Reindented.
9216         * gengtype-parse.c: Reindented.
9217
9218 2010-09-24  Jan Hubicka  <jh@suse.cz>
9219
9220         PR tree-optimization/45738
9221         PR tree-optimization/45741
9222         * expr.c (string_constant): Allow CONST_DECL too;
9223         check that DECL_INITIAL is set.
9224         * varpool.c (const_value_known_p): Only look into VAR_DECL
9225         and CONST_DECL.
9226
9227 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
9228
9229         * common.opt (undef): New.
9230
9231 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
9232
9233         PR middle-end/45234
9234         * rtl.h (enum global_rtl_index): Add
9235         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
9236         (LAST_VIRTUAL_POINTER_REGISTER): Define.
9237         (virtual_preferred_stack_boundary_rtx,
9238         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
9239         (LAST_VIRTUAL_REGISTER): Increase by one.
9240         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
9241         instead of LAST_VIRTUAL_REGISTER.
9242         * function.c (instantiate_new_reg): Handle
9243         virtual_preferred_stack_boundary_rtx.
9244         * emit-rtl.c (init_virtual_regs): Handle
9245         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9246         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
9247         * explow.c (round_push): If crtl->preferred_stack_boundary
9248         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
9249         virtual_preferred_stack_boundary_rtx alignment instead of
9250         crtl->preferred_stack_boundary alignment.
9251         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
9252         macros.  Never decrease crtl->preferred_stack_boundary,
9253         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
9254         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
9255         stack_pointer_delta in dynamic allocation, even when size
9256         is constant.
9257         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
9258         macro.
9259         * print-rtl.c (print_rtx): Handle
9260         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9261         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
9262         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
9263         * config/frv/frv.c (frv_emit_movsi): Likewise.
9264         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
9265         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
9266         Likewise.
9267
9268         Revert:
9269         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9270
9271         PR middle-end/45234
9272         * calls.c (expand_call): Make sure that all variable sized
9273         adjustments are multiple of preferred stack boundary after
9274         stack alignment.
9275
9276 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
9277             Dominique Dhumieres  <dominiq@lps.ens.fr>
9278
9279         PR bootstrap/45751
9280         * config/darwin-driver.c (darwin_default_min_version):
9281         Adjust size passed to memcpy in two places.
9282
9283 2010-09-24  Richard Guenther  <rguenther@suse.de>
9284
9285         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
9286         Make sure to not call set_type_context with error_mark_node.
9287         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
9288
9289 2010-09-24  Richard Guenther  <rguenther@suse.de>
9290
9291         * Makefile.in (OBJS-onestep): Remove.
9292         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
9293         (libbackend.a): Remove onestep support.
9294         (libbackend.o): Remove.
9295         * configure.ac (--enable-intermodule): Remove.
9296         * configure: Regenerate.
9297
9298 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
9299
9300         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
9301         reaching the end of a block if it occurs at a DEBUG_INSN.
9302
9303 2010-09-09  Tristan Gingold  <gingold@adacore.com>
9304
9305         PR target/44242
9306         * config/vms/vms-crt0-64.c: Removed.
9307         * config/vms/vms-crt0.c: Removed.
9308         * config/vms/vms-psxcrt0-64.c: Removed.
9309         * config/vms/vms-psxcrt0.c: Removed.
9310         * config/vms/vms-ucrt0.c: New file.
9311         * config/vms/t-vms64: Removed.
9312         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
9313         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
9314         * config.gcc (alpha-dec-vms): Use t-vms.
9315
9316 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9317
9318         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
9319         underfull hbox in DVI output.
9320         (-fobjc-class-cxx-cdtors): Same change.
9321         (-fobjc-exceptions): Tidied up documentation.  Explain what the
9322         option does, but moved the (lenghty) description of the exception
9323         syntax into objc.texi.
9324         (-fobjc-gc): Explain that the option is not useful with the GNU
9325         runtime.
9326         (-fzero-link): Explain that the GNU runtime always works in
9327         "zero-link" mode.
9328         * doc/objc.texi: All sections: simplified @node declarations
9329         removing specification of next, previous, up node.
9330         (Objective-C): Updated introduction.
9331         (Garbage Collection): Updated.  The bohem-gc library is now
9332         included in gcc itself.  Mention that this section only applies to
9333         the GNU Objective-C runtime.
9334         (compatibility_alias): Small tidy up.
9335         (Exceptions): New section mostly containing text previously in the
9336         description of the -fobjc-exception command-line option.
9337         (Synchronization): Same.
9338
9339 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
9340
9341         * config/i386/i386.md (ix86_code_end): Move the initialization of
9342         xops array near the consumer.  Use AX_REG and SP_REG instead of
9343         numerical constants.
9344
9345 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9346
9347         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
9348         method [methodname]' for an Objective-C method instead of the less
9349         satisfactory 'too many arguments to function' (with no method name).
9350
9351 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
9352
9353         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
9354         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
9355         (execute_update_addresses_taken): Remove parameter.  Execute the
9356         optimization unconditionally.
9357         * passes.c (execute_function_todo): Call execute_update_addresses_taken
9358         unconditionally if TODO_rebuild_alias is set, else only when optimizing
9359         if TODO_update_address_taken is set.
9360
9361 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
9362
9363         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9364         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
9365         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9366         (arm_output_addr_const_extra): Make static.
9367
9368 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
9371         define as unspec_volatile.
9372         ("nops"): Define as unspec_volatile. Use fputs to write to
9373         asm_out_file directly.  Output NOPs on separate lines using while loop.
9374         * config/i386/i386.c (ix86_code_end): Use fputs to write to
9375         asm_out_file directly.  Output NOPs on separate lines using while loop.
9376
9377 2010-09-23  Richard Guenther  <rguenther@suse.de>
9378
9379         PR tree-optimization/45565
9380         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9381         Make sure to adjust the fndecl before replacing the stmt.
9382
9383 2010-09-23  Richard Guenther  <rguenther@suse.de>
9384
9385         PR middle-end/45750
9386         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
9387         gimplifying MEM_REF.
9388
9389 2010-09-23  Alan Modra  <amodra@gmail.com>
9390
9391         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
9392         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
9393
9394 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
9395
9396         PR rtl-optimization/44374
9397         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
9398         * df-core.c (df_set_bb_dirty): Set it.
9399         * ifcvt.c (find_memory): Remove function.
9400         (dead_or_predicable): Use can_move_insns_across.
9401         * df.h (can_move_insns_across): Declare function.
9402         * cfgcleanup.c (block_was_dirty): New static variable.
9403         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
9404         than df_get_bb_dirty.
9405         (try_head_merge_bb): New static function.
9406         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
9407         is set.
9408         * df-problems.c: Include "target.h"
9409         (df_simulate_find_uses): New static function.
9410         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
9411         (find_memory, find_memory_store): New static functions.
9412         (can_move_insns_across): New function.
9413         * Makefile.in (df-problems.o): Update dependencies.
9414
9415 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9416
9417         PR java/44095
9418         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
9419         is specified and the suffix of the file isn't ".c".
9420         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9421
9422 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9423
9424         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
9425         * doc/cppopts.texi: Fix markup of index entry.
9426         * doc/extend.texi (Constructing Calls): Fix markup of
9427         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
9428         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
9429         (Vague Linkage, C++ Attributes): Fix markup of index entries and
9430         keywords.
9431         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
9432         avoid long lines.
9433         (C Dialect Options, C++ Dialect Options, Warning Options)
9434         (Debugging Options, Spec Files, Darwin Options)
9435         (i386 and x86-64 Options, MIPS Options)
9436         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
9437         index entries, avoid abbreviations, allow URLs to wrap, avoid
9438         long lines, avoid overlong pages from long @itemx lists.
9439         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
9440         * doc/standards.texi (Standards): Likewise.
9441         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
9442
9443 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
9444
9445         * opts-common.c (prune_options): Make static.  Work with decoded
9446         options.
9447         (decode_cmdline_options_to_array): Call prune_options.  Don't
9448         resize option array here.
9449         * opts.h (prune_options): Remove prototype.
9450         * gcc.c (process_command): Take decoded options; don't call
9451         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
9452         (main): Call decode_cmdline_options_to_array here instead of
9453         prune_options.  Update call to process_command.
9454         * config/darwin-driver.c: Include opts.h.
9455         (darwin_default_min_version): Work with decoded options.  Don't
9456         handle -b or -V here.
9457         * config/darwin.h (darwin_default_min_version): Update prototype.
9458         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
9459         darwin_default_min_version.
9460         * config/i386/cygwin.h (mingw_scan): Update prototype.
9461         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
9462         * config/i386/cygwin1.c: Include opts.h.
9463         (mingw_scan): Work with decoded options.
9464         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
9465         * config/t-darwin (darwin-driver.o): Update dependencies.
9466
9467 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
9468
9469         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
9470         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
9471         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
9472         -force-link, -force-link=, -language, -language=,
9473         -library-directory, -library-directory=, -no-canonical-prefixes,
9474         -no-standard-libraries, -no-warnings, -optimize, -output,
9475         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
9476         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
9477         -print-file-name=, -print-libgcc-file-name,
9478         -print-multi-directory, -print-multi-lib,
9479         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
9480         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
9481         -profile, -save-temps, -shared, -specs, -specs=, -static,
9482         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
9483         symbolic): New.
9484         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
9485         * gcc.c (A Short Introduction to Adding a Command-Line Option):
9486         Remove comment.
9487         (cc1_options): Correct specs for passing down --help,
9488         --target-help and --help=*.  Add spec for passing down --version.
9489         (struct option_map, option_map, target_option_translations,
9490         translate_options): Remove.
9491         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
9492         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
9493         OPT_fhelp_ and OPT_ftarget_help.
9494         (process_command): Don't call translate_options.  Call
9495         decode_cmdline_options_to_array before checking for
9496         -no-canonical-prefixes using decoded options.
9497         * opts-common.c (tm.h): Update comment on #include.
9498         (find_opt): Allow abbreviations of long options.
9499         (struct option_map, option_map): New.
9500         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
9501         and -mno handling.
9502         (target_option_translations): New.
9503         (decode_cmdline_options_to_array): Handle
9504         TARGET_OPTION_TRANSLATE_TABLE in driver.
9505         * opts.c (common_handle_option): Don't handle OPT_fhelp,
9506         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
9507
9508 2010-09-22  Richard Guenther  <rguenther@suse.de>
9509
9510         * tree-inline.c (optimize_inline_calls): Schedule cleanups
9511         only if we inlined something.  Block compaction and conditional
9512         folding are done by cfg cleanup.  Schedule update-address-taken.
9513         (tree_function_versioning): Remove redundant call to number_blocks.
9514         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
9515         folding is done by cfg cleanup.
9516         * passes.c (init_optimization_passes): Remove update-address-taken
9517         pass after IPA inlining.
9518
9519 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
9520
9521         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
9522         to update conditions. Fix reg_mode[] check.
9523
9524 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
9525
9526         * config/picochip/picochip.md (movhicc): Use expand to check whether
9527         movhicc is available and split it after reload.
9528
9529 2010-09-22  Richard Guenther  <rguenther@suse.de>
9530
9531         * tree-ssanames.c (release_dead_ssa_names): Do not remove
9532         callee edges here.
9533         * passes.c (init_optimization_passes): Remove early CFG cleanup.
9534         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
9535         (pass_cleanup_cfg): Likewise.
9536         (execute_fixup_cfg): Cleanup.
9537         * tree-pass.h (pass_cleanup_cfg): Remove.
9538
9539 2010-09-22  Martin Jambor  <mjambor@suse.cz>
9540
9541         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
9542         builtins if it is true.
9543         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
9544         parameter.
9545
9546 2010-09-22  Martin Jambor  <mjambor@suse.cz>
9547
9548         * tree-sra.c (struct access): New field grp_no_warning.
9549         (create_access_replacement): Set TREE_NO_WARNING according to
9550          grp_no_warning.
9551         (create_artificial_child_access): Use build_ref_for_model and set
9552         grp_no_warning if build_user_friendly_ref_for_offset fails.
9553         (propagate_subaccesses_across_link): Likewise.
9554
9555 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9556
9557         PR target/35664
9558         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
9559         ('f'): Likewise.
9560
9561 2010-09-22  Tristan Gingold  <gingold@adacore.com>
9562
9563         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
9564
9565 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
9566
9567         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
9568         * config/i386/i386.c (decide_alg): Update for rename.
9569
9570 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
9571
9572         PR rtl-optimization/45739
9573         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
9574         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
9575
9576 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
9577
9578         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
9579         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
9580         Remove.
9581         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
9582         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9583
9584 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9585
9586         PR objc/23710
9587         * c-parser.c (c_parser_objc_method_definition): Check the return
9588         value of objc_start_method_definition and if false is returned,
9589         parse the method definition but emit no code.
9590
9591 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9592
9593         PR objc/25965
9594         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
9595         call objc_get_interface_ivars ().
9596
9597 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
9598
9599         PR target/45694
9600         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
9601         static chain-register is used for 64-bit.
9602
9603 2010-09-21  Richard Guenther  <rguenther@suse.de>
9604
9605         * dwarf2out.c (is_cu_die): New function.
9606         (add_pubtype): Use it.
9607         (gen_subprogram_die): Likewise.
9608         (gen_struct_or_union_type_die): Likewise.
9609         (dwarf2out_finish): Likewise.
9610         (comp_unit_die): Rename to ...
9611         (single_comp_unit_die): ... this.
9612         (comp_unit_die): New function lazily constructing and
9613         returning single_comp_unit_die.
9614         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
9615         base_type_die, subrange_type_die, modified_type_die,
9616         lower_bound_default, add_bound_info, add_prototyped_attribute,
9617         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
9618         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
9619         force_decl_die, gen_namespace_die, dwarf2out_decl,
9620         dwarf2out_start_source_file, dwarf2out_end_source_file,
9621         prune_unused_types, dwarf2out_finish): Use it.
9622         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
9623         the global list of translation-unit decls.
9624         (dwarf2out_init): Do not create single_comp_unit_die here.
9625         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
9626
9627 2010-09-21  Richard Guenther  <rguenther@suse.de>
9628
9629         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
9630         for bool for C++.
9631
9632 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
9633
9634         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
9635         (qhs_extenddi_cstr): Likewise.
9636         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
9637         them for the source operand.
9638
9639 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
9640
9641         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
9642         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
9643         (ix86_split_ashr): Ditto.
9644         (ix86_split_lshr): Ditto.
9645
9646 2010-09-21  Richard Guenther  <rguenther@suse.de>
9647
9648         PR tree-optimization/45580
9649         * tree-ssa-propagate.c (substitute_and_fold): Always replace
9650         regular uses.
9651         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
9652         virtuals fold the call into a regular indirect one.
9653
9654 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9655
9656         PR rtl-optimization/42775
9657         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
9658         scheduling is enabled.
9659
9660 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9661
9662         PR rtl-optimization/45728
9663         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
9664         gen_lowpart_common first and if that fails, force_reg first
9665         before calling gen_lowpart.
9666
9667         PR middle-end/45678
9668         * cfgexpand.c (expand_one_stack_var_at): Use
9669         crtl->max_used_stack_slot_alignment as max_align, instead
9670         of maximum of that and PREFERRED_STACK_BOUNDARY.
9671         Don't call update_stack_alignment.
9672
9673 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9674
9675         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
9676         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
9677         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
9678         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
9679         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
9680         (build_nonstandard_integer_type): Likewise.
9681         (build_range_type_1): New function, built from...
9682         (build_range_type): ...this.  Call build_range_type_1.
9683         (build_nonshared_range_type): New function.
9684         (build_array_type_1): New function, built from...
9685         (build_array_type: ...this.  Call build_array_type_1.
9686         (build_nonshared_array_type): New function.
9687         * tree.h (build_nonshared_range_type): Declare.
9688         (build_nonshared_array_type): Likewise.
9689
9690 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
9691
9692         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
9693         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9694         (arm_class_likely_spilled_p): New function.
9695
9696 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
9697
9698         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
9699         indirect functions.
9700         (ix86_split_ashl): Ditto.
9701         (ix86_split_ashr): Ditto.
9702         (ix86_split_lshr): Ditto.
9703         (ix86_adjust_counter): Ditto.
9704
9705 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
9706
9707         * c-family/c-common.h (constant_string_class): Documented with
9708         comment identical to the one already in c-common.c.
9709
9710 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9711
9712         * dwarf2out.c (any_cfis_emitted): New static variable.
9713         (add_fde_cfi): Set it.
9714         (dwarf2out_frame_debug): Clear it before processing,
9715         if it is set afterwards, flush any queued reg saves.
9716
9717         PR debug/45124
9718         * dwarf2out.c (add_accessibility_attribute): Assume
9719         DW_ACCESS_private as the default for dwarf_version > 2
9720         and DW_TAG_class_type parent.
9721         (gen_inheritance_die): Assume DW_ACCESS_public as the default
9722         for dwarf_version > 2 and parent other than DW_TAG_class_type.
9723
9724 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9725
9726         PR target/45726
9727         * arm.md (arm_movt): Only enable on machines with MOVT.
9728
9729 2010-09-20  Jie Zhang  <jie@codesourcery.com>
9730
9731         * config/arm/arm.c (arm_address_offset_is_imm): New.
9732         (arm_early_store_addr_dep): New.
9733         (arm_early_load_addr_dep): New.
9734         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
9735         (arm_early_load_addr_dep): Declare.
9736         (arm_address_offset_is_imm): Declare.
9737         * config/arm/cortex-m4.md: New file.
9738         * config/arm/cortex-m4-fpu.md: New file.
9739         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
9740         (attr generic_sched): Exclude cortexm4.
9741         (attr generic_vfp): Exclude cortexm4.
9742
9743 2010-09-20  Richard Guenther  <rguenther@suse.de>
9744
9745         PR middle-end/45704
9746         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
9747
9748 2010-09-20  Jan Hubicka  <jh@suse.cz>
9749
9750         PR tree-optimize/45605
9751         * cgraph.h (const_value_known_p): Declare.
9752         (varpool_decide_const_value_known): Remove.
9753         * tree-ssa-ccp.c (get_base_constructor): Use it.
9754         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
9755         * expr.c (string_constant): Likewise.
9756         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9757         * ipa.c (ipa_discover_readonly_nonaddressable_var,
9758         function_and_variable_visibility): Likewise.
9759         * gimplify.c (gimplify_call_expr): Likewise.
9760         * gimple-fold.c (get_symbol_constant_value): Likewise.
9761         * varpool.c (varpool_decide_const_value_known): Replace by...
9762         (const_value_known_p): ... this one; handle other kinds of DECLs
9763         too and work for automatic vars.
9764         (varpool_finalize_decl): Use const_value_known_p.
9765
9766 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9767
9768         PR target/45726
9769         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
9770
9771 2010-09-20  Richard Guenther  <rguenther@suse.de>
9772
9773         PR tree-optimization/45705
9774         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
9775
9776 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9777
9778         PR rtl-optimization/45695
9779         * combine.c (try_combine): When splitting a two set pattern,
9780         make sure the pattern which will be put into i2 doesn't use REGs
9781         or MEMs set by insns in between i2 and i3.
9782
9783 2010-09-19  Jan Hubicka  <jh@suse.cz>
9784
9785         PR lto/44246
9786         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
9787         processing same node twice.
9788
9789 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
9790
9791         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
9792         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9793         (bfin_class_likely_spilled_p): New function
9794
9795 2010-09-19  Ira Rosen  <irar@il.ibm.com>
9796
9797         PR tree-optimization/45714
9798         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
9799         created in vectorizable_call instead of the original statement in
9800         def stmt updates.
9801
9802 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
9803
9804         * config/i386/i386-protos.h (split_double_mode): New prototype.
9805         (split_di, split_ti): Remove prototypes.
9806         * config/i386/i386.c (split_double_mode): New function.
9807         (split_di, split_ti): Remove.
9808         (ix86_expand_branch): Use split_double_mode.
9809         (ix86_split_to_parts): Ditto.
9810         (ix86_split_ashl): Ditto.
9811         (ix86_split_ashr): Ditto.
9812         (ix86_split_lshr): Ditto.
9813         (ix86_force_to_memory): Ditto.
9814         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
9815
9816 2010-09-18  Jan Hubicka  <jh@suse.cz>
9817
9818         PR tree-optimization/45453
9819         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
9820         virtual functions are reachable.
9821         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
9822         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
9823         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
9824         when modifying function.
9825
9826 2010-09-18  Jan Hubicka  <jh@suse.cz>
9827
9828         PR tree-optimization/45605
9829         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
9830         * gimple-fold.c (static_object_in_other_unit_p): New function.
9831         (canonicalize_constructor_val): Use it.
9832         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
9833         returning NULL.
9834         (gimple_fold_obj_type_ref_known_binfo): Use
9835         static_object_in_other_unit_p.
9836
9837 2010-09-18  Richard Guenther  <rguenther@suse.de>
9838
9839         PR tree-optimization/45709
9840         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
9841         insertions until after all PHI nodes of the block are processed.
9842
9843 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
9844
9845         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
9846
9847 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
9848
9849         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
9850
9851 2010-09-18  Richard Guenther  <rguenther@suse.de>
9852
9853         PR tree-optimization/45709
9854         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
9855
9856 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
9857
9858         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
9859         (dot_deps_stmt): Same.
9860         * graphite-poly.c (dot_lst): Same.
9861         * graphite-scop-detection.c (dot_all_scops): Same.
9862         (dot_scop): Same.
9863
9864 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
9865
9866         Revert:
9867         2009-12-16  Ben Elliston  <bje@au.ibm.com>
9868
9869         * tree-data-ref.c (dot_rdg_1): Added back.
9870         (dot_rdg): Same.  Added "#if 0" around system call.
9871
9872 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9873             Richard Henderson  <rth@redhat.com>
9874
9875         * config/i386/i386.c (initial_ix86_tune_features): Add
9876         X86_TUNE_PAD_SHORT_FUNCTION.
9877         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
9878         (ix86_count_insn): New.
9879         (ix86_pad_short_function): Likewise.
9880         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
9881
9882         * config/i386/i386.h (ix86_tune_indices): Add
9883         X86_TUNE_PAD_SHORT_FUNCTION.
9884         (TARGET_PAD_SHORT_FUNCTION): New.
9885
9886         * config/i386/i386.md (UNSPEC_NOPS): New.
9887         (nops): Likewise.
9888
9889 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9890
9891         PR middle-end/45234
9892         * calls.c (expand_call): Make sure that all variable sized
9893         adjustments are multiple of preferred stack boundary after
9894         stack alignment.
9895
9896 2010-09-17  DJ Delorie  <dj@redhat.com>
9897
9898         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
9899         passed an invalid value, print an error instead of ICEing.
9900         (valid_psw_flag): New.
9901         (rx_expand_builtin): Call it for setpsw/clrpsw.
9902         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
9903
9904         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
9905         (bitclr_in_memory): Likewise.
9906         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
9907
9908 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9909
9910         PR middle-end/45678
9911         * cfgexpand.c (update_stack_alignment): New.
9912         (get_decl_align_unit): Use it.
9913         (expand_one_stack_var_at): Call update_stack_alignment.
9914
9915 2010-09-17  Richard Guenther  <rguenther@suse.de>
9916
9917         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
9918         Properly copy the read string.
9919
9920 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
9921
9922         * doc/options.texi (Variable): Document.
9923         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
9924         generate target_flags declarations explicitly.  Don't define
9925         VarExists variables for the driver.
9926         * common.opt (target_flags): New Variable record.
9927         (flag_dump_unnumbered, flag_dump_unnumbered_links,
9928         flag_var_tracking, flag_var_tracking_assignments,
9929         flag_var_tracking_assignments_toggle): Don't mark variables with
9930         VarExists.
9931         * config/i386/i386.c (ix86_isa_flags): Don't define here.
9932         * config/i386/i386.opt (ix86_isa_flags): Define here.
9933         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
9934         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
9935         VarExists.
9936         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
9937         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
9938         Only define for generator programs.
9939         * rtlanal.c (target_flags): Remove.
9940         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
9941         flag_var_tracking_assignments_toggle): Remove.
9942
9943 2010-09-17  Michael Matz  <matz@suse.de>
9944
9945         PR tree-optimization/43432
9946         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9947         Accept backwards consecutive accesses.
9948         (vect_create_data_ref_ptr): If step is negative generate
9949         decreasing IVs.
9950         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
9951         (perm_mask_for_reverse, reverse_vec_elements): New functions.
9952         (vectorizable_load): Handle loads with negative steps when easily
9953         possible.
9954
9955 2010-09-03  Jan Hubicka  <jh@suse.cz>
9956
9957         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
9958
9959 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
9960
9961         * config/v850/v850.c (v850_function_value_regno_p): Make static.
9962         Adjust comments. Declare.
9963         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
9964         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
9965
9966 2010-09-17  Richard Guenther  <rguenther@suse.de>
9967
9968         * common.opt (combine): Remove.
9969         * gcc.c (default_compilers): Remove specs testing combine.
9970         The C compilers no longer can combine.
9971         (option_map): Remove -combine.
9972         (display_help): Remove -combine.
9973         (driver_handle_option): Remove OPT_combine handling.
9974         (compile_input_file_p): Remove.
9975         (do_spec): Remove code concerning combine.
9976         (main): Likewise.
9977         * doc/invoke.texi: Remove traces of -combine.
9978         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
9979
9980 2010-09-17  Richard Guenther  <rguenther@suse.de>
9981
9982         PR middle-end/45678
9983         * builtins.c (fold_builtin_memory_op): Always properly adjust
9984         alignment of memory accesses.
9985
9986 2010-09-16  Jan Hubicka  <jh@suse.cz>
9987
9988         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
9989         processing clone.
9990
9991 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
9992
9993         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
9994
9995         * config/i386/i386.c (predict_jump): Add prototype.
9996         (flag_opts): Add -m8bit-idiv.
9997         (ix86_split_idivmod): New.
9998
9999         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10000         Add 2 splitters for SI/DI mode divide.
10001         (divmod<mode>4_1): New pattern.
10002         (udivmod<mode>4_1): Likewise.
10003         (testdi_ccno_1): Likewise.
10004
10005         * config/i386/i386.opt (m8bit-idiv): New.
10006
10007         * doc/invoke.texi: Document -m8bit-idiv.
10008
10009 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
10010
10011         PR bootstrap/45680
10012         * config/i386/i386.c (min_insn_size): Moved out of the
10013         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
10014
10015 2010-09-16  Jan Hubicka  <jh@suse.cz>
10016
10017         * lto-cgraph.c (lto_output_node): Fix handling of clones.
10018         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10019         unreachable clones with reachable clones.
10020         * tree-inline.c (copy_bb): Fix sanity checking when producing
10021         unreachable clone.
10022
10023 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
10024
10025         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10026         (TARGET_MEMORY_MOVE_COST): Define.
10027         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10028
10029 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
10030
10031         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10032         maybe_tidy_empty_bb.
10033
10034         Revert:
10035         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10036         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10037
10038 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10039
10040         * target.def (target_option.optimization): New hook.
10041         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
10042         TARGET_OPTION_OPTIMIZATION hook.
10043         * doc/tm.texi: Regenerate.
10044         * hooks.c (hook_void_int_int): New.
10045         * hooks.h (hook_void_int_int): Declare.
10046         * opts.c: Don't include tm_p.h.
10047         (decode_options): Use targetm.target_option.optimization instead
10048         of OPTIMIZATION_OPTIONS.
10049         * system.h (OPTIMIZATION_OPTIONS): Poison.
10050         * config/arm/arm-protos.h (arm_optimization_options): Remove.
10051         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
10052         (arm_optimization_options): Rename to arm_option_optimization.
10053         Make static.
10054         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
10055         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
10056         (cris_option_optimization): New.
10057         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
10058         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
10059         (crx_option_optimization): New.
10060         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
10061         * config/frv/frv-protos.h (frv_optimization_options): Remove.
10062         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
10063         (frv_optimization_options): Rename to frv_option_optimization.
10064         Make static.
10065         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
10066         * config/h8300/h8300.c (h8300_option_optimization): New.
10067         (TARGET_OPTION_OPTIMIZATION): Define.
10068         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
10069         * config/i386/i386-protos.h (optimization_options): Remove.
10070         * config/i386/i386.c (optimization_options): Rename to
10071         ix86_option_optimization.  Make static.
10072         (TARGET_OPTION_OPTIMIZATION): Define.
10073         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
10074         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
10075         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
10076         (ia64_optimization_options): Rename to ia64_option_optimization.
10077         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
10078         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
10079         commented-out definition.
10080         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
10081         instead of OPTIMIZATION_OPTIONS.
10082         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
10083         (m32r_option_optimization): New.
10084         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
10085         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
10086         Remove.
10087         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
10088         (mcore_option_optimization): New.
10089         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
10090         * config/mep/mep-protos.h (mep_optimization_options): Remove.
10091         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
10092         (mep_optimization_options): Rename to mep_option_optimization.
10093         Make static.  Take unused level and size parameters.
10094         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
10095         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
10096         (mmix_option_optimization): New.
10097         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
10098         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
10099         (pdp11_option_optimization): New.
10100         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
10101         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
10102         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
10103         (optimization_options): Rename to rs6000_option_optimization.
10104         Make static.
10105         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
10106         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
10107         * config/rx/rx.c (rx_set_optimization_options): Rename to
10108         rx_option_optimization.  Make static.  Take unused level and size
10109         parameters.
10110         (TARGET_OPTION_OPTIMIZATION): Define.
10111         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
10112         * config/s390/s390-protos.h (optimization_options): Remove.
10113         * config/s390/s390.c (optimization_options): Rename to
10114         s390_option_optimization.  Make static.  Don't mark size parameter
10115         unused.
10116         (TARGET_OPTION_OPTIMIZATION): Define.
10117         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
10118         * config/sh/sh-protos.h (sh_optimization_options): Remove.
10119         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
10120         (sh_optimization_options): Rename to sh_option_optimization.  Make
10121         static.  Don't mark parameters unused.
10122         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
10123         * config/spu/spu-protos.h (spu_optimization_options): Remove.
10124         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
10125         (spu_optimization_options): Rename to spu_option_optimization.
10126         Make static.
10127         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
10128         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
10129         (v850_option_optimization): New.
10130         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
10131         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
10132         (xtensa_option_optimization): New.
10133         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
10134
10135 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10136
10137         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
10138         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
10139         * doc/tm.texi: Regenerate.
10140         * system.h (OVERRIDE_OPTIONS): Poison.
10141         * target.def (override): Default to hook_void_void.
10142         * targhooks.c (default_target_option_override): Remove.
10143         * genmodes.c, machmode.def: Update comments mentioning
10144         OVERRIDE_OPTIONS.
10145         * config/alpha/alpha-modes.def: Update comment mentioning
10146         alpha_override_options.
10147         * config/alpha/alpha-protos.h (override_options): Remove.
10148         * config/alpha/alpha.c (override_options): Rename to
10149         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
10150         (TARGET_OPTION_OVERRIDE): Define.
10151         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
10152         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
10153         of OVERRIDE_OPTIONS.
10154         * config/arc/arc-protos.h (arc_init): Remove.
10155         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
10156         (arc_init): Rename to arc_option_override.  Make static.
10157         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
10158         (OVERRIDE_OPTIONS): Remove.
10159         * config/arm/arm-protos.h (arm_override_options): Remove.
10160         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
10161         (arm_override_options): Rename to arm_option_override.  Make
10162         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10163         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
10164         * config/arm/arm.md: Update comment referring to arm_override_options.
10165         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10166         instead of OVERRIDE_OPTIONS.
10167         * config/avr/avr-protos.h (avr_override_options): Remove.
10168         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
10169         (avr_override_options): Rename to avr_option_override.  Make static.
10170         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
10171         * config/bfin/bfin-protos.h (override_options): Remove (twice).
10172         * config/bfin/bfin.c (override_options): Rename to
10173         bfin_option_override.  Make static.
10174         (TARGET_OPTION_OVERRIDE): Define.
10175         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
10176         * config/cris/cris-protos.h (cris_override_options): Remove.
10177         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
10178         (cris_override_options): Rename to cris_option_override.  Make static.
10179         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
10180         * config/frv/frv-protos.h (frv_override_options): Remove.
10181         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
10182         (frv_override_options): Rename to frv_option_override.  Make static.
10183         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
10184         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
10185         * config/h8300/h8300.c (h8300_init_once): Rename to
10186         h8300_option_override.  Make static.
10187         (TARGET_OPTION_OVERRIDE): Define.
10188         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
10189         * config/i386/i386-protos.h (override_options): Remove.
10190         * config/i386/i386.c (override_options): Rename to
10191         ix86_option_override_internal.  Make static.  Comments referring
10192         to this function and callers changed.
10193         (ix86_option_override): New.
10194         (TARGET_OPTION_OVERRIDE): Define.
10195         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
10196         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
10197         * config/ia64/ia64.c (ia64_file_start): Update comment referring
10198         to ia64_override_options.
10199         * config/iq2000/iq2000-protos.h (override_options): Remove.
10200         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
10201         (override_options): Rename to iq2000_option_override.  Make static.
10202         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
10203         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
10204         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
10205         (lm32_override_options): Rename to lm32_option_override.  Make static.
10206         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
10207         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
10208         (m32r_option_override): New.
10209         (m32r_init): Update comment.
10210         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
10211         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
10212         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
10213         (m68hc11_override_options): Rename to m68hc11_option_override.
10214         Make static.  Return void.
10215         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
10216         * config/m68k/m68k-protos.h (override_options): Remove.
10217         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
10218         (override_options): Rename to m68k_option_override.  Make static.
10219         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
10220         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
10221         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
10222         (mcore_override_options): Rename to mcore_option_override.  Make
10223         static.
10224         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
10225         * config/mep/mep-protos.h (mep_override_options): Remove.
10226         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
10227         (mep_override_options): Rename to mep_option_override.  Make static.
10228         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
10229         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
10230         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
10231         (mmix_override_options): Rename to mmix_option_override.  Make static.
10232         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
10233         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
10234         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
10235         (mn10300_override_options): Rename to mn10300_option_override.
10236         Make static.
10237         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
10238         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
10239         * config/moxie/moxie.c (moxie_override_options): Rename to
10240         moxie_option_override.  Make static.
10241         (TARGET_OPTION_OVERRIDE): Define.
10242         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
10243         * config/picochip/picochip-protos.h (picochip_override_options):
10244         Remove.  Update comment referring to picochip_override_options.
10245         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
10246         (picochip_override_options): Rename to picochip_option_override.
10247         Make static.  Update comment and definition of
10248         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
10249         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
10250         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10251         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10252         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10253         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10254         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10255         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
10256         instead of OVERRIDE_OPTIONS.
10257         * config/rs6000/rs6000-modes.def: Update comment referring to
10258         rs6000_override_options.
10259         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
10260         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
10261         (rs6000_override_options): Rename to
10262         rs6000_option_override_internal.  Make static.  Commented
10263         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
10264         (rs6000_option_override): New.
10265         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
10266         instead of OVERRIDE_OPTIONS.
10267         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10268         * config/s390/s390-protos.h (override_options): Remove.
10269         * config/s390/s390.c (override_options): Rename to
10270         s390_option_override.  Make static.
10271         (TARGET_OPTION_OVERRIDE): Define.
10272         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
10273         * config/score/score-protos.h (score_override_options): Remove.
10274         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
10275         (score_override_options): Rename to score_option_override.  Make
10276         static.
10277         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
10278         Update comment referring to override_options.
10279         * config/score/score3.c (score3_override_options): Rename to
10280         score3_option_override.
10281         * config/score/score3.h (score3_override_options): Rename to
10282         score3_option_override.
10283         * config/score/score7.c (score7_override_options): Rename to
10284         score7_option_override.
10285         * config/score/score7.h (score7_override_options): Rename to
10286         score7_option_override.
10287         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
10288         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
10289         (sparc_override_options): Rename to sparc_option_override.  Make
10290         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10291         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
10292         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10293         instead of OVERRIDE_OPTIONS.
10294         * config/spu/spu-protos.h (spu_override_options): Remove.
10295         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
10296         (spu_override_options): Rename to spu_option_override.  Make
10297         static.
10298         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
10299         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
10300         OVERRIDE_OPTIONS.
10301         * config/vax/vax-protos.h (override_options): Remove.
10302         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
10303         (override_options): Rename to vax_option_override.  Make static.
10304         Call SUBTARGET_OVERRIDE_OPTIONS.
10305         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
10306         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
10307         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
10308         * config/xtensa/xtensa-protos.h (override_options): Remove.
10309         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
10310         (override_options): Rename to xtensa_option_override.  Make static.
10311         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
10312
10313 2010-09-16  Richard Guenther  <rguenther@suse.de>
10314
10315         PR tree-optimization/45623
10316         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
10317         (get_constraint_for_component_ref): If computing a constraint
10318         for the rhs handle type punning through unions.
10319         (get_constraint_for_address_of): Adjust.
10320         (get_constraint_for_1): Likewise.
10321         (get_constraint_for): Likewise.
10322         (get_constraint_for_rhs): New function.
10323         (do_structure_copy): Adjust.
10324         (make_constraint_to): Likewise.
10325         (handle_const_call): Likewise.
10326         (find_func_aliases): Likewise.
10327         (process_ipa_clobber): Likewise.
10328         (create_variable_info_for): Likewise.
10329
10330 2010-09-16  Ira Rosen  <irar@il.ibm.com>
10331
10332         * tree-vectorizer.c: Fix documentation.
10333         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
10334         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
10335         is_pattern_stmt_p, is_loop_header_bb_p,
10336         stmt_vinfo_set_inside_of_loop_cost,
10337         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
10338         known_alignment_for_access_p): Likewise.
10339         * tree-vect-loop.c: Fix documentation.
10340         (vect_get_cost): Start function name from new line.
10341         * tree-vect-data-refs.c: Fix documentation.
10342         * tree-vect_stmts.c: Likewise.
10343         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
10344         (vectorizable_store): Free vec_oprnds if allocated.
10345         (vectorizable_condition): Initialize several variables to avoid
10346         warnings.
10347         * tree-vect-slp.c: Fix documentation.
10348
10349 2010-09-16  Richard Guenther  <rguenther@suse.de>
10350
10351         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
10352         is TS_TRANSLATION_UNIT_DECL.
10353         (initialize_tree_contains_struct): Adjust.
10354         (all_translation_units): New global vector.
10355         (build_translation_unit_decl): New function.
10356         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
10357         (struct tree_translation_unit_decl): New.
10358         (all_translation_units): Declare.
10359         (union tree_node): Add translation_unit_decl member.
10360         (build_translation_unit_decl): Declare.
10361         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
10362         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
10363         New function.
10364         (pack_value_fields): Call it.
10365         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
10366         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
10367         (lto_output_tree_pointers): Call it.
10368         * lto-streamer-in.c (lto_input_tree_ref): Handle references
10369         to TRANSLATION_UNIT_DECL.
10370         (unpack_ts_translation_unit_decl_value_fields): New function.
10371         (unpack_value_fields): Call it.
10372         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
10373         (lto_input_tree_pointers): Call it.
10374         * lto-streamer.c (check_handled_ts_structures): Adjust.
10375         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
10376         * c-decl.c (all_translation_units): Remove.
10377         (pop_scope): Use build_translation_unit_decl.
10378         (collect_all_refs): Adjust.
10379         (for_each_global_decl): Likewise.
10380         (c_write_global_declarations): Likewise.
10381
10382 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
10383
10384         PR bootstrap/45686
10385         * fold-const.c (fold_checksum_tree): Change slot from const void **
10386         to void **, use CONST_CAST_TREE to store into *slot.
10387
10388 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
10389
10390         * config/i386/i386.md: Remove unneeded empty conditions and
10391         preparation statements from expanders.
10392         * config/i386/mmx.md: Ditto.
10393         * config/i386/sse.md: Ditto.
10394
10395 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
10396
10397         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
10398
10399 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10400
10401         PR rtl-optimization/45593
10402         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
10403         insns that were in delay slots as stand-alone insns.
10404
10405 2010-09-15  Ian Lance Taylor  <iant@google.com>
10406
10407         * incpath.c (remove_duplicates): If name is not a directory, issue
10408         a warning rather than an error.
10409
10410 2010-09-15  Martin Jambor  <mjambor@suse.cz>
10411
10412         PR middle-end/45644
10413         * tree-sra.c (create_access): Check for bit-fields directly.
10414
10415 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR tree-optimization/45633
10418         * tree-cfg.c (verify_gimple_assign_binary): Allow
10419         MINUS_EXPR with lhs and rhs1 pointer vector and
10420         rhs2 sizetype vector.
10421         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
10422         or vector pointer use TER to optimize pointer subtraction.
10423
10424 2010-09-15  Jie Zhang  <jie@codesourcery.com>
10425
10426         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
10427         fcmpd to fcmps.
10428
10429 2010-09-15  Ian Lance Taylor  <iant@google.com>
10430
10431         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
10432
10433 2010-09-15  Ian Lance Taylor  <iant@google.com>
10434
10435         * function.c (get_arg_pointer_save_area): Set
10436         arg_pointer_save_area_init to true.
10437
10438 2010-09-15  Martin Jambor  <mjambor@suse.cz>
10439
10440         * tree-sra.c (generate_subtree_copies): Updated comment.
10441         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
10442         obtained from the statement iterator instead.
10443         (load_assign_lhs_subreplacements): Removed parameters lhs and
10444         right_offset, which is obtained from top_racc instead.  Parameter lacc
10445         is now expected to be the root of the processed tree rather than root's
10446         first child.  Updated all callers.
10447
10448 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
10449
10450         * config/pdp11/pdp11.c (register_move_cost): Rename to
10451         pdp11_register_move_cost.
10452         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
10453         pdp11_register_move_cost.
10454         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
10455         pdp11_register_move_cost instead of register_move_cost.
10456
10457 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
10458
10459         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
10460         pattern for vmovn. Expansion in case of non
10461         -mvectorize-with-neon-quad.
10462         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
10463         non- -mvectorize-with-neon-quad case.
10464         (move_lo_quad_<mode>): New expansion to vmov into low part.
10465         (move_hi_quad_<mode>): New expansion to vmov into high part.
10466         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
10467         (move_lo_quad_v4sf): Likewise.
10468         (move_lo_quad_v8hi): Likewise.
10469         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
10470         low part.
10471         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
10472         high part.
10473         * config/arm/iterators.md (ANY128): New mode iterator.
10474         (V_narrow_pack): New mode attribute.
10475         (V_HALF): Add attribute.
10476         (V_DOUBLE): Add attribute.
10477         (V_mode_nunits): Add attribute.
10478
10479 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10480
10481         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
10482         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
10483
10484 2010-09-15  Olivier Hainque  <hainque@adacore.com>
10485             Jose Ruiz  <ruiz@adacore.com>
10486
10487         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
10488         * config/alpha/osf5-unwind.h: New file.
10489
10490 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10491
10492         PR bootstrap/45672
10493         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
10494         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10495         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10496
10497 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10498
10499         * c-lang.h (struct lang_type): Add variable_size GTY option.
10500
10501 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10502
10503         PR bootstrap/45672
10504         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10505
10506 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10507
10508         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
10509         result isn't used in memory address.
10510
10511 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10512
10513         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
10514         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
10515         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10516         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10517         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10518         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10519
10520         * target.def: Add units_per_simd_word to vectorize.
10521
10522         * targhooks.c (default_units_per_simd_word): New.
10523         * targhooks.h (default_units_per_simd_word): Likewise.
10524         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
10525         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10526         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
10527         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10528         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10529         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10530         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10531         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10532
10533         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
10534         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
10535
10536         * tree-vect-stmts.c: Don't include "tm_p.h".
10537         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
10538         with targetm.vectorize.units_per_simd_word.
10539
10540         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
10541
10542         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
10543
10544         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
10545         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10546
10547         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
10548         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
10549
10550         * doc/tm.texi: Regenerated.
10551
10552 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10553
10554         * tree-vect-stmts.c: Include "tm_p.h".
10555
10556         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
10557         out of RTX_CODE.
10558
10559 2010-09-14  Martin Jambor  <mjambor@suse.cz>
10560
10561         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
10562         location of generated statement.  Changed all callers.
10563         (build_ref_for_model): New parameter loc which used to set location of
10564         all generated expressions.  Changed all callers.
10565         (generate_subtree_copies): Likewise.
10566         (init_subtree_with_zero): Likewise.
10567         (sra_modify_expr): Set locations of all generated statements and
10568         expressions to the location the original statement.
10569         (handle_unscalarized_data_in_subtree): Likewise.
10570         (load_assign_lhs_subreplacements): Likewise.
10571         (sra_modify_constructor_assign): Likewise.
10572         (sra_modify_assign): Likewise.
10573
10574 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
10575
10576         PR target/45277
10577         PR target/45363
10578         PR target/45407
10579         * doc/install.texi (sparc*-*-*): New section.
10580         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
10581
10582 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
10583
10584         PR middle-end/45567
10585         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
10586         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
10587         (expand_builtin): Adjust caller.
10588         (expand_builtin_unop): Only use subtarget if it has the right mode.
10589
10590 2010-09-14  Tristan Gingold  <gingold@adacore.com>
10591
10592         * configure.ac (plugins): Fix typos.
10593         * configure: Regenerate.
10594
10595 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
10596
10597         PR debug/45660
10598         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
10599         gen_type_die for function/method return type.
10600
10601 2010-09-14  Ira Rosen  <irar@il.ibm.com>
10602
10603         PR tree-optimization/45470
10604         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10605         can throw an exception.
10606         * tree-vect-stmts.c (vectorizable_call): Likewise.
10607
10608 2010-09-14  DJ Delorie  <dj@redhat.com>
10609
10610         PR target/44749
10611         * config/mep/mep-protos.h (mep_save_register_info,
10612         mep_reinit_regs, mep_init_regs): Declare.
10613
10614         * config/mep/mep.c: Move all target definitions to the end of the
10615         file to avoid the need for duplicate declarations.
10616         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
10617         (mep_reorg_erepeat): Remove unused variables.
10618         (mep_expand_builtin): Likewise.
10619
10620         * config/mep/mep-pragma.c: Don't include rtl.h.
10621         (INVALID_REGNUM): New.
10622         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
10623         functions.
10624         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
10625         Avoid enum/integer math.
10626
10627 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
10628
10629         PR target/44749
10630         * config/mep/t-mep (GTM_H): Add insn-constants.h.
10631         * config/mep/mep.c (mep_conditional_register_usage): Take no
10632         parameters.
10633         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
10634         prototype.
10635         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
10636         call to mep_conditional_register_usage.
10637
10638 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10639
10640         PR debug/43937
10641         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
10642         the DECL as well.
10643
10644 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
10645
10646         PR rtl-optimization/45617
10647         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
10648         even if low N bits of X aren't known to be zero.
10649
10650 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
10651
10652         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
10653
10654         * config/i386/i386.c (initial_ix86_tune_features): Add
10655         X86_TUNE_VECTORIZE_DOUBLE.
10656         (ix86_units_per_simd_word): New.
10657
10658         * config/i386/i386.h (ix86_tune_indices): Add
10659         X86_TUNE_VECTORIZE_DOUBLE.
10660         (TARGET_VECTORIZE_DOUBLE): New.
10661         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
10662
10663 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
10664
10665         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
10666         (new_temp_expr_table): Allocate call_cnt vector.
10667         (free_temp_expr_table): Free it.
10668         (process_replaceable): Add call_cnt parm and set in vector.
10669         (find_replaceable_in_bb): Skip replacement if def/use span a call.
10670         (debug_ter): Dump call_cnt value, remove stderr uses.
10671
10672 2010-09-13  Jan Hubicka  <jh@suse.cz>
10673
10674         * tree.c (build_zero_cst): New.
10675         * tree.h (build_zero_cst): Declare.
10676         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
10677         (get_base_constructor): Break out from ...
10678         (fold_const_aggregate_ref): Here; handle empty constructors.
10679
10680 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10681
10682         * config/arm/arm.md: (define_attr "conds"): Update comment.
10683         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
10684         conds attribute to clob.
10685         (arm_sync_compare_and_swapsi): Likewise.
10686         (arm_sync_compare_and_swap<mode>): Likewise.
10687         (arm_sync_lock_test_and_setsi): Likewise.
10688         (arm_sync_lock_test_and_set<mode>): Likewise.
10689         (arm_sync_new_<sync_optab>si): Likewise.
10690         (arm_sync_new_nandsi): Likewise.
10691         (arm_sync_new_<sync_optab><mode>): Likewise.
10692         (arm_sync_new_nand<mode>): Likewise.
10693         (arm_sync_old_<sync_optab>si): Likewise.
10694         (arm_sync_old_nandsi): Likewise.
10695         (arm_sync_old_<sync_optab><mode>): Likewise.
10696         (arm_sync_old_nand<mode>): Likewise.
10697
10698 2010-09-13  Olivier Hainque  <hainque@adacore.com>
10699
10700         * fwprop.c (forward_propagate_and_simplify): Only attach a
10701         REG_EQUAL note to an insn if the destination is a register.
10702         * gcse.c (try_replace_reg): Likewise.
10703
10704 2010-09-13  Richard Guenther  <rguenther@suse.de>
10705
10706         PR tree-optimization/45611
10707         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
10708         (copy_ref_info): Likewise.
10709
10710 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
10711
10712         PR debug/45604
10713         PR debug/45419
10714         PR debug/45408
10715         * tree-pretty-print.c (dump_generic_node): Disregard top-level
10716         types of MEM_REF pointer types to the same type.
10717
10718 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
10719
10720         PR rtl-optimization/41087
10721         * ifcvt.c (noce_get_condition): Don't allow conditions with
10722         side-effects.
10723
10724 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
10725
10726         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10727         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
10728         * config/frv/frv.c (frv_register_move_cost): Make static. Change
10729         arguments type to reg_class_t. Add mode argument.
10730         (frv_memory_move_cost): New.
10731         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
10732
10733 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
10734
10735         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
10736         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
10737
10738 2010-09-10  Jan Hubicka  <jh@suse.cz>
10739
10740         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
10741
10742 2010-09-10  Richard Guenther  <rguenther@suse.de>
10743
10744         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
10745         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
10746         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
10747         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
10748         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
10749
10750 2010-09-10  Richard Guenther  <rguenther@suse.de>
10751
10752         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
10753         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
10754         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
10755         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
10756
10757 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
10758
10759         PR middle-end/45634
10760         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
10761         of string folding is of integral type.
10762
10763 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
10764
10765         * doc/invoke.texi (-x): Fix typo.
10766
10767 2010-09-10  Richard Guenther  <rguenther@suse.de>
10768
10769         PR debug/44115
10770         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
10771         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10772         Output DECL_DEBUG_EXPR.
10773         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10774         Input DECL_DEBUG_EXPR.
10775
10776 2010-09-10  Richard Guenther  <rguenther@suse.de>
10777
10778         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
10779         (build_index_type): Implement in terms of build_range_type.
10780         (build_range_type): Do not allow NULL_TREE type, improve
10781         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
10782         if we didn't hash.
10783         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
10784         create a distinct copy of the type.
10785
10786 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
10787
10788         * configure: Regenerated.
10789         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
10790
10791 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10792
10793         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
10794         * config/arm/cortex-a9-neon.md: New and partially generated.
10795         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
10796
10797 2010-09-10  Richard Guenther  <rguenther@suse.de>
10798
10799         * tree.h (build_index_2_type): Remove.
10800         * tree.c (build_index_2_type): Remove.
10801
10802 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
10803
10804         PR bootstrap/45630
10805         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
10806         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
10807         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
10808
10809 2010-09-10  Martin Jambor  <mjambor@suse.cz>
10810
10811         PR tree-optimization/44972
10812         * tree-sra.c: Include toplev.h.
10813         (build_ref_for_offset): Entirely reimplemented.
10814         (build_ref_for_model): New function.
10815         (build_user_friendly_ref_for_offset): New function.
10816         (analyze_access_subtree): Removed build_ref_for_offset check.
10817         (propagate_subaccesses_across_link): Likewise.
10818         (create_artificial_child_access): Use
10819         build_user_friendly_ref_for_offset.
10820         (propagate_subaccesses_across_link): Likewise.
10821         (ref_expr_for_all_replacements_p): Removed.
10822         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
10823         (sra_modify_expr): Use build_ref_for_model.
10824         (load_assign_lhs_subreplacements): Likewise.
10825         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
10826         checks for return values of build_ref_for_offset.
10827         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
10828         build_ref_for_offset.
10829         * ipa-prop.h: Include gimple.h
10830         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
10831         (ipa_analyze_indirect_call_uses): Update comment.
10832         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
10833         (IPA_PROP_H): Likewise.
10834
10835 2010-09-10  Martin Jambor  <mjambor@suse.cz>
10836
10837         PR tree-optimization/44972
10838         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
10839         calling build_ref_for_offset.
10840
10841 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10842
10843         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
10844         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
10845         * config/arm/arm-tune.md: Regenerate.
10846         * doc/invoke.texi (ARM Options): Document it.
10847
10848 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
10849
10850         * config/i386/i386.c: Include sched-int.h.
10851         (TARGET_SCHED_DISPATCH): Defined.
10852         (TARGET_SCHED_DISPATCH_DO): Defined.
10853         (DISPATCH_WINDOW_SIZE): Defined.
10854         (MAX_DISPATCH_WINDOWS): Defined.
10855         (MAX_INSN): Defined.
10856         (MAX_IMM): Defined.
10857         (MAX_IMM_SIZE): Defined.
10858         (MAX_IMM_32): Defined.
10859         (MAX_IMM_64): Defined.
10860         (MAX_LOAD): Defined.
10861         (MAX_STORE): Defined.
10862         (BIG): Defined.
10863         (dispatch_group): New.
10864         (num_allowable_groups): New.
10865         (group_name): New.
10866         (sched_insn_info_s): New.
10867         (dispatch_windows_s): New.
10868         (imm_info_s): New.
10869         (dispatch_window_list): New.
10870         (dispatch_window_list1): New.
10871         (get_mem_group): New.
10872         (is_cmp): New.
10873         (dispatch_violation): New.
10874         (is_branch): New.
10875         (is_prefetch): New.
10876         (init_window): New.
10877         (allocate_window): New.
10878         (init_dispatch_sched): New.
10879         (is_end_basic_block): New.
10880         (process_end_window): New.
10881         (allocate_next_window): New.
10882         (find_constant_1): New.
10883         (find_constant): New.
10884         (get_num_immediates): New.
10885         (has_immediate): New.
10886         (get_insn_path): New.
10887         (get_insn_group): New.
10888         (count_num_restricted): New.
10889         (fits_dispatch_window): New.
10890         (add_insn_window): New.
10891         (add_to_dispatch_window): New.
10892         (debug_dispatch_window_file): New.
10893         (debug_dispatch_window): New.
10894         (debug_insn_dispatch_info_file): New.
10895         (debug_ready_dispatch): New.
10896         (do_dispatch): New.
10897         (has_dispatch): New.
10898         * config/i386/i386.h (debug_ready_dispatch): Declared.
10899         (debug_dispatch_window): Declared.
10900         * config/i386/i386.opt (mdispatch-scheduler): New flag.
10901         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
10902         (TARGET_SCHED_DISPATCH_DO): New.
10903         * doc/tm.texi: Regererated.
10904         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
10905         ready_remove_first_dispatch
10906         (schedule_block): Call targetm.sched.dispatch and
10907         targetm.sched.dispatch_do.
10908         (sched_init): Call targetm.sched.dispatch and
10909         targetm.sched.dispatch_do.
10910         (ready_remove_first_dispatch): New.
10911         (number_in_ready): New.
10912         (get_ready_element): New.
10913         * hooks.c (hook_bool_rtx_int_false): New.
10914         (hook_void_rtx_int): New.
10915         * hooks.h (hook_bool_rtx_int_false): Declared.
10916         (hook_void_rtx_int): Declared.
10917         * sched-int.h (IS_DISPATCH_ON): Defined.
10918         (IS_CMP): Defined.
10919         (DISPATCH_VIOLATION): Defined.
10920         (FITS_DISPATCH_WINDOW): Defined.
10921         (DISPATCH_INIT): Defined.
10922         (ADD_TO_DISPATCH_WINDOW): Defined.
10923         (get_ready_element): Declared.
10924         (number_in_ready): Declared.
10925         * target.def (dispatch): Defined.
10926         (dispatch_do): Defined.
10927
10928 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10929
10930         PR middle-end/45312
10931         * reload1.c (merge_assigned_reloads): Remove.
10932         (reload_as_needed): Don't call it.
10933
10934 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
10935
10936         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
10937         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10938         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10939
10940 2010-09-09  Matthias Klose  <doko@ubuntu.com>
10941
10942         PR bootstrap/43847
10943         * configure.ac (--enable-plugin): Enhance for cross builds.
10944         * configure: Regenerate.
10945
10946 2010-09-09  Jan Hubicka  <jh@suse.cz>
10947
10948         PR tree-optimization/45598
10949         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
10950         string folding is of integral type.
10951
10952 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
10953
10954         * configure.ac (gnu_indirect_function): New test.
10955         * configure: Rebuilt.
10956         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
10957         * defaults.h (IFUNC_ASM_TYPE): Provide default.
10958
10959         * doc/extend.texi (Function Attributes): Document ifunc.
10960         * varasm.c (do_assemble_alias): Deal with ifuncs too.
10961
10962 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10963
10964         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
10965         epilogue instruction move.
10966
10967 2010-09-09  Jan Hubicka  <jh@suse.cz>
10968
10969         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
10970         command line to allow more partitions than input files.
10971
10972 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10973
10974         PR middle-end/44554
10975         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
10976
10977 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10978
10979         PR middle-end/40386
10980         * ira.c (pseudo_for_reload_consideration_p): Don't use
10981         flag_ira_share_spill_slots.
10982
10983 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10984
10985         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
10986         point zero operands that fit into a single GPR.
10987         (s390_preferred_reload_class): Ensure we only return general-purpose
10988         register classes.
10989         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
10990         floating-point zero operands into GPRs.
10991         ("*mov<mode>_64"): Likewise.
10992         ("mov<mode>"): Likewise using lhi.
10993
10994 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10995
10996         * config/s390/s390.c (s390_symref_operand_p): Return false for
10997         literal pool references.
10998         (s390_check_qrst_address): Update caller.
10999
11000 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
11001
11002         * config/i386/predicates.md (ext_register_operand): Check that
11003         SUBREG_REG is really a register before looking for REGNO.
11004         (reg_not_xmm0_operand): Handle SUBREGs correctly.
11005         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
11006
11007 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
11008
11009         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
11010         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
11011         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
11012         * print-rtl.c (print_rtx): Likewise.
11013         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11014         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
11015         for ADDR_EXPR with non-addressable object.
11016         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
11017         (struct dw_val_struct): Add v.val_decl_ref.
11018         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11019         Handle DW_OP_GNU_implicit_pointer.
11020         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
11021         (get_ref_die_offset_label): New function.
11022         (implicit_ptr_descriptor): New function.
11023         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11024         (loc_descriptor): Likewise.
11025         (gen_variable_die): Put even definitions into decl_die_table.
11026         (resolve_addr_in_expr): Resolve still unresolved
11027         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11028         return false.
11029         (dwarf2out_finish): Call output_location_lists after outputting
11030         .debug_info and .debug_abbrev instead of before.
11031
11032 2010-09-09  Roland McGrath  <roland@redhat.com>
11033
11034         * dwarf2out.c (DWARF_REF_SIZE): Define.
11035         (size_of_loc_descr): Use it for DW_OP_call_ref.
11036
11037 2010-09-09  Alan Modra  <amodra@gmail.com>
11038
11039         * doc/invoke.text: Reinstate mcmodel=medium.
11040         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11041         CMODEL_MEDIUM as default.
11042         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
11043         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
11044         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
11045         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
11046
11047 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11048
11049         PR target/45250
11050         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
11051         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
11052         (builtin_longjmp): Likewise.
11053         (allocate_stack): Use hard_frame_pointer_rtx instead of
11054         frame_pointer_rtx.
11055         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
11056         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
11057         (pa_can_eliminate): Likewise.
11058         (TARGET_INTERNAL_ARG_POINTER): Define.
11059         (TARGET_CAN_ELIMINATE): Define.
11060         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
11061         pointer.
11062         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
11063         (pa_internal_arg_pointer, pa_can_eliminate,
11064         pa_initial_elimination_offset): New.
11065         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
11066         (HARD_FRAME_POINTER_REGNUM): Set to register three.
11067         (INITIAL_FRAME_POINTER_OFFSET): Delete.
11068         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
11069         Define.
11070         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
11071         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
11072         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
11073         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
11074         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
11075         new soft frame pointer.
11076         * config/pa/pa64-regs.h: Likewise.
11077
11078 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11079
11080         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
11081         numerical constant.
11082         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
11083
11084 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11085
11086         PR debug/45531
11087         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
11088
11089 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11090
11091         PR debug/45419
11092         PR debug/45408
11093         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11094         qualifiers in otherwise equal MEM_REF pointer types.
11095         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
11096         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
11097
11098 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11099
11100         PR target/44392
11101         * config/arm/arm.md (bswapsi2): Handle condition correctly
11102         for armv6 and optimize_size.
11103
11104 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11105
11106         PR other/18555
11107         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
11108
11109 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11110
11111         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
11112         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
11113         ix86_expand_strlen, legitimate_pic_address_disp_p,
11114         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
11115         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
11116         ix86_check_movabs, ix86_secondary_memory_needed): Change function
11117         prototype to bool.
11118         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
11119         return_in_memory_ms_64, ix86_check_movabs,
11120         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
11121         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
11122         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
11123         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
11124         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
11125         ix86_secondary_memory_needed): Change to bool.  Return
11126         "true" and "false" values.
11127         * config/i386/i386.md: Return "true" and "false" values.
11128
11129 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11130
11131         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11132         run_expensive_tests.
11133
11134 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11135
11136         * toplev.c (output_stack_usage): Use lbasename instead of basename.
11137
11138 2010-09-08  Martin Jambor  <mjambor@suse.cz>
11139
11140         PR other/45443
11141         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
11142         at -O3.
11143
11144 2010-09-08  Richard Guenther  <rguenther@suse.de>
11145
11146         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
11147         (visit): Adjust.
11148         (iterative_hash_gimple_type): Likewise.
11149         (gimple_type_hash): Likewise.
11150         (gimple_register_type): Likewise.
11151         (print_gimple_types_stats): Likewise.
11152         (free_gimple_type_tables): Likewise.
11153
11154 2010-09-08  Michael Matz  <matz@suse.de>
11155
11156         PR tree-optimization/43430
11157         * tree-vect-stmts.c (vectorizable_condition): Support multiple
11158         copies for conditional statements if it's not part of a reduction.
11159
11160 2010-09-08  Michael Matz  <matz@suse.de>
11161
11162         PR tree-optimization/33244
11163         * tree-ssa-sink.c (statement_sink_location): Don't sink into
11164         empty loop latches.
11165
11166 2010-09-08  Richard Guenther  <rguenther@suse.de>
11167
11168         PR tree-optimization/45578
11169         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
11170         Be more careful when transfering alignment information to
11171         the new induction variable.
11172         (copy_ref_info): Likewise.
11173
11174 2010-09-08  Richard Guenther  <rguenther@suse.de>
11175
11176         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
11177         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
11178
11179 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
11180
11181         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
11182         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
11183
11184 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11185
11186         PR doc/45587
11187         * doc/md.texi: Fixed modes on several standard pattern names.
11188
11189 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
11190
11191         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
11192         (ashl<mode>3): ...this.
11193         (loongson_psra<V_suffix>): Rename to...
11194         (ashr<mode>3): ...this.
11195         (loongson_psrl<V_suffix>): Rename to...
11196         (lshr<mode>3): ...this.
11197         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
11198         (CODE_FOR_loongson_psllw): Define.
11199         (CODE_FOR_loongson_psrlh): Define.
11200         (CODE_FOR_loongson_psrlw): Define.
11201         (CODE_FOR_loongson_psrah): Define.
11202         (CODE_FOR_loongson_psraw): Define.
11203
11204 2010-09-07  Richard Henderson  <rth@redhat.com>
11205
11206         * tree-vect-data-refs.c: Include tm_p.h.
11207         * Makefile.in (tree-vect-data-refs.o): Update deps.
11208         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
11209         Move delarations outside #ifdef RTX_CODE.
11210
11211 2010-09-07  Richard Henderson  <rth@redhat.com>
11212
11213         * final.c (rest_of_handle_final): Unconditionally do
11214         output_function_exception_table before assemble_end_function.
11215
11216 2010-09-07  Jan Hubicka  <jh@suse.cz>
11217
11218         * tree-inline.c (tree_inlinable_function_p): Do not test
11219         DECL_REPLACEABLE_P.
11220         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
11221         update_callee_keys, cgraph_decide_inlining): Test function availability.
11222         * cif-code.def (OVERWRITABLE): New code.
11223
11224 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
11225             Jack Howarth  <howarth@bromo.med.uc.edu>
11226
11227         PR target/36502
11228         PR target/42313
11229         PR target/44651
11230         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
11231         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
11232         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
11233         MAX macro.
11234
11235 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11236
11237         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
11238         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
11239
11240 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11241
11242         * config.gcc: Don't append t-android for Android targets.
11243
11244         * config/t-android: Removed.
11245
11246 2010-09-07  Richard Henderson  <rth@redhat.com>
11247
11248         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
11249         * doc/tm.texi.in: Add doc marker.
11250         * doc/tm.texi: Rebuild.
11251         * except.c (switch_to_exception_section): Always build.
11252         (output_one_function_exception_table): Move section switch,
11253         personality output, and label output ...
11254         (output_function_exception_table): ... here.  Use the new
11255         personality hook.
11256
11257         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
11258         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
11259         TARGET_ASM_INIT_SECTIONS): New.
11260         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
11261         make static.
11262         (TARGET_ASM_UNWIND_EMIT): Update to match.
11263         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
11264
11265         * config/arm/arm.c (arm_asm_emit_except_personality): New.
11266         (arm_asm_init_sections): New.
11267         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
11268
11269 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11270
11271         * config/arm/arm.md: Remove unused variable.
11272
11273 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
11274
11275         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11276         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
11277         (m32r_memory_move_cost): New function.
11278
11279 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11280
11281         * config.gcc: Append t-android for Android targets.
11282
11283         * config/t-android: New.
11284
11285 2010-09-07  Richard Henderson  <rth@redhat.com>
11286
11287         * target.def (unwind_emit_before_insn): New hook.
11288         * doc/tm.texi.in: Add @hook marker for it.
11289         * doc/tm.texi: Rebuild.
11290         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
11291
11292 2010-09-07  Martin Jambor  <mjambor@suse.cz>
11293
11294         PR fortran/43665
11295         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
11296         are any type attributes.
11297
11298 2010-09-07  Jan Hubicka  <jh@suse.cz>
11299
11300         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
11301         array_ref_low_bound in string access folding.
11302
11303 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
11304
11305         PR target/45206
11306         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
11307         eh_return fixup sequence.
11308
11309 2010-09-07  Jan Hubicka  <jh@suse.cz>
11310
11311         * gimple-fold.c (maybe_fold_reference): Verify that operand is
11312         gimple_min_invariant.
11313
11314 2010-09-07  Richard Guenther  <rguenther@suse.de>
11315
11316         PR middle-end/45569
11317         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
11318         nor CONSTRUCTOR can trap.
11319         * tree-complex.c (update_complex_assignment): Update EH info.
11320
11321 2010-09-07  Richard Guenther  <rguenther@suse.de>
11322
11323         PR middle-end/45569
11324         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
11325         * passes.c (execute_function_todo): Do not verify anything if
11326         we saw errors.
11327
11328 2010-09-07  Richard Guenther  <rguenther@suse.de>
11329
11330         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
11331
11332 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
11333
11334         PR target/43137
11335         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
11336         New define_mode_attrs.
11337         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
11338         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
11339         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
11340         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
11341         Remove pool_range attribute.
11342         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
11343         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
11344         pool_range and neg_pool_range attributes.
11345         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
11346         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
11347         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
11348
11349 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
11350
11351         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
11352         check glibc.
11353
11354 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
11355
11356         PR target/22152
11357         * config/i386/mmx.md (*mov<mode>_internal_rex64,
11358         *mov<mode>_internal_avx, *mov<mode>_internal,
11359         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
11360         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
11361
11362 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
11363
11364         * c-typeck.c (do_warn_double_promotion): Remove.
11365         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
11366         Objective-C++ too.
11367
11368 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
11369
11370         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
11371         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
11372         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
11373         argument type to reg_class_t. Change result type to bool.
11374         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11375
11376 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
11377
11378         PR libobjc/19850
11379         * gthr-posix.h (__gthread_objc_thread_detach): Use
11380         _objc_thread_attribs when detaching a thread.
11381         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
11382
11383 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
11384
11385         PR target/45524
11386         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
11387         * configure: Regenerated.
11388
11389 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11390
11391         * combine.c (try_combine): Set subst_low_luid to i0.
11392
11393 2010-09-06  Richard Guenther  <rguenther@suse.de>
11394
11395         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
11396         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
11397         (build_aligned_type): Declare.
11398         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
11399         (check_aligned_type): New function.
11400         (build_aligned_type): Likewise.
11401         * expr.c (expand_assignment): Handle misaligned stores via
11402         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
11403         (expand_expr_real_1): Likewise.
11404         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
11405         * tree-vect-stmts.c (vectorizable_store): Do not build
11406         MISALIGNED_INDIRECT_REF but initialize alignment information.
11407         (vectorizable_load): Likewise.
11408         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
11409         handling.
11410         * cfgexpand.c (expand_debug_expr): Likewise.
11411         * dwarf2out.c (loc_list_from_tree): Likewise.
11412         * fold-const.c (maybe_lvalue_p): Likewise.
11413         (operand_equal_p): Likewise.
11414         (build_fold_addr_expr_with_type_loc): Likewise.
11415         * gimplify.c (gimplify_addr_expr): Likewise.
11416         (gimplify_expr): Likewise.
11417         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11418         (verify_gimple_assign_single): Likewise.
11419         * tree-dump.c (dequeue_and_dump): Likewise.
11420         (tree_could_trap_p): Likewise.
11421         * tree-predcom.c (ref_at_iteration): Likewise.
11422         * tree-pretty-print.c (dump_generic_node): Likewise.
11423         (op_code_prio): Likewise.
11424         (op_symbol_code): Likewise.
11425         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11426         * tree-ssa-loop-im.c (for_each_index): Likewise.
11427         (gen_lsm_tmp_name): Likewise.
11428         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11429         (find_interesting_uses_address): Likewise.
11430         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11431         * tree-ssa-operands.c (get_expr_operands): Likewise.
11432         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11433         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11434         (ao_ref_init_from_vn_reference): Likewise.
11435         * tree.c (staticp): Likewise.
11436         (build1_stat): Likewise.
11437         (reference_alias_ptr_type): Likewise.
11438         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11439         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
11440         MISALIGNED_INDIRECT_REF handling.
11441
11442 2010-09-06  Richard Guenther  <rguenther@suse.de>
11443
11444         PR tree-optimization/45534
11445         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
11446         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
11447         on the target.
11448         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
11449         valid on the target.
11450
11451 2010-09-06  Andreas Schwab  <schwab@redhat.com>
11452
11453         * configure.ac: Quote argument of AC_MSG_WARN.
11454         * configure: Regenerate.
11455
11456 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11457
11458         * sel-sched.c (move_cond_jump): Correct arguments to
11459         maybe_tidy_empty_bb.
11460         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11461
11462 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
11463
11464         PR rtl-optimization/44919
11465         * sel-sched.c (move_cond_jump): Remove assert, check that
11466         the several blocks case can only happen with mutually exclusive
11467         insns instead.  Rewrite the movement code to support moving through
11468         several basic blocks.
11469
11470 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
11471
11472         * config/i386/i386.md (iptrsize): New mode attribute.
11473         (tp_seg): Ditto.
11474         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
11475         mode iterator.
11476         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
11477         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
11478         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
11479         (stack_tls_protect_set_<mode>): Ditto from
11480         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
11481         of thread base pointer load.
11482         (stack_tls_protect_test_<mode>): Ditto from
11483         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
11484         of thread base pointer load.
11485         (stack_protect_set): Rewrite using indirect functions.
11486         (stack_protect_test): Ditto.
11487         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
11488         (ix86_print_operand): Handle '@'.
11489
11490 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
11491
11492         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
11493         MINUS_EXPR.
11494
11495 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
11496
11497         * doc/invoke.texi: Document -Wdouble-promotion.
11498         * c-typeck.c (convert_arguments): Check for implicit conversions
11499         from float to double.
11500         (do_warn_double_promotion): New function.
11501         (build_conditional_expr): Use it.
11502         (build_binary_op): Likewise.
11503
11504 2010-09-05  Richard Guenther  <rguenther@suse.de>
11505
11506         PR tree-optimization/45535
11507         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
11508         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
11509         dereferencing it.
11510         (indirect_refs_may_alias_p): Likewise.
11511
11512 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
11513
11514         * config/sh/sh.c (sh_option_override): Make static.
11515         Adjust comments.  Declare.
11516         (sh_function_value_regno_p): Likewise.
11517         (sh_register_move_cost): Modify the arguments, make static.
11518         Adjust comments.  Declare.
11519         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
11520         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11521         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
11522         REGISTER_MOVE_COST): Delete.
11523         * config/sh/sh-protos.h (sh_override_options): Delete.
11524         (sh_register_move_cost): Delete.
11525         (sh_function_value_regno_p): Delete.
11526
11527 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
11528
11529         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
11530         m32r_function_value_regno_p): New functions.
11531         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11532         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
11533         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
11534         FUNCTION_VALUE_REGNO_P): Remove.
11535
11536 2010-09-04  Jan Hubicka  <jh@suse.cz>
11537
11538         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
11539         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
11540         fold_read_from_constant_string.
11541
11542         * gimple.h (canonicalize_constructor_val): Declare.
11543         * gimple-fold.c (canonicalize_constructor_val): New function.
11544         (get_symbol_constant_value):Use it.
11545         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
11546
11547 2010-09-04  Jan Hubicka  <jh@suse.cz>
11548
11549         * tree-switch-conversion.c (build_one_array): Set constructor to be
11550         static.
11551         * varpool.c (varpool_finalize_decl): Compute const_value_known.
11552
11553 2010-09-04  Richard Guenther  <rguenther@suse.de>
11554
11555         PR bootstrap/45519
11556         * tree-flow.h (force_gimple_operand_1): Declare.
11557         (force_gimple_operand_gsi_1): Likewise.
11558         * gimplify.c (force_gimple_operand_1): New worker taking a
11559         gimple predicate for ...
11560         (force_gimple_operand): ... which now wraps it.
11561         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
11562         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
11563         last change.
11564         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
11565         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
11566         (create_mem_ref): Likewise.
11567
11568 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
11569
11570         * config/i386/predicates.md (sse_reg_operand): New predicate.
11571         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
11572         predicate for operand 1.
11573         (XFmode push splitter): Use fp_register_operand predicate
11574         for operand 1.
11575         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
11576         (SF-DF float_extend push splitter): Add reload_completed insn
11577         predicate.
11578         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
11579         MODEF mode macro.  Add reload_completed insn predicate.
11580
11581 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
11582
11583         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
11584         (struct df_extract_ref): Remove.
11585         (union df_ref_d): Remove extract_ref member.
11586         (df_ref_create): Remove last three arguments.
11587         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
11588         * df-scan.c (df_ref_record): Remove last three arguments, do not
11589         pass them to df_ref_create_structure.
11590         (df_uses_record): Remove first and last three arguments.  Replace
11591         first argument with DF_REF_REGULAR, adjust calls to remove the
11592         width, offset and mode.  Always call recursively on the second
11593         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
11594         (df_ref_create_structure): Remove first argument.
11595         (struct df_scan_problem_data): Remove ref_extract_pool.
11596         (df_scan_free_internal): Do not free it.
11597         (df_scan_alloc): Do not allocate it.
11598         (df_ref_create): Remove last three arguments, do not pass them to
11599         df_ref_create_structure.
11600         (df_free_ref): Remove DF_REF_EXTRACT case.
11601         (df_notes_rescan): Adjust call to df_uses_record.
11602         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
11603         Remove DF_REF_EXTRACT case.
11604         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
11605         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
11606         and SUBREG definitions.
11607         (df_get_conditional_uses): Remove references to width/offset/mode,
11608         adjust call to df_ref_create_structure.
11609         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
11610         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
11611         calls to df_uses_record and df_ref_record.
11612         * fwprop.c (update_df): Remove references to width/offset/mode,
11613         adjust call to df_ref_create.
11614
11615 2010-09-03  Jan Hubicka  <jh@suse.cz>
11616
11617         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
11618         (build_cdtor_fns): Update use of build_cdtor.
11619
11620 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
11621
11622         * doc/options.texi (SeparateAlias): Document.
11623         * opt-functions.awk (switch_flags): Handle SeparateAlias.
11624         * opth-gen.awk: Generate enumeration names for options marked
11625         SeparateAlias, but not for those marked Ignore.
11626         * opts-common.c (generate_canonical_option): Don't output separate
11627         argument for options marked CL_SEPARATE_ALIAS.
11628         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
11629         * opts.h (CL_SEPARATE_ALIAS): New.
11630         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
11631         CL_COMMON): Adjust definitions.
11632         * config/i386/darwin.opt, config/mips/sde.opt: New.
11633         * common.opt (fdump-final-insns): New.
11634         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11635         i386/darwin.opt.
11636         (mips*-sde-elf*): Add mips/sde.opt.
11637         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
11638         -mno-data-in-code and -mcode-xonly here.
11639         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
11640         * gcc.c (option_map): Add "j" to --dump entry.
11641         (translate_options): Don't translate -d to -foutput-class-dir= here.
11642
11643 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
11644
11645         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
11646         DR_IS_WRITE.
11647         (compute_all_dependences): Same.
11648         (create_rdg_edge_for_ddr): Same.
11649         * tree-data-ref.h (DR_IS_WRITE): New.
11650         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
11651         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
11652         (write_memrefs_written_at_least_once): Same.
11653         * tree-predcom.c (suitable_component_p): Same.
11654         (determine_roots_comp): Same.
11655         (execute_load_motion): Same.
11656         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
11657         (vect_enhance_data_refs_alignment): Same.
11658         (vect_analyze_group_access): Same.
11659
11660 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
11661
11662         PR testsuite/42843
11663         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
11664         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
11665
11666 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
11667
11668         * dwarf2out.c (file scope): Remove #if0'd code.
11669         (gen_subprogram_die): Same.
11670
11671 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
11672
11673         PR middle-end/45484
11674         * dwarf2out.c (flush_queued_reg_saves): Rename to...
11675         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
11676         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
11677         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
11678         * config/i386/i386.c (output_set_got): Call it.
11679
11680 2010-09-03  Michael Matz  <matz@suse.de>
11681
11682         PR middle-end/45415
11683         * tree-sra.c (sra_modify_assign): If we modify the statement,
11684         say so.
11685
11686         * tree-ssa.c (verify_ssa): Check number of operands and links
11687         per statement to agree.
11688
11689 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
11690             Iain Sandoe  <iains@gcc.gnu.org>
11691
11692         PR target/45476
11693         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
11694         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
11695         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11696
11697 2010-09-03  Richard Guenther  <rguenther@suse.de>
11698
11699         * lto-streamer-out.c (output_function): Output function
11700         start and end loci.
11701         * lto-streamer-in.c (input_function): Input function start
11702         and end loci.
11703
11704 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11705
11706         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
11707         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
11708         * configure: Regenerate.
11709         * aclocal.m4: Regenerate.
11710
11711 2010-09-03  Jan Hubicka  <jh@suse.cz>
11712
11713         PR lto/44812
11714         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
11715         on functions/variables in other partition.
11716
11717 2010-09-03  Jan Hubicka  <jh@suse.cz>
11718
11719         * cgraph.h (struct varpool_node): Add const_value_known.
11720         (varpool_decide_const_value_known): Declare.
11721         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
11722         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
11723         (input_varpool_node): Restore const_value_known.
11724         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
11725         initializer folding.
11726         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11727         function_and_variable_visibility): Compute const_value_known.
11728         * gimple-fold.c (get_symbol_constant_value): Use varpool for
11729         initializer folding.
11730         * varpool.c (varpool_decide_const_value_known): New function.
11731
11732 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
11733
11734         * config/i386/i386.md: Remove empty preparation statements
11735         from splitters.
11736
11737 2010-09-03  Jan Hubicka  <jh@suse.cz>
11738
11739         * passes.c (rest_of_decl_compilation): Do not add local vars into
11740         varpool.
11741         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
11742         static or extern vars are in varpool.
11743         (varpool_finalize_decl): Sanity check that only static vars are
11744         finalized.
11745
11746 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
11747
11748         PR debug/45500
11749         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
11750         not just generic vectors with BLKmode.
11751
11752 2010-09-03  Richard Guenther  <rguenther@suse.de>
11753
11754         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
11755         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
11756         * tree.h (TMR_SYMBOL): Remove.
11757         (TMR_BASE, TMR_OFFSET): Adjust.
11758         (TMR_INDEX2): New.
11759         * alias.c (ao_ref_from_mem): Use TMR_BASE.
11760         * builtins.c (get_object_alignment): Merge TMR_BASE and
11761         TMR_SYMBOL handling.
11762         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
11763         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
11764         handling.  Also allow TARGET_MEM_REF as base address.
11765         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
11766         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
11767         base.  Gimplify TMR_INDEX2.
11768         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
11769         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11770         (get_addr_base_and_unit_offset): Likewise.
11771         * tree-eh.c (tree_could_trap_p): Likewise.
11772         * tree-pretty-print.c (dump_generic_node): Likewise.
11773         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
11774         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
11775         base to index2.
11776         (get_address_description): Reconstruct addres description
11777         from merged TMR_BASE and TMR_INDEX2.
11778         (maybe_fold_tmr): Fold propagated addresses.
11779         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
11780         MEM_REF and TARGET_MEM_REF paths.
11781         (indirect_refs_may_alias_p): Likewise.
11782         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
11783         instead of TMR_SYMBOL.
11784         * tree-ssa-operands.c (get_tmr_operands): Simplify.
11785         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
11786         according to changes ...
11787         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
11788         Split TARGET_MEM_REF into two fields plus the base.
11789         * tree.c (mem_ref_offset): Simplify.
11790         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
11791         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
11792         Strip NOPs when folding MEM_REF addresses.
11793         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
11794         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
11795         (fold_gimple_assign): ... not here.
11796
11797 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
11798
11799         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
11800         * config/mips/mips.c (mips_shift_truncation_mask): New function.
11801         (TARGET_SHIFT_TRUNCATION_MASK): Define.
11802
11803 2010-09-02  Richard Henderson  <rth@redhat.com>
11804
11805         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
11806         instead of readelf in the test.
11807         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
11808         in the .debug_frame section for coff targets.
11809         * configure: Rebuild.
11810
11811 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
11812
11813         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
11814         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
11815         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11816         (m32c_class_likely_spilled_p): Make static. Change argument type to
11817         reg_class_t. Change result type to bool.
11818
11819 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11820
11821         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
11822         to convert (double)(long) into a single FRIZ instruction or not
11823         when -ffast-math is used.
11824
11825         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
11826         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
11827         or FRIZ instruction if -ffast-math.
11828         * config/rs6000/rs6000.md (friz): Ditto.
11829
11830         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
11831
11832 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11833
11834         * opth-gen.awk (quote, comma): Remove unused variables.
11835
11836 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
11837
11838         * arm.c (arm_override_options): Correct fall-back code to use
11839         SUBTARGET_CPU_DEFAULT.
11840
11841 2010-09-02  Julian Brown  <julian@codesourcery.com>
11842
11843         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
11844         unspecs.
11845         (vcond<mode>, vcondu<mode>): New expanders.
11846         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
11847         comparisons with zero.
11848         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
11849         * config/arm/constraints.md (Dz): New constraint.
11850
11851 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
11852
11853         * target.def (class_likely_spilled_p): New hook.
11854         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
11855         * doc/tm.texi: Regenerate.
11856         * targhooks.c (default_class_likely_spilled_p): New function.
11857         * targhooks.h (default_class_likely_spilled_p): Declare.
11858         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
11859         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
11860         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
11861         Use fixed_reg_set instead of fixed_regs.
11862         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
11863         * calls.c (avoid_likely_spilled_reg): Ditto.
11864         * ira-conflicts.c (ira_build_conflicts): Ditto.
11865         * ira.c (update_equiv_regs): Ditto.
11866         * mode-switching.c (create_pre_exit): Ditto.
11867         * regmove.c (find_matches): Ditto.
11868         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
11869         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
11870         (small_register_class_p): New inline function.
11871         (push_secondary_reload, find_reusable_reload, find_reloads): Use
11872         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
11873
11874         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
11875         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
11876         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11877
11878 2010-09-02  Richard Guenther  <rguenther@suse.de>
11879
11880         PR tree-optimization/44937
11881         PR tree-optimization/45412
11882         * ipa-split.c (split_function): Properly remove PHI nodes.
11883
11884 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11885
11886         * opts.h (struct cl_option): Add warn_message field.
11887         (struct cl_decoded_option): Add warn_message field.
11888         * doc/options.texi (Ignore, Warn): Document.
11889         * opt-functions.awk (needs_state_p): Don't consider aliases or
11890         ignored options to need state saved.
11891         * optc-gen.awk: Handle Warn and Ignore.
11892         * opth-gen.awk: Output OPT_SPECIAL_ignore.
11893         * opts-common.c (decode_cmdline_option): Set warn_message field.
11894         Handle ignored options.
11895         (decode_cmdline_options_to_array, generate_option,
11896         generate_option_input_file): Set warn_message field.
11897         (read_cmdline_option): Generate warnings from warn_message field.
11898         Handle ignored options.
11899         * common.opt (Wunreachable-code, fargument-alias,
11900         fargument-noalias, fargument-noalias-global,
11901         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
11902         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
11903         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
11904         ftree-salias): Mark Ignore.
11905         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
11906         -mintel-syntax and -mno-intel-syntax here.
11907         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
11908         using Warn.
11909         * opts.c (common_handle_option): Don't handle options marked as
11910         ignored.
11911         (enable_warning_as_error): Handle ignored options.
11912
11913 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11914
11915         PR driver/44076
11916         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
11917         alias_target fields.
11918         * opt-functions.awk (opt_sanitized_name): Don't handle
11919         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
11920         * optc-gen.awk: Generate alias fields.
11921         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
11922         Don't generate such constants for aliases.
11923         * opts-common.c (generate_canonical_option): New.
11924         (decode_cmdline_option): Handle aliases.  Use
11925         generate_canonical_option for known options instead of copying the
11926         input option text.
11927         * doc/options.texi (Alias): Document.
11928         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
11929         fstack-check, specs): Mark as aliases.
11930         * gcc.c (driver_handle_option): Canonicalize -L options to joined
11931         arguments.
11932         (driver_handle_option): Don't handle OPT_specs.
11933         * opts.c (common_handle_option): Don't handle options marked as
11934         aliases.
11935         (enable_warning_as_error): Handle aliases.
11936         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
11937         OPT_Wlarger_than_eq.
11938         * tree-optimize.c (tree_rest_of_compilation): Use
11939         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
11940
11941 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11942
11943         * config/i386/i386.md (nonmemory_operand): New mode attribute.
11944         (push memory peephole2): Macroize peepholes using SWI mode iterator.
11945         (move immediate to memory peephole2): Macroize peepholes using
11946         SWI124 mode iterator.
11947         (non-pairable NOT peephole2): Macroize peepholes using SWI124
11948         mode iterator.
11949         (simple lea add peephole2): Macroize peepholes using SWI48
11950         mode iterator.
11951         (simple lea mult peephole2): Ditto.
11952         (imul by 3,5,9 to lea peephole2): Ditto.
11953         (mov $-1, reg peephole2): Macroize peepholes using SWI248
11954         mode iterator.
11955         (imul $32bit_imm,mem,reg peephole2): Ditto.
11956         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
11957
11958 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
11959
11960         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
11961
11962 2010-09-02  Olivier Hainque  <hainque@adacore.com>
11963
11964         PR middle-end/44763
11965         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
11966         (allocno_priority_compare_func): Use it instead of a straight
11967         difference computation over priorities.
11968
11969 2010-09-02  Andi Kleen  <ak@linux.intel.com>
11970
11971         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
11972
11973 2010-09-02  Ira Rosen  <irar@il.ibm.com>
11974
11975         * tree-vectorizer.h (get_later_stmt): New function.
11976         (vect_analyze_data_ref_dependences): Add argument.
11977         * tree-vect-loop.c (vect_analyze_loop): Update call to
11978         vect_analyze_data_ref_dependences.
11979         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
11980         New function.
11981         (vect_analyze_data_ref_dependence): Add argument for basic block
11982         dependencies. Check dependencies in basic block vectorization.
11983         (vect_analyze_data_ref_dependences): Add argument and update call to
11984         vect_analyze_data_ref_dependences.
11985         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
11986         (vect_bb_vectorizable_with_dependencies): New.
11987         (vect_slp_analyze_bb): Check dependencies in basic block.
11988         (vect_schedule_slp_instance): Insert stores before the last store in
11989         SLP instance.
11990
11991 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11992
11993         PR target/45476
11994         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
11995         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11996
11997 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
11998
11999         PR middle-end/45458
12000         * bb-reorder.c (add_labels_and_missing_jumps): Treat
12001         bbs ending with throwing insns like blocks ending with a call.
12002         (fix_up_fall_thru_edges): Likewise.
12003
12004 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
12005
12006         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
12007         (m32c_function_arg_advance): Delete.
12008         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12009         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
12010         comments.  Take a const_tree and a bool.  Declare.
12011         (m32c_function_arg_advance): Likewise.
12012         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12013
12014 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12015
12016         PR target/45476
12017         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
12018         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12019         * config/i386/mingw32.h: ... here.
12020
12021 2010-09-01  Andi Kleen  <ak@linux.intel.com>
12022
12023         PR lto/45475
12024         * lto-streamer-in.c (lto_input_ts_target_option): Add.
12025         (lto_input_tree_pointers): Call lto_input_ts_target_option.
12026         * lto-streamer-out (lto_output_ts_target_option): Add.
12027         (lto_output_tree_pointers): Call lto_output_ts_target_option.
12028
12029 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
12030
12031         PR/target 45452
12032         * config/i386/cygwin.h: Change order of specified import libraries.
12033         * config/i386/mingw32.h: Likewise.
12034         * config/i386/t-cygwin: Likewise.
12035         * config/i386/t-mingw32: Likewise.
12036         * config/i386/t-mingw-w32: Likewise.
12037         * config/i386/t-mingw-w64: Likewise.
12038
12039 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12040
12041         * config/arm/neon-schedgen.ml (core): New type.
12042         (allCores): List of supported cores.
12043         (availability_table): Add supported cores.
12044         (collate_bypasses): Accept core as a parameter.
12045         (worst_case_latencies_and_bypasses): Accept core as a parameter.
12046         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
12047         and coreStr to get tune attribute and prefix for functional units.
12048         (emit_bypasses): Accept core name and use it.
12049         (calculate_per_core_availability_table): New.
12050         (filter_core): New.
12051         (calculate_core_availability_table): New.
12052         (main): Use calculate_core_availablity_table.
12053         * config/arm/cortex-a8-neon.md: Update copyright year.
12054         Regenerated from ml file and merged in.
12055         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
12056         cortex_a8_neon_mrc.
12057
12058 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
12059
12060         * Makefile.in (tree-switch-conversion.o): Update dependencies.
12061
12062 2010-09-01  Richard Guenther  <rguenther@suse.de>
12063
12064         * alias.c (ao_ref_from_mem): Adjust.
12065         * builtins.c (get_object_alignment): Likewise.
12066         * cfgexpand.c (expand_debug_expr): Likewise.
12067         * gimple.c (get_base_address): Likewise.
12068         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12069         (get_addr_base_and_unit_offset): Likewise.  Fix for
12070         both TMR_SYMBOL and TMR_BASE being set.
12071         * tree-eh.c (tree_could_trap_p): Likewise.
12072         * gimplify.c (gimplify_expr): Do not attempt to gimplify
12073         TMR_SYMBOL.  Always gimplify TMR_BASE.
12074         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12075         TMR_BASE if there is a TMR_SYMBOL.
12076         * tree-pretty-print.c (dump_generic_node): Adjust.
12077         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12078         (tree_mem_ref_addr): Likewise.
12079         (create_mem_ref_raw): Likewise.
12080         (move_fixed_address_to_symbol): Likewise.
12081         (create_mem_ref): Likewise.
12082         (dump_mem_address): Likewise.
12083         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
12084         Fix for both TMR_SYMBOL and TMR_BASE being set.
12085         (indirect_refs_may_alias_p): Likewise.
12086         * tree-ssa-operands.c (get_tmr_operands): Adjust.
12087         * tree.def (TARGET_MEM_REF): Adjust documentation.
12088
12089 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12090
12091         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
12092         Rename from X86_TUNE_ADD_ESP_4.
12093         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
12094         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
12095         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
12096         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
12097         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
12098         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
12099         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
12100         * config/i386/i386.c (initial_ix86_tune_features)
12101         <X86_TUNE_SINGLE_POP>: Invert members.
12102         <X86_TUNE_DOUBLE_POP>: Ditto.
12103         <X86_TUNE_SINGLE_PUSH>: Ditto.
12104         <X86_TUNE_DOUBLE_PUSH>: Ditto.
12105         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
12106         No longer exported.
12107         (push peephole2 patterns): Macroize peepholes using P mode iterator.
12108         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
12109         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
12110         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
12111
12112 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
12113
12114         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
12115         a volatile LHS if the constructor has only one element.
12116
12117 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
12118
12119         PR bootstrap/45321
12120         * tree.c (stdarg_p): Make fntype parameter const.
12121         * tree.h (stdarg_p): Likewise.
12122         (function_args_iterator): Remove unused fntype field.
12123         (function_args_iter_init): Do not initialize fntype
12124         field.  Make fntype parameter const.
12125
12126 2010-09-01  Richard Guenther  <rguenther@suse.de>
12127
12128         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
12129         estimate.
12130         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
12131         (execute_vrp): Compute number of iteration estimates.
12132         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
12133         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12134         * tree-data-ref.c (estimated_loop_iterations): Adjust.
12135         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12136         Infer loop bounds from undefined behavior based on a new parameter.
12137         (estimate_numbers_of_iterations): Likewise.
12138         (scev_probably_wraps_p): Adjust.
12139         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12140
12141 2010-09-01  Nick Clifton  <nickc@redhat.com>
12142
12143         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
12144         where appropriate.
12145         (xstormy16_legitimate_address_p): Use true and false instead of 1
12146         and 0.
12147         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
12148         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
12149         magic constant 2.
12150         (xstormy16_expand_call): Fix comment at start of function.
12151
12152 2010-09-01  Nick Clifton  <nickc@redhat.com>
12153
12154         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
12155         when pushing accumulator register.
12156         (rx_get_stack_layout): Always save call clobbered registers inside
12157         interrupt handlers.
12158         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
12159
12160 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12161
12162         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
12163         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
12164
12165         * libgcc-std.ver (GCC_4.6.0): Define version.
12166
12167 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12168
12169         * tree-nested.c (convert_all_function_calls): Iterate until after the
12170         sum of static chains in the nest doesn't change.
12171
12172 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
12173
12174         * config/m32c/m32c.c (classes_intersect): Remove.
12175         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
12176         reg_classes_intersect_p instead of classes_intersect.
12177         (class_can_hold_mode): Change arguments type from enum reg_class to
12178         reg_class_t.  Use reg_class_contents instead of class_contents.
12179         (m32c_register_move_cost): Make static. Change arguments type from
12180         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
12181         classes_intersect. Use reg_class_contents instead of class_contents.
12182         (m32c_memory_move_cost): Make static. Change arguments type from
12183         enum reg_class to reg_class_t.
12184         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12185         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12186         * config/m32c/m32c-protos.h (m32c_register_move_cost,
12187         m32c_memory_move_cost): Remove.
12188
12189 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12190
12191         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
12192         (arm_function_arg): Delete.
12193         (arm_needs_doubleword_align): Take a const_tree.
12194         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12195         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
12196         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
12197         (arm_function_arg): Make static.  Take a const_tree and a bool.
12198         (arm_function_arg_advance): Likewise.
12199         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12200
12201 2010-08-31  Andi Kleen  <ak@linux.intel.com>
12202
12203         * common.opt (fwhopr=): Update for -fwhopr=jobserver
12204         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
12205         * lto-wrapper.c (run_gcc): Add jobserver mode.
12206         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
12207         argument.
12208
12209 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
12210
12211         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
12212         (popsi1): Ditto.
12213         (*popdi1_epilogue): Ditto.
12214         (*popsi1_epilogue): Ditto.
12215         (popsi, popdi peephole2 patterns): Update peepholes for changed
12216         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
12217
12218         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
12219         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
12220
12221         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
12222         (override_options): Do not initialize removed ix86_gen_pop1.
12223         (gen_pop): New static function.
12224         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
12225         (release_scratch_register_on_entry): Ditto.
12226         (ix86_restore_reg_using_pop): Ditto.
12227         (ix86_expand_epilogue): Ditto.
12228
12229 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
12230
12231         PR middle-end/45461
12232         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
12233
12234 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12235
12236         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
12237         semicolons.
12238
12239 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12240
12241         * doc/extend.texi: Fix documentation of the return value of
12242         __builtin_choose_expr.
12243
12244 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12245
12246         * config/v850/v850-protos.h (function_arg): Delete.
12247         * config/v850/v850.h (FUNCTION_ARG): Delete.
12248         (FUNCTION_ARG_ADVANCE): Move code to...
12249         * config/v850/v850.c (v850_function_arg_advance): ...here.
12250         (v850_function_arg): Make static.  Take a const_tree and a bool.
12251         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12252
12253 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12254
12255         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
12256         these...
12257         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12258         ...and these...
12259         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
12260         ..to here..
12261         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12262         ...and here.
12263         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12264
12265 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12266
12267         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
12268         Delete.
12269         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12270         * config/rx/rx.c (rx_function_arg_size): Make static.
12271         (rx_function_arg): Likewise.
12272         (rx_function_arg_advance): New function.
12273         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12274
12275 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
12276
12277         * config/arm/arm.c (arm_override_options): Remove superfluous test.
12278         Fix indentation.
12279
12280 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12281
12282         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
12283         (dwarf2out_decl) <CONST_DECL>: Likewise.
12284
12285 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
12286
12287         Stack usage support
12288         * common.opt (-fstack-usage): New option.
12289         * doc/invoke.texi (Debugging options): Document it.
12290         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
12291         allocate_dynamic_stack_space.
12292         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
12293         and propagate it to allocate_dynamic_stack_space.
12294         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
12295         * calls.c (initialize_argument_information): Pass TRUE as 4th
12296         argument to allocate_dynamic_stack_space.
12297         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
12298         to 1 when pushing a variable-sized argument onto the stack.  Pass
12299         TRUE as 4th argument to allocate_dynamic_stack_space.
12300         Update current_function_pushed_stack_size.
12301         (emit_library_call_value_1): Likewise.
12302         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
12303         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
12304         attempt to find an upper bound.  Remove redundant code for the
12305         SETJMP_VIA_SAVE_AREA case.
12306         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
12307         * function.h (struct stack_usage): New structure.
12308         (current_function_static_stack_size): New macro.
12309         (current_function_dynamic_stack_size): Likewise.
12310         (current_function_pushed_stack_size): Likewise.
12311         (current_function_dynamic_alloc_count): Likewise.
12312         (current_function_has_unbounded_dynamic_stack_size): Likewise.
12313         (current_function_allocates_dynamic_stack_space): Likewise.
12314         (struct function): Add new field 'su'.
12315         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
12316         add the value of the dynamic offset to the dynamic stack usage.
12317         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
12318         for variable-sized objects.
12319         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
12320         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
12321         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
12322         BUILT_IN_ALLOCA for variable-sized objects.
12323         * output.h (output_stack_usage): Declare.
12324         * toplev.c (stack_usage_file): New file pointer.
12325         (output_stack_usage): New function.
12326         (open_auxiliary_file): Likewise.
12327         (lang_dependent_init): Open file if flag_stack_usage is set.
12328         (finalize): Close file if stack_usage_file is not null.
12329         * tree.h (ALLOCA_FOR_VAR_P): New macro.
12330         * config/alpha/alpha.c (compute_frame_size): New function.
12331         (alpha_expand_prologue): Use it.
12332         (alpha_start_function): Likewise.
12333         (alpha_expand_epilogue): Likewise.  Set stack usage info.
12334         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12335         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12336         * config/mips/mips.c (mips_expand_prologue): Likewise.
12337         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12338         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12339         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12340
12341 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
12342
12343         PR tree-optimization/45427
12344         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
12345         Handle the case that the exit is never taken correctly.
12346         (number_of_iterations_ne): Pass exit_must_be_taken to
12347         number_of_iterations_ne_max.
12348
12349 2010-08-30  Catherine Moore  <clm@codesourcery.com>
12350
12351         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
12352         Infer -mdspr2 for the the 74K.
12353
12354 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
12355
12356         PR debug/45419
12357         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
12358
12359         PR middle-end/45423
12360         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
12361         and TRUTH_{AND,OR,XOR}_EXPR.
12362         * c-parser.c (c_parser_omp_atomic): Handle boolean
12363         {PRE,POST}_{INC,DEC}REMENT.
12364
12365 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
12366
12367         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
12368         (function_arg): Delete.
12369         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12370         (FUNCTION_INCOMING_ARG): Delete.
12371         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
12372         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
12373         and a bool.
12374         (function_arg): Rename to...
12375         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
12376         a bool.
12377         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
12378         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12379         (TARGET_FUNCTION_INCOMING_ARG): Define.
12380
12381 2010-08-30  Richard Guenther  <rguenther@suse.de>
12382
12383         PR tree-optimization/21602
12384         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
12385         using points-to information.
12386
12387 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
12388
12389         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
12390
12391 2010-08-30  Richard Guenther  <rguenther@suse.de>
12392
12393         PR tree-optimization/45449
12394         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
12395         variables.
12396
12397 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
12398
12399         * opts.h (CL_ERR_NEGATIVE): Define.
12400         * opts.c (unknown_option_callback): Don't postpone warnings for
12401         options marked with CL_ERR_NEGATIVE.
12402         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
12403         for negative versions of CL_REJECT_NEGATIVE options.
12404
12405 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
12406
12407         * config/i386/i386.md (zero_extendsidi2_1): Rename from
12408         zero_extendsidi2_32.
12409         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
12410         using SWI12 mode iterator.
12411         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
12412         to define_insn_and_split pattern.
12413         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
12414         using SWI24 mode iterator.
12415         (*zero_extendqi<mode>2_and): Macroize insn from
12416         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
12417         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
12418         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
12419         SWI24 mode iterator.
12420         (*zero_extendqi<mode>2_movzbl): Ditto from
12421         *zero_extendqi{hi,si}2_movzbl.
12422         (extendsidi2_1): Rename from extendsidi2_32.
12423         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
12424         SWI12 mode iterator.
12425
12426 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
12427
12428         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
12429         general purpose registers.
12430         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
12431         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
12432         with general purpose registers and memory operands.  Add associated
12433         CCImode post-reload splitter.
12434         * config/ia64/div.md: Change BImode to CCImode throughout.
12435
12436 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
12437
12438         * config/ia64/ia64.md (cstorebi4): Fix thinko.
12439
12440 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
12441
12442         * config/picochip/picochip.c (reorder_var_tracking_notes): This
12443         function was dropping debug insns which caused PR45299.
12444
12445 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
12446
12447         * config/i386/sse.md (extsuffix): New code attribute.
12448         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
12449         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
12450         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
12451         and sse4_1_zero_extendv4qiv4si2.
12452         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
12453         and sse4_1_zero_extendv2qiv2di2.
12454         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
12455         and sse4_1_zero_extendv4hiv4si2.
12456         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
12457         and sse4_1_zero_extendv2hiv2di2.
12458         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
12459         and sse4_1_zero_extendv2siv2di2
12460
12461         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
12462         using any_extend code iterator.
12463         (*avx_<s>mulv8hi3_highpart): Macroize insn from
12464         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
12465         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
12466
12467         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
12468         gen_sse4_1_sign_extend* functions.
12469         (struct builtin_description bdesc_args): Ditto.
12470
12471 2010-08-27  Xinliang David Li  <davidxl@google.com>
12472
12473         PR/45422
12474         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
12475         (iv_ca_set_no_cp): Update used inv expr count.
12476         (iv_ca_set_cp): Ditto.
12477         (iv_ca_new): Initialize new member.
12478         (iv_ca_free): Free memory.
12479
12480 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12481
12482         * config/sh/sh-protos.h (sh_function_arg): Delete.
12483         (sh_function_arg_advance): Delete.
12484         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12485         (PASS_IN_REG_P): Eliminate cast.
12486         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
12487         const_tree and a bool.
12488         (sh_function_arg): Likewise.
12489         (sh_output_mi_thunk): Call sh_function_arg_advance) and
12490         sh_function_arg.
12491         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12492
12493 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
12494             Kaz Kojima  <kkojima@gcc.gnu.org>
12495
12496         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
12497         when possible.
12498         (sh_expand_epilogue): Likewise.
12499         * config/sh/sh.md (movml_push_banked): New insn.
12500         (movml_pop_banked): Likewise.
12501
12502 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
12503
12504         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
12505         gen_regexp_oneof, gen_regexp_sequence): Use the string found
12506         in vector element 0 rather than the original string when there's
12507         only one element.
12508         (gen_regexp): Remove extra semicolon.
12509
12510         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
12511         thumb2_movsf_vfp): Set attribute "insn".
12512         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
12513         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
12514         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
12515         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
12516         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
12517         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
12518         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
12519         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
12520         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
12521         if_not_arith, if_arith_not, cond_move_not): Likewise.
12522
12523 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12524
12525         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
12526         New declaration.
12527         (rs6000_allocate_stack_temp): Ditto.
12528         (rs6000_expand_convert_si_to_sfdf): Ditto.
12529
12530         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
12531         line.  Update the options set if power6 or power7 server/embedded
12532         type options are used.  If we give a warning for no vsx under
12533         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
12534         (rs6000_allocate_stack_temp): New function to allocate a stack
12535         tempoary and adjust the address so it meets either REG+OFFSET or
12536         REG+REG addressing requirements.
12537         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
12538         that they can be used with the LFIWAX/LFIWZX instrucitons.
12539         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
12540         converting signed/unsigned SImode to either SFmode/DFmode.
12541
12542         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
12543         whether certain instructions can be generated.
12544         (TARGET_FCTIDZ): Ditto.
12545         (TARGET_STFIWX): Ditto.
12546         (TARGET_LFIWAX): Ditto.
12547         (TARGET_LFIWZX): Ditto.
12548         (TARGET_FCFIDS): Ditto.
12549         (TARGET_FCFIDU): Ditto.
12550         (TARGET_FCFIDUS): Ditto.
12551         (TARGET_FCTIDUZ): Ditto.
12552         (TARGET_FCTIWUZ): Ditto.
12553
12554         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
12555         (UNSPEC_FCTID): Ditto.
12556         (UNSPEC_LFIWAX): Ditto.
12557         (UNSPEC_LFIWZX): Ditto.
12558         (UNSPEC_FCTIWUZ): Ditto.
12559         (rreg): Use correct constraints.
12560         (SI_CONVERT_FP): New mode attribute for floating point conversion
12561         tests.
12562         (E500_CONVERT): Ditto.
12563         (lfiwax): New insns for converting from integer to floating point
12564         utilizing newer instructions.  Attempt to optimize conversions
12565         that come from memory so that we don't load the value into a GPR,
12566         spill it to the stack and reload it into a FPR.
12567         (floatsi<mode>2_lfiwax): Ditto.
12568         (floatsi<mode>2_lfiwax_mem): Ditto.
12569         (floatsi<mode>2_lfiwax_mem2): Ditto.
12570         (lfiwzx): Ditto.
12571         (floatunssi<mode>2_lfiwzx): Ditto.
12572         (floatunssi<mode>2_lfiwzx_mem): Ditto.
12573         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
12574         (floatdidf2_mem): Ditto.
12575         (floatunsdidf2_fcfidu): Ditto.
12576         (floatunsdidf2_mem): Ditto.
12577         (floatunsdisf2): Ditto.
12578         (floatunsdisf2_fcfidus): Ditto.
12579         (floatunsdisf2_mem): Ditto.
12580         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
12581         Use FCFID on 32-bit hosts that support it.
12582         (floatsidf2_internal): Ditto.
12583         (floatunssisf2): Ditto.
12584         (floatunssidf2): Ditto.
12585         (floatunssidf2_internal): Ditto.
12586         (floatsisf2): Ditto.
12587         (floatdidf2): Ditto.
12588         (floatdidf2_fpr): Ditto.
12589         (floatunsdidf2): Ditto.
12590         (floatdisf2): Ditto.
12591         (floatdisf2_fcfids): Ditto.
12592         (floatdisf2_internal1): Ditto.
12593         (fixuns_truncsfsi2): Delete, merge into common pattern for both
12594         SF/DF.  Add power7 support.
12595         (fix_truncsfsi2): Ditto.
12596         (fixuns_truncdfsi2): Ditto.
12597         (fixuns_truncdfdi2): Ditto.
12598         (fix_truncdfsi2): Ditto.
12599         (fix_truncdfsi2_internal): Ditto.
12600         (fix_truncdfsi2_internal_gfxopt): Ditto.
12601         (fix_truncdfsi2_mfpgpr): Ditto.
12602         (fctiwz): Ditto.
12603         (btruncdf2): Ditto.
12604         (btruncdf2_fpr): Ditto.
12605         (btructsf2): Ditto.
12606         (ceildf2): Ditto.
12607         (ceildf2_fpr): Ditto.
12608         (ceilsf2): Ditto.
12609         (floordf2): Ditto.
12610         (floordf2_fpr): Ditto.
12611         (floorsf2): Ditto.
12612         (rounddf2): Ditto.
12613         (rounddf2_fpr): Ditto.
12614         (roundsf2): Ditto.
12615         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
12616         (fix_trunc<mode>di2): Ditto.
12617         (fixuns_trunc<mode>si2): Ditto.
12618         (fixuns_trunc<mode>di2): Ditto.
12619         (fctiwz_<mode>): Ditto.
12620         (btrunc<mode>2): Ditto.
12621         (btrunc<mode>2_fpr): Ditto.
12622         (ceil<mode>2): Ditto.
12623         (ceil<mode>2_fpr): Ditto.
12624         (floor<mode>2): Ditto.
12625         (float<mode>2_fpr): Ditto.
12626         (round<mode>2): Ditto.
12627         (round<mode>2_fpr): Ditto.
12628         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
12629         (fixuns_trunc<mode>si2_stfiwx): Ditto.
12630         (fix_truncdfsi2_internal): Ditto.
12631         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
12632         converted value on stack, loaded into GPR, and then stored into
12633         the final destination.
12634         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
12635         FCTIDZ.
12636         (lrint<mode>di2): New insn, provide the lrint builtin functions.
12637         (ftruncdf2): Delete, unused.
12638         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
12639
12640         * config/rs6000/vsx.md (toplevel): Update copyright year.
12641         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
12642         (VSr3): Ditto.
12643
12644 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
12645             Jeremie Salvucci  <jeremie.salvucci@free.fr>
12646
12647         * gengtype.c (output_type_enum): Test the right union member.
12648
12649 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
12650
12651         PR target/41484
12652         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
12653         operands for operand 1.
12654         (sse4_1_extendv4qiv4si2): Ditto.
12655         (sse4_1_extendv2qiv2di2): Ditto.
12656         (sse4_1_extendv4hiv4si2): Ditto.
12657         (sse4_1_extendv2hiv2di2): Ditto.
12658         (sse4_1_extendv2siv2di2): Ditto.
12659         (sse4_1_zero_extendv8qiv8hi2): Ditto.
12660         (sse4_1_zero_extendv4qiv4si2): Ditto.
12661         (sse4_1_zero_extendv2qiv2di2): Ditto.
12662         (sse4_1_zero_extendv4hiv4si2): Ditto.
12663         (sse4_1_zero_extendv2hiv2di2): Ditto.
12664         (sse4_1_zero_extendv2siv2di2): Ditto.
12665         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
12666         (*sse4_1_extendv4qiv4si2): Ditto.
12667         (*sse4_1_extendv2qiv2di2): Ditto.
12668         (*sse4_1_extendv4hiv4si2): Ditto.
12669         (*sse4_1_extendv2hiv2di2): Ditto.
12670         (*sse4_1_extendv2siv2di2): Ditto.
12671         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
12672         (*sse4_1_zero_extendv4qiv4si2): Ditto.
12673         (*sse4_1_zero_extendv2qiv2di2): Ditto.
12674         (*sse4_1_zero_extendv4hiv4si2): Ditto.
12675         (*sse4_1_zero_extendv2hiv2di2): Ditto.
12676         (*sse4_1_zero_extendv2siv2di2): Ditto.
12677
12678 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12679
12680         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
12681         (mips_function_arg): Delete.
12682         (mips_function_arg_boundary): Take a const_tree.
12683         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
12684         (mips_arg_info): Likewise.
12685         (mips_setup_incoming_varargs): Call mips_function_arg_advance
12686         instead of FUNCTION_ARG_ADVANCE.
12687         (mips_function_arg_advance): Adjust prototype.  Make static.
12688         (mips_function_arg): Likewise.
12689         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12690         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
12691
12692 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12693
12694         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12695         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
12696         (function_arg): Delete.
12697         (function_arg_boundary): Take a const_tree.
12698         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
12699         (rs6000_spe_function_arg): Likewise.
12700         (rs6000_parm_start): Likewise.
12701         (rs6000_arg_size): Likewise.
12702         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
12703         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
12704         (rs6000_mixed_function_arg): Likewise.
12705         (function_arg): Rename to...
12706         (rs6000_function_arg): ...this.
12707         (function_arg_advance): Rename to...
12708         (rs6000_function_arg_advance_1): ...this
12709         (rs6000_function_arg_advance): New function.  Call it.
12710         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
12711         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
12712         (rs6000_function_value): Likewise.
12713         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12714
12715 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12716
12717         * config/arm/arm.md (enabled): Test the value of arch_enabled
12718         rather than just using it.
12719
12720 2010-08-27  Olivier Hainque  <hainque@adacore.com>
12721             Eric Botcazou  <ebotcazou@adacore.com>
12722
12723         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
12724         cover all the possible offsets from this base.
12725         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
12726
12727 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
12728
12729         PR tree-optimization/44485
12730         * calls.c (flags_from_decl_or_type): For const or pure
12731         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
12732         together with ECF_CONST resp. ECF_PURE.
12733         * builtins.c (expand_builtin): Use flags_from_decl_or_type
12734         instead of querying flags directly.
12735         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
12736         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
12737
12738 2010-08-26  Richard Guenther  <rguenther@suse.de>
12739
12740         PR tree-optimization/45255
12741         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
12742         and externals are also invariant.
12743
12744 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
12745
12746         PR rtl-optimization/44858
12747         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
12748         newi2pat, make sure they don't affect newpat.
12749
12750         PR rtl-optimization/45400
12751         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
12752         SUBREG_REG if both modes are of MODE_INT class.
12753
12754 2010-08-25  Julian Brown  <julian@codesourcery.com>
12755
12756         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
12757         * config/arm/arm.md (generic_sched): No for Cortex-A5.
12758         (generic_vfp): Likewise.
12759         (cortex-a5.md): Include.
12760         * config/arm/cortex-a5.md: New.
12761
12762 2010-08-25  Richard Guenther  <rguenther@suse.de>
12763
12764         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
12765         * gimple.c (gimple_get_alias_set): Remove special handling
12766         for pointers.
12767
12768 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12769
12770         PR middle-end/45355
12771         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
12772         dead_or_set_p when computing i0_feeds_i2_n.
12773
12774         * combine.c (find_split_point): Undo canonicalization of multiply-add
12775         to (minus x (mult)) when it seems likely that this will increase the
12776         chances of a split.
12777
12778 2010-08-25  Richard Guenther  <rguenther@suse.de>
12779
12780         PR lto/44562
12781         * lto-streamer.c (lto_record_common_node): Do not mess with
12782         TYPE_CANONICAL when not in lto.
12783         * gimple.c (gimple_register_type): Likewise.
12784
12785 2010-08-25  Richard Guenther  <rguenther@suse.de>
12786
12787         PR tree-optimization/45316
12788         * tree-ssa-pre.c (eliminate): Properly clean EH info.
12789
12790 2010-08-25  Richard Guenther  <rguenther@suse.de>
12791
12792         PR tree-optimization/45393
12793         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
12794         and clean EH info.  Avoid SSA update.
12795         (execute_cse_sincos): Cleanup the CFG if it has changed.
12796
12797 2010-08-25  Richard Guenther  <rguenther@suse.de>
12798
12799         PR middle-end/45379
12800         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
12801         TARGET_MEM_REF in alignment computation.
12802
12803 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
12804
12805         PR tree-optimization/45059
12806         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
12807         type conversions from newop{1,2}.  Assert t is a comparison and
12808         newop{1,2} after the stripping are gimple vals.
12809
12810 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
12811
12812         * config/arm/iterators.md (VU, SE, V_widen_l): New.
12813         (V_unpack, US): New.
12814         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
12815         (vec_unpack<US>_lo_<mode>): Likewise.
12816         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
12817         (neon_vec_unpack<US>_lo_<mode>): Likewise.
12818         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
12819         (vec_widen_<US>mult_hi_<mode>): Likewise.
12820         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
12821         (neon_vec_<US>mult_hi_<mode>"): Likewise.
12822         (neon_unpack<US>_<mode>): Widening move intermediate step for
12823         vectorizing without -mvectorize-with-neon-quad.
12824         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
12825         for vectorizing without -mvectorize-with-neon-quad.
12826         * config/arm/predicates.md (vect_par_constant_high): Check for
12827         high-half lanes of a vector.
12828         (vect_par_constant_low): Check for low-half lanes of a vector.
12829
12830 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12831
12832         * tree-if-conv.c (struct ifc_dr): New.
12833         (IFC_DR): New.
12834         (DR_WRITTEN_AT_LEAST_ONCE): New.
12835         (DR_RW_UNCONDITIONALLY): New.
12836         (memref_read_or_written_unconditionally): Use the cached values
12837         when possible.
12838         (write_memref_written_at_least_once): Same.
12839         (if_convertible_loop_p): Initialize and free DR->aux fields.
12840
12841 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12842
12843         * gimple.c (gimple_could_trap_p_1): Not static anymore.
12844         Pass an extra bool parameter include_mem.
12845         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
12846         (gimple_assign_rhs_could_trap_p): Same.
12847         * gimple.h (gimple_could_trap_p_1): Declared.
12848         * tree-data-ref.h (same_data_refs_base_objects): New.
12849         (same_data_refs): New.
12850         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
12851         (write_memrefs_written_at_least_once): New.
12852         (ifcvt_memrefs_wont_trap): New.
12853         (operations_could_trap): New.
12854         (ifcvt_could_trap_p): New.
12855         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
12856         Gets a vector of data refs.
12857         (if_convertible_stmt_p): Same.
12858         (if_convertible_loop_p_1): New.
12859         (if_convertible_loop_p): Call if_convertible_loop_p_1.
12860
12861 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12862
12863         * common.opt (ftree-loop-if-convert-stores): New flag.
12864         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
12865         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
12866         the created statement before GSI.
12867         (if_convertible_phi_p): Allow virtual phi nodes when
12868         flag_loop_if_convert_stores is set.
12869         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
12870         Do not handle types that do not match is_gimple_reg_type.
12871         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
12872         when flag_loop_if_convert_stores is set, as LHS can contain
12873         memory refs.
12874         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
12875         to if_convertible_gimple_assign_stmt_p.
12876         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
12877         (replace_phi_with_cond_gimple_assign_stmt): Renamed
12878         predicate_scalar_phi.  Do not handle virtual phi nodes.
12879         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
12880         Call predicate_scalar_phi.
12881         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
12882         just after the labels for flag_loop_if_convert_stores, otherwise
12883         insert the predicate in the end of the BB.
12884         (predicate_mem_writes): New.
12885         (combine_blocks): Call predicate_all_scalar_phis.  When
12886         flag_loop_if_convert_stores is set, call predicate_mem_writes.
12887         (tree_if_conversion): Call mark_sym_for_renaming when
12888         flag_loop_if_convert_stores is set.
12889         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
12890         flag_loop_if_convert_stores is set.
12891
12892 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
12893
12894         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
12895         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
12896         (pa_function_value): Make static.
12897         (override_options): Rename to...
12898         (pa_option_override): ...this. Make static.
12899         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
12900         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
12901         TARGET_OPTION_OVERRIDE): Define.
12902         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
12903         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
12904         Remove.
12905         * config/pa/pa-protos.h (override_options): Remove.
12906
12907 2010-08-24  Richard Guenther  <rguenther@suse.de>
12908
12909         PR middle-end/45379
12910         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
12911         if addr->index is NULL or zero.
12912         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
12913         TARGET_MEM_REF more properly.
12914         (indirect_ref_may_alias_decl_p): Likewise.
12915         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
12916         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
12917
12918 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
12919
12920         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
12921         (m32c_override_options): Rename to...
12922         (m32c_option_override): ...this. Make static.
12923         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
12924         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
12925         Remove.
12926         * config/m32c/m32c-protos.h (m32c_override_options,
12927         m32c_function_value_regno_p): Remove.
12928
12929 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12930
12931         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
12932         Fix a typo in a previous commit.
12933
12934 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
12935
12936         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
12937         Pre-initialize innerloop_iters to one.
12938
12939 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12940
12941         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
12942         existing static function global.
12943
12944         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
12945         is changed to global.
12946
12947         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
12948         may_be_nonaddressable_p on base, and don't collect this reference
12949         if the address of the base could not be taken.
12950
12951 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12952
12953         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
12954         enable the compiler to autovectorize mathmetical functions for
12955         power7 using the Mathematical Acceleration Subsystem library.
12956
12957         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
12958         handle which vector math library we have.
12959         (rs6000_override_options): Add -mveclibabi=mass support.
12960         (rs6000_builtin_vectorized_libmass): New function to handle auto
12961         vectorizing math functions that are in the MASS library.
12962         (rs6000_builtin_vectorized_function): Call it.
12963
12964         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
12965         -mveclibabi=mass.
12966
12967 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12968
12969         PR boehm-gc/34544
12970         * gthr-posix.h (__gthread_active_init): Delete.
12971         (__gthread_active_p): Do activity check here.
12972         Don't include errno.h on hppa-hpux.  Update comment.
12973         * gthr-posix95.h (__gthread_active_init): Delete.
12974         (__gthread_active_p): Do activity check here.
12975         Don't include errno.h on hppa-hpux.  Update comment.
12976         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
12977         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
12978         add -lpthread when -mt or -pthread is specified.
12979         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
12980         (LINK_GCC_C_SEQUENCE_SPEC): Define.
12981         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
12982         (stublib.c, pthread_default_stacksize_np-stub.o,
12983         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
12984         $(T)libgcc_stub.a): Add methods.
12985         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
12986         (stublib.c, pthread_default_stacksize_np-stub.o,
12987         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
12988         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12989         pthread_mutex_unlock): New stubs.
12990
12991 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
12992
12993         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
12994         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
12995         options.
12996         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
12997         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
12998         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
12999         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
13000         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
13001         "-l".
13002         * cppspec.c: Include opts.h.
13003         (lang_specific_driver): Use cl_decoded_option structures.
13004         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
13005         * doc/tm.texi: Regenerate.
13006         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
13007         (driver_handle_option): Allow driver options needing no special
13008         processing.
13009         (process_command): Decode options before call to
13010         lang_specific_driver.  Pass decoded options to
13011         lang_specific_driver.
13012         * gcc.h (lang_specific_driver): Update prototype.
13013         * gccspec.c: Include opts.h.
13014         (lang_specific_driver): Use cl_decoded_option structures.
13015         * opts-common.c (option_ok_for_language, generate_option,
13016         generate_option_input_file): New.
13017         (decode_cmdline_option): Use option_ok_for_language.
13018         (decode_cmdline_options_to_array): Use generate_option_input_file.
13019         (handle_generated_option): Use generate_option.
13020         * opts.h (generate_option, generate_option_input_file): Declare.
13021
13022 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
13023
13024         * config/mips/mips.c (mips_override_options): Rename to...
13025         (mips_option_override): ...this. Make static.
13026         (TARGET_OPTION_OVERRIDE): Define.
13027         (mips_in_small_data_p): Update comment.
13028         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13029         (FIXED_REGISTERS): Update comment.
13030         * config/mips/mips-protos.h (mips_override_options): Remove.
13031
13032 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13033
13034         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13035
13036 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13037
13038         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
13039         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
13040
13041 2010-08-20  Jan Hubicka  <jh@suse.cz>
13042
13043         * tree-pass.h (pass_ipa_cdtor_merge): New function.
13044         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
13045         heap allocated.
13046         (record_cdtor_fn): Move to ipa.c; do not test for
13047         have_ctors_dtors.
13048         (build_cdtor): Move to ipa.c; add code avoiding construction
13049         when target have ctors/dtors and there is only one ctor/dtor at given
13050         priority.
13051         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
13052         sort; reverse order of constructors.
13053         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
13054         (cgraph_finalize_function): Do not call record_cdtor_fn.
13055         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
13056         (cgraph_build_static_cdtor): Move to ipa.c.
13057         * ipa.c: Include target.h and tree-iterator.h.
13058         (cgraph_build_static_cdtor, static_ctors, static_dtors,
13059         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
13060         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
13061         pass_ipa_cdtor_merge): New.
13062         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
13063         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
13064         bounds access.
13065
13066 2010-08-20  Jan Hubicka  <jh@suse.cz>
13067
13068         PR c++/45307
13069         PR c++/17736
13070         * cgraph.h (cgraph_only_called_directly_p,
13071         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
13072         static cdtors.
13073         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
13074         are not needed.
13075         (cgraph_finalize_function): Static cdtors are reachable.
13076         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
13077
13078 2010-08-20  Jan Hubicka  <jh@suse.cz>
13079
13080         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
13081         flag_wpa.
13082         * lto-streamer-out.c (lto_output): Likewise.
13083         * passes.c (ipa_write_optimization_summaries): Initialize statement
13084         uids.
13085
13086 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13087
13088         * tree.h (alias_diag_flags): New enum.
13089         (alias_pair): Add an 'emitted_diags' field.
13090         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
13091         (assemble_alias): Initialize emitted_diags of new pairs.
13092
13093 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
13094
13095         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13096         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13097         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13098         (STACK_CHECK_PROTECT): Define.
13099         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
13100         (output_probe_stack_range): Likewise.
13101         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
13102         builtin stack checking is enabled.
13103         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
13104         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13105         (probe_stack_range): New insn.
13106
13107 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
13108
13109         PR target/45336
13110         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
13111         short first.
13112
13113         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
13114         char first.
13115
13116 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13117
13118         PR target/45336
13119         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
13120         to cover zero extension into 64-bit register.
13121         (*sse2_pextrw): Likewise.
13122         (*sse4_1_pextrd_zext): New insn.
13123
13124 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13125
13126         revert r163410, partially revert r163267.
13127         * config/rs6000/darwin.h (LIB_SPEC): Remove.
13128         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
13129         Darwin versions.
13130
13131 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13132
13133         PR middle-end/44974
13134         * builtins.c (expand_builtin): Don't optimize away
13135         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
13136
13137 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
13138
13139         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
13140         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
13141         alternative 1 of operand 2.
13142
13143 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13144             Paolo Bonzini  <bonzini@gnu.org>
13145
13146         * simplify-rtx.c (simplify_unary_operation_1): Optimize
13147         (sign_extend (zero_extend (...)) and
13148         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
13149
13150 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13151
13152         PR rtl-optimization/45353
13153         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
13154         after bb_note is a BARRIER.
13155
13156 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13157
13158         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
13159         linking libgcc.a.
13160
13161 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13162             Michael Matz  <matz@suse.de>
13163
13164         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
13165
13166 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13167
13168         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
13169         (ggc_mark_roots): ...here.
13170
13171 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13172
13173         * vec.h (FOR_EACH_VEC_ELT): Define.
13174         * c-decl.c: Use it.
13175         * cfgloop.c: Likewise.
13176         * cfgloopmanip.c: Likewise.
13177         * cgraph.c: Likewise.
13178         * cgraphunit.c: Likewise.
13179         * combine.c: Likewise.
13180         * config/bfin/bfin.c: Likewise.
13181         * config/mips/mips.c: Likewise.
13182         * config/rs6000/rs6000.c: Likewise.
13183         * dbxout.c: Likewise.
13184         * df-scan.c: Likewise.
13185         * dominance.c: Likewise.
13186         * dse.c: Likewise.
13187         * dwarf2out.c: Likewise.
13188         * except.c: Likewise.
13189         * expr.c: Likewise.
13190         * function.c: Likewise.
13191         * gcse.c: Likewise.
13192         * genattr.c: Likewise.
13193         * ggc-common.c: Likewise.
13194         * gimplify.c: Likewise.
13195         * graphite-blocking.c: Likewise.
13196         * graphite-clast-to-gimple.c: Likewise.
13197         * graphite-dependences.c: Likewise.
13198         * graphite-interchange.c: Likewise.
13199         * graphite-poly.c: Likewise.
13200         * graphite-scop-detection.c: Likewise.
13201         * graphite-sese-to-poly.c: Likewise.
13202         * graphite.c: Likewise.
13203         * haifa-sched.c: Likewise.
13204         * ifcvt.c: Likewise.
13205         * implicit-zee.c: Likewise.
13206         * ipa-prop.c: Likewise.
13207         * ipa-struct-reorg.c: Likewise.
13208         * ipa.c: Likewise.
13209         * ira-build.c: Likewise.
13210         * ira-color.c: Likewise.
13211         * ira-emit.c: Likewise.
13212         * lambda-code.c: Likewise.
13213         * loop-invariant.c: Likewise.
13214         * loop-unroll.c: Likewise.
13215         * lower-subreg.c: Likewise.
13216         * lto-cgraph.c: Likewise.
13217         * lto-opts.c: Likewise.
13218         * lto-streamer-in.c: Likewise.
13219         * lto-streamer-out.c: Likewise.
13220         * lto-streamer.c: Likewise.
13221         * lto-symtab.c: Likewise.
13222         * matrix-reorg.c: Likewise.
13223         * opts.c: Likewise.
13224         * predict.c: Likewise.
13225         * print-tree.c: Likewise.
13226         * sdbout.c: Likewise.
13227         * sel-sched-dump.c: Likewise.
13228         * sel-sched-ir.c: Likewise.
13229         * sel-sched.c: Likewise.
13230         * sese.c: Likewise.
13231         * stor-layout.c: Likewise.
13232         * tree-cfg.c: Likewise.
13233         * tree-cfgcleanup.c: Likewise.
13234         * tree-chrec.c: Likewise.
13235         * tree-data-ref.c: Likewise.
13236         * tree-emutls.c: Likewise.
13237         * tree-inline.c: Likewise.
13238         * tree-into-ssa.c: Likewise.
13239         * tree-loop-distribution.c: Likewise.
13240         * tree-loop-linear.c: Likewise.
13241         * tree-mudflap.c: Likewise.
13242         * tree-outof-ssa.c: Likewise.
13243         * tree-parloops.c: Likewise.
13244         * tree-predcom.c: Likewise.
13245         * tree-pretty-print.c: Likewise.
13246         * tree-scalar-evolution.c: Likewise.
13247         * tree-ssa-live.c: Likewise.
13248         * tree-ssa-loop-im.c: Likewise.
13249         * tree-ssa-loop-ivcanon.c: Likewise.
13250         * tree-ssa-loop-ivopts.c: Likewise.
13251         * tree-ssa-loop-manip.c: Likewise.
13252         * tree-ssa-loop-niter.c: Likewise.
13253         * tree-ssa-loop-prefetch.c: Likewise.
13254         * tree-ssa-phiprop.c: Likewise.
13255         * tree-ssa-pre.c: Likewise.
13256         * tree-ssa-reassoc.c: Likewise.
13257         * tree-ssa-sccvn.c: Likewise.
13258         * tree-ssa-structalias.c: Likewise.
13259         * tree-ssa.c: Likewise.
13260         * tree-vect-data-refs.c: Likewise.
13261         * tree-vect-loop-manip.c: Likewise.
13262         * tree-vect-loop.c: Likewise.
13263         * tree-vect-patterns.c: Likewise.
13264         * tree-vect-slp.c: Likewise.
13265         * tree-vect-stmts.c: Likewise.
13266         * tree-vrp.c: Likewise.
13267         * tree.c: Likewise.
13268         * value-prof.c: Likewise.
13269         * var-tracking.c: Likewise.
13270         * varasm.c: Likewise.
13271         * vmsdbgout.c: Likewise.
13272
13273 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
13274             Richard Guenther  <richard.guenther@gmail.com>
13275
13276         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
13277         copy the src value and return a copy.
13278         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
13279         (C++ Volatiles): Adjust to describe C++ semantics only.
13280
13281 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
13282
13283         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
13284         be zero or nonzero.
13285         * doc/tm.texi: Regenerate.
13286         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
13287         * df-scan.c (df_get_exit_block_use_set), reginfo.c
13288         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
13289         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
13290         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
13291         to 1.
13292
13293 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13294
13295         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
13296         an extra nop past a sibling call at the very end.
13297
13298 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
13299
13300         PR bootstrap/45350
13301         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
13302         a comment.
13303
13304 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
13305
13306         * target.def (function_arg, function_incoming_arg): Remove const
13307         qualifier on CUMULATIVE_ARGS parameter.
13308         * targhooks.h (default_function_arg, default_function_incoming_arg):
13309         Likewise.
13310         * targhooks.c (default_function_arg, default_function_incoming_arg):
13311         Likewise.
13312         * config/i386/i386.c (ix86_function_arg): Likewise.
13313
13314 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
13315
13316         PR target/45336
13317         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
13318         SIGN_EXTENDs or ZERO_EXTENDs.
13319
13320 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
13321
13322         PR target/42172
13323         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
13324         Take its cost into account if nonnull.
13325         (insn_a_feeds_b): New static function.
13326         (combine_instructions): Look for four-insn combinations.
13327         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
13328         them into account when computing all_adjacent and looking for other
13329         uses.
13330         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
13331         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
13332         (try_combine): New arg I0.  Handle four-insn combinations.
13333         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
13334         like ELIM_I1.
13335
13336 2010-08-19  Jason Merrill  <jason@redhat.com>
13337
13338         PR c++/45307
13339         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
13340         if ctor is empty.
13341         (gimplify_modify_expr_rhs): Adjust.
13342
13343 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
13344
13345         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
13346         bitmap_bit_p.
13347         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
13348         * dominance.c (iterate_fix_dominators): Likewise.
13349         * dse.c (set_usage_bits): Likewise.
13350         (set_position_unneeded, record_store): Likewise.
13351         * gimple-fold.c (get_maxval_strlen): Likewise.
13352         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
13353         * ipa-inline.c (update_caller_keys): Likewise.
13354         * ipa-split.c (verify_non_ssa_vars): Likewise.
13355         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
13356         (close_type_exposed_parameter, close_type_full_escape): Likewise.
13357         (close_addressof_down): Likewise.
13358         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
13359         (setup_allocno_left_conflicts_size): Likewise.
13360         (ira_reassign_conflict_allocnos): Likewise.
13361         (ira_reassign_pseudos): Likewise.
13362         * ira-emit.c (change_loop): Likewise.
13363         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
13364         * lto-streamer-out.c (write_symbol): Likewise.
13365         * predict.c (expr_expected_value_1): Likewise.
13366         * regstat.c (regstat_bb_compute_ri): Likewise.
13367         * sel-sched.c (create_block_for_bookkeeping): Likewise.
13368         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
13369         * stmt.c (expand_case): Likewise.
13370         * tree-eh.c (emit_eh_dispatch): Likewise.
13371         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
13372         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
13373         Likewise.
13374         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
13375         (rdg_build_components): Likewise.
13376         * tree-object-size.c (collect_object_sizes_for): Likewise.
13377         * tree-sra.c (convert_callers): Likewise.
13378         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
13379         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
13380         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
13381
13382 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
13383
13384         * config/i386/i386.md (*lea_1): Use P mode iterator.
13385         (lea add splitter): Also handle DImode operands.
13386         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
13387         predicate.  Do not use ix86_lea_for_add_ok.
13388         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
13389         (lea ashift splitter): Also handle DImode operands.
13390         (DImode lea ashift splitter): Remove splitter.
13391
13392 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
13393
13394         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
13395         ix86_binary_operator_ok.
13396
13397 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
13398
13399         PR rtl-optimization/44691
13400         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
13401         is not a register.
13402
13403 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
13404
13405         PR target/45070
13406         * config/arm/arm.c (arm_output_epilogue): Ensure that return
13407          value of size 1-3 is handled correctly.
13408
13409 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
13410
13411         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
13412         type for the conditional has wide enough range.
13413
13414 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
13415
13416         PR target/45327
13417         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
13418         ix86_binary_operator_ok.
13419
13420 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
13421
13422         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
13423         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
13424         code to output insn mnemonic.  Fix comment.
13425         (*addsi_1_zext): Add r-r-0 alternative 1.
13426         <TYPE_LEA>: Split insn to lea.
13427         <default>: Handle alternative 1.
13428         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
13429         multi-level if_then_else RTX to set "type" attribute.
13430         <default>: Handle alternative 2.
13431         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
13432         Use cond RTX instead of multi-level if_then_else RTX to set
13433         "type" attribute.
13434         <default>: Handle alternatives 2 and 4.
13435         (lea splitters): Update calls to ix86_lea_for_add_ok.
13436
13437         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
13438         argument.
13439         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
13440
13441 2010-08-18  Richard Guenther  <rguenther@suse.de>
13442
13443         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
13444         use operand helpers.
13445
13446 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
13447
13448         PR middle-end/45292
13449         * optabs.c (expand_bool_compare_and_swap): Expand pending
13450         pops before trying the optab.
13451
13452 2010-08-18  Yao Qi  <yao@codesourcery.com>
13453
13454         PR target/45094
13455         * config/arm/arm.c (output_move_double): Fix typo generating
13456         instructions ('ldr'->'str').
13457
13458 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
13459
13460         PR rtl-optimization/42575
13461         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
13462         live ranges.
13463
13464 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13465
13466         * config/arm/arm-protos.h (arm_expand_sync): New.
13467         (arm_output_memory_barrier, arm_output_sync_insn): New.
13468         (arm_sync_loop_insns): New.
13469         * config/arm/arm.c (FL_ARCH7): New.
13470         (FL_FOR_ARCH7): Include FL_ARCH7.
13471         (arm_arch7): New.
13472         (arm_print_operand): Support %C markup.
13473         (arm_legitimize_sync_memory): New.
13474         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
13475         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
13476         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
13477         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
13478         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
13479         (arm_process_output_sync_insn, arm_output_sync_insn): New.
13480         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
13481         * config/arm/arm.h (struct arm_sync_generator): New.
13482         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
13483         (TARGET_HAVE_MEMORY_BARRIER): New.
13484         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
13485         * config/arm/arm.md: Include sync.md.
13486         (UNSPEC_MEMORY_BARRIER): New.
13487         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
13488         (VUNSPEC_SYNC_OP):New.
13489         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
13490         (sync_result, sync_memory, sync_required_value): New attributes.
13491         (sync_new_value, sync_t1, sync_t2): Likewise.
13492         (sync_release_barrier, sync_op): Likewise.
13493         (length): Add logic to length attribute defintion to call
13494         arm_sync_loop_insns when appropriate.
13495         * config/arm/sync.md: New file.
13496
13497 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
13498
13499         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
13500         ENABLE_TREE_CHECKING.
13501         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
13502         and GCC >= 4.3.
13503
13504 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
13505
13506         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
13507         or optimizing for size, always avoid lea if possible.
13508
13509         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
13510
13511 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
13512
13513         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
13514         Dunmmy function with NULL return unless the target is
13515         OSX >= 10.6 (Darwin10).
13516
13517 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
13518
13519         * gcc.c (spec_function): Add remove-outfile.
13520         (remove_outfile_spec_function): New function.
13521         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
13522         * invoke.texi (replace-outfile): Document.
13523
13524 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
13525
13526         PR target/45296
13527         * reginfo.c (globalize_reg): Reject stack registers.
13528
13529 2010-08-17  Richard Guenther  <rguenther@suse.de>
13530
13531         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
13532         list of conditional equivalences.
13533         (free_all_edge_infos): Adjust.
13534         (record_equivalences_from_incoming_edge): Likewise.
13535         (record_cond): Likewise.
13536         (build_and_record_new_cond): Likewise.
13537         (record_conditions): Likewise.
13538         (dom_opt_leave_block): Likewise.
13539
13540 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
13541
13542         * doc/invoke.texi (ms-extension): Add documentation.
13543
13544 2010-08-17  Richard Guenther  <rguenther@suse.de>
13545
13546         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
13547
13548 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
13549
13550         PR c/40563
13551         * c-decl.c (diagnose_uninitialized_cst_member): New function.
13552         (finish_decl): Use it to issue a -Wc++-compat warning about
13553         uninitialized const field in struct or union.
13554
13555         (finish_struct): Use strip_array_types.
13556
13557 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
13558
13559         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
13560         functions.
13561         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
13562         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
13563         call block_nreverse here.
13564         (blocks_nreverse): Rename decl temporary to block.
13565
13566 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
13567
13568         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
13569         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
13570         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
13571         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
13572         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
13573         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
13574         thumb2_iorsi3): Delete.
13575         (orsi_notsi_si): No longer a named pattern.
13576         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
13577         * config/arm/predicates.md (shift_amount_operand): New.
13578         (mult_operator): New.
13579         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
13580         attr enabled): New.
13581         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
13582         arch matches t2.
13583         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
13584         (not_shiftsi_compare0): Likewise, renamed from
13585         arm_notsi_shiftsi_compare0.
13586         (not_shiftsi_compare0_scratch): Likweise, renamed from
13587         arm_notsi_shiftsi_compare0_scratch.
13588         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
13589         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
13590         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
13591         so that the register alternative is disabled when the shift_operator
13592         is MULT.  Use "M" as the constraint for constants.
13593         (arith_shiftsi splitter): Enable for TARGET_32BIT.
13594         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
13595         constraint for constants.
13596         (arith_shiftsi_compare0_scratch): Likewise.
13597         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
13598         Handle Thumb2 alternative.
13599
13600 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
13601
13602         * doc/options.texi (NoDriverArg): Document.
13603         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
13604         -MDX and -MMDX.
13605         * opt-functions.awk (switch_flags): Handle NoDriverArg.
13606         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
13607         marking for CL_NO_DRIVER_ARG options when in the driver.
13608         * opts.h (CL_NO_DRIVER_ARG): Define.
13609         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13610         CL_COMMON): Update values.
13611
13612 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
13613
13614         * common.opt: Add driver options.
13615         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
13616         * doc/options.texi (Driver, RejectDriver): Document.
13617         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
13618         print_prog_name, print_multi_directory, print_sysroot,
13619         print_multi_os_directory, print_multi_lib,
13620         print_sysroot_headers_suffix, report_times, combine_flag,
13621         use_pipes, wrapper_string): Remove.
13622         (save_switch, driver_unknown_option_callback,
13623         driver_wrong_lang_callback, driver_post_handling_callback,
13624         driver_handle_option): New.
13625         (spec_lang, last_language_n_infiles): Make file-scope static
13626         instead of local to process_command.
13627         (process_command): Use decode_cmdline_options_to_array and
13628         read_cmdline_option for option processing.  Compute have_c in
13629         prescan of decoded options.
13630         * opt-functions.awk (switch_flags): Handle Driver and
13631         RejectDriver.
13632         (var_type, var_type_struct): Handle Separate options as generating
13633         const char * variables.
13634         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
13635         CL_TARGET to be passed by caller if required.
13636         (decode_cmdline_options_to_array): Update comment.
13637         * opts.c (complain_wrong_lang): Handle options only valid for the
13638         driver.
13639         (decode_options): Update call to decode_cmdline_options_to_array.
13640         (print_filtered_help): Ignore driver-only options.
13641         (print_specific_help): Ignore CL_DRIVER.
13642         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
13643         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
13644         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
13645         Update values.
13646
13647 2010-08-16  Richard Guenther  <rguenther@suse.de>
13648
13649         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13650         TARGET_MEM_REF a bit.
13651         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
13652         (create_mem_ref_raw): Always create TMR_OFFSET, store the
13653         alias pointer type via it.
13654         (copy_mem_ref_info): Adjust.
13655         (maybe_fold_tmr): Likewise.
13656         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
13657         (reference_alias_ptr_type): Likewise.
13658         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
13659         adjust documentation of TMR_OFFSET operand.
13660         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
13661         use the alias pointer type.
13662         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
13663         initialize mem attrs but the TMR itself.
13664         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
13665         similar to MEM_REF.
13666         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
13667         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
13668         (unshare_and_remove_ssa_names): Likewise.
13669         (copy_ref_info): Adjust.
13670         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
13671         TARGET_MEM_REF case.
13672         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
13673         at TMR_ORIGINAL.
13674         * tree.h (TMR_ORIGINAL): Remove.
13675         * gimple.c (get_base_address): For TARGET_MEM_REF with a
13676         symbol return that.
13677         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
13678         with a symbol.
13679         (get_addr_base_and_unit_offset): Likewise.
13680         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
13681         TARGET_MEM_REFs.
13682         (indirect_ref_may_alias_decl_p): Likewise.
13683         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
13684
13685 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
13686
13687         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
13688         with GCC version 4.6, the default setting (when not optimizing
13689         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
13690         been changed to -fomit-frame-pointer.
13691
13692 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
13693
13694         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
13695         Darwin10.  Do not link libgcc.a for Darwin >= 9.
13696
13697 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
13698
13699         * doc/invoke.texi (Warning Options): Fix terminology and markup
13700         in the description of how unknown warning options are handled.
13701
13702 2010-08-15  Ira Rosen  <irar@il.ibm.com>
13703
13704         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
13705         in basic blocks.
13706         (vect_supportable_dr_alignment): Check alignment for basic blocks.
13707         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
13708         data references.
13709         (vect_bb_vectorization_profitable_p): New function.
13710         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
13711         check if it's worthwhile to vectorize the basic block.
13712
13713 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
13714
13715         * reload.h (register_move_cost, memory_move_secondary_cost,
13716         secondary_reload_class): Adjust prototype.
13717         * rtl.h (reg_class_subset_p): Adjust prototype.
13718         * reload.c (secondary_reload_class): Change arguments type from
13719         enum reg_class to reg_class_t. Change result type to reg_class_t.
13720         * reginfo.c (register_move_cost, reg_class_subset_p): Change
13721         arguments type from enum reg_class to reg_class_t.
13722         (memory_move_secondary_cost): Change arguments type from
13723         enum reg_class to reg_class_t. Change type of saved_flags to
13724         reg_class_t.
13725
13726         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13727         Remove macros.
13728         (mips_cost): Remove.
13729         (struct mips_rtx_cost_data): Moved to mips.c.
13730         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
13731         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
13732         (mips_cost): Make static.
13733         (mips_canonicalize_move_class): Change argument type to reg_class_t.
13734         Change result type to reg_class_t.
13735         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
13736         type from enum reg_class to reg_class_t.
13737         (mips_register_move_cost): Make static. Change arguments
13738         type from enum reg_class to reg_class_t.
13739         (mips_memory_move_cost): New function.
13740         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13741
13742 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
13743
13744         PR rtl-optimization/43358
13745         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
13746         of a single hard register, using simplify_subreg_regno to decide
13747         what that register should be.
13748
13749 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
13750
13751         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
13752         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
13753         (loongson_pmull<V_suffix>): Rename to...
13754         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
13755
13756 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
13757
13758         * configure.ac: Enable -fomit-frame-pointer on darwin
13759         which support dwarf2.
13760         * config/i386/i386.c (override_options): Same.
13761
13762 2010-08-13  Jie Zhang  <jie@codesourcery.com>
13763
13764         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
13765
13766 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
13767
13768         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
13769         -MMD.
13770
13771 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
13772
13773         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
13774         up dot_prod pattern searching if a stmt is outside the loop.
13775
13776 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
13777             Uros Bizjak  <ubizjak@gmail.com>
13778
13779         * config.gcc: Handle --enable-frame-pointer.
13780
13781         * configure.ac: Add --enable-frame-pointer.
13782         * configure: Regenerated.
13783
13784         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
13785         (override_options): If not configured with --enable-frame-pointer,
13786         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
13787         optimizing for size), -fasynchronous-unwind-tables and
13788         -maccumulate-outgoing-args by default.
13789
13790 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
13791
13792         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
13793
13794         PR middle-end/45262
13795         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
13796         -a overflows.  Normalize the range.
13797
13798 2010-08-12  Richard Guenther  <rguenther@suse.de>
13799
13800         PR tree-optimization/45232
13801         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
13802         for types with undefined overflow.
13803         (reassociate_bb): Allow re-associating of bit and min/max
13804         operations for types with undefined overflow.
13805         * tree-ssa-forwprop.c (associate_plusminus): New function.
13806         (tree_ssa_forward_propagate_single_use_vars): Call it.
13807
13808 2010-08-12  Richard Guenther  <rguenther@suse.de>
13809
13810         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
13811         * tree-ssa-alias.c (get_ptr_info): Move ...
13812         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
13813         align and misalign fields conservatively.
13814         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
13815         derive alignment information.
13816         (evaluate_stmt): Derive alignment information from memory
13817         allocation functions.
13818         * tree.h (get_pointer_alignment): Make unsigned.
13819         * builtins.c (get_object_alignment): Use alignment information we
13820         have computed for pointers.
13821         (get_pointer_alignment): Likewise.  Make conservative, return
13822         and unsigned value.
13823         (expand_builtin_strlen): Adjust.
13824         (expand_builtin_memcmp): Likewise.
13825         (expand_builtin_strcmp): Likewise.
13826         (expand_builtin_strncmp): Likewise.
13827         (get_builtin_sync_mem): Use at least mode alignment.
13828         (fold_builtin_memset): Adjust.
13829         (fold_builtin_memory_op): Likewise.
13830         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
13831         information also dump pointer alignment knowledge.
13832         (dump_gimple_stmt): Likewise.
13833
13834 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
13835
13836         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
13837         (EMPTY_FIELD_BOUNDARY): Remove.
13838         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
13839
13840 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
13841
13842         PR debug/45259
13843         * caller-save.c (save_call_clobbered_regs): Only swap notes with
13844         DEBUG_INSNs if n_regs_saved.
13845
13846 2010-08-12  Wei Guozhi  <carrot@google.com>
13847
13848         PR target/44999
13849         * config/arm/arm.md (andsi3): Change to zero extension if possible.
13850         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
13851
13852 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
13853
13854         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
13855
13856         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
13857
13858 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13859
13860         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
13861         the case removed in the previous patch, when the only phi argument
13862         is defined in the same loop as the phi node itself.  Handle it
13863         separately from the invariant case by both propagating it outside
13864         the region and replacing the phi node with an assign.
13865
13866 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13867
13868         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
13869         constant phi nodes with one argument are is_gimple_min_invariant
13870         and SSA_NAME_IS_DEFAULT_DEF.
13871
13872 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13873
13874         * graphite-cloog-util.c (oppose_constraint):
13875         Extend loop counter's value range (CLOOG_ORG).
13876         (cloog_matrix_to_ppl_constraint): Same.
13877         (new_Constraint_System_from_Cloog_matrix): Same.
13878         * graphite-cloog-compat.h (matrix_num_type): New.
13879
13880 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13881
13882         * graphite.c (graphite_initialize): Do not initialize
13883         CLooG and initialize the Parma Polyhedra Library
13884         manually when using CLOOG_ORG.
13885         (graphite_finalize): Do not finalize CLooG and finalize
13886         the Parma Polyhedra Library manually when using CLOOG_ORG.
13887         * graphite-cloog-compat.h (cloog_initialize): Hide function
13888         when using CLOOG_ORG.
13889         (cloog_finalize): Same.
13890
13891 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13892
13893         * graphite-clast-to-gimple.c (free_scattering): Change
13894         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
13895         (CLOOG_ORG).
13896         (build_cloog_prog): Same.
13897         * graphite-cloog-compat.h (cloog_domain): Removed.
13898         (cloog_scattering): New.
13899         (cloog_set_domain): Removed.
13900         (cloog_set_scattering): New.
13901         (cloog_next_domain): Removed.
13902         (cloog_next_scattering): New.
13903         (cloog_set_next_domain): Removed.
13904         (cloog_set_next_scattering): New.
13905         (CloogScatteringList): New.
13906         (CloogScattering): New.
13907         (cloog_scattering_free): New.
13908         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
13909         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
13910         New.
13911
13912 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13913
13914         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
13915         CloogState.
13916         (set_cloog_options): Same.
13917         (print_clast_stmt): Same.
13918         (scop_to_clast): Same.
13919         (print_generated_program): Same.
13920         (gloog): Same.
13921         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
13922         (scop_to_clast): Extend with CloogState.
13923         * graphite-cloog-util.c: Include graphite-cloog-compat.h
13924         (new_Cloog_Domain_from_ppl_Polyhedron):
13925         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
13926         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
13927         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13928         * graphite-cloog-util.h (build_cloog_prog): Same.
13929         * graphite-cloog-copat.h (build_cloog_prog): New.
13930         (CloogState): New.
13931         (cloog_state_malloc): New.
13932         (cloog_state_free): New.
13933         (cloog_loop_malloc): New.
13934         (cloog_options_malloc): New.
13935         (cloog_statement_alloc): New.
13936         (cloog_domain_from_cloog_matrix): New.
13937         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
13938         (new_Cloog_Domain_from_ppl_Polyhedron): New.
13939
13940 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13941
13942         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
13943         type of NAME now depends on used CLooG version.
13944         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
13945         (gcc_type_for_clast_expr): Same.
13946         (print_clast_stmt): Replace pprint with clast_pprint.
13947         * graphite-cloog-compat.h: Provide compatibility macros for
13948         CLooG Legacy.
13949         (clast_name_p): New.
13950         (clast_expr_term): New.
13951         (clast_expr_red): New.
13952         (clast_expr_bin): New.
13953         (clast_pprint): New.
13954
13955 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13956
13957         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
13958         compatible to newer CLooG releases (CLOOG_ORG).
13959         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
13960         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
13961         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
13962         (build_cloog_prog) : New.
13963         (cloog_program_extract_scalars): New.
13964         (cloog_program_scatter): New.
13965
13966 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13967
13968         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
13969         conditionally (CLOOG_ORG).
13970         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
13971         (cloog_statement_usr): New.
13972         (cloog_domain): Same.
13973         (cloog_set_domain): Same.
13974         (cloog_next_domain): Same.
13975         (cloog_set_next_domain): Same.
13976         (cloog_program_nb_scattdims): Same.
13977         (cloog_program_set_nb_scattdims): Same.
13978         (cloog_program_names): Same.
13979         (cloog_program_set_names): Same.
13980         (cloog_program_set_context): Same.
13981         (cloog_program_set_loop): Same.
13982         (cloog_program_blocklist): Same.
13983         (cloog_program_set_blocklist): Same.
13984         (cloog_program_scaldims): Same.
13985         (cloog_program_set_scaldims): Same.
13986         (cloog_names_nb_parameters): Same.
13987         (cloog_names_set_nb_parameters): Same.
13988         (cloog_names_parameters): Same.
13989         (cloog_names_set_parameters): Same.
13990         (cloog_names_set_nb_iterators): Same.
13991         (cloog_names_set_iterators): Same.
13992         (cloog_names_set_nb_scattering): Same.
13993         (cloog_names_set_scattering): Same.
13994         (cloog_statement_set_usr): Same.
13995         (cloog_loop_set_next): Same.
13996         (cloog_loop_set_domain): Same.
13997         (cloog_loop_set_block): Same.
13998         (cloog_block_list_next): Same.
13999         (cloog_block_list_set_next):
14000         (cloog_block_list_set_block): Same.
14001
14002 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14003
14004         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
14005         a bool.
14006         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
14007         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
14008         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
14009         when something has been changed.
14010         (rewrite_commutative_reductions_out_of_ssa): Same.
14011
14012 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14013
14014         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
14015         handle the case when def is in the sese region.
14016         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
14017         for invariant expressions.
14018         (rewrite_cross_bb_phi_deps): Removed.
14019         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14020         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14021         rewrite_cross_bb_phi_deps.
14022
14023 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14024
14025         * graphite-sese-to-poly.c
14026         (rewrite_commutative_reductions_out_of_ssa_loop): Call
14027         scev_analyzable_p only on is_gimple_reg
14028
14029 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14030
14031         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14032         (rewrite_close_phi_out_of_ssa): Propagate constant values or
14033         parametric expressions outside the scop region.
14034         (rewrite_cross_bb_scalar_deps): Same.
14035         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14036
14037 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14038
14039         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
14040         SSA_NAME_DEF_STMT only on SSA_NAMEs.
14041
14042 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14043
14044         * tree-scalar-evolution.c (instantiate_scev_name): Do not
14045         instantiate default definitions.
14046
14047 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
14048             Sebastian Pop  <sebastian.pop@amd.com>
14049
14050         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
14051         (loop_exits_from_bb_p): New.
14052         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
14053         (loop_exits_from_bb_p): Declared.
14054         * graphite-scop-detection.c (scopdet_basic_block_info): Call
14055         loop_exits_to_bb_p.
14056
14057 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14058
14059         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
14060         extra parameter for the region.  Call scev_analyzable_p.
14061         (rewrite_reductions_out_of_ssa): Update call to
14062         rewrite_close_phi_out_of_ssa.
14063         (rewrite_cross_bb_phi_deps): Same.
14064         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
14065         parameter for the region.  Call scev_analyzable_p.
14066         (rewrite_commutative_reductions_out_of_ssa): Update call to
14067         rewrite_commutative_reductions_out_of_ssa_loop.
14068
14069 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14070
14071         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
14072
14073 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14074
14075         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
14076         SSA scalar phi nodes that can be scev_analyzable_p.
14077
14078 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14079
14080         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
14081         handle SSA_NAME_IS_DEFAULT_DEF.
14082
14083 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14084
14085         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
14086
14087 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14088
14089         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
14090         case non close-phi nodes with one argument.
14091
14092 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14093
14094         * sese.h (scev_analyzable_p): Scevs could be expressions without
14095         chrecs and still be scev_analyzable_p.
14096
14097 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14098
14099         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14100
14101 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14102
14103         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
14104         * cfgloop.h (struct loop): Remove single_iv field.
14105         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
14106         (scop_canonicalize_loops): Removed.
14107         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
14108         over all the loop phi nodes in loop->header.
14109         (build_poly_scop): Remove use of scop_canonicalize_loops.
14110
14111 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14112
14113         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
14114         handle GIMPLE_CALL.
14115
14116 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14117
14118         * tree-chrec.c (chrec_apply): Should only apply to the specified
14119         variable.  Also handle multivariate chains of recurrences that
14120         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
14121
14122 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14123
14124         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
14125         (debug_clast_name_indexes_1): Removed.
14126         (debug_clast_name_indexes): Removed.
14127         (pbb_to_depth_to_oldiv): Removed.
14128         (build_iv_mapping): Replace the use of rename_map with iv_map.
14129         (translate_clast_user): Remove uses of rename_map.  Allocate and
14130         free iv_map.
14131         (translate_clast_for_loop): Remove uses of rename_map.
14132         (translate_clast_for): Same.
14133         (translate_clast_guard): Same.
14134         (translate_clast): Same.
14135         (gloog): Same.
14136         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
14137         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
14138         * sese.c (set_rename): Now static.
14139         (rename_variables_in_stmt): Removed.
14140         (rename_uses): New.
14141         (is_parameter): Removed.
14142         (is_iv): Removed.
14143         (expand_scalar_variables_call): Removed.
14144         (expand_scalar_variables_ssa_name): Removed.
14145         (expand_scalar_variables_expr): Removed.
14146         (expand_scalar_variables_stmt): Removed.
14147         (expand_scalar_variables): Removed.
14148         (rename_variables): Removed.
14149         (remove_condition): Removed.
14150         (get_true_edge_from_guard_bb): Removed.
14151         (get_false_edge_from_guard_bb): Removed.
14152         (struct igp): Removed.
14153         (default_before_guard): Removed.
14154         (convert_for_phi_arg): Removed.
14155         (add_guard_exit_phis): Removed.
14156         (insert_guard_phis): Removed.
14157         (graphite_copy_stmts_from_block): Now also uses iv_map and a
14158         region.  Do not copy conditions.  Do not copy induction variables.
14159         Call rename_uses.
14160         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
14161         the translated statement.  Use the iv_map for the induction
14162         variable renaming.
14163         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
14164         (set_rename): Removed declaration.
14165         (scev_analyzable_p): ...here.
14166         * tree-chrec.c (chrec_apply_map): New.
14167         * tree-chrec.h (chrec_apply_map): Declared.
14168
14169 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14170
14171         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
14172         insert_loop_close_phis.
14173         * sese.c (name_defined_in_loop_p): Removed.
14174         (expr_defined_in_loop_p): Removed.
14175         (alive_after_loop): Removed.
14176         (close_phi_not_yet_inserted_p): Removed.
14177         (struct alep): Removed.
14178         (add_loop_exit_phis): Removed.
14179         (insert_loop_close_phis): Removed.
14180
14181 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14182
14183         * graphite-cloog-util.c
14184         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
14185         * graphite-poly.c
14186         (psct_scattering_dim_for_loop_depth): Same.
14187
14188 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14189
14190         * graphite-cloog-util.h: Added cloog.h.
14191         * graphite-blocking.c: Removed cloog.h.
14192         * graphite-dependences.c: Same.
14193         * graphite-interchange.c: Same.
14194         * graphite-poly.c: Same.
14195         * graphite-ppl.c: Same.
14196         * graphite-scop-detection.c: Same.
14197         * graphite-sese-to-poly.c:
14198         Removed cloog.h.
14199         Removed graphite-clast-to-gimple.h.
14200         (check_poly_representation): Removed (unused).
14201         * graphite-sese-to-poly.h
14202         (check_poly_representation): Removed (unused).
14203
14204 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14205
14206         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
14207         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
14208         (graphite-cloog-util.o): New.
14209         (graphite-ppl.o): Added graphite-cloog-util.h.
14210         * graphite-clast-to-gimple.c:
14211         Added graphite-cloog-util.h to include statements.
14212         * graphite-cloog-util.c: New.
14213         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
14214         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14215         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14216         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14217         (insert_constraint_into_matrix): Same.
14218         (ppl_Constrain_System_number_of_constraints): Same.
14219         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14220         (oppose_constraint): Same.
14221         (cloog_matrix_to_ppl_constraint): Same.
14222         (new_Constraint_System_from_Cloog_Matrix): Same.
14223         * graphite-cloog-util.h: New.
14224         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
14225         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14226         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14227         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14228         (insert_constraint_into_matrix): Same.
14229         * graphite-ppl.c:
14230         Added graphite-cloog-util.h to include statements.
14231         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
14232         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14233         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14234         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14235         (insert_constraint_into_matrix): Same.
14236         (ppl_Constrain_System_number_of_constraints): Same.
14237         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14238         (oppose_constraint): Same.
14239         (cloog_matrix_to_ppl_constraint): Same.
14240         (new_Constraint_System_from_Cloog_Matrix): Same.
14241         * graphite-ppl.h:
14242         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
14243         graphite-cloog-util.h.
14244         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14245         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14246         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14247         (insert_constraint_into_matrix): Same.
14248
14249 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14250
14251         * graphite-clast-to-gimple.c
14252         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
14253         (precision_for_interval): Same.
14254         (gcc_type_for_interval): Same.
14255         (compute_type_for_level): Same.
14256         * graphite-interchange.c
14257         (lst_interchange_profitable_p): Same.
14258         * graphite-poly.c
14259         (psct_scattering_dim_for_loop_depth): Same.
14260         * graphite-ppl.c
14261         (ppl_max_for_le_pointset): Same.
14262         (ppl_min_for_le_pointset): Same.
14263
14264 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14265
14266         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
14267         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
14268
14269 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14270
14271         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
14272         rewrite_close_phi_out_of_ssa.
14273
14274 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14275
14276         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
14277
14278 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14279
14280         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
14281         rename_map.
14282         * sese.c (debug_rename_map): Same.
14283         (get_rename): Same.
14284         (set_rename): Same.
14285         (rename_variables_in_stmt): Same.
14286         (expand_scalar_variables_call): Same.
14287         (expand_scalar_variables_ssa_name): Same.
14288         (expand_scalar_variables_expr): Same.
14289         (expand_scalar_variables_stmt): Same.
14290         (expand_scalar_variables): Same.
14291         (rename_variables): Same.
14292         (graphite_copy_stmts_from_block): Same.
14293         (copy_bb_and_scalar_dependences): Same.
14294
14295 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14296
14297         * graphite-clast-to-gimple.c (copy_renames): Removed.
14298         (translate_clast_for): Do not call copy_renames.
14299         (translate_clast_guard): Same.
14300
14301 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14302
14303         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
14304         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
14305         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
14306         before rewrite_cross_bb_scalar_deps.
14307
14308 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14309
14310         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
14311         Early return in when flag_associative_math is not set.
14312
14313 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14314
14315         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
14316         of SSA copies on edges except for loop->latch.
14317
14318 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14319
14320         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
14321         Split out of rewrite_reductions_out_of_ssa.
14322         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
14323         Declared.
14324         * graphite.c (graphite_transform_loops): Call it.
14325
14326 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14327
14328         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
14329
14330 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
14331
14332         * dbgcnt.def (graphite_scop): New counter.
14333         * graphite.c: Include dbgcnt.h.
14334         (graphite_transform_loops): Use new counter to limit transformations.
14335         * Makefile.in (graphite.o): Depend on DBGCNT_H.
14336
14337 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14338
14339         * passes.c (init_optimization_passes): Add pass_graphite.
14340         Schedule a pass_copy_prop before pass_graphite_transforms.
14341         * timevar.def (TV_GRAPHITE): Declared.
14342         * tree-pass.h (pass_graphite): Declared.
14343         * tree-ssa-loop.c (pass_graphite): New.
14344
14345 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14346
14347         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
14348         Remove calls to rename_nb_iterations and rename_sese_parameters.
14349         * graphite-clast-to-gimple.h (gloog): Update declaration.
14350         * graphite.c (graphite_transform_loops): Update call to gloog.
14351         * sese.c (rename_variables_in_expr): Removed.
14352         (rename_nb_iterations): Removed.
14353         (rename_sese_parameters): Removed.
14354         * sese.h (rename_nb_iterations): Removed.
14355         (rename_sese_parameters): Removed.
14356
14357 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14358
14359         * graphite-clast-to-gimple.c (gloog): Remove call to
14360         sese_adjust_liveout_phis.
14361         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
14362         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
14363         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
14364         rewrite_phi_out_of_ssa.
14365         * sese.c (get_vdef_before_sese): Removed.
14366         (sese_adjust_vphi): Removed.
14367         (sese_adjust_liveout_phis): Removed.
14368         * sese.h (sese_adjust_liveout_phis): Removed.
14369
14370 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14371
14372         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
14373         argument for the place after which to insert the out of SSA copy.
14374         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
14375         (rewrite_phi_out_of_ssa): Same.
14376         (rewrite_cross_bb_scalar_deps): Same.
14377         (insert_copyout): Removed.
14378         (insert_copyin): Removed.
14379         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
14380         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
14381         insert_copyin.
14382
14383 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14384
14385         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
14386         (rewrite_reductions_out_of_ssa): Same.
14387         (rewrite_commutative_reductions_out_of_ssa): Same.
14388         (build_poly_scop): Do not call these functions.
14389         * graphite-sese-to-poly.h (build_poly_scop): Declared.
14390         (rewrite_reductions_out_of_ssa): Declared.
14391         (rewrite_commutative_reductions_out_of_ssa): Declared.
14392         * graphite.c (graphite_transform_loops): Call on every scop
14393         rewrite_commutative_reductions_out_of_ssa before calling
14394         rewrite_reductions_out_of_ssa and build_scop_bbs.
14395
14396 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14397
14398         * graphite-dependences.c (dot_deps): Make system call to dotty run
14399         in background.
14400         (dot_deps_stmt): Same.
14401         * graphite-poly.c (dot_lst): Same.
14402
14403 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14404
14405         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
14406         phi_arg_in_outermost_loop.
14407         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
14408         (remove_invariant_phi): Same.
14409
14410 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
14411
14412         * target.def (output_addr_const_extra): New hook.
14413         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
14414         * doc/tm.texi: Regenerate.
14415         * targhooks.c (default_asm_output_addr_const_extra): New function.
14416         * targhooks.h (default_asm_output_addr_const_extra): Declare.
14417         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
14418         target hook.
14419
14420         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14421         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
14422         * config/i386/i386.h (output_addr_const_extra): Rename to...
14423         (i386_asm_output_addr_const_extra): ...this. Make static.
14424         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14425
14426 2010-08-11  Richard Henderson  <rth@redhat.com>
14427
14428         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
14429
14430 2010-08-11  Nick Clifton  <nickc@redhat.com>
14431
14432         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
14433         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
14434         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
14435         stormy16-lib2-cmpsi.c.
14436
14437         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
14438         -O2.
14439
14440 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
14441
14442         * opts.h (struct cl_option_handler_func): Make handler take
14443         cl_decoded_option structure as parameter, not individual elements.
14444         (struct cl_option_handlers): Make callbacks take cl_decoded_option
14445         structure as parameter, not individual elements.
14446         (handle_option): Take cl_decoded_option structure as parameter,
14447         not individual elements.
14448         (handle_generated_option): Declare.
14449         * opts-common.c (handle_option): Take cl_decoded_option structure
14450         as parameter, not individual elements.  Update calls to callback
14451         and handler functions.
14452         (handle_generated_option): New.
14453         (read_cmdline_option): Update calls to callback functions and
14454         handle_option.
14455         * opts.c (common_handle_option, complain_wrong_lang,
14456         unknown_option_callback, post_handling_callback,
14457         lang_handle_option, target_handle_option): Take cl_decoded_option
14458         structure as parameter, not individual elements.
14459         (lang_handle_option, target_handle_option, common_handle_option):
14460         Assert option has at most one argument.
14461         (enable_warning_as_error): Call handle_generated_option instead of
14462         handle_option.  Do not pass -Werror argument as argument of
14463         generated option.
14464
14465 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14466
14467         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14468         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14469         (SUBWORD_BOOL_CAS): Likewise.
14470         (SUBWORD_SYNC_OP): Likewise.
14471         (SUBWORD_TEST_AND_SET): Likewise.
14472         (FETCH_AND_OP_WORD): Parenthesise INF_OP
14473         (SUBWORD_SYNC_OP): Likewise.
14474         (OP_AND_FETCH_WORD): Likewise.
14475
14476 2010-08-10  Xinliang David Li  <davidxl@google.com>
14477
14478         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
14479         compute max/min offset in address.
14480
14481 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
14482
14483         * ira-live.c: Include sbitmap.h.
14484         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
14485         Compress live ranges even more.
14486
14487 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14488
14489         * coverage.c (ctr_labels): Delete.
14490
14491 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
14492
14493         PR bootstrap/45177
14494         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
14495         test here from arm_gen_load_multiple_1.
14496         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
14497         multiple_operation_profitable_p.
14498
14499 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14500
14501         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
14502         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
14503
14504 2010-08-10  Richard Henderson  <rth@redhat.com>
14505
14506         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
14507         after saving registers.  Assert that SSE registers are only saved
14508         with a sufficiently aligned frame.
14509         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
14510         remove stack_realign_fp handling.
14511         (ix86_expand_prologue): Save int registers before stack_realign_fp,
14512         and do not mark the stack alignment as frame related.
14513         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
14514
14515         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
14516         saves when re-aligning the stack.
14517
14518 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14519
14520         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
14521         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
14522         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
14523
14524 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14525
14526         * dwarf2out.c (struct die_struct): Move die_tag to the end.
14527
14528 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
14529
14530         * config/arm/iterators.md: New file.
14531         * config/arm/arm.md: Include iterators.md.
14532         (QHSI): Move to new file.
14533         (LTUGEU, cnb, optab, ior_xor): Likewise.
14534         * config/arm/iwmmxt.md (VMMX): Move to new file.
14535         (VSHFT, MMX_char): Likewise.
14536         * config/arm/neon.md (VD): Move to new file.
14537         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
14538         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
14539         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
14540         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
14541         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
14542         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
14543         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
14544         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
14545         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
14546         (Is_d_reg, V_mode_nunits): Likewise.
14547         * config/arm/vec-common.md (VALL): Move to new file.
14548         (VALLW, VINT, VINTW): Likewise.
14549
14550 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
14551
14552         PR middle-end/45182
14553         * combine.c (make_compound_operation): Don't try to convert
14554         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
14555
14556 2010-08-10  Richard Guenther  <rguenther@suse.de>
14557
14558         * tree.h (get_object_alignment): Adjust prototype.
14559         * builtins.c (get_object_alignment): Return unsigned int,
14560         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
14561         and TARGET_MEM_REF properly.
14562         (get_pointer_alignment): Adjust.
14563         * emit-rtl.c (get_mem_align_offset): Adjust comment.
14564         (set_mem_attributes_minus_bitpos): Adjust.
14565         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
14566
14567 2010-08-10  Richard Guenther  <rguenther@suse.de>
14568
14569         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
14570         (copy_prop_visit_assignment): Simplify.
14571         (copy_prop_visit_stmt): Also visit assignments from
14572         constants.
14573         (copy_prop_visit_phi_node): Use operand_equal_p.
14574
14575 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14576
14577         * ipa-split.c (find_split_points): Free stack.
14578
14579 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14580
14581         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
14582         * tree.c (tree_node_kind): Delete corresponding entries.
14583
14584 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
14585
14586         * alias.c (may_alias_p): Remove unused ret.
14587
14588 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
14589
14590         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
14591         alias_sets_conflict_p.
14592         (walk_mems_1): Moved from alias.c.
14593         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
14594         in alias.c.
14595         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
14596         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
14597         * alias.c (walk_mems_2): Moved to ddg.c.
14598         (walk_mems_1): Ditto.
14599         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
14600         to ddg.c.
14601         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
14602         disambiguation.
14603         *(may_alias_p): New function to check whether two memory expression
14604         may alias or not. Currently used in buidling inter-iteration memory
14605         dependence.
14606         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
14607         (insn_alias_sets_conflict_p): Removed
14608         *rtl.h (may_alias_p): New function prototype.
14609
14610 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14611
14612         * tree.c (nreverse): Assert that we don't have a BLOCK.
14613
14614 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14615
14616         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
14617         * config/arm/arm.c (arm_get_pcs_model): Likewise.
14618         * config/avr/avr.c (init_cumulative_args): Likewise.
14619         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
14620         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
14621         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
14622         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
14623         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
14624         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14625         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
14626         * dwarf2out.c (gen_subprogram_die): Likewise.
14627         * function.c (allocate_struct_function): Likewise.
14628         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
14629         (deserves_ellipsis): Delete.
14630
14631 2010-08-09  Richard Guenther  <rguenther@suse.de>
14632
14633         * tree-ssa-copy.c (cached_last_copy_of): Remove.
14634         (valueize_val): New function.
14635         (get_last_copy_of): Remove.
14636         (set_copy_of_val): Simplify.
14637         (dump_copy_of): Likewise.
14638         (copy_prop_visit_cond_stmt): Use valueize_val.
14639         (copy_prop_visit_phi_node): Properly handle unvisited names.
14640         Drop code managing copy-of chains.
14641         (init_copy_prop): Adjust.
14642         (fini_copy_prop): Likewise.
14643         (execute_copy_prop): Remove obsolete comment.
14644
14645 2010-08-09  Richard Guenther  <rguenther@suse.de>
14646
14647         PR middle-end/44632
14648         * function.c (gimplify_parameters): Do not clear addressable
14649         bit of the original parameter.
14650
14651 2010-08-09  Richard Guenther  <rguenther@suse.de>
14652
14653         PR middle-end/45212
14654         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
14655         alignment from MEM_REF offset only if we took it from the
14656         base object.
14657
14658 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
14659
14660         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
14661
14662 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14663
14664         * c-tree.h (build_arg_info): Declare.
14665         * c-decl.c (build_arg_info): Define.
14666         (get_parm_info): Call it.  Delete initialization code.
14667         * c-parser.c (c_parser_parms_declarator): Likewise.
14668         (c_parser_parms_list_declaractor): Likewise.
14669
14670 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14671
14672         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
14673         (struct c_arg_info): Change type of tags field.
14674         * c-decl.c (grokdeclarator): Update for changed type of tags field.
14675         (get_parm_info): Likewise.
14676         (store_parm_decls_newstyle): Likewise.
14677
14678 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14679
14680         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
14681         (branch_island_list): Delete.
14682         (branch_islands): Declare.
14683         (add_compiler_branch_island): Adjust for branch_islands instead of
14684         branch_island_list.
14685         (macho_branch_islands): Likewise.
14686         (no_previous_def): Likewise.
14687         (get_prev_label): Likewise.
14688
14689 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14690
14691         PR boehm-gc/34544
14692         * gthr-posix.h (__gthread_start): Delete.
14693         (__gthread_active_init): Use pthread_default_stacksize_np instead of
14694         pthread_create to determine if hpux pthreads are active.
14695         * gthr-posix95.h (__gthread_start): Delete.
14696         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
14697
14698 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
14699
14700         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
14701         _WIN64 not expanded.
14702
14703 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
14704             H.J. Lu  <hongjiu.lu@intel.com>
14705
14706         PR target/45213
14707         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
14708         to output 32bit SFmode immediate as 8 byte sign extended value.
14709
14710 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14711
14712         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14713         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14714         (SUBWORD_BOOL_CAS): Likewise.
14715         (SUBWORD_SYNC_OP): Likewise.
14716         (SUBWORD_TEST_AND_SET): Likewise.
14717         (FETCH_AND_OP_WORD): Parenthesise INF_OP
14718         (SUBWORD_SYNC_OP): Likewise.
14719         (OP_AND_FETCH_WORD): Likewise.
14720
14721 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14722
14723         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
14724         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
14725         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
14726         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
14727         generic part.
14728         (cortex_a9_sched_adjust_cost): New function.
14729         (xscale_sched_adjust_cost): New function.
14730         * config/arm/arm-protos.h (struct tune_params): New field
14731         sched_adjust_cost.
14732         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
14733
14734 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
14735
14736         PR target/44942
14737         * config/sparc/sparc.c (function_arg_advance): Always take into account
14738         the padding, if any.
14739
14740 2010-08-06  Richard Guenther  <rguenther@suse.de>
14741
14742         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
14743         (dump_lattice_value): Dump it.
14744         (get_default_value): Adjust.
14745         (get_constant_value): Likewise.
14746         (set_value_varying): Likewise.
14747         (set_lattice_value): Make sure to not go up the lattice
14748         with bitwise constant values.
14749         (get_value_for_expr): Handle ADDR_EXPRs.
14750         (value_to_double_int): New function.
14751         (get_value_from_alignment): Likewise.
14752         (do_dbg_cnt): Adjust.
14753         (ccp_lattice_meet): Handle partially constant values.
14754         (bit_value_unop_1): New function.
14755         (bit_value_binop_1): Likewise.
14756         (bit_value_unop): Likewise.
14757         (bit_value_binop): Likewise.
14758         (evaluate_stmt): Track partially constant values if
14759         flag_tree_bit_ccp is set.
14760         (ccp_fold_stmt): Dump if we folded a predicate.
14761         (ccp_visit_stmt): Adjust.
14762         * common.opt (ftree-bit-ccp): New flag.
14763         * doc/invoke.texi (ftree-bit-ccp): Document.
14764         * opts.c (decode_options): Enable bit-CCP at -O1.
14765
14766 2010-08-06  Alan Modra  <amodra@gmail.com>
14767
14768         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
14769         and -mrelocatable-lib description.
14770
14771 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
14772
14773         From Martin Thuresson  <martint@google.com>
14774         * postreload.c (reload_cse_simplify_operands): Use
14775         SET_REGNO_RAW instead of SET_REGNO.
14776         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
14777         SET_REGNO.
14778         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
14779         instead of SET_REGNO.
14780         * rtl.h (SET_REGNO_RAW): New macro.
14781
14782 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
14783
14784         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
14785         computations.  Fix formatting issues.
14786         (num_sign_bit_copies1): Likewise.
14787         (canonicalize_condition): Likewise.
14788
14789 2010-08-05  Richard Henderson  <rth@redhat.com>
14790
14791         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
14792         (floor_log2): Use clz_hwi.
14793         (exact_log2): Use ctz_hwi.
14794         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
14795         * builtins.c (fold_builtin_bitop): Use them.
14796         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
14797         * combine.c (get_pos_from_mask): Use ctz_hwi.
14798         * double-int.c (double_int_ctz): Likewise.
14799         * explow.c (force_reg): Likewise.
14800         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
14801
14802 2010-08-05  Richard Henderson  <rth@redhat.com>
14803
14804         PR target/45189
14805         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
14806         the alignment constant is properly sign-extended.
14807
14808 2010-08-05  Richard Guenther  <rguenther@suse.de>
14809
14810         * expr.c (store_expr): Use emit_block_move only if both
14811         source and target are MEMs.  Use store_bit_field if only
14812         the target is a MEM.
14813
14814 2010-08-05  Richard Henderson  <rth@redhat.com>
14815
14816         PR debug/45188
14817         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
14818         (INCOMING_RETURN_ADDR_RTX): Likewise.
14819         (dwarf2out_do_frame): Remove conditional compilation.
14820         (dwarf2out_frame_init): Likewise.
14821
14822 2010-08-05  Nicolas Setton  <setton@adacore.com>
14823
14824         * gcov.c (flag_display_progress): New static variable.
14825         (main): Display progress info on standard output if requested.
14826         (options): Add -d/--display-progress.
14827         (print_usage): Print them.
14828         (process_args): Handle them.
14829         * doc/gcov.texi: Document them.
14830
14831 2010-08-05  Martin Jambor  <mjambor@suse.cz>
14832
14833         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
14834         (ipcp_insert_stage): Redirect only edges not flagged with
14835         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
14836         discovered constants.
14837
14838 2010-08-05  Martin Jambor  <mjambor@suse.cz>
14839
14840         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
14841         (struct ipa_param_descriptor): New fields types and
14842         cannot_devirtualize.
14843         (ipa_param_cannot_devirtualize_p): New function.
14844         (ipa_param_types_vec_empty): Likewise.
14845         (ipa_make_edge_direct_to_target): Declare.
14846         * ipa-cp.c: Fixed first stage driver name in initial comment,
14847         described devirtualization there too.
14848         (ipcp_analyze_node): Call ipa_analyze_params_uses.
14849         (ipcp_print_all_lattices): Print devirtualization info.
14850         (ipa_set_param_cannot_devirtualize): New function.
14851         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
14852         lattice to BOTTOM.
14853         (ipcp_init_stage): Merged into...
14854         (ipcp_generate_summary): ...its caller.
14855         (ipcp_change_tops_to_bottom): Also process type lists.
14856         (ipcp_add_param_type): New function.
14857         (ipcp_copy_types): Likewise.
14858         (ipcp_propagate_types): Likewise.
14859         (ipcp_propagate_stage): Also propagate types.
14860         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
14861         Also return true if propagated types require it.
14862         (ipcp_update_callgraph): Dump redirection info.
14863         (ipcp_process_devirtualization_opportunities): New function.
14864         (ipcp_const_param_count): Include known type information.
14865         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
14866         on new node.  Fixed formatting.
14867         * ipa-prop.c (make_edge_direct_to_target): Renamed to
14868         ipa_make_edge_direct_to_target and changed all callers.  Made
14869         externally visible.
14870         (ipa_node_duplication_hook): Duplicate types vector.
14871         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
14872         redirect outgoing calls for which we can't get a decl from the
14873         statement.  Check that we can get a decl from the call statement.
14874         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
14875         ipa_analyze_params_uses only when ipa-cp is disabled.
14876         * tree-inline.c (get_indirect_callee_fndecl): Removed.
14877         (expand_call_inline): Do not call get_indirect_callee_fndecl.
14878         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
14879         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
14880
14881 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
14882
14883         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
14884         temporary. Emit move from temporary to accum, so REG_EQUAL note will
14885         be attached to this insn in correct mode.
14886
14887 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
14888
14889         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
14890         using REGNO of base_reg directly.
14891
14892 2010-08-05  Jie Zhang  <jie@codesourcery.com>
14893
14894         PR tree-optimization/45144
14895         * tree-sra.c (type_consists_of_records_p): Return false
14896         if the record contains bit-field.
14897
14898 2010-08-04  Richard Henderson  <rth@redhat.com>
14899
14900         * config/i386/i386.c (struct ix86_frame): Remove padding and
14901         to_allocate members.
14902         (ix86_compute_frame_layout): Don't store them.
14903         (ix86_can_use_return_insn_p): Use a more direct and more obviously
14904         correct condition for the position of the stack pointer.
14905         (ix86_expand_prologue): Compute remaining stack allocation based
14906         on the ultimate stack pointer offset.
14907         (ix86_expand_epilogue): Use more obvious expressions testing for
14908         the stack pointer already pointing to the saved registers.
14909
14910         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
14911         duplication deconstructing the frame pointer.  Simplify
14912         deallocation of the local stack frame.
14913
14914         * reg-notes.def (CFA_EXPRESSION): New.
14915         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
14916         (dwarf2out_frame_debug_cfa_expression): New.
14917         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
14918
14919         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
14920         * config/i386/i386.c (ix86_expand_prologue): Set it.
14921         (ix86_expand_epilogue): Clear it.
14922         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
14923         context, add REG_CFA_EXPRESSION notes.
14924
14925         * config/i386/i386.h (struct machine_frame_state): Rename from
14926         machine_cfa_state.  Add members tracking SP and FP regardless
14927         of the current CFA register.
14928         (ix86_cfa_state): Remove.
14929         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
14930         and sse_reg_save_offset members.
14931         (ix86_compute_frame_layout): Set them.
14932         (gen_push): Increment sp_offset too.
14933         (choose_baseaddr_len, choose_baseaddr): New.
14934         (ix86_emit_save_reg_using_mov): New.
14935         (ix86_emit_save_regs_using_mov): Use it.
14936         (ix86_emit_save_sse_regs_using_mov): Likewise.
14937         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
14938         compare vs the saved red_zone_offset.
14939         (pro_epilogue_adjust_stack): Adjust sp_offset.
14940         (ix86_adjust_stack_and_probe): Likewise.
14941         (ix86_expand_prologue): Set up, use, and validate the new
14942         frame_state_info members.  Use gen_frame_mem.
14943         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
14944         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
14945         new frame_state_info members.
14946         (ix86_emit_leave): Likewise.
14947         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
14948         out-of-range stack pointer offsets here.
14949         (ix86_emit_restore_sse_regs_using_mov): Likewise.
14950         (ix86_expand_epilogue): Use and validate the new frame_state_info
14951         members.  Break up and simplify the logic selecting the
14952         restore_regs_via_mov code path.  Ensure that there will be no
14953         out-of-range stack pointer offsets.
14954
14955         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
14956
14957         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
14958         argument name to reflect the expected tree; fix indentation.
14959         (ix86_asm_output_function_label): Output the entire 32-bit
14960         ms_hook here as bytes ...
14961         (ix86_expand_prologue): ... not here as insns.  Attach the
14962         unwind info for the ms_hook to a blockage insn.
14963         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
14964         (ix86_ms_bitfield_layout_p): Fix indentation.
14965         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
14966
14967         * config/i386/i386.c (ix86_using_red_zone): New.
14968         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
14969         ix86_expand_prologue, ix86_force_to_memory): Use it.
14970
14971         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
14972         saving the int registers.
14973
14974         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
14975         and DWARF2_UNWIND_INFO conditional compilation.
14976
14977 2010-08-04  Richard Henderson  <rth@redhat.com>
14978
14979         PR debug/45171
14980         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
14981         an is_naming_typedef_decl.
14982
14983 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
14984
14985         PR rtl-optimization/45162
14986         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
14987         * dce.c (word_dce_process_block): Likewise.
14988
14989 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
14990
14991         PR target/44583
14992         * config/ia64/constraints.md (Z): New.
14993         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
14994         (xfreg_or_signed_fp01_operand): New.
14995         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
14996         with fr_reg_or_signed_fp01_operand and constraint G with Z.
14997         (subsf3): Ditto.
14998         (*maddsf4): Ditto.
14999         (*msubsf4): Ditto.
15000         (adddf3): Ditto.
15001         (adddf3_trunc): Ditto.
15002         (subdf3): Ditto.
15003         (*subdf3_trunc): Ditto.
15004         (*madddf4): Ditto.
15005         (*madddf4_trunc): Ditto.
15006         (*msubdf4): Ditto.
15007         (*msubdf4_trunc): Ditto.
15008         (addxf3): Replace xfreg_or_fp01_operand with
15009         xfreg_or_signed_fp01_operand and constraint G with Z.
15010         (*addxf3_truncsf): Ditto.
15011         (*addxf3_truncdf): Ditto.
15012         (subxf3): Ditto.
15013         (*subxf3_truncsf): Ditto.
15014         (*subxf3_truncdf): Ditto.
15015         (*maddxf4): Ditto.
15016         (*maddxf4_truncsf): Ditto.
15017         (*maddxf4_truncdf): Ditto.
15018         (*msubxf4): Ditto.
15019         (*msubxf4_truncsf): Ditto.
15020         (*msubxf4_truncdf): Ditto.
15021
15022 2010-08-04  Richard Guenther  <rguenther@suse.de>
15023
15024         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15025         if either alias-set is zero.
15026
15027 2010-08-04  Richard Guenther  <rguenther@suse.de>
15028
15029         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15030         * tree-ssa-ccp.c: ... here.
15031         * tree-ssa-copy.c: ... and here.
15032         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15033         value_range_t): Move ...
15034         * tree-vrp.c: ... here.
15035         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15036         (substitute_and_fold): Adjust prototype.
15037         * tree-ssa-propagate.c (replace_uses_in): Adjust.
15038         (replace_phi_args_in): Likewise.
15039         (substitute_and_fold): Take callback to query lattice instead
15040         of pointer to lattice.  Replace SSA name defs with lattice
15041         values first.
15042         * tree-ssa-ccp.c (ccp_finalize): Adjust.
15043         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
15044         (get_value): New function.
15045         (fini_copy_prop): Adjust.
15046         * tree-vrp.c (vrp_finalize): Adjust.
15047
15048 2010-08-04  Richard Guenther  <rguenther@suse.de>
15049
15050         PR middle-end/45176
15051         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
15052         points-to set for original MEM_REF.
15053
15054 2010-08-04  Richard Guenther  <rguenther@suse.de>
15055
15056         * tree-ssa-ccp.c (get_constant_value): New function.
15057         (get_rhs_assign_op_for_ccp): Remove.
15058         (valueize_op): New function.
15059         (ccp_fold): Use get_constant_value and valueize_op.
15060         (fold_const_aggregate_ref): Likewise.
15061         (ccp_fold_stmt): Likewise.
15062         (visit_assignment): Simplify.
15063
15064 2010-08-04  Richard Guenther  <rguenther@suse.de>
15065
15066         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
15067         * double-int.h (double_int_ctz): Declare.
15068         * double-int.c (double_int_ctz): New function.
15069
15070 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15071
15072         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
15073         Define.
15074         picochip_expand_movmemhi : Expand movmem pattern.
15075         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
15076         Declare.
15077         * config/picochip/picochip.md (movmemhi) : New pattern.
15078
15079 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15080
15081         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
15082
15083 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
15084
15085         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
15086         NEG as operand of a MULT by merging it with the other operand.
15087         * combine.c (make_compound_operation): Use trunc_int_for_mode when
15088         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
15089         MULT.
15090         * config/arm/constraints.md (M): Examine only 32 bits of a
15091         HOST_WIDE_INT.
15092         * config/arm/predicates.md (power_of_two_operand): Likewise.
15093
15094 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15095
15096         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
15097         non-NOTE insns.
15098
15099 2010-08-03  Jan Hubicka  <jh@suse.cz>
15100
15101         * ipa-split.c (struct split_point): Add split_part_set_retval.
15102         (find_retval): Forward declare.
15103         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
15104         (consider_split): Compute current->split_part_set_retval.
15105         (visit_bb): Do not look into return value.
15106         (split_function): Handle !split_part_set_retval
15107
15108 2010-08-03  Martin Jambor  <mjambor@suse.cz>
15109
15110         * tree-sra.c (completely_scalarize_record): New parameter REF, create
15111         its own access->expr intead of using build_ref_for_offset.
15112
15113 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
15114
15115         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
15116         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
15117         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
15118         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
15119         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
15120         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
15121         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
15122         DEFAULT_SWITCH_TAKES_ARG.
15123         * config/rx/rx.opt (-patch=): Remove option.
15124         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
15125         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
15126         * doc/invoke.texi (RX Options): Remove -patch=.
15127         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
15128         (option_map): Remove --profile-blocks, --quiet and --silent.
15129
15130 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15131
15132         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
15133         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
15134         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
15135         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15136         Update calls to ix86_expand_compare and ix86_expand_branch.
15137         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
15138         ix86_expand_compare.
15139         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
15140         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15141         Make static.
15142         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
15143         and ix86_compare_op1.  Update calls to ix86_expand_compare.
15144         (ix86_expand_int_movcc): Ditto.
15145         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
15146         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
15147         (ix86_expand_setcc): Ditto.
15148         (ix86_expand_compare): Remove prototype.
15149         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
15150         ix86_compare_op0 and ix86_compare_op1.  Update calls
15151         to ix86_expand_branch to directly pass operands[1] and operands[2].
15152         (cbranchxf4): Ditto.
15153         (cbranch<MODEF:mode>4): Ditto.
15154         (cbranchcc4): Ditto.
15155         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
15156         Update calls to ix86_expand_setcc to directly pass operands[2] and
15157         operands[3].
15158         (cstorexf4): Ditto.
15159         (cstore<MODEF:mode>4): Ditto.
15160         (cstorecc4): Ditto.
15161
15162 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15163
15164         PR target/45063
15165         * caller-save.c (save_call_clobbered_regs): Remove regs from
15166         hard_regs_saved when they are set.
15167
15168 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
15169
15170         PR target/41089
15171         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
15172         as volatile.
15173
15174 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
15175
15176         * common.opt (ftree-loop-distribute-patterns): New.
15177         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
15178         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
15179         at -O3.
15180         * tree-data-ref.c (stores_zero_from_loop): New.
15181         * tree-data-ref.h (stores_zero_from_loop): Declared.
15182         * tree-loop-distribution.c (tree_loop_distribution): Call
15183         stores_zero_from_loop.
15184         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
15185
15186 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15187
15188         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
15189         into account.
15190
15191         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
15192         * config/arm/arm.c (thumb1_code): New variable.
15193         (arm_override_options): Set it.
15194         (thumb1_final_prescan_insn): Keep track of condition code status.
15195         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
15196         jumps that depend on them.
15197         * config/arm/arm.h (thumb1_code): Declare variable.
15198         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
15199         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
15200         thumb1_cc_mode.
15201         (CC_STATUS_INIT): New macro.
15202         * config/arm/constraints.md (Pd): New constraint.
15203         * config/arm/predicates.md (noov_comparison_operator): New predicate.
15204         * config/arm/arm.md (is_thumb1): New define_attr.
15205         (conds): Set default to "clob" when generating Thumb1 code.
15206         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
15207         code are set.  Use two-operand assembly syntax.
15208         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
15209         pattern.
15210         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
15211         codes are set.  Use two-operand assembly syntax.
15212         (zero_extendhisi splitter): Remove constraints.
15213         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
15214         thumb1_movsf_insn): Set conds attribute as appropriate.
15215         (cbranchsi4_insn): Use condition code status from struct
15216         machine_function to determine whether the comparison can be eliminated.
15217         Discourage the alternative using high registers.
15218         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
15219         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
15220         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
15221         subsi3_cbranch): Delete.
15222         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
15223         one subtract and one cbranch insn.
15224
15225         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
15226         thumb2_movdf_soft_insn): Delete patterns.
15227         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
15228         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
15229         (pool_range, neg_pool_range): Use them to define defaults.
15230         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
15231         and allow for TARGET_32BIT.
15232
15233         PR target/40457
15234         * config/arm/arm.h (arm_regs_in_sequence): Declare.
15235         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
15236         load_multiple_sequence, store_multiple_sequence): Delete
15237         declarations.
15238         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
15239         declarations.
15240         * config/arm/ldmstm.md: New file.
15241         * config/arm/arm.c (arm_regs_in_sequence): New array.
15242         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
15243         CHECK_REGS.  All callers changed.
15244         If SAVED_ORDER is nonnull, copy the computed order into it.
15245         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
15246         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
15247         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
15248         If SAVED_ORDER is nonnull, copy the computed order into it.
15249         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
15250         like REGS.  Handle Thumb mode.
15251         (arm_gen_load_multiple_1): New function, broken out of
15252         arm_gen_load_multiple.
15253         (arm_gen_store_multiple_1): New function, broken out of
15254         arm_gen_store_multiple.
15255         (arm_gen_multiple_op): New function, with code from
15256         arm_gen_load_multiple and arm_gen_store_multiple moved here.
15257         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
15258         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
15259         changed.
15260         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
15261         * config/arm/predicates.md (commutative_binary_operator): New.
15262         (load_multiple_operation, store_multiple_operation): Handle more
15263         variants of these patterns with different starting offsets.  Handle
15264         Thumb-1.
15265         * config/arm/arm.md: Include "ldmstm.md".
15266         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
15267         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
15268         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
15269         peepholes): Delete.
15270         * config/arm/ldmstm.md: New file.
15271         * config/arm/arm-ldmstm.ml: New file.
15272
15273         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
15274         if statement which adds extra costs to frame-related expressions.
15275
15276 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15277
15278         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
15279
15280 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
15281
15282         PR target/45142
15283         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
15284         alternative 2.
15285         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
15286         split V4SI operands.
15287
15288 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
15289
15290         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15291         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
15292         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
15293         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
15294
15295 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
15296
15297         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
15298         LOCAL_INCLUDE_DIR.
15299
15300 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
15301
15302         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
15303         used in the call to optab_for_tree_code.  Fix the second
15304         is_widening_mult_p call.  Check that both unwidened operands
15305         have the same sign.
15306
15307 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
15308
15309         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
15310
15311 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
15312
15313         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15314
15315 2010-07-30  DJ Delorie  <dj@redhat.com>
15316
15317         * config/rx/predicates.md (rx_constshift_operand): New.
15318         * config/rx/rx.md (zs_cond): New.
15319         (cbranchsi4): Remove mode.
15320         (*cbranchsi4_<code>): Likewise.
15321         (*tstbranchsi4_<code>): New.
15322         (*tstbranchsi4r_<code>): New.
15323         (*tstbranchsi4m_eq): New.
15324         (*tstbranchsi4m_ne): New.
15325         (cbranchsf4): Remove mode.
15326         (*cbranchsf4_<code>): Likewise.
15327
15328 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
15329
15330         * rtlanal.c (simplify_subreg_regno): Don't treat
15331         HARD_FRAME_POINTER_REGNUM specially.
15332
15333 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
15334
15335         * common.opt (-G): Don't define option here.
15336         * config/g.opt: New.
15337         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
15338         rs6000/powerpc and score targets.
15339         * opts.c (common_handle_option): Don't handle -G here.
15340         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
15341         * config/frv/frv.c (frv_handle_option): Handle -G.
15342         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
15343         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
15344         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
15345         * config/mips/mips.c (mips_handle_option): Handle -G.
15346         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
15347         * config/score/score.c (score_handle_option): Handle -G.
15348
15349 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
15350
15351         * config/mmix/mmix.c: Include basic-block.h.
15352
15353 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
15354
15355         PR debug/45055
15356         PR rtl-optimization/45137
15357         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
15358         prototypes.
15359         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
15360         New functions.
15361         * combine.c (next_nonnote_nondebug_insn): Removed.
15362         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
15363         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
15364         * sched-deps.c (sched_analyze_insn): Likewise.
15365         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
15366         * rtlanal.c (canonicalize_condition): Likewise.
15367         * postreload.c (reload_combine_recognize_pattern): Likewise.
15368         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
15369
15370 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
15371
15372         * config/i386/i386.md (int_cond): Remove code iterator.
15373         (fp_cond): Ditto.
15374         (cbranch<mode>4): Use ordered_comparison_operator predicate
15375         for operator0.
15376         (cstore<mode>4): Ditto for operator1.
15377         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
15378         (add<mode>cc): ditto.
15379
15380 2010-07-30  Richard Guenther  <rguenther@suse.de>
15381
15382         PR middle-end/45141
15383         * expr.c (expand_expr_real_1): Check for not handled base address.
15384
15385 2010-07-30  Richard Guenther  <rguenther@suse.de>
15386
15387         * ipa-prop.c (ipa_modify_formal_parameters): Use
15388         build_distinct_type_copy.
15389
15390 2010-07-30  Anthony Green  <green@moxielogic.com>
15391
15392         * config/moxie/rtems.h: New file.
15393         * config.gcc: Add moxie-rtems support.
15394
15395 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15396
15397         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
15398         df flags as in run_fast_df_dce.
15399
15400 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
15401
15402         Revert:
15403         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15404
15405         * rtl.def (NOTE): Swap operands 4 and 5.
15406         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
15407         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
15408         Adjust accordingly.
15409         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
15410
15411 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
15412
15413         PR debug/45110
15414         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
15415         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
15416         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
15417         formal parameters.
15418         (gen_decl_die): Change return type to dw_die_ref, return what
15419         gen_formal_parameter_die returned.
15420
15421 2010-07-29  Martin Jambor  <mjambor@suse.cz>
15422
15423         * dbgcnt.def (eipa_sra): New counter.
15424         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
15425
15426 2010-07-29  Xinliang David Li  <davidxl@google.com>
15427
15428         PR bootstrap/45119
15429         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
15430         in revision 162652.
15431
15432 2010-07-29  Richard Guenther  <rguenther@suse.de>
15433
15434         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
15435         (TV_TREE_STORE_CCP): Likewise.
15436         (TV_TREE_REDPHI): Likewise.
15437
15438 2010-07-29  Richard Guenther  <rguenther@suse.de>
15439
15440         * double-int.h (double_int_and_not): New function.
15441         * combine.c (try_combine): Use it.
15442         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
15443
15444 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15445
15446         PR rtl-optimization/42575
15447         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
15448         Argument AU removed.  All callers changed.  Ignore artificial refs.
15449         Use return value of df_word_lr_simulate_defs to decide whether an insn
15450         is necessary.
15451         (fast_dce): Rename arg to WORD_LEVEL.
15452         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
15453         static.
15454         (pass_fast_rtl_byte_dce): Delete.
15455         * dce.h (run_word_dce): Declare.
15456         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
15457         All callers changed.  Simplify code to only deal with two-word regs.
15458         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
15459         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
15460         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
15461         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
15462         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
15463         (df_word_lr_mark_ref): Declare.
15464         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
15465         df_word_lr_simulate_uses): Declare or rename from byte variants.
15466         (df_byte_lr_simulate_artificial_refs_at_top,
15467         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15468         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
15469         declarations.
15470         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
15471         (enum df_mm): Delete.
15472         * df-byte-scan.c: Delete file.
15473         * df-problems.c (df_word_lr_problem_data): Renamed from
15474         df_byte_lr_problem_data, all members deleted except for
15475         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
15476         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
15477         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15478         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
15479         df_byte_lr_confluence_0): Delete functions.
15480         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
15481         callers changed.
15482         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
15483         Don't initialize members that were deleted, don't try to discover data
15484         about registers.  Ignore hard regs.
15485         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
15486         (df_word_lr_mark_ref): New function.
15487         (df_word_lr_bb_local_compute): Renamed from
15488         df_byte_bb_lr_local_compute; all callers changed.  Use
15489         df_word_lr_mark_ref.  Assert that artificial refs don't include
15490         pseudos.  Ignore hard registers.
15491         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
15492         Assert that exit block uses don't contain pseudos.
15493         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
15494         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
15495         callers changed.  Ignore hard regs.
15496         (df_word_lr_transfer_function): Renamed from
15497         df_byte_lr_transfer_function; all callers changed.
15498         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
15499         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
15500         changed.
15501         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
15502         callers changed.
15503         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
15504         confluence operator 0 set to NULL.
15505         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
15506         callers changed.
15507         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
15508         Return bool, true if bitmap changed or insn otherwise necessary.
15509         All callers changed.  Simplify using df_word_lr_mark_ref.
15510         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
15511         all callers changed.  Simplify using df_word_lr_mark_ref.
15512         * lower-subreg.c: Include "dce.h"
15513         (decompose_multiword_subregs): Call run_word_dce if df available.
15514         * Makefile.in (lower-subreg.o): Adjust dependencies.
15515         (df-byte-scan.o): Delete.
15516         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
15517
15518 2010-07-29  Richard Guenther  <rguenther@suse.de>
15519
15520         * tree.c (build_vector): Assert that the vector constant
15521         has enough elements.
15522         (build_vector_from_ctor): Pad with trailing zeros.
15523
15524 2010-07-29  Richard Guenther  <rguenther@suse.de>
15525
15526         PR tree-optimization/45120
15527         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15528         Handle offset in DEREFs properly.
15529         (get_constraint_for_1): Handle MEM_REF offset properly.
15530
15531 2010-07-29  Richard Guenther  <rguenther@suse.de>
15532
15533         PR middle-end/45034
15534         * convert.c (convert_to_integer): Always use an unsigned
15535         type for narrowed negate and bitwise not.
15536
15537 2010-07-29  Ira Rosen  <irar@il.ibm.com>
15538
15539         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
15540         to outer loop when creating reduction epilogue for double reduction,
15541         and switch back to the inner loop when updating the phi nodes.
15542         Update uses of outer loop exit phi nodes in double reduction (instead
15543         of uses of reduction).
15544
15545 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
15546
15547         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
15548         popcount on power7 and parity on power6 systems.
15549         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
15550         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
15551         instructions.
15552
15553         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
15554         (UNSPEC_PARITY): Ditto.
15555         (SFDF): New iterator for SF/DF.
15556         (rreg2): New mode attribute for floating register constraint.
15557         (TARGET_FLOAT): New mode attribute for whether single/double float
15558         is supported.
15559         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
15560         pattern.
15561         (parity<mode>2_cmpb): New insn for parity on power6 and newer
15562         machines.
15563         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
15564         pattern.  Add support for fcpsgn instruction added in power6.
15565         (copysignsf3): Delete.
15566         (copysigndf3): Delete.
15567         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
15568         instead of if_then_else in RTL to avoid problems with -0.
15569
15570         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
15571         of if_then_else to mirror scalar code.
15572         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
15573         rs6000.md.
15574
15575         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
15576         instead of if_then_else.
15577
15578 2010-07-28  Xinliang David Li  <davidxl@google.com>
15579
15580         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
15581         (dump_cand): Dump var_before/after.
15582         (htab_inv_expr_eq): New function.
15583         (htab_inv_expr_hash): New function.
15584         (tree_ssa_iv_optimize_init): Support pseudo invariants.
15585         (add_candidate_1): consider base type precision.
15586         (set_use_iv_cost): New parameter.
15587         (adjust_setup_cost): Use profile information.
15588         (get_address_cost): Do not hard code width in computing address
15589         offset limits.
15590         (compare_aff_trees): New function.
15591         (get_loop_invariant_expr_id): New function.
15592         (get_computation_cost_at): New parameter and use profile information.
15593         (get_computation_cost): New parameter.
15594         (determine_use_iv_cost_generic): Pass new parameter.
15595         (determine_use_iv_cost_address): Ditto.
15596         (determine_use_iv_cost_condition): Ditto.
15597         (autoinc_possible_for_pair): Ditto.
15598         (determine_use_iv_costs): More dumps.
15599         (iv_ca_get_num_inv_exprs): New function.
15600         (iv_ca_recount_cost): Consider loop invariants in register pressure
15601         cost.
15602         (iv_ca_add_use): New parameter.
15603         (iv_ca_dump): Better dumping.
15604         (iv_ca_extend): New parameter.
15605         (try_add_cand_for): Attempt to get better partial solution.
15606         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
15607         (create_new-ivs): More dumps.
15608         (rewrite_use_compare): Ditto.
15609         (free_loop_data): More cleanup.
15610         (treee_ssa_iv_optimize_finalize): Ditto.
15611
15612 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
15613
15614         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
15615         * config/i386/i386.c (ix86_profile_before_prologue): New.
15616         (override_options): Add special handling for -mfentry.
15617         (ix86_function_regparm): Likewise.
15618         (ix86_function_sseregparm): Likewise.
15619         (ix86_frame_pointer_required): Likewise.
15620         (ix86_expand_prologue): Check for ms_hook_prologue.
15621         (x86_function_profiler): Adjust mcount output.
15622         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
15623         * config/i386/i386.opt (mfentry): New.
15624         * doc/invoke.texi (mfentry): Add documentation.
15625         * doc/tm.texi: Regenerated..
15626         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
15627         * final.c (final_start_function): Replace macro
15628         PROFILE_BEFORE_PROLOGUE by target hook.
15629         * function.c (thread_prologue_and_epilogue_insns): Likewise.
15630         * target.def (profile_before_prologue): New hook.
15631         * targhooks.c (default_profile_before_prologue): New.
15632         * targhooks.h (default_profile_before_prologue): New.
15633
15634 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
15635
15636         PR debug/45105
15637         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
15638
15639         PR debug/45103
15640         * dwarf2out.c (dwarf2out_var_location): Always consider
15641         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
15642
15643 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15644
15645         PR rtl-optimization/45107
15646         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
15647
15648 2010-07-28  Richard Guenther  <rguenther@suse.de>
15649
15650         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
15651         (set_lattice_value): Do not query an old default value.
15652         (get_value_for_expr): New function.  Properly canonicalize
15653         float values.
15654         (ccp_visit_phi_node): Use it.
15655
15656 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
15657
15658         * config/arm/arm.c (arm_pcs_default): Remove static.
15659         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
15660         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
15661         (arm_pcs_default): Declare.
15662
15663 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
15664
15665         * config/rs6000/rs6000.c (rs6000_override_options):
15666         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
15667         ... to darwin_rs6000_override_options.
15668         (rs6000_return_in_memory): Update preceding comment for darwin
15669         64 bit ABI.  Use TARGET_MACHO inline.
15670         (rs6000_darwin64_struct_check_p): New.
15671         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
15672         (function_arg): Likewise.
15673         (rs6000_arg_partial_bytes): Likewise.
15674         (rs6000_function_value): Likewise.
15675
15676 2010-07-28  Andi Kleen  <ak@linux.intel.com>
15677
15678         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
15679
15680 2010-07-28  Richard Guenther  <rguenther@suse.de>
15681
15682         PR middle-end/44903
15683         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
15684         targets try harder to not generate unaligned accesses.
15685
15686 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15687
15688         PR rtl-optimization/45101
15689         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
15690         for gcse-las.
15691
15692 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
15693
15694         PR tree-optimization/44885
15695         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
15696         with non-aliased component.
15697
15698 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
15699
15700         * config/darwin-driver.c (SWITCH_TAKES_ARG,
15701         WORD_SWITCH_TAKES_ARG): Remove.
15702         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
15703         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
15704         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
15705         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
15706         definitions from gcc.c.
15707         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
15708         defaults.h.
15709         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
15710         Move to defaults.h.
15711         * opts-common.c: Include tm.h.
15712         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
15713         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
15714         Handle more than one argument.  Set canonical_option_num_elements.
15715         (decode_cmdline_options_to_array): Set
15716         canonical_option_num_elements and trailing elements of
15717         canonical_option.
15718         * opts.h (struct cl_decoded_option): Allow four elements in
15719         canonical_option.  Add field canonical_option_num_elements.
15720         * Makefile.in (opts-common.o): Update dependencies.
15721
15722 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
15723
15724         PR middle-end/44790
15725         PR middle-end/44993
15726         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
15727         sure the base has address_mode before adding the offset.
15728
15729 2010-07-27  Xinliang David Li  <davidxl@google.com>
15730
15731         * tree-flow.h (create_mem_ref): Add one new parameter.
15732         * tree-ssa-address.c (create_mem_ref): New parameter.
15733         (addr_to_parts): Ditto.
15734         (move_variant_to_index): New function.
15735         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
15736
15737 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15738
15739         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
15740         4 and 5.
15741         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
15742         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
15743         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
15744         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
15745         CODE_LABELs and NOTEs.
15746         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
15747         * combine.c (try_combine): Likewise.
15748         * ira.c (setup_prohibited_mode_move_regs): Likewise.
15749         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
15750
15751 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15752
15753         * coretypes.h (struct cl_option_handlers): Declare.
15754         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
15755         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
15756         * langhooks-def.h (lhd_handle_option): Declare.
15757         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
15758         * langhooks.c (lhd_handle_option): New.
15759         * langhooks.h (struct lang_hooks): Update prototype and return
15760         value type of handle_option hook.
15761         * optc-gen.awk: Generate target_flags_explicit definition for the
15762         driver.
15763         * opts-common.c: Include diagnostic.h.
15764         (handle_option): Move from opts.c.  Update prototype and return
15765         value type.  Use handlers structure.
15766         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
15767         handlers structure.
15768         (set_option): Move from opts.c.
15769         * opts.c (common_handle_option): Update prototype and return value
15770         type.  Update calls to handle_option and enable_warning_as_error.
15771         (unknown_option_callback, post_handling_callback,
15772         lang_handle_option, target_handle_option): New.
15773         (handle_option, read_cmdline_option): Move to opts-common.c.
15774         (read_cmdline_options): Update prototype.  Update call to
15775         read_cmdline_option.
15776         (decode_options): Initialize and use handlers structure.
15777         (set_option): Move to opts-common.c.
15778         (enable_warning_as_error): Update prototype.  Update call to
15779         handle_option.
15780         * opts.h (struct cl_option_handler_func, struct
15781         cl_option_handlers): New.
15782         (handle_option, enable_warning_as_error): Update prototypes.
15783         (read_cmdline_option): Declare.
15784         * Makefile.in (opts-common.o): Update dependencies.
15785
15786 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15787
15788         * config/arm/arm.c (params.h): Include.
15789         (arm_override_options): Tune gcse-unrestricted-cost.
15790         * config/arm/t-arm (arm.o): Define dependencies.
15791
15792 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15793
15794         PR target/42495
15795         PR middle-end/42574
15796         * basic-block.h (get_dominated_to_depth): Declare.
15797         * dominance.c (get_dominated_to_depth): New function, use
15798         get_all_dominated_blocks as a base.
15799         (get_all_dominated_blocks): Use get_dominated_to_depth.
15800
15801         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
15802         (hoist_exprs): Remove.
15803         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
15804         (compute_code_hoist_vbeinout): Add debug print outs.
15805         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
15806
15807         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
15808         quadratic behavior.
15809         * params.h (MAX_HOIST_DEPTH): New macro.
15810         * doc/invoke.texi (max-hoist-depth): Document.
15811
15812 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15813
15814         PR rtl-optimization/40956
15815         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
15816         constants.
15817
15818 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15819
15820         PR target/42495
15821         PR middle-end/42574
15822         * config/arm/arm.c (legitimize_pic_address): Use
15823         gen_calculate_pic_address pattern to emit calculation of PIC address.
15824         (will_be_in_index_register): New function.
15825         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
15826         (thumb1_legitimate_address_p): Use it provided !strict_p.
15827         * config/arm/arm.md (calculate_pic_address): New expand and split.
15828
15829 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15830
15831         PR target/42495
15832         PR middle-end/42574
15833         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
15834         * config/arm/arm.md (define_split "J", define_split "K"): Make
15835         IRA/reload friendly.
15836
15837 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15838
15839         * gcse.c (insert_insn_end_basic_block): Update signature, remove
15840         unused checks.
15841         (pre_edge_insert, hoist_code): Update.
15842
15843 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15844
15845         PR target/42495
15846         PR middle-end/42574
15847         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
15848
15849 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15850
15851         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
15852
15853 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15854
15855         PR rtl-optimization/40956
15856         PR target/42495
15857         PR middle-end/42574
15858         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
15859         for hoisting.
15860         (hoist_code): Count occurences in current block too.
15861
15862 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15863
15864         * gcse.c (struct expr:max_distance): New field.
15865         (doing_code_hoisting_p): New static variable.
15866         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
15867         simple expressions, don't change behavior for PRE.  Set max_distance.
15868         (insert_expr_in_table): Set new max_distance field.
15869         (hash_scan_set): Update.
15870         (hoist_expr_reaches_here_p): Stop search after max_distance
15871         instructions.
15872         (find_occr_in_bb): New static function.  Use it in ...
15873         (hoist_code): Calculate sizes of basic block before any changes are
15874         done.  Pass max_distance to hoist_expr_reaches_here_p.
15875         (one_code_hoisting_pass): Set doing_code_hoisting_p.
15876
15877         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
15878         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
15879         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
15880         macros.
15881         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
15882         Document.
15883
15884 2010-07-27  Jeff Law  <law@redhat.com>
15885             Maxim Kuvyrkov  <maxim@codesourcery.com>
15886
15887         * gcse.c (compute_transpout, transpout): Remove, move logic
15888         to prune_expressions.
15889         (compute_pre_data): Move pruning of trapping expressions ...
15890         (prune_expressions): ... here.  New static function.
15891         (compute_code_hoist_data): Use it.
15892         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
15893
15894 2010-07-27  Xinliang David Li  <davidxl@google.com>
15895
15896         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
15897         (rewrite_use_address): Adjust iv update position when needed.
15898
15899 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15900
15901         * dbgcnt.def (hoist_insn): New debug counter.
15902         * gcse.c (hoist_code): Use it.
15903
15904 2010-07-27  Xinliang David Li  <davidxl@google.com>
15905
15906         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
15907         (niter_for_single_dom_exit): Passes additional parameter.
15908         (iv_period): Fix comments.
15909         (may_eliminate_iv): Handles multiple exit loops properly.
15910         (free_tree_niter_desc): New function.
15911         (free_loop_data): Frees up loop iteration descriptors.
15912
15913 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15914
15915         PR target/44542
15916         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
15917         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
15918         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
15919         (expand_one_var): Don't consider DECL_ALIGN for variables for
15920         which expand_one_stack_var_at has been already called.
15921
15922         PR testsuite/44701
15923         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
15924         constraints on IA-64.
15925
15926 2010-07-27  Jie Zhang  <jie@codesourcery.com>
15927
15928         PR target/44290
15929         Revert:
15930         2010-07-23  Jie Zhang  <jie@codesourcery.com>
15931
15932         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15933         false if ! tree_versionable_function_p.
15934
15935 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15936
15937         * dwarf2out.c (add_data_member_location_attribute): Use
15938         add_AT_unsigned instead of add_AT_int if offset is non-negative.
15939
15940 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15941
15942         * postreload.c (try_replace_in_use): New static function.
15943         (reload_combine_recognize_const_pattern): Use it here.  Allow
15944         substituting into a final add insn, and substituting into a memory
15945         reference in an insn that sets the reg.
15946
15947 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15948
15949         * common.opt (o): Add MissingArgError.
15950         * doc/options.texi (MissingArgError): Document.
15951         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
15952         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
15953         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
15954         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
15955         * langhooks.h (struct lang_hooks): Remove missing_argument.
15956         * optc-gen.awk: Handle MissingArgError and output new structure
15957         field initializers.
15958         * opts.c (read_cmdline_option): Use missing_argument_error field
15959         instead of missing_argument langhook.
15960         * opts.h (struct cl_option): Add missing_argument_error field.
15961         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
15962
15963 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15964
15965         PR target/29090
15966         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
15967         Darwin64 ABI, for zero-sized objects.
15968
15969 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15970
15971         PR target/35491
15972         PR target/29090
15973
15974         Merge from Apple local 4.2.1.
15975         2005-05-11  Stan Shebs  <shebs@apple.com>
15976         Fix 64-bit varargs for Darwin (Radar 4028089).
15977         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
15978         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
15979         Add argument, add case for 8-byte register half-filled with a float.
15980         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
15981         single-precision floats specially.
15982
15983 2010-07-27  Ira Rosen  <irar@il.ibm.com>
15984
15985         PR tree-optimization/44152
15986         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
15987         complex numbers for further check.
15988         (vect_supported_load_permutation_p): Check nodes with
15989         complex numbers.
15990
15991 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15992
15993         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
15994         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
15995         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
15996         (LANG_HOOKS_INITIALIZER): Add new hooks.
15997         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
15998         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
15999         and complain_wrong_lang_p.  Update init_options prototype.
16000         * c-objc-common.c (c_initialize_diagnostics): First call
16001         c_common_initialize_diagnostics.
16002         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
16003         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
16004         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
16005         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
16006         (hook_uint_void_0): New.
16007         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
16008         (hook_uint_void_0): New.
16009         * opts-common.c (decode_cmdline_option,
16010         decode_cmdline_options_to_array): Also fill in canonical_option field.
16011         * opts.c (complain_wrong_lang): Use langhook to determine whether
16012         to complain instead of special-casing LTO.
16013         (decode_options): Separate lang_mask determination with
16014         option_lang_mask hook from call of init_options hook.
16015         * opts.h (struct cl_decoded_option): Add canonical_option.
16016
16017 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16018
16019         PR tree-optimization/45083
16020         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16021
16022 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16023
16024         * postreload.c (reload_combine_recognize_const_pattern): Move test
16025         for limiting the insn movement to the right scope.
16026
16027         PR rtl-optimization/45051
16028         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16029         than reg_mentioned_p.
16030
16031 2010-07-26  Richard Henderson  <rth@redhat.com>
16032
16033         PR target/44132
16034         * tree-emutls.c: New file.
16035         * Makefile.in (OBJS-common): Add it.
16036         * tree-pass.h (pass_ipa_lower_emutls): Declare.
16037         * passes.c (init_optimization_passes): Add it.
16038
16039         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
16040         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
16041         * expr.c (emutls_var_address): Delete.
16042         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
16043         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
16044         (emutls_finish): Delete.
16045         * toplev.c (compile_file): Don't call it.
16046         * tree.h (emutls_decl): Delete.
16047         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
16048         (emutls_finish, emutls_finalize_control_var): Delete.
16049         (emutls_object_type): Move to tree-emutls.c.
16050         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
16051         default_emutls_var_fields, get_emutls_object_type,
16052         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
16053         default_emutls_var_init): Likewise.
16054         (get_variable_section): Don't special case emutls.
16055         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
16056         default_elf_select_section, default_unique_section,
16057         default_encode_section_info): Likewise.
16058         * varpool.c (decide_is_variable_needed): Likewise.
16059         * gimple-iterator.c (update_call_edge_frequencies): New
16060         (gsi_insert_on_edge_immediate): Use it.
16061         (gsi_insert_seq_on_edge_immediate): Likewise.
16062         (gsi_commit_one_edge_insert): Likewise.
16063
16064         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
16065         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
16066         (x86_64_elf_unique_section): Likewise.
16067
16068 2010-07-26  Jan Hubicka  <jh@suse.cz>
16069
16070         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
16071         GTY((skip)).
16072
16073 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
16074
16075         * target.def (output_source_filename): New hook.
16076         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
16077         * doc/tm.texi: Regenerate.
16078         * toplev.c (output_file_directive) Remove function.
16079         * toplev.h (output_file_directive) Remove.
16080         * output.h (default_asm_output_source_filename,
16081         output_file_directive): Declare.
16082         * varasm.h (default_asm_output_source_filename,
16083         output_file_directive): New functions.
16084
16085         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16086         * config/mips/mips-protos.h (mips_output_filename): Remove.
16087         * config/mips/mips.c (mips_output_filename): Make Static.
16088         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16089
16090 2010-07-26  Richard Guenther  <rguenther@suse.de>
16091
16092         PR tree-optimization/43784
16093         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
16094         if the destination is used by the call.
16095
16096 2010-07-26  Richard Guenther  <rguenther@suse.de>
16097
16098         PR middle-end/45073
16099         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
16100         SSA updating on being in SSA form.
16101
16102 2010-07-26  Richard Guenther  <rguenther@suse.de>
16103
16104         PR middle-end/45056
16105         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
16106
16107 2010-07-26  Richard Guenther  <rguenther@suse.de>
16108
16109         PR tree-optimization/45071
16110         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
16111         adjust op->opcode.
16112
16113 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
16114
16115         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
16116         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
16117         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
16118         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
16119         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
16120         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
16121         save_r31, return_r31, save_interrupt, return_interrupt,
16122         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
16123         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
16124         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
16125         new ABI requirements.
16126         (save_r6_r9, L_callt_save_r6_r9): Remove.
16127         * config/v850/predicates.md (even_reg_operand, disp23_operand,
16128         const_float_1_operand const_float_0_operand): New Predicates.
16129         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
16130         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
16131         * config/v850/t-v850: Update multilibs for new target variants.
16132         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
16133         * config/v850/t-v850e: Likewise.
16134         * config/v850/v850.c (v850_issue_rate): New.
16135         (v850_strict_argument_naming): New.
16136         (function_arg): Modify to generate a different ABI.
16137         (print_operand): Update case 'z' to support float modes.
16138         (output_move_single): Modify to generate appropriate and better
16139         assembly.
16140         (v850_float_z_comparison_operator, v850_select_cc_mode,
16141         v850_float_nz_comparison_operator,  v850_gen_float_compare,
16142         v850_gen_compare): New functions to support comparison of float values.
16143         (ep_memory_offset): Add support for V850E2 targets.
16144         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
16145         (INTERRUPT_REGPARM_NUM): Remove.
16146         (compute_register_save_size): Add extra case to save/restore long call.
16147         (use_prolog_function): New function to support prologue.
16148         (expand_prologue): Add support for V850E2 targets and modified
16149         as per the current ABI requirements.
16150         (expand_epilogue): Likewise.
16151         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
16152         (construct_save_jarl): Likewise.
16153         (construct_dispose_instruction): Update as per the current ABI
16154         requirements.
16155         (construct_prepare_instruction): Likewise.
16156         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
16157         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
16158         (CPP_SPEC): Updated to support v850e2 targets.
16159         (STRICT_ALIGNMENT): Modified.
16160         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
16161         (FIXED_REGISTERS): Likewise.
16162         (CALL_USED_REGISTERS): Likewise.
16163         (CONDITIONAL_REGISTER_USAGE): Updated.
16164         (HARD_REGNO_MODE_OK): Updated.
16165         (reg_class): Updated to add even registers.
16166         (REG_CLASS_NAMES): Likewise.
16167         (REG_CLASS_CONTENTS): Likewise.
16168         (REGNO_REG_CLASS): Updated for CC registers.
16169         (REG_CLASS_FROM_LETTER): Added support for even registers.
16170         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
16171         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
16172         ARG_POINTER_REGNUM): Updated.
16173         (FUNCTION_ARG_ADVANCE): Define.
16174         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
16175         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
16176         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
16177         (GO_IF_LEGITIMATE_ADDRESS): Updated.
16178         (SELECT_CC_MODE): Define.
16179         (REGISTER_NAMES): Updated to add psw and fcc registers.
16180         (ADDITIONAL_REGISTER_NAMES): Updated.
16181         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
16182         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
16183         * config/v850/v850.md (define_constants): Define new constants.
16184         (type): Update store,bit1,macc,div,fpu and single attributes.
16185         (cpu): New attribute.
16186         (cc): Add set_z attribute.
16187         (unsign23byte_load, sign23byte_load, unsign23hword_load,
16188         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
16189         23word_store): New instructions for 23-bit displacement load and store.
16190         (movqi_internal, movhi_internal): Update the attributes.
16191         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
16192         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
16193         the attributes.
16194         (v850_tst1): Modified using CC_REGNUM.
16195         (tstsi): Remove.
16196         (cmpsi): Modified as define_expand from define_insn.
16197         (cmpsi_insn, cmpsf, cmpdf): New instructions.
16198         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
16199         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
16200         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
16201         one_cmplsi2): Clobber the CC_REGNUM register.
16202         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
16203         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
16204         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
16205         (setf_insn, set_z_insn, set_nz_insn): New instructions for
16206         v850e2v3 target.
16207         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
16208         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
16209         targets.
16210         (sasf_1, sasf_2): Remove.
16211         (sasf): New instruction.
16212         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
16213         targets. CC_REGNUM register is clobbered and attributes are
16214         updated.
16215         (branch_z_normal, branch_z_invert, branch_nz_normal,
16216         branch_nz_invert): New branch related instructions.
16217         (jump): Updated the attributes.
16218         (switch): Update to support new targets. CC_REGNUM register is
16219         clobbered and attributes are updated.
16220         (call_internal_short, call_internal_long, call_value_internal_short,
16221         call_value_internal_long): Updated the attributes.
16222         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
16223         clobbered and attributes are updated.
16224         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
16225         Update to support new targets. CC_REGNUM register is clobbered.
16226         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
16227         instructions.
16228         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
16229         are updated.
16230         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
16231         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
16232         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
16233         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
16234         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
16235         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
16236         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
16237         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
16238         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
16239         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
16240         point instructions defined for V850e2v3 target.
16241         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
16242         Add support for V850E2 targets and CC_REGNUM register is clobbered.
16243         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
16244         support for new targets.
16245         * config/v850/v850-modes.def: New file.
16246         * config/v850/v850.opt(mstrict-align): Remove.
16247         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
16248         mv850e2v3): New command line options for V850.
16249         * config.gcc: Update the newly added files.
16250         * doc/invoke.texi: Update the newly added command line options for
16251         V850 target.
16252
16253 2010-07-26  Richard Guenther  <rguenther@suse.de>
16254
16255         PR tree-optimization/45052
16256         * ipa-pure-const.c (check_stmt): Check volatileness.
16257
16258 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16259
16260         PR target/44707
16261         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
16262         * config/sparc/sparc.c: Include reload.h.
16263         (legitimize_tls_address): Rename into...
16264         (sparc_legitimize_tls_address): ...this.
16265         (legitimize_pic_address): Rename into...
16266         (sparc_legitimize_pic_address): ...this.
16267         (sparc_expand_move): Adjust to above renaming.
16268         (sparc_tls_referenced_p): Likewise.
16269         (sparc_legitimize_tls_address): Likewise.
16270         (sparc_legitimize_pic_address): Likewise.
16271         (sparc_legitimize_address): Likewise.
16272         (sparc_output_mi_thunk): Likewise.
16273         (sparc_legitimize_reload_address): New global function.  Recognize
16274         (lo_sum (high ...) ...) patterns generated by earlier passes.
16275         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
16276
16277 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16278
16279         PR target/44484
16280         * config/sparc/predicates.md (memory_reg_operand): Delete.
16281         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
16282         (*sync_compare_and_swap): Encode the address form in the pattern.
16283         (*sync_compare_and_swapdi_v8plus): Likewise.
16284
16285 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
16286
16287         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
16288         Streamline paragraph on compatibility with the system compiler.
16289
16290 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
16291
16292         PR middle-end/45035
16293         * alias.c (true_dependence_1): Fix thinko in merge of old
16294         true_dependence and canon_true_dependence.
16295
16296 2010-07-23  Jan Hubicka  <jh@suse.cz>
16297
16298         * lto-streamer-out.c (write_symbol): Fix visibilities of external
16299         references.
16300
16301 2010-07-23  Le-Chun Wu  <lcwu@google.com>
16302
16303         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
16304         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
16305         and an unnecessary assignment.
16306         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
16307         self-assign warning.
16308         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
16309         unnecessary self-init.
16310
16311 2010-07-23  Richard Guenther  <rguenther@suse.de>
16312
16313         PR lto/43071
16314         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
16315         for -flto and -fwhopr.
16316
16317 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
16318
16319         PR target/41943
16320         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
16321         (stmp-int-hdrs): Prefix/postfix headers by include_next.
16322         * config.gcc (user_headers_inc_next_pre): New.
16323         (user_headers_inc_next_post): Likewise.
16324         (*-w64-mingw*): Use for float.h post-fixing, and for
16325         stddef.h/stdarg.h pre-fixing by include_next.
16326         * configure.ac (user_headers_inc_next_post): New.
16327         (user_headers_inc_next_pre): New.
16328         * configure: Regenerated.
16329
16330 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16331
16332         * configure.ac: Don't disable TLS on Solaris 8/9 by default
16333         Set tga_func for Solaris 2/x86 resp. SPARC.
16334         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
16335         (LIB_THREAD_LDFLAGS_SPEC): Define.
16336         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
16337         * configure: Regenerate.
16338         * config.in: Regenerate.
16339         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
16340         -pthread, -threads, LIB_TLS_SPEC with -pthread.
16341         * doc/install.texi (Specific, *-*-solaris2*): Document use of
16342         alternate thread libraries on Solaris 8.
16343         Document TLS patch requirements.
16344         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
16345         Document tls.
16346
16347         PR target/18788
16348         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
16349         -shared.
16350
16351 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
16352
16353         * tree.h (struct tree_base): Add nameless_flag bitfield.
16354         (TYPE_NAMELESS, DECL_NAMELESS): Define.
16355         * omp-low.c (create_omp_child_function, scan_omp_parallel,
16356         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
16357         DECL_ARTIFICIAL where needed.
16358         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
16359         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
16360         has DECL_NAMELESS set.
16361
16362 2010-07-23  Martin Jambor  <mjambor@suse.cz>
16363
16364         PR tree-optimization/44915
16365         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
16366         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
16367         (analyze_function): Likewise.
16368
16369 2010-07-23  Martin Jambor  <mjambor@suse.cz>
16370
16371         PR tree-optimization/44914
16372         * tree-sra.c (sra_modify_function_body): Return true if CFG was
16373         changed, add purging dead eh edges.
16374         (ipa_sra_modify_function_body): Return true if CFG was changed,
16375         simplify purging dead eh edges.
16376         (modify_function): Return true if CFG was changed.
16377         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
16378         was changed.
16379         (ipa_early_sra): Likewise.
16380
16381 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16382
16383         PR target/44290
16384         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
16385         if "naked".
16386         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16387         false if ! tree_versionable_function_p.
16388
16389 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
16390
16391         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
16392         * ipa-pure-const.c (special_builtlin_state): Remove
16393         BUILT_IN_ARGS_INFO case.
16394         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
16395         * builtins.c (expand_builtin): Likewise.
16396         (expand_builtin_args_info): Remove.
16397         * doc/tm.texi (__builtin_args_info): Remove.
16398         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
16399         * doc/tm.text.in: Likewise.
16400
16401 2010-07-23  Richard Guenther  <rguenther@suse.de>
16402
16403         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
16404         (lto_symtab_merge_decls_2): Likewise.
16405         * tree-ssa.c (useless_type_conversion_p): Likewise.
16406         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16407         * gimple.c (gtc_visited2, gtc_ob2): Remove.
16408         (struct type_pair_d): Make same_p an array indexed by mode.
16409         Update comment.
16410         (lookup_type_pair): Update initialization.
16411         (struct sccs): Adjust same_p type.
16412         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
16413         Adjust.
16414         (print_gimple_types_stats): Likewise.
16415         * gimple.h (enum gtc_mode): New.
16416         (gimple_types_compatible_p): Adjust prototype.
16417
16418 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
16419
16420         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
16421         again after processing insn.
16422
16423 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16424
16425         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
16426         proper words when !tree_versionable_function_p.
16427
16428 2010-07-23  Richard Guenther  <rguenther@suse.de>
16429
16430         PR tree-optimization/45037
16431         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
16432
16433 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16434
16435         * doc/extend.texi: Remove IP2K from the description of naked attribute.
16436         Add MCORE instead.
16437
16438 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16439
16440         PR lto/44992
16441         * lto-opts.c (lto_write_options): Add NULL file_data argument to
16442         lto_get_section_name.
16443         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16444         * lto-streamer-out.c (produce_asm): Likewise.
16445         (copy_function): Likewise.
16446         (produce_symtab): Likewise.
16447         (produce_asm_for_decls): Likewise.
16448         * lto-streamer.c (lto_get_section_name): Add file_data argument.
16449         Rewrite to add random postfix to LTO sections.
16450         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
16451         (lto_get_section_name): Add file_data argument to prototype.
16452
16453 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16454
16455         * lto-section-in.c (lto_section_name): Synchronize names
16456         with lto_get_section_name.
16457
16458 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16459
16460         * lto-opts.c (lto_read_file_options): Check for missing section.
16461
16462 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16463
16464         * ira.c (check_allocation): Correctly handle the case where an allocno
16465         with two objects was allocated to a single reg.
16466
16467 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
16468
16469         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
16470         (is_widening_mult_p): Likewise.
16471         (convert_to_widen): Use them.
16472         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
16473         well as integer ones.
16474
16475 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
16476
16477         * alias.c (true_dependence_1): New function, merged version of
16478         true_dependence and canon_true_dependence.
16479         (true_dependence): Simplify.
16480         (canon_true_dependence): Simplify.
16481
16482 2010-07-22  Richard Henderson  <rth@redhat.com>
16483
16484         PR target/45027
16485         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
16486         of V4SFmode for the SSE saves; increase stack alignment if needed.
16487         (ix86_gimplify_va_arg): Don't increase stack alignment here.
16488
16489 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
16490
16491         PR bootstrap/45028
16492         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
16493         call cprop_find_used_regs again via note_uses.
16494
16495 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
16496
16497         * alias.c (get_alias_set): Fix formatting issues.
16498
16499 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
16500
16501         PR middle-end/44878
16502         * stmt.c (expand_value_return):  Call promote_function_mode with
16503         a for_return argument of 2 when returning by reference.
16504
16505 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
16506
16507         PR debug/45024
16508         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
16509         unit DIE if we can find the scope DIE.
16510
16511 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16512
16513         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
16514         changed.  Initialize OBJECT_SUBWORD.
16515         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
16516         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
16517         all callers changed.
16518         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
16519         (finish_allocno): Likewise.
16520         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
16521         (remove_low_level_allocnos): Likewise.
16522         (update_bad_spill_attribute): Likewise.
16523         (setup_min_max_allocno_live_range_point): Likewise.
16524         (sort_conflict_id_map): Likewise.
16525         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
16526         (ior_hard_reg_conflicts): New function.
16527         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
16528         (compress_conflict_vecs): Iterate over objects, not allocnos.
16529         (ira_add_live_range_to_object): New function.
16530         (object_range_compare_func): Renamed from allocno_range_compare_func.
16531         All callers changed.
16532         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
16533         subobjects, widen the min/max range of the lowest-order object to
16534         potentially include all other such low-order objects.
16535         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
16536         (check_allocation): Likewise.  Use more fine-grained tests for register
16537         conflicts.
16538         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
16539         allocno subobjects.
16540         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
16541         choices about which bits to set in each set.  Don't use
16542         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
16543         using the multiple sets we computed.
16544         (push_allocno_to_stack): Iterate over allocno subobjects.
16545         (all_conflicting_hard_regs_coalesced): New static function.
16546         (setup_allocno_available_regs_num): Use it.
16547         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
16548         subobjects.
16549         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
16550         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16551         by ALLOCNO_NUM_OBJECTS.
16552         (calculate_spill_cost): Likewise.
16553         (color_pass): Express if statement in a more normal way.
16554         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
16555         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
16556         (setup_slot_coalesced_allocno_live_ranges): Likewise.
16557         (allocno_reload_assign): Likewise.
16558         (ira_reassign_pseudos): Likewise.
16559         (fast_allocation): Likewise.
16560         * ira-conflicts.c (build_conflict_bit_table): Likewise.
16561         (print_allocno_conflicts): Likewise.
16562         (ira_build_conflicts): Likewise.
16563         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
16564         callers changed.  Test subword 0 of each allocno for conflicts.
16565         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
16566         callers changed.  Iterate over allocno subobjects.
16567         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
16568         * ira-int.h (struct ira_allocno): New member: num_objects.
16569         Rename object to objects and change it into an array.
16570         (ALLOCNO_OBJECT): Add new argument N.
16571         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
16572         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
16573         (ior_hard_reg_conflicts): Declare.
16574         (ira_add_live_range_to_object): Declare.
16575         (ira_allocno_object_iterator): New.
16576         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
16577         (FOR_EACH_ALLOCNO_OBJECT): New macro.
16578         * ira-lives.c (objects_live): Renamed from allocnos_live; all
16579         uses changed.
16580         (allocnos_processed): New sparseset.
16581         (make_object_born): Renamed from make_allocno_born; take an
16582         ira_object_t argument.  All callers changed.
16583         (make_object_dead): Renamed from make_allocno_dead; take an
16584         ira_object_t argument.  All callers changed.
16585         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
16586         All callers changed.
16587         (mark_pseudo_regno_live): Iterate over allocno subobjects.
16588         (mark_pseudo_regno_dead): Likewise.
16589         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
16590         functions.
16591         (mark_ref_live): Detect subword accesses and call
16592         mark_pseudo_regno_subword_live as appropriate.
16593         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
16594         (process_bb_nodes_live): Deal with object-related updates first; set
16595         and test bits in allocnos_processed to avoid computing allocno
16596         statistics more than once.
16597         (create_start_finish_chains): Iterate over objects, not allocnos.
16598         (print_object_live_ranges): New function.
16599         (print_allocno_live_ranges): Use it.
16600         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
16601         and objects_live.
16602
16603 2010-07-22  Richard Guenther  <rguenther@suse.de>
16604
16605         PR lto/42451
16606         * gimple.c (gtc_next_dfs_num): New global.
16607         (struct sccs): Make value a union, add integer same_p member.
16608         (gtc_visit): New function.
16609         (gimple_types_compatible_p_1): New function, split out from ...
16610         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
16611         (iterative_hash_gimple_type): Adjust for sccs change.
16612
16613 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16614
16615         PR tree-optimization/44891
16616         * tree-sra.c: Include gimple-pretty-print.h.
16617         (replace_uses_with_default_def_ssa_name): Renamed to
16618         get_repl_default_def_ssa_name, return the new SSA name instead of
16619         replacing the old one.
16620         (sra_modify_assign): Dump a message when removing a load, if the LHS
16621         is an SSA_NAME, do not do any propagation, just set the RHS to a
16622         default definition SSA NAME, type convert if necessary.
16623         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
16624
16625 2010-07-22  Richard Guenther  <rguenther@suse.de>
16626
16627         PR tree-optimization/45017
16628         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
16629         TYPE_PRECISION of integral types in addition to size.
16630
16631 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
16632
16633         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
16634         when no C library is specified.
16635
16636 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16637
16638         * ipa-prop.h (struct ipa_node_params): Updated comment.
16639         (struct ipa_edge_args): Likewise.
16640         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
16641
16642 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16643
16644         * cgraphunit.c (verify_edge_count_and_frequency): New function.
16645         (verify_cgraph_node): Verify frequencies of indirect edges.
16646         * tree-inline.c (tree_function_versioning): Update frequencies of
16647         indirect edges.
16648
16649 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16650
16651         PR target/43698
16652         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
16653         Set *arm_rev to be predicable.
16654
16655 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
16656
16657         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
16658         (LINK_COMMAND_SPEC_A): New.
16659         (DSYMUTIL): New.
16660         (DSYMUTIL_SPEC): New.
16661         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
16662         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
16663
16664 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
16665
16666         * calls.c (load_register_parameters): Move check for zero
16667         sized items so that only the call to
16668         mem_overlaps_already_clobbered_arg_p () is protected.
16669
16670 2010-07-22  Jan Hubicka  <jh@suse.cz>
16671
16672         * ipa-pure-const.c (varying_state): Break out from ...
16673         (get_function_state): ... here; always return varying_state
16674         when state would be NULL otherwise.
16675         (remove_node_data): Do not free varying state.
16676
16677 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16678
16679         PR bootstrap/44970
16680         PR middle-end/45009
16681         * postreload.c: Include "target.h".
16682         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
16683         into account.
16684         (fixup_debug_insns): Don't copy the rtx.
16685         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
16686         Don't copy when replacing.  Call fixup_debug_insns in the case where
16687         we merged one add with another.
16688         (reload_combine_recognize_pattern): Fail if there aren't any uses.
16689         Try harder to determine whether we're picking a valid index register.
16690         Don't set store_ruid for an insn we're going to scan in the
16691         next iteration.
16692         (reload_combine): Remove unused code.
16693         (reload_combine_note_use): When updating use information for
16694         an old insn, ignore a use that occurs after store_ruid.
16695         * Makefile.in (postreload.o): Update dependencies.
16696
16697         * function.c (record_hard_reg_sets): Restrict the previous change
16698         to cases where the incoming nominal mode is the same as the
16699         incoming promoted mode and everything happens in MODE_INT.
16700
16701 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16702
16703         PR debug/45015
16704         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
16705         ASM_OPERANDS_OUTPUT_IDX.
16706         (adjust_insn): For inline asm with multiple sets ensure first
16707         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
16708         the insn.
16709
16710 2010-07-21  Richard Henderson  <rth@redhat.com>
16711
16712         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
16713         comparison for avoiding xmm register saves.  Emit the xmm register
16714         saves explicitly.
16715         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
16716         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
16717         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
16718         Remove patterns and the associated splitters.
16719
16720 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
16721
16722         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
16723         and imagine parts of a complex, so that they can have the same
16724         base and fall into the same group.
16725
16726 2010-07-21  Richard Guenther  <rguenther@suse.de>
16727
16728         PR lto/45018
16729         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
16730         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
16731         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
16732
16733 2010-07-21  Martin Jambor  <mjambor@suse.cz>
16734
16735         PR tree-optimization/44900
16736         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
16737         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
16738
16739 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
16740
16741         PR middle-end/44738
16742         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
16743
16744 2010-07-21  Richard Guenther  <rguenther@suse.de>
16745
16746         PR middle-end/45013
16747         * tree-ssa.c (useless_type_conversion_p): Dispatch to
16748         gimple_types_compatible_p only when in lto.
16749         * gimple.c (gimple_types_compatible_p): Use canonical types
16750         to speed up comparison.
16751
16752 2010-07-21  Richard Guenther  <rguenther@suse.de>
16753
16754         * tree-flow.h (referenced_var): Move define ...
16755         * tree-flow-inline.h (referenced_var): ... here as an inline
16756         function.  Assert here ...
16757         * tree-dfa.c (referenced_var_lookup): ... instead of here.
16758         * tree-ssa.c (maybe_optimize_var): Check if the variable
16759         is in referenced vars.
16760         (execute_update_addresses_taken): Remove old broken check.
16761         * gimple-pretty-print.c (pp_points_to_solution): Use
16762         referenced_var_lookup.
16763         * tree-into-ssa.c (dump_decl_set): Likewise.
16764
16765 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16766
16767         PR debug/45003
16768         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
16769         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
16770         ZERO_EXTEND here.
16771
16772 2010-07-20  Richard Henderson  <rth@redhat.com>
16773
16774         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
16775
16776 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16777
16778         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
16779         computing the sum of the stack pointer and a large constant.
16780         * config/arm/constraints.md (M): Remove superfluous parentheses.
16781         (Pc): New constraint.
16782
16783 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
16784
16785         PR debug/45006
16786         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
16787         operand's type if exp is tcc_unary class tree.
16788
16789 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
16790
16791         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
16792         Reverse sense of if_then_else condition.
16793
16794 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
16795
16796         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
16797         * config/rs6000/rs6000.c (rs6000_override_options): Set
16798         rs6000_block_move_inline_limit appropriately.
16799         (expand_block_move): Use rs6000_block_move_inline_limit.
16800         * doc/invoke.texi (mblock-move-inline-limit): Document.
16801
16802 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16803
16804         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
16805         FROM and TO.  All callers changed.  Don't look for tracked uses,
16806         just scan the RTL for DEBUG_INSNs and substitute.
16807         (reload_combine_recognize_pattern): Call fixup_debug_insns.
16808         (reload_combine): Ignore DEBUG_INSNs.
16809
16810 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
16811
16812         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
16813         depth to 8 from 5.
16814
16815         PR debug/45003
16816         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
16817         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
16818         instead of the result's type.
16819
16820 2010-07-20  Richard Guenther  <rguenther@suse.de>
16821
16822         PR tree-optimization/44977
16823         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
16824         SSA form.
16825
16826 2010-07-20  Richard Guenther  <rguenther@suse.de>
16827
16828         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
16829         (lto_symtab_merge_decls_2): Likewise.
16830         * gimple.h (gimple_types_compatible_p): Declare.
16831         * gimple.c (gimple_queue_type_fixup): Remove.
16832         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
16833         (gimple_compatible_complete_and_incomplete_type_p): New function.
16834         (gimple_types_compatible_p): Adjust.
16835         (gimple_register_type): Remove type fixup code.
16836         (print_gimple_types_stats): Adjust.
16837         (free_gimple_type_tables): Likewise.
16838         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
16839         * tree-ssa.c (useless_type_conversion_p): Likewise.
16840
16841 2010-07-20  Richard Guenther  <rguenther@suse.de>
16842
16843         PR middle-end/44971
16844         PR middle-end/44988
16845         * tree-ssa.c (maybe_optimize_var): New function split out from ...
16846         (execute_update_addresses_taken): ... here.
16847         (non_rewritable_mem_ref_base): Likewise.
16848         (execute_update_addresses_taken): Do not iterate over all referenced
16849         vars but just all local decls and parms.
16850         Properly check call and asm arguments and rewrite call arguments.
16851
16852 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
16853
16854         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
16855         to top level.
16856         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
16857         definitions ...
16858         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
16859         New macro.
16860         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
16861
16862 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
16863
16864         * gengtype.c (start_root_entry): New function, split out from
16865         write_root.  Check whether V is null and raise an error if so.
16866         (write_field_root): Check for V being null.  Don't raise an error here;
16867         set V to null instead.
16868         (write_root): Update comment above function.  Use start_root_entry.
16869
16870 2010-07-19  Xinliang David Li  <davidxl@google.com>
16871
16872         PR testsuite/44932
16873         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
16874         def edges.
16875         (find_uninit_use): Add dump.
16876         (is_use_properly_guarded): Ditto.
16877         (warn_uninitialized_phi): Ditto.
16878         (execute_late_warn_uninitialized): Ditto.
16879
16880 2010-07-19  Richard Guenther  <rguenther@suse.de>
16881
16882         PR middle-end/44941
16883         * expr.c (emit_block_move_hints): Move zero size check first.
16884         Move asserts to more useful places.
16885         * calls.c (load_register_parameters): Check for zero size.
16886
16887 2010-07-19  Richard Henderson  <rth@redhat.com>
16888
16889         * tree-optimize.c (execute_all_early_local_passes): New.  Change
16890         cgraph_state here ...
16891         (execute_early_local_optimizations): ... not here.  Remove.
16892         (pass_early_local_passes, pass_all_early_optimizations): Update.
16893
16894 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
16895
16896         * postreload.c (reload_combine_closest_single_use): Ignore the
16897         number of uses for DEBUG_INSNs.
16898         (fixup_debug_insns): New static function.
16899         (reload_combine_recognize_const_pattern): Use it.  Don't let the
16900         main loop be affected by DEBUG_INSNs.
16901         Really disallow moving adds past a jump insn.
16902         (reload_combine_recognize_pattern): Don't update use_ruid here.
16903         (reload_combine_note_use): Do it here.
16904         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
16905
16906 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
16907
16908         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
16909         of a loop.
16910         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
16911
16912 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
16913
16914         * config/i386/darwin.h: Define darwin_emit_branch_islands.
16915         (TARGET_MACHO_BRANCH_ISLANDS): New.
16916         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
16917         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
16918         default value.
16919         * config/i386/i386.c (output_pic_addr_const): Do not emit
16920         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
16921         (x86_output_mi_thunk): Adjust symbol creation.
16922         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
16923         Remove out of date comment.
16924         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
16925         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16926         (DARWIN_GENERATE_ISLANDS): Ditto.
16927         (output_call):  Do not emit branch islands unless
16928         darwin_emit_branch_islands is set.
16929         * config/darwin.c: Declare darwin_emit_branch_islands.
16930         (machopic_indirect_data_reference): Do not emit unless
16931         darwin_emit_branch_islands is set.
16932         (darwin_override_options): Set darwin_emit_branch_islands
16933         where it is needed.
16934         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16935
16936 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16937
16938         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16939         sse_runtime, sse2_runtime.
16940
16941 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
16942
16943         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
16944         low half of a single-register SCmode return value before ORing
16945         it with the high half.
16946         * config/mips/mips16.S (MERGE_GPRf): Likewise.
16947
16948 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16949
16950         PR target/44805
16951         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
16952         on all targets.
16953
16954 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
16955
16956         PR target/42235
16957         * postreload.c (reload_cse_move2add): Return bool, true if anything.
16958         changed.  All callers changed.
16959         (move2add_use_add2_insn): Likewise.
16960         (move2add_use_add3_insn): Likewise.
16961         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
16962         reload_combine.
16963         (RELOAD_COMBINE_MAX_USES): Bump to 16.
16964         (last_jump_ruid): New static variable.
16965         (struct reg_use): New members CONTAINING_MEM and RUID.
16966         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
16967         (reload_combine_split_one_ruid, reload_combine_split_ruids,
16968         reload_combine_purge_insn_uses, reload_combine_closest_single_use
16969         reload_combine_purge_reg_uses_after_ruid,
16970         reload_combine_recognize_const_pattern): New static functions.
16971         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
16972         is true for our reg and that we have available index regs.
16973         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
16974         callers changed.  Use them to initialize fields in struct reg_use.
16975         (reload_combine): Initialize last_jump_ruid.  Be careful when to
16976         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
16977         Call reload_combine_recognize_const_pattern.
16978         (reload_combine_note_store): Update REAL_STORE_RUID field.
16979
16980 2010-07-16  Jason Merrill  <jason@redhat.com>
16981
16982         * Makefile.in (opts-common.o): Depend on options.h.
16983
16984 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16985
16986         * tree.c (build_common_builtin_nodes): Use build_function_type_list
16987         instead of build_function_type.
16988         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
16989         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
16990
16991 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16992
16993         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
16994         do all the work.
16995         (rs6000_emit_int_cmove): Use function pointers for insn generation.
16996         Don't force values into registers unnecessarily.
16997         (output_isel): Assert that we're not given conditions we can't handle.
16998         Delete corresponding code.
16999         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
17000         scc_comparison_operator constraint.  Permit 0 for the consequent
17001         operand.  Permit any GPR for the alternative operand.
17002         (isel_unsigned_<mode>): Likewise.
17003
17004 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
17005
17006         PR target/44942
17007         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
17008         argument to const_tree.
17009         * config/i386/i386.c (function_arg_advance): If padding needs to be
17010         inserted before argument, increment cum->words by number of padding
17011         words as well.
17012         (contains_aligned_value_p): Change argument to const_tree.
17013         (ix86_function_arg_boundary): Change second argument to const_tree.
17014
17015 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
17016
17017         PR target/42235
17018         * function.c (record_hard_reg_sets): New static function.
17019         (assign_parm_setup_reg): If an optab for extending exists and the
17020         generated code clobbbers no hard regs, emit the insn directly and
17021         create a REG_EQUIV note.
17022
17023 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17024
17025         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17026         TREE_CHAIN.
17027         * c-typeck.c (push_init_level): Likewise.
17028         (process_init_element): Likewise.
17029
17030 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
17031
17032         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17033         (integer_three_node): Add.
17034         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17035         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17036         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17037         of call build_int_cst.
17038         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
17039         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
17040         (find_interesting_uses_address): Ditto.
17041         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
17042         * tree-eh.c (lower_eh_constructs_2): Ditto.
17043         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
17044         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
17045         * expmed.c (expand_divmod): Ditto.
17046         * tree-mudflap.c (mx_register_decls): Ditto.
17047         * varasm.c (array_size_for_constructor): Ditto.
17048         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
17049         * c-parser.c (c_parser_postfix_expression): Ditto.
17050
17051 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
17052
17053         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
17054         New static variables.
17055         (reload_combine_recognize_pattern): New static function, broken out
17056         of reload_combine.
17057         (reload_combine): Use it.  Only initialize first_index_reg and
17058         last_index_reg once.
17059
17060 2010-07-15  Richard Henderson  <rth@redhat.com>
17061
17062         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
17063         when done.
17064
17065 2010-07-15  Jan Hubicka  <jh@suse.cz>
17066
17067         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
17068         comdats for broken gold.
17069         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
17070
17071 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17072
17073         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
17074
17075 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17076
17077         * tree.h (DECL_CHAIN): Define.
17078         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
17079         * c-decl.c: Likewise.
17080         * c-parser.c: Likewise.
17081         * c-typeck.c: Likewise.
17082         * cfgexpand.c: Likewise.
17083         * cgraph.c: Likewise.
17084         * cgraphunit.c: Likewise.
17085         * combine.c: Likewise.
17086         * config/alpha/alpha.c: Likewise.
17087         * config/arm/arm.c: Likewise.
17088         * config/frv/frv.c: Likewise.
17089         * config/i386/i386.c: Likewise.
17090         * config/i386/winnt-cxx.c: Likewise.
17091         * config/ia64/ia64.c: Likewise.
17092         * config/iq2000/iq2000.c: Likewise.
17093         * config/mep/mep.c: Likewise.
17094         * config/mips/mips.c: Likewise.
17095         * config/pa/som.h: Likewise.
17096         * config/rs6000/rs6000.c: Likewise.
17097         * config/s390/s390.c: Likewise.
17098         * config/sh/sh.c: Likewise.
17099         * config/sh/symbian-cxx.c: Likewise.
17100         * config/sparc/sparc.c: Likewise.
17101         * config/spu/spu.c: Likewise.
17102         * config/stormy16/stormy16.c: Likewise.
17103         * config/vxworks.c: Likewise.
17104         * config/xtensa/xtensa.c: Likewise.
17105         * coverage.c: Likewise.
17106         * dbxout.c: Likewise.
17107         * dwarf2out.c: Likewise.
17108         * emit-rtl.c: Likewise.
17109         * expr.c: Likewise.
17110         * function.c: Likewise.
17111         * gimple-low.c: Likewise.
17112         * gimple-pretty-print.c: Likewise.
17113         * gimplify.c: Likewise.
17114         * integrate.c: Likewise.
17115         * ipa-inline.c: Likewise.
17116         * ipa-prop.c: Likewise.
17117         * ipa-split.c: Likewise.
17118         * ipa-struct-reorg.c: Likewise.
17119         * ipa-type-escape.c: Likewise.
17120         * langhooks.c: Likewise.
17121         * lto-cgraph.c: Likewise.
17122         * omp-low.c: Likewise.
17123         * stor-layout.c: Likewise.
17124         * tree-cfg.c: Likewise.
17125         * tree-complex.c: Likewise.
17126         * tree-dfa.c: Likewise.
17127         * tree-dump.c: Likewise.
17128         * tree-inline.c: Likewise.
17129         * tree-mudflap.c: Likewise.
17130         * tree-nested.c: Likewise.
17131         * tree-object-size.c: Likewise.
17132         * tree-pretty-print.c: Likewise.
17133         * tree-sra.c: Likewise.
17134         * tree-ssa-live.c: Likewise.
17135         * tree-ssa-loop-niter.c: Likewise.
17136         * tree-ssa-math-opts.c: Likewise.
17137         * tree-ssa-reassoc.c: Likewise.
17138         * tree-ssa-sccvn.c: Likewise.
17139         * tree-ssa-structalias.c: Likewise.
17140         * tree-tailcall.c: Likewise.
17141         * tree-vrp.c: Likewise.
17142         * tree.c: Likewise.
17143         * var-tracking.c: Likewise.
17144         * varasm.c: Likewise.
17145
17146 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17147
17148         PR target/44877
17149         * config/spu/spu.c (spu_expand_builtin_1): Allow references
17150         (as well as pointers) as argument to mask_for_load builtins.
17151
17152 2010-07-15  Richard Guenther  <rguenther@suse.de>
17153
17154         PR tree-optimization/44946
17155         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
17156         with accessing only padding properly.
17157
17158 2010-07-15  Jan Hubicka  <jh@suse.cz>
17159
17160         * ipa.c (function_and_variable_visibility): Variables marked as used
17161         should not be localized.
17162
17163 2010-07-15  Jan Hubicka  <jh@suse.cz>
17164
17165         * cgraph.c: Include lto-streamer.h
17166         (change_decl_assembler_name): Work when assembler name hash is at place.
17167         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
17168         be sure to rename it to avoid name clash.
17169         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
17170         Localize hidden symbols only when locally defined.
17171
17172 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
17173
17174         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
17175
17176 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
17177             Kevin F. Quinn  <kevquinn@gentoo.org>
17178
17179         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
17180         * common.opt: Add -Wtrampolines.
17181         * doc/invoke.texi: Add -Wtrampolines.
17182
17183 2010-07-15  Jie Zhang  <jie@codesourcery.com>
17184
17185         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
17186         cortex_a8_issue_ls.
17187
17188 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
17189
17190         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
17191         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
17192
17193 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17194
17195         * config/spu/spu.c (reg_names): Remove prototype.
17196         (call_used_regs): Likewise.
17197
17198 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
17199
17200         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
17201         "unused" with attribute "used".
17202         (__JCR_END__): Likewise.
17203         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
17204         "used" attribute.
17205         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
17206
17207 2010-07-14  Richard Guenther  <rguenther@suse.de>
17208
17209         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
17210         (maybe_fixup_decls): Likewise.
17211         (input_gimple_stmt): Do not fixup anything.
17212         * lto-streamer-out.c (output_gimple_stmt): Make sure all
17213         non-automatic variable uses are wrapped inside a MEM_REF.
17214
17215 2010-07-14  Richard Henderson  <rth@redhat.com>
17216
17217         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
17218         for functions.
17219         * varasm.c (assemble_variable): Remove early exit for functions;
17220         assert that we're given a variable.
17221
17222 2010-07-14  Jie Zhang  <jie@codesourcery.com>
17223
17224         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
17225         cortex_a8_default when neon_type is not none.
17226
17227 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17228
17229         * lower-subreg.c (subreg_context): New static bitmap.
17230         (decompose_multiword_subregs): Allocate and free it.
17231         (find_decomposable_subregs): Set a bit in it for a register that
17232         occurs in a subreg that changes mode but not size.
17233         (can_decompose_p): Test it instead of non_decomposable_context.
17234
17235 2010-07-14  Richard Guenther  <rguenther@suse.de>
17236
17237         PR tree-optimization/44824
17238         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
17239         is_gimple_mem_ref_addr.
17240         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
17241         non-decl_address_invariant_p addresses.
17242
17243 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17244
17245         * reload.c (find_reloads): Revert code to penalize small register
17246         classes that was brought in with the IRA merge.
17247
17248 2010-07-14  Richard Guenther  <rguenther@suse.de>
17249
17250         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
17251         as base of ARRAY_REFs.
17252
17253 2010-07-14  Richard Guenther  <rguenther@suse.de>
17254
17255         PR middle-end/44930
17256         * tree-pretty-print.c (do_niy): Do not print a newline.
17257
17258 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17259
17260         * ira-int.h (struct ira_object): New.
17261         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
17262         (struct ira_allocno): Remove members min, max,
17263         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
17264         conflict_allocnos_num and conflict_vec_p.  Add new member object.
17265         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
17266         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
17267         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
17268         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
17269         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
17270         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
17271         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
17272         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
17273         an ira_object_t rather than ira_allocno_t.  All uses changed.
17274         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17275         contains a vector of ira_object_t; all uses changed.
17276         (ira_objects_num): Declare variable.
17277         (ira_create_allocno_object): Declare function.
17278         (ira_conflict_vector_profitable_p): Adjust prototype.
17279         (ira_allocate_conflict_vec): Renamed from
17280         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
17281         (ira_allocate_object_conflicts): Renamed from
17282         ira_allocate_allocno_conflicts; first arg now ira_object_t.
17283         (struct ira_object_iterator): New.
17284         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
17285         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
17286         to conflict_vec_p.  All uses changed.
17287         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
17288         Changed to take into account that conflicts are now tracked for
17289         objects.
17290         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
17291         Args changed to accept ira_object_t.  All uses changed.
17292         (allocnos_conflict_p): New static function.
17293         (collected_conflict_objects): Renamed from collected_allocno_objects;
17294         now a vector of ira_object_t.  All uses changed.
17295         (build_conflict_bit_table): Changed to take into account that
17296         conflicts are now tracked for objects.
17297         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
17298         (print_allocno_conflicts, ira_build_conflicts): Likewise.
17299         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
17300         setup_allocno_left_conflicts_size, allocno_reload_assign,
17301         fast_allocation): Likewise.
17302         * ira-lives.c (make_hard_regno_born, make_allocno_born)
17303         process_single_reg_class_operands, process_bb_node_lives): Likewise.
17304         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
17305         Likewise.
17306         * ira-build.c (ira_objects_num): New variable.
17307         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17308         contains a vector of ira_object_t; all uses changed.
17309         (ira_object_id_map_vec): Corresponding change.
17310         (object_pool): New static variable.
17311         (initiate_allocnos): Initialize it.
17312         (finish_allocnos): Free it.
17313         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
17314         New functions.
17315         (ira_create_allocno): Don't set members that were removed.
17316         (ira_set_allocno_cover_class): Don't change conflict hard regs.
17317         (merge_hard_reg_conflicts): Changed to take into account that
17318         conflicts are now tracked for objects.
17319         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
17320         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
17321         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
17322         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
17323         setup_min_max_conflict_allocno_ids, ):  Likewise.
17324         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
17325         to ira_object_t; all callers changed.
17326         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
17327         to ira_object_t, all callers changed.
17328         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
17329         to ira_object_t, all callers changed.
17330         (conflict_check, curr_conflict_check_tick): Renamed from
17331         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
17332         changed.
17333         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
17334         arg changed to ira_object_t, all callers changed.
17335         (create_cap_allocno): Call ira_create_allocno_object.
17336         (finish_allocno): Free the corresponding object.
17337         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
17338         callers changed.  Adjusted for dealing with objects.
17339         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
17340         dealing with objects.
17341         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
17342
17343         * ira-int.h (struct live_range): Rename allocno member to object
17344         and change type to ira_object_t.
17345         (struct ira_object): New member live_ranges.
17346         (struct ira_allocno): Remove member live_ranges.
17347         (ALLOCNO_LIVE_RANGES): Remove.
17348         (OBJECT_LIVE_RANGES): New macro.
17349         (ira_create_live_range, ira_copy_live_range_list,
17350         ira_merge_live_range_list, ira_live_ranges_intersect_p,
17351         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
17352         * ira-build.c (ira_create_object): Initialize live ranges here.
17353         (ira_create_allocno): Not here.
17354         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
17355         changed to ira_object_t, all callers changed.
17356         (copy_live_range): Rename from copy_allocno_live_range, all callers
17357         changed.
17358         (ira_copy_live_range_list): Rename from
17359         ira_copy_allocno_live_range_list, all callers changed.
17360         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
17361         all callers changed.
17362         (ira_live_ranges_intersect_p): Rename from
17363         ira_allocno_live_ranges_intersect_p, all callers changed.
17364         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
17365         callers changed.
17366         (ira_finish_live_range_list): Rename from
17367         ira_finish_allocno_live_range_list, all callers changed.
17368         (change_object_in_range_list): Rename from change_allocno_in_range_list,
17369         last arg changed to ira_object_t, all callers changed.
17370         (finish_allocno): Changed to expect live ranges in the allocno's object.
17371         (move_allocno_live_ranges, copy_allocno_live_ranges,
17372         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
17373         ira_flattening, ira_build): Likewise.
17374         * ira-color.c (allocnos_have_intersected_live_ranges_p,
17375         slot_coalesced_allocno_live_ranges_intersect,
17376         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
17377         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17378         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
17379         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
17380         make_allocno_dead, create_start_finish_chains,
17381         remove_some_program_points_and_update_live_ranges,
17382         ira_debug_live_range_list): Likewise.
17383
17384         * ira-int.h (ira_object_conflict_iterator): Rename from
17385         ira_allocno_conflict_iterator.
17386         (ira_object_conflict_iter_init): Rename from
17387         ira_allocno_conflict_iter_init, second arg changed to
17388         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
17389         FOR_EACH_ALLOCNO_CONFLICT.
17390         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
17391         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
17392         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
17393         * ira-conflicts.c (print_allocno_conflicts): Likewise.
17394
17395 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
17396
17397         PR other/44874
17398         * tree-dump.c (dump_options): Add enumerate_locals entry.
17399         Add TDF_NOID exclusion to all entry.
17400         * tree-dump.h (dump_enumerated_decls): Declare.
17401         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
17402         Don't display type uid.
17403         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
17404         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
17405         * tree-ssa-live.c: Include gimple.h.
17406         (numbered_tree_d): New struct.
17407         (numbered_tree): New typedef.
17408         (DEF_VEC_O (numbered_tree): New.
17409         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
17410         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
17411         (dump_enumerated_decls): Likewise.
17412         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
17413         debug info and flag_dump_final_insns, call dump_enumerated_decls.
17414         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
17415         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
17416
17417 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
17418
17419         * expmed.h (MAX_BITS_PER_WORD): Move to...
17420         * defaults.h (MAX_BITS_PER_WORD): ...here.
17421
17422 2010-07-13  DJ Delorie  <dj@redhat.com>
17423
17424         * config/h8300/h8300.c (h8300_init_once): Default to
17425         -fstrict_volatile_bitfields.
17426
17427         * config/sh/sh.c (sh_override_options): Default to
17428         -fstrict_volatile_bitfields.
17429
17430         * config/rx/rx.c (rx_option_override): New.
17431
17432         * config/m32c/m32c.c (m32c_override_options): Default to
17433         -fstrict_volatile_bitfields.
17434
17435 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
17436
17437         * tree.h (build_function_call_expr): Delete.
17438         (build_call_expr_loc_array): New function.
17439         (build_call_expr_loc_vec): New function.
17440         * tree-flow.h (struct omp_region): Change type of ws_args field
17441         to a VEC.
17442         * builtins.c (build_function_call_expr): Delete.
17443         (build_call_expr_loc_array): New function.
17444         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
17445         (build_call_expr): Likewise.
17446         (build_call_expr_loc_vec): New function.
17447         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
17448         build_function_call_expr.
17449         * expr.c (emutls_var_address): Likewise.
17450         * varasm.c (emutls_common_1): Likewise.
17451         * omp-low.c (expand_omp_atomic_mutex): Likewise.
17452         (expand_omp_taskreg): Adjust for new type of region->ws_args.
17453         (get_ws_args_for): Return a VEC instead of a tree.
17454         (expand_parallel_call): Call build_call_expr_loc_vec instead of
17455         build_function_call_expr.
17456         * stor-layout.c (self_referential_size): Likewise.
17457
17458 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
17459
17460         PR testsuite/44701
17461         * recog.c (constrain_operands): Allow side-effects in memory
17462         operands if either < or > constraint is used, rather than if
17463         both < and > is used.
17464
17465 2010-07-13  Richard Guenther  <rguenther@suse.de>
17466
17467         PR middle-end/44911
17468         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
17469         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
17470         without name.
17471
17472 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
17473
17474         PR target/44761
17475         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
17476         to variable emited.
17477         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
17478         * config/sh/sh.md (symGOT_load): Likewise.
17479         (symDTPOFF2reg): Likewise.
17480         (symTPOFF2reg): Likewise.
17481
17482 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17483
17484         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
17485         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
17486
17487 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17488
17489         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
17490         explanation.
17491         Find ucontext_t * on Solaris 11.
17492         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
17493         Handle new Solaris 11 __sighndlr patterns.
17494
17495 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
17496
17497         PR debug/44901
17498         * vec.h (VEC_block_remove): Fix comment.
17499         * tree-ssa-live.c (remove_unused_locals): Don't use
17500         VEC_unordered_remove on local_decls, instead replace a single
17501         vector element in each iteration if at least one element had
17502         to be removed and VEC_truncate at the end.
17503         * omp-low.c (expand_omp_taskreg): Likewise.
17504
17505 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17506
17507         * c-decl.c (finish_function): Fix typo in comment.
17508
17509 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
17510
17511         PR bootstrap/44921
17512         * postreload.c (move2add_use_add3_insn): Silence gcc warning
17513         on min_regno.
17514
17515 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
17516
17517         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
17518         (simplify_stmt_using_ranges): Use it.
17519
17520 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17521
17522         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
17523         member.  Do not mark as GTY(()).
17524         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
17525         (spu_builtin_decls): New static variable.
17526         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
17527         (spu_init_builtins): Likewise.
17528         (spu_builtin_mul_widen_even): Likewise.
17529         (spu_builtin_mul_widen_odd): Likewise.
17530         (spu_builtin_mask_for_load): Likewise.
17531         (spu_builtin_vec_perm): Likewise.
17532         * config/spu/spu-c.c: Include "target.h".
17533         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
17534         of using spu_builtins[].fndecl.
17535
17536 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17537
17538         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
17539         imply -minterlink-mips16.
17540
17541 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17542
17543         * config/mips/mips.h (mips16_globals): Declare.
17544         (SWITCHABLE_TARGET): Define.
17545         * config/mips/mips.c: Include target-globals.h.
17546         (mips16_globals): New variable.
17547         (mips_set_mips16_mode): Use save_target_globals and
17548         restore_target_globals instead of target_reinit.
17549
17550 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17551
17552         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
17553         to say that the function can be called more than once.
17554         * target-globals.c (save_target_globals): Call init_reg_sets.
17555
17556 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17557
17558         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
17559         * bb-reorder.h: New file.
17560         * bb-reorder.c (default_target_bb_reorder): New variable.
17561         (this_target_bb_reorder): New conditional variable.
17562         (uncond_jump_length): Redefine as a macro.
17563         * target-globals.h (this_target_bb_reorder): Declare.
17564         (target_globals): Add a bb_reorder field.
17565         (restore_target_globals): Copy the bb_reorder field to
17566         this_target_bb-reorder.
17567         * target-globals.c: Include bb-reorder.h.
17568         (default_target_globals): Initialize the bb_reorder field.
17569         (save_target_globals): Likewise.
17570
17571 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17572
17573         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
17574         * gcse.h: New file.
17575         * gcse.c: Include gcse.h.
17576         (default_target_gcse): New variable.
17577         (this_target_gcse): New conditional variable.
17578         (can_copy): Redefine as a macro.
17579         (can_copy_init_p): New macro.
17580         (can_copy_p): Remove can_copy_init_p.
17581         * target-globals.h (this_target_gcse): Declare.
17582         (target_globals): Add a gcse field.
17583         (restore_target_globals): Copy the gcse field to this_target_gcse.
17584         * target-globals.c: Include gcse.h.
17585         (default_target_globals): Initialize the gcse field.
17586         (save_target_globals): Likewise.
17587
17588 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17589
17590         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
17591         and x_ira_prohibited_mode_move_regs_initialized_p.
17592         (ira_prohibited_mode_move_regs): Redefine as a macro.
17593         * ira.c (ira_prohibited_mode_move_regs): Delete.
17594         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
17595
17596 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17597
17598         * reload.h (target_reload): Add x_cached_reg_save_code and
17599         x_cached_reg_restore_code.
17600         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
17601         Redefine as macros.
17602
17603 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17604
17605         * Makefile.in (target-globals.o): Depend on builtins.h.
17606         * builtins.h: New file.
17607         * builtins.c: Include builtins.h.
17608         (default_target_builtins): New variable.
17609         (this_target_builtins): New conditional variable.
17610         (apply_args_mode, apply_result_mode): Redefine as macros.
17611         * target-globals.h (this_target_builtins): Declare.
17612         (target_globals): Add a builtins field.
17613         (restore_target_globals): Copy the builtins field to
17614         this_target_builtins.
17615         * target-globals.c: Include builtins.h.
17616         (default_target_globals): Initialize the builtins field.
17617         (save_target_globals): Likewise.
17618
17619 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17620
17621         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
17622         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
17623         from expmed.c.
17624         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
17625         (alg_hash, alg_hash_used_p): New macros.
17626         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
17627         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
17628         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
17629
17630 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17631
17632         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
17633         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
17634         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
17635         (this_op_costs, costs_classes): Redefine as macros.
17636         (record_reg_classes): Don't take op_costs as a parameter.
17637         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
17638         (scan_one_insn): Update call to record_operand_costs.
17639
17640 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17641
17642         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
17643         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
17644         (target_ira_int): New structure.
17645         (default_target_ira_int): Declare.
17646         (this_target_ira_int): Declare as a variable or define as a macro.
17647         (ira_reg_mode_hard_regset, ira_register_move_cost)
17648         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
17649         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
17650         (prohibited_class_mode_regs, ira_important_classes_num)
17651         (ira_important_classes, ira_reg_class_intersect)
17652         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
17653         (ira_reg_class_union): Redefine as macros.
17654         * ira.h (target_ira): New structure.
17655         (default_target_ira): Declare.
17656         (this_target_ira): Declare as a variable or define as a macro.
17657         (ira_available_class_regs, ira_hard_regno_cover_class)
17658         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
17659         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
17660         (ira_class_hard_regs_num): Redefine as macros.
17661         * ira.c (default_target_ira, default_target_ira_int): New variables.
17662         (this_target_ira, this_target_ira_int): New conditional variables.
17663         (ira_reg_mode_hard_regset, ira_memory_move_cost)
17664         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
17665         (ira_class_subset_p): Delete.
17666         (no_unit_alloc_regs): Redefine as a macro.
17667         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
17668         (ira_class_hard_regs_num, ira_class_hard_reg_index)
17669         (ira_available_class_regs): Delete.
17670         (alloc_reg_class_subclasses): Redefine as a macro.
17671         (ira_reg_class_cover_size, ira_reg_class_cover)
17672         (ira_important_classes_num, ira_important_classes)
17673         (ira_important_class_nums, ira_class_translate): Delete.
17674         (cover_class_order): Document the variable's lifetime.
17675         (reorder_important_classes): Don't set ira_important_class_nums.
17676         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
17677         (ira_reg_class_super_classes, ira_reg_class_union)
17678         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
17679         Delete.
17680         (setup_reg_class_nregs): Don't set ira_max_regs.
17681         (prohibited_class_mode_regs): Delete.
17682         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
17683         (target_globals): Add ira and ira_int fields.
17684         (restore_target_globals): Copy the ira field to this_target_ira
17685         and the ira_int field to this_target_ira_int.
17686         * target-globals.c: Include ira-int.h.
17687         (default_target_globals): Initialize the ira and ira_int fields.
17688         (save_target_globals): Likewise.
17689
17690 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17691
17692         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
17693         * cfgloop.h (target_cfgloop): New structure.
17694         (default_target_cfgloop): Declare.
17695         (this_target_cfgloop): Declare as a variable or define as a macro.
17696         (target_avail_regs, target_clobbered_regs, target_res_regs)
17697         (target_reg_cost, target_spill_cost): Redefine as macros.
17698         * cfgloopanal.c (default_target_cfgloop): New variable.
17699         (this_target_cfgloop): New conditional variable.
17700         (target_avail_regs, target_clobbered_regs, target_res_regs)
17701         (target_reg_cost, target_spill_cost): Delete.
17702         * target-globals.h (this_target_cfgloop): Declare.
17703         (target_globals): Add a cfgloop field.
17704         (restore_target_globals): Copy the cfgloop field to
17705         this_target_cfgloop.
17706         * target-globals.c: Include cfgloop.h.
17707         (default_target_globals): Initialize the cfgloop field.
17708         (save_target_globals): Likewise.
17709
17710 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17711
17712         * regs.h (target_regs): Add x_direct_load, x_direct_store and
17713         x_float_extend_from_mem.
17714         (direct_load, direct_store, float_extend_from_mem): New macros.
17715         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
17716
17717 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17718
17719         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
17720         (target-globals.o): Depend on $(LIBFUNCS_H).
17721         * libfuncs.h: Include hashtab.h.
17722         (libfunc_entry): Moved from optabs.c.
17723         (target_libfuncs): New structure.
17724         (default_target_libfuncs): Declare.
17725         (this_target_libfuncs): Declare as a variable or define as a macro.
17726         (libfunc_table): Redefine as a macro.
17727         * optabs.c (default_target_libfuncs): New variable.
17728         (this_target_libfuncs): New conditional variable.
17729         (libfunc_table): Delete.
17730         (libfunc_entry): Moved to optabs.h.
17731         (libfunc_hash): Redefine as a macro.
17732         (hash_libfunc, eq_libfunc): Fix comments.
17733         (init_optabs): Use libfunc_hash to detect cases where the function
17734         has already been called.  Clear the hash table instead of
17735         recreating it.
17736         * target-globals.h (this_target_libfuncs): Declare.
17737         (target_globals): Add a libfuncs field.
17738         (restore_target_globals): Copy the libfuncs field to
17739         this_target_libfuncs.
17740         * target-globals.c: Include libfuncs.h.
17741         (default_target_globals): Initialize the libfuncs field.
17742         (save_target_globals): Likewise.
17743
17744 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17745
17746         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
17747         in all dependency lists.
17748
17749 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17750
17751         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
17752         * optabs.h (target_optabs): New structure.
17753         (default_target_optabs): Declare.
17754         (this_target_optabs): Declare as a variable or define as a macro.
17755         (optab_table, convert_optab_table, direct_optab_table): Redefine
17756         as macros.
17757         * optabs.c (default_target_optabs): New variable.
17758         (this_target_optabs): New conditional variable.
17759         (optab_table, convert_optab_table, direct_optab_table): Delete.
17760         * target-globals.h (this_target_optabs): Declare.
17761         (target_globals): Add a optabs field.
17762         (restore_target_globals): Copy the optabs field to
17763         this_target_optabs.
17764         * target-globals.c: Include expr.h and optabs.h.
17765         (default_target_globals): Initialize the optabs field.
17766         (save_target_globals): Likewise.
17767
17768 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17769
17770         * flags.h (target_flagstate): Add x_flag_excess_precision.
17771         (flag_excess_precision): Redefine as a macro.
17772         * toplev.c (flag_excess_precision): Delete.
17773
17774 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17775
17776         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
17777         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
17778         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
17779         (no_caller_save_reg_set): Redefine as a macro.
17780         * reload.h (target_reload): Add x_caller_save_initialized_p and
17781         x_regno_save_mode.
17782         (caller_save_initialized_p): Redefine as a macro.
17783         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
17784         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
17785         (regno_save_mode): Redefine as a macro.
17786
17787 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17788
17789         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
17790         * expmed.h: New file.
17791         * expmed.c (default_target_costs): New variable.
17792         (this_target_costs): New conditional variable.
17793         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
17794         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
17795         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
17796         * target-globals.h (this_target_expmed): Declare.
17797         (target_globals): Add a expmed field.
17798         (restore_target_globals): Copy the expmed field to
17799         this_target_expmed.
17800         * target-globals.c: Include expmed.h.
17801         (default_target_globals): Initialize the expmed field.
17802         (save_target_globals): Likewise.
17803
17804 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17805
17806         * Makefile.in (target-globals.o): Depend on reload.h.
17807         * reload.h (target_reload): New structure.
17808         (default_target_reload): Declare.
17809         (this_target_reload): Declare as a variable or define as a macro.
17810         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
17811         * reload1.c (default_target_reload): New variable
17812         (this_target_reload): New conditional variable.
17813         (indirect_symref_ok, double_reg_address_ok): Delete.
17814         (spill_indirect_levels): Redefine as a macro.
17815         * target-globals.h (this_target_reload): Declare.
17816         (target_globals): Add a reload field.
17817         (restore_target_globals): Copy the reload field to
17818         this_target_reload.
17819         * target-globals.c: Include hard-reg-set.h.
17820         (default_target_globals): Initialize the reload field.
17821         (save_target_globals): Likewise.
17822
17823 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17824
17825         * rtl.h (target_rtl): Add x_static_reg_base_value.
17826         * alias.c (static_reg_base_value): Redefine as a macro.
17827
17828 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17829
17830         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
17831         (GTFILES): Remove reginfo.c.
17832         * rtl.h (target_rtl): Add x_top_of_stack.
17833         (top_of_stack): New macro.
17834         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
17835         (top_of_stack): Delete.
17836
17837 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17838
17839         * regs.h (target_regs): Add x_hard_regs_of_mode,
17840         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
17841         x_may_move_out_cost and x_last_mode_for_init_move_cost.
17842         (have_regs_of_mode, contains_reg_of_mode, move_cost)
17843         (may_move_in_cost, may_move_out_cost): Redefine as macros.
17844         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
17845         (may_move_in_cost, may_move_out_cost): Delete.
17846         (last_mode_for_init_move_cost): Redefine as a macro.
17847
17848 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17849
17850         * hard-reg-set.h (target_hard_regs): New structure.
17851         (default_target_hard_regs): Declare.
17852         (this_target_hard_regs): Declare as a variable or define as a macro.
17853         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
17854         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
17855         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
17856         (reg_class_size, reg_class_subclasses, reg_class_subunion)
17857         (reg_class_superunion, reg_names): Redefine as macros.
17858         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
17859         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
17860         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
17861         (reg_class_contents, reg_class_size, reg_class_subclasses)
17862         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
17863         (default_target_hard_regs): New variable
17864         (this_target_hard_regs, initial_call_really_used_regs)
17865         (initial_reg_alloc_order): New conditional variables.
17866         (initial_reg_names): New variable.
17867         (init_reg_sets): Assert that initial_call_really_used_regs,
17868         initial_reg_alloc_order and initial_reg_names
17869         are all the same size as their variable counterparts.  Use them to
17870         initialize those counterparts.
17871         * target-globals.h (this_target_hard_regs): Declare.
17872         (target_globals): Add a hard_regs field.
17873         (restore_target_globals): Copy the hard_regs field to
17874         this_target_hard_regs.
17875         * target-globals.c: Include hard-reg-set.h.
17876         (default_target_globals): Initialize the hard_regs field.
17877         (save_target_globals): Likewise.
17878
17879 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17880
17881         * Makefile.in (target-globals.o): Depend on $(RTL_H).
17882         * rtl.h (target_rtl): New structure.
17883         (default_target_rtl): Declare.
17884         (this_target_rtl): Declare as a variable or define as a macro.
17885         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
17886         Redefine as macros.
17887         * emit-rtl.c (default_target_rtl): New variable.
17888         (this_target_rtl): New conditional variable.
17889         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
17890         (return_address_pointer_rtx): Delete.
17891         (initial_regno_reg_rtx): New macro.
17892         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
17893         (init_emit_regs): Likewise.
17894         * target-globals.h (this_target_rtl): Declare.
17895         (target_globals): Add a rtl field.
17896         (restore_target_globals): Copy the rtl field to this_target_rtl.
17897         * target-globals.c: Include rtl.h.
17898         (default_target_globals): Initialize the rtl field.
17899         (save_target_globals): Likewise.
17900
17901 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17902
17903         * Makefile.in (target-globals.o): Depend on $(REGS_H).
17904         * regs.h (target_reg_modes): New structure.
17905         (default_target_reg_modes): Declare.
17906         (this_target_reg_modes): Declare as a variable or define as a macro.
17907         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
17908         * reginfo.c (default_target_reg_modes): New variable.
17909         (this_target_reg_modes): New conditional variable.
17910         (hard_regno_nregs, reg_raw_mode): Delete.
17911         * target-globals.h (this_target_regs): Declare.
17912         (target_globals): Add a regs field.
17913         (restore_target_globals): Copy the regs field to this_target_regs.
17914         * target-globals.c: Include regs.h.
17915         (default_target_globals): Initialize the regs field.
17916         (save_target_globals): Likewise.
17917
17918 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17919
17920         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
17921         * doc/tm.texi: Regenerate.
17922         * Makefile.in (OBJS-common): Add target-globals.o.
17923         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
17924         and target-globals.h.
17925         (target-globals.o): New rule.
17926         (GTFILES): Include $(srcdir)/target-globals.h.
17927         * defaults.h (SWITCHABLE_TARGET): Define.
17928         * gengtype.c (open_base_files): Add target-globals.h to the
17929         list of includes.
17930         * target-globals.h: New file.
17931         * target-globals.c: Likewise.
17932
17933         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
17934         * flags.h (target_flag_state): New structure.
17935         (default_target_flag_state): Declare.
17936         (this_target_flag_state): Declare as a variable or define as a macro.
17937         (align_loops_log): Redefine as a macro.
17938         (align_loops_max_skip, align_jumps_log): Likewise.
17939         (align_jumps_max_skip, align_labels_log): Likewise.
17940         (align_labels_max_skip, align_functions_log): Likewise.
17941         * toplev.c (default_target_flag_state): New variable.
17942         (this_target_flag_state): New conditional variable.
17943         (align_loops_log): Delete.
17944         (align_loops_max_skip, align_jumps_log): Likewise.
17945         (align_jumps_max_skip, align_labels_log): Likewise.
17946         (align_labels_max_skip, align_functions_log): Likewise.
17947         * target-globals.h (this_target_flag_state): Declare.
17948         (target_globals): Add a flag_state field.
17949         (restore_target_globals): Copy the flag_state field to
17950         this_target_flag_state.
17951         * target-globals.c: Include flags.h.
17952         (default_target_globals): Initialize the flag_state field.
17953         (save_target_globals): Likewise.
17954
17955 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17956
17957         * postreload.c (reg_symbol_ref[]): New.
17958         (move2add_use_add2_insn): New.
17959         (move2add_use_add3_insn): New.
17960         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
17961         (move2add_note_store): Likewise.
17962
17963 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
17964
17965         PR rtl-optimization/44752
17966         * genautomata.c (main): Don't emit an empty file even if there
17967         is no automaton.
17968
17969 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17970
17971         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
17972         ix86_solaris_return_in_memory.
17973         * config/i386-protos.h: Reflect this.
17974         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17975         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17976         Move ...
17977         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
17978
17979 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17980
17981         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
17982         align the stack when it's going to be saved.
17983
17984 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17985
17986         PR pch/14940
17987         * config/host-solaris.c (mmap_fixed): New function.
17988         (sol_gt_pch_get_address): Use it.
17989         (sol_gt_pch_use_address): Likewise.
17990
17991 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17992
17993         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17994         pentiumpro on Solaris 8 and 9/x86.
17995         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
17996         Document SSE/SSE2 support.
17997         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
17998
17999 2010-07-12  Andi Kleen  <ak@linux.intel.com>
18000
18001         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
18002         instead of gcc_assert to print better error message for multiple
18003         prevailing defs.
18004
18005 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
18006
18007         * config/i386/i386.c (ix86_asm_output_function_label): Change format
18008         string placeholder from 0x%x to %#x.
18009         (ix86_code_end): Use putc to output '\n'.
18010         (ix86_print_operand) <case ';'>: Use putc to output ';'.
18011
18012 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
18013
18014         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
18015         in directive -export.
18016
18017 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
18018
18019         * reginfo.h (reg_classes_intersect_p): Change arguments type to
18020         reg_class_t.
18021         * rtl.h (reg_classes_intersect_p): Adjust prototype.
18022
18023         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18024         Remove macros.
18025         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18026         rs6000_memory_move_cost): Remove
18027         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18028         TARGET_MEMORY_MOVE_COST): Define.
18029         (rs6000_register_move_cost): Make static. Change arguments type from
18030         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18031         (rs6000_memory_move_cost): Make static. Change arguments type from
18032         'enum reg_class' to reg_class_t.
18033
18034 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
18035
18036         PR middle-end/42505
18037         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18038         lookup code into....
18039         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
18040         new functions.
18041         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
18042         * cfgloopanal.c (target_clobbered_regs): Define.
18043         (init_set_costs): Initialize target_clobbered_regs.
18044         (estimate_reg_pressure_cost): Add call_p argument.  When true,
18045         adjust the number of available registers to exclude the
18046         call-clobbered registers.
18047         * cfgloop.h (target_clobbered_regs): Declare.
18048         (estimate_reg_pressure_cost): Adjust declaration.
18049         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
18050         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
18051         (determine_set_costs): Dump target_clobbered_regs.
18052         (loop_body_includes_call): New function.
18053         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
18054         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
18055         call_p flag through.
18056         (best_gain_for_invariant): Likewise.
18057         (find_invariants_to_move): Likewise.
18058         (move_single_loop_invariants): Likewise, using already-computed
18059         has_call field.
18060
18061 2010-07-10  Richard Guenther  <rguenther@suse.de>
18062             Joern Rennecke  <joern.rennecke@embecosm.com>
18063
18064         PR debug/44832
18065         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
18066         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
18067         unless they have DECL_IGNORED_P set.
18068
18069 2010-07-10  Richard Guenther  <rguenther@suse.de>
18070
18071         PR lto/44889
18072         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
18073         helper function.
18074         (gimple_types_compatible_p): Similar to pointed-to
18075         types allow and merge a mix of complete and incomplete aggregate.
18076         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
18077         (iterative_hash_gimple_type): Adjust for that.
18078
18079 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
18080
18081         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
18082
18083 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
18084
18085         PR objc/44140
18086         * config/darwin.c (output_objc_section_asm_op): Save and restore
18087         section when outputting ObjC section list.
18088
18089 2010-07-09  Jan Hubicka  <jh@suse.cz>
18090
18091         * lto-streamer-out.c (produce_symtab): Do not write alias
18092         cgraph/varpool nodes.
18093
18094 2010-07-09  Jan Hubicka  <jh@suse.cz>
18095
18096         * tree-inline.c (declare_return_variable): Fix ICE while
18097         inlining DECL_BY_VALUE function not in SSA form
18098
18099 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
18100
18101         PR tree-optimization/44576
18102         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
18103         New.  Pull out from is_loop_prefetching_profitable to implement
18104         the trip count to ahead ratio heuristic.
18105         (mem_ref_count_reasonable_p): New.  Pull out from
18106         is_loop_prefetching_profitable to implement the instruction to
18107         memory reference ratio heuristic.  Also consider not reasonable if
18108         the memory reference count is above a threshold (to avoid
18109         explosive compilation time.
18110         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
18111         is_loop_prefetching_profitable to implement the instruction to
18112         prefetch ratio heuristic.
18113         (is_loop_prefetching_profitable): Removed.
18114         (loop_prefetch_arrays): Distribute the cost analysis across the
18115         function to allow early exit of the prefetch analysis.
18116         is_loop_prefetching_profitable is splitted into three functions,
18117         with each one called as early as possible.
18118         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
18119         number of memory references in a loop is considered too many.
18120
18121 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18122
18123         * reload.c (find_reloads): Don't clear badop if we have a winreg
18124         alternative, but not win, and the class only has fixed regs.
18125         * hard-reg-set.h (class_only_fixed_regs): Declare.
18126         * reginfo.c (class_only_fixed_regs): New array.
18127         (init_reg_sets_1): Initialize it.
18128         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
18129         discourage alternatives using the stack pointer.
18130
18131         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
18132
18133         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
18134
18135         * config/arm/arm.md (cbranchqi4): Fix array size.
18136         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
18137         calculating length.
18138
18139 2010-07-09  Richard Guenther  <rguenther@suse.de>
18140
18141         * gimple.c (struct type_fixup_s): New struct and VEC type.
18142         (gimple_register_type_fixups): New static global.
18143         (gimple_queue_type_fixup): New function.
18144         (gimple_types_compatible_p): Queue type fixups instead of
18145         applying them here.
18146         (gimple_register_type): Apply queued fixups for the
18147         canonical type.  Empty the type fixup queue.
18148
18149 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18150
18151         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
18152         * configure: Regenerate.
18153         * config.in: Ditto.
18154
18155 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18156             Denys Vlasenko  <dvlasenk@redhat.com>
18157             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18158
18159         PR tree-optimization/28632
18160         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
18161         (extract_range_from_binary_expr): Further optimize
18162         BIT_AND_EXPR and BIT_IOR_EXPR.
18163
18164 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
18165
18166         * tree-if-conv.c (fold_or_predicates): New.
18167         (add_to_predicate_list): Call it.
18168
18169 2010-07-09  Richard Guenther  <rguenther@suse.de>
18170
18171         PR middle-end/44890
18172         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
18173         if base is a pointer.
18174         * tree-cfg.c (verify_expr): Update MEM_REF checking.
18175
18176 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18177
18178         PR target/44877
18179         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
18180         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
18181         builtin mask for load/store builtins.
18182
18183 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18184
18185         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
18186         for "lock addl".
18187         * configure: Regenerate.
18188         * config/i386/i386.c (ix86_print_operand) <case ';'>:
18189         Remove TARGET_MACHO.
18190
18191 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
18192
18193         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
18194         default ISA flags.
18195         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
18196
18197 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
18198
18199         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
18200
18201 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
18202
18203         * config/picochip/picochip.md (commsTestPort): Emit more
18204         efficient sequence for tstport instruction.
18205
18206 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18207
18208         * config/i386/i386.c (ix86_veclib_handler): Make static.
18209
18210 2010-07-09  Richard Guenther  <rguenther@suse.de>
18211
18212         PR tree-optimization/44852
18213         * tree-ssa-alias.c: Include toplev.h for exact_log2.
18214         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
18215         in MEM_REF.
18216         (indirect_refs_may_alias_p): Likewise.
18217         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
18218
18219 2010-07-09  Richard Guenther  <rguenther@suse.de>
18220
18221         PR tree-optimization/44882
18222         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
18223         sets do conflict.
18224         (vectorizable_load): Likewise.
18225
18226 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18227
18228         PR target/40657
18229         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
18230         All callers changed.
18231         Handle the case when we're called for the epilogue.
18232         (thumb_unexpanded_epilogue): Use it.
18233         (thumb1_expand_epilogue): Likewise.
18234
18235 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18236
18237         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
18238         both ranges are range_int_cst_p with non-negative minimum,
18239         try harder to derive smaller range.
18240
18241 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18242
18243         * genrecog.c: Include diagnostic-core.h before toplev.h.
18244         * genoutput.c: Likewise.
18245         * genextract.c: Likewise.
18246         * genautomata.c: Likewise.
18247         * genemit.c: Likewise.
18248         * genpeep.c: Likewise.
18249         * genattrtab.c: Likewise.
18250         * genconditions.c: Likewise.
18251         * genpreds.c: Likewise.
18252
18253 2010-07-08  Andi Kleen  <ak@linux.intel.com>
18254
18255         * lto-section-in.c (lto_section_name): Add missing comma.
18256
18257 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
18258
18259         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
18260         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
18261         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
18262         (ia64_override_options): Rename to...
18263         (ia64_option_override): ... this one. Make static.
18264
18265 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18266
18267         PR middle-end/44843
18268         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
18269         pointed-to type of the offset in a MEM_REF to compute the alignment.
18270
18271 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
18272
18273         * final.c (final_scan_insn): Replace
18274         TARGET_UNWIND_INFO macro check by unwind_emit
18275         hook NULL check.
18276         * targhooks.c (default_unwind_emit): Removed.
18277         * targhooks.h (default_unwind_emit): Likewise.
18278         * target.def (unwind_emit): Set default value to NULL.
18279
18280         * config/i386/i386-protos.h (ix86_asm_output_function_label):
18281         New prototype.
18282         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
18283         for NULL fntype argument and allow 64-bit targets.
18284         (ix86_asm_output_function_label): New function.
18285         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
18286         (ix86_handle_fndecl_attribute): Likewise.
18287         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
18288         * doc/doc/tm.texi: Regenerated.
18289         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
18290         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
18291         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
18292         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
18293         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18294         * config/elfos.h: Likewise.
18295         * config/i386/cygming.h: Likewise.
18296         * config/netbsd-aout.h: Likewise.
18297         * config/openbsd.h: Likewise.
18298         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
18299         by ix86_asm_output_function_label function call.
18300         * varasm.c (assemble_start_function): Use
18301         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18302
18303 2010-07-08  Jan Hubicka  <jh@suse.cz>
18304
18305         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
18306         New function.
18307         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
18308         Declare.
18309         * ipa-cp.c (ipcp_estimate_growth): Use it.
18310         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
18311         Likewise.
18312
18313 2010-07-08  Jan Hubicka  <jh@suse.cz>
18314
18315         * tree-inline.c (declare_return_variable): Allocate annotation for new
18316         temporary.
18317
18318 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18319
18320         PR tree-optimization/44710
18321         * tree-if-conv.c (parse_predicate): New.
18322         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
18323         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
18324
18325 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18326
18327         * common.opt (ftree-loop-if-convert): New flag.
18328         * doc/invoke.texi (ftree-loop-if-convert): Documented.
18329         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
18330         when flag_tree_loop_if_convert is set.
18331
18332 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
18333
18334         * config/i386/i386.c: Use short syntax for function calls
18335         through function pointers.
18336         * config/i386/i386.md: Ditto.
18337
18338 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18339
18340         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
18341
18342 2010-07-08  Richard Guenther  <rguenther@suse.de>
18343
18344         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
18345         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
18346
18347 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
18348
18349         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
18350         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
18351         (loc_list_from_tree): Likewise.
18352         (output_loc_operands): Handle outputting DW_OP_const[48]u
18353         with loc->dtprel set.
18354         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
18355
18356 2010-07-08  Jan Hubicka  <jh@suse.cz>
18357
18358         * ipa.c: Include pointer-set.h
18359         (cgraph_externally_visible_p): New attribute ALIASED;
18360         when in LTO, hidden symbols are local unless they are aliased.
18361         (function_and_variable_visibility): Compute aliased nodes;
18362         handle LTO and hidden symbol on functions and vars.
18363         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
18364         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
18365
18366 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18367
18368         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18369         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18370         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18371         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18372         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18373         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
18374         (ix86_gen_probe_stack_range): Likewise.
18375         (override_options): Set them.
18376         (ix86_target_stack_probe): New function.
18377         (ix86_compute_frame_layout): Force use of push instructions to
18378         save registers if stack checking with probes is enabled.
18379         (get_scratch_register_on_entry): New function.
18380         (release_scratch_register_on_entry): Likewise.
18381         (ix86_adjust_stack_and_probe): Likewise.
18382         (output_adjust_stack_and_probe): Likewise.
18383         (ix86_emit_probe_stack_range): Likewise.
18384         (output_probe_stack_range): Likewise.
18385         (ix86_expand_prologue): Emit stack checking code if static built-in
18386         stack checking is enabled.
18387         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
18388         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
18389         (output_adjust_stack_and_probe): Likewise.
18390         (output_probe_stack_range): Likewise.
18391         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18392         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
18393         TARGET_STACK_PROBE.
18394         (allocate_stack_worker_64): Likewise.
18395         (allocate_stack): Likewise.
18396         (adjust_stack_and_probe): New insn.
18397         (probe_stack_range): Likewise.
18398
18399 2010-07-08  Richard Guenther  <rguenther@suse.de>
18400
18401         PR tree-optimization/44831
18402         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
18403         a MEM_REF preserving TBAA info of the original dereference.
18404         Dereference the original pointer if the address is not invariant.
18405         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
18406         at least one invariant address that we are going to dereference.
18407
18408 2010-07-08  Richard Guenther  <rguenther@suse.de>
18409
18410         PR tree-optimization/44861
18411         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
18412         information when building MEM_REFs.
18413         (vectorizable_load): Likewise.
18414         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
18415
18416 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18417
18418         * config/sol2-c.c: Do not include diagnostic-core.h.
18419
18420 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18421
18422         PR bootstrap/44768
18423         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
18424         with respect to current_function_decl. Pass decl of the function.
18425         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
18426         * ipa-inline.c (compute_inline_parameters): Pass decl to
18427         estimated_stack_frame_size.
18428
18429 2010-07-08  Richard Guenther  <rguenther@suse.de>
18430
18431         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
18432         New function.
18433         (valueize_refs): Call it.
18434
18435 2010-07-08  Richard Guenther  <rguenther@suse.de>
18436
18437         PR rtl-optimization/44838
18438         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
18439         SSA form do not use pointer equivalence.
18440
18441 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18442
18443         * dwarf2out.c (AT_linkage_name): Delete.
18444         (add_linkage_attr): New function.
18445         (add_linkage_name): Call it to emit the linkage attribute.
18446         (dwarf2out_finish): Likewise.
18447         (move_linkage_attr): Explicitly accept both attribute variants.
18448
18449 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18450
18451         * toplev.h: Do not include diagnostic-core.h.
18452         Include diagnostic-core.h in every file that includes toplev.h.
18453         * c-tree.h: Do not include toplev.h.
18454         * pretty-print.h: Update comment.
18455         * Makefile.in: Update dependencies.
18456         * alias.c: Include diagnostic-core.h in every file that includes
18457         toplev.h.
18458         * attribs.c: Likewise.
18459         * auto-inc-dec.c: Likewise.
18460         * bb-reorder.c: Likewise.
18461         * bt-load.c: Likewise.
18462         * caller-save.c: Likewise.
18463         * calls.c: Likewise.
18464         * cfg.c: Likewise.
18465         * cfganal.c: Likewise.
18466         * cfgbuild.c: Likewise.
18467         * cfgcleanup.c: Likewise.
18468         * cfghooks.c: Likewise.
18469         * cfgloop.c: Likewise.
18470         * combine.c: Likewise.
18471         * config/alpha/alpha.c: Likewise.
18472         * config/arc/arc.c: Likewise.
18473         * config/arm/arm.c: Likewise.
18474         * config/arm/pe.c: Likewise.
18475         * config/avr/avr.c: Likewise.
18476         * config/bfin/bfin.c: Likewise.
18477         * config/cris/cris.c: Likewise.
18478         * config/crx/crx.c: Likewise.
18479         * config/darwin-c.c: Likewise.
18480         * config/darwin.c: Likewise.
18481         * config/fr30/fr30.c: Likewise.
18482         * config/frv/frv.c: Likewise.
18483         * config/h8300/h8300.c: Likewise.
18484         * config/host-darwin.c: Likewise.
18485         * config/i386/i386.c: Likewise.
18486         * config/i386/netware.c: Likewise.
18487         * config/i386/nwld.c: Likewise.
18488         * config/i386/winnt-cxx.c: Likewise.
18489         * config/i386/winnt-stubs.c: Likewise.
18490         * config/i386/winnt.c: Likewise.
18491         * config/ia64/ia64-c.c: Likewise.
18492         * config/ia64/ia64.c: Likewise.
18493         * config/iq2000/iq2000.c: Likewise.
18494         * config/lm32/lm32.c: Likewise.
18495         * config/m32c/m32c-pragma.c: Likewise.
18496         * config/m32c/m32c.c: Likewise.
18497         * config/m32r/m32r.c: Likewise.
18498         * config/m68hc11/m68hc11.c: Likewise.
18499         * config/m68k/m68k.c: Likewise.
18500         * config/mcore/mcore.c: Likewise.
18501         * config/mep/mep-pragma.c: Likewise.
18502         * config/mep/mep.c: Likewise.
18503         * config/mmix/mmix.c: Likewise.
18504         * config/mn10300/mn10300.c: Likewise.
18505         * config/moxie/moxie.c: Likewise.
18506         * config/pa/pa.c: Likewise.
18507         * config/pdp11/pdp11.c: Likewise.
18508         * config/picochip/picochip.c: Likewise.
18509         * config/rs6000/rs6000-c.c: Likewise.
18510         * config/rs6000/rs6000.c: Likewise.
18511         * config/rx/rx.c: Likewise.
18512         * config/s390/s390.c: Likewise.
18513         * config/score/score.c: Likewise.
18514         * config/score/score3.c: Likewise.
18515         * config/score/score7.c: Likewise.
18516         * config/sh/sh.c: Likewise.
18517         * config/sh/symbian-base.c: Likewise.
18518         * config/sh/symbian-c.c: Likewise.
18519         * config/sh/symbian-cxx.c: Likewise.
18520         * config/sol2-c.c: Likewise.
18521         * config/sol2.c: Likewise.
18522         * config/sparc/sparc.c: Likewise.
18523         * config/spu/spu.c: Likewise.
18524         * config/stormy16/stormy16.c: Likewise.
18525         * config/v850/v850-c.c: Likewise.
18526         * config/v850/v850.c: Likewise.
18527         * config/vax/vax.c: Likewise.
18528         * config/vxworks.c: Likewise.
18529         * config/xtensa/xtensa.c: Likewise.
18530         * convert.c: Likewise.
18531         * cse.c: Likewise.
18532         * cselib.c: Likewise.
18533         * dbgcnt.c: Likewise.
18534         * dbxout.c: Likewise.
18535         * ddg.c: Likewise.
18536         * dominance.c: Likewise.
18537         * emit-rtl.c: Likewise.
18538         * explow.c: Likewise.
18539         * expmed.c: Likewise.
18540         * fixed-value.c: Likewise.
18541         * fold-const.c: Likewise.
18542         * fwprop.c: Likewise.
18543         * gcse.c: Likewise.
18544         * ggc-common.c: Likewise.
18545         * ggc-page.c: Likewise.
18546         * ggc-zone.c: Likewise.
18547         * gimple-low.c: Likewise.
18548         * gimplify.c: Likewise.
18549         * graph.c: Likewise.
18550         * haifa-sched.c: Likewise.
18551         * ifcvt.c: Likewise.
18552         * implicit-zee.c: Likewise.
18553         * integrate.c: Likewise.
18554         * ira-build.c: Likewise.
18555         * ira-color.c: Likewise.
18556         * ira-conflicts.c: Likewise.
18557         * ira-costs.c: Likewise.
18558         * ira-lives.c: Likewise.
18559         * ira.c: Likewise.
18560         * lists.c: Likewise.
18561         * loop-doloop.c: Likewise.
18562         * loop-iv.c: Likewise.
18563         * lto-opts.c: Likewise.
18564         * lto-symtab.c: Likewise.
18565         * main.c: Likewise.
18566         * modulo-sched.c: Likewise.
18567         * optabs.c: Likewise.
18568         * params.c: Likewise.
18569         * plugin.c: Likewise.
18570         * postreload-gcse.c: Likewise.
18571         * postreload.c: Likewise.
18572         * predict.c: Likewise.
18573         * profile.c: Likewise.
18574         * real.c: Likewise.
18575         * regcprop.c: Likewise.
18576         * reginfo.c: Likewise.
18577         * regmove.c: Likewise.
18578         * reorg.c: Likewise.
18579         * resource.c: Likewise.
18580         * rtl.c: Likewise.
18581         * rtlanal.c: Likewise.
18582         * sched-deps.c: Likewise.
18583         * sched-ebb.c: Likewise.
18584         * sched-rgn.c: Likewise.
18585         * sdbout.c: Likewise.
18586         * sel-sched-dump.c: Likewise.
18587         * sel-sched-ir.c: Likewise.
18588         * simplify-rtx.c: Likewise.
18589         * stmt.c: Likewise.
18590         * stor-layout.c: Likewise.
18591         * store-motion.c: Likewise.
18592         * targhooks.c: Likewise.
18593         * tree-cfg.c: Likewise.
18594         * tree-cfgcleanup.c: Likewise.
18595         * tree-dump.c: Likewise.
18596         * tree-eh.c: Likewise.
18597         * tree-inline.c: Likewise.
18598         * tree-nomudflap.c: Likewise.
18599         * tree-object-size.c: Likewise.
18600         * tree-optimize.c: Likewise.
18601         * tree-outof-ssa.c: Likewise.
18602         * tree-phinodes.c: Likewise.
18603         * tree-profile.c: Likewise.
18604         * tree-ssa-ccp.c: Likewise.
18605         * tree-ssa-coalesce.c: Likewise.
18606         * tree-ssa-live.c: Likewise.
18607         * tree-ssa-loop-niter.c: Likewise.
18608         * tree-ssa-loop-prefetch.c: Likewise.
18609         * tree-ssa-loop.c: Likewise.
18610         * tree-ssa-structalias.c: Likewise.
18611         * tree-ssa-uninit.c: Likewise.
18612         * tree-ssa.c: Likewise.
18613         * tree-vect-data-refs.c: Likewise.
18614         * tree-vect-loop-manip.c: Likewise.
18615         * tree-vect-loop.c: Likewise.
18616         * tree-vect-patterns.c: Likewise.
18617         * tree-vect-stmts.c: Likewise.
18618         * tree-vrp.c: Likewise.
18619         * varasm.c: Likewise.
18620         * vec.c: Likewise.
18621         * web.c: Likewise.
18622         * xcoffout.c: Likewise.
18623
18624 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
18625
18626         * gengtype.c (write_field_root): New function.
18627         (write_root): Use it.
18628
18629 2010-07-07  Wei Guozhi  <carrot@google.com>
18630
18631         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18632         of lowest bits to lshift/compare): Add a missing line.
18633
18634 2010-07-07  Wei Guozhi  <carrot@google.com>
18635
18636         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18637         of lowest bits to lshift/compare): New.
18638
18639 2010-07-07  Tom Tromey  <tromey@redhat.com>
18640
18641         * doc/tm.texi: Update.
18642         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
18643         Add @hook.
18644         * target.def (want_debug_pub_sections): New hook.
18645         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
18646         * dwarf2out.c (add_pubname_string): Check
18647         targetm.want_debug_pub_sections.
18648         (add_pubname): Likewise.
18649         (add_pubtype): Likewise.
18650
18651 2010-07-07  Jie Zhang  <jie@codesourcery.com>
18652
18653         * genautomata.c (output_automata_list_min_issue_delay_code):
18654         Correctly decompress min_issue_delay.
18655
18656 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18657
18658         PR rtl-optimization/44404
18659         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
18660         possible, use reg_overlap_mentioned_p instead.
18661
18662 2010-07-07  Duncan Sands  <baldrick@free.fr>
18663
18664         PR middle-end/41355
18665         * tree.c (build_function_type_skip_args): Copy the original type using
18666         build_distinct_type_copy rather than copy_node.
18667
18668 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18669
18670         PR target/44850
18671         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
18672         revision 161876.
18673         (ix86_expand_prologue): Likewise.
18674         (ix86_handle_fndecl_attribute): Likewise.
18675         (ix86_asm_declare_function_name): Likewise.
18676         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18677         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18678         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
18679         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
18680         * doc/extend.texi: Likewise.
18681
18682 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18683
18684         PR target/44844
18685         * config/i386/i386.md (rdrand<mode>): Changed to expand to
18686         retry if the carry flag isn't valid.
18687         (rdrand<mode>_1): New.
18688
18689 2010-07-07  Richard Guenther  <rguenther@suse.de>
18690
18691         PR middle-end/44790
18692         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
18693         for expanding the constant offset for MEM_REFs.
18694
18695 2010-07-07  Richard Guenther  <rguenther@suse.de>
18696
18697         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
18698         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
18699         * gimple.h (is_gimple_operand): Remove.
18700         * gimple.c (is_gimple_operand): Likewise.
18701         (walk_gimple_op): Fix wi->val_only setting for calls.
18702         * tree-cfg.c (verify_gimple_call): Fix argument validation.
18703         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
18704         invalid gimple calls.
18705
18706 2010-07-06  Jan Hubicka  <jh@suse.cz>
18707
18708         * lto-cgraph.c (output_cgraph): Add missing declaration.
18709
18710 2010-07-06  Jan Hubicka  <jh@suse.cz>
18711
18712         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
18713         partition.
18714
18715 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
18716
18717         * doc/gimple.texi (GIMPLE_DEBUG): Document.
18718         * doc/rtl.texi (Debug Information): New node.
18719         (NOTE_INSN_VAR_LOCATION): Document.
18720         (debug_insn): Likewise.
18721         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
18722
18723 2010-07-07  Jan Hubicka  <jh@suse.cz>
18724
18725         With parts by Richard Guenther.
18726
18727         PR middle-end/44813
18728         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
18729         for functions passed by reference.
18730         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
18731         in memory when passed by reference.
18732         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
18733         beggining.
18734         * ipa-split.c (split_function): Cleanup way return value is passed;
18735         handle SSA DECL_BY_REFERENCE retvals.
18736         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
18737         DECL_BY_REFERENCE is set.
18738         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
18739         find_what_p_points_to): Handle RESULT_DECL.
18740         * tree-inline.c (declare_return_variable): Get new entry_block argument;
18741         when passing by reference ensure that RESULT_DECL is gimple_val.
18742         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
18743         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
18744
18745 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18746
18747         PR rtl-optimization/44787
18748         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
18749         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
18750
18751 2010-07-06  Jan Hubicka  <jh@suse.cz>
18752
18753         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
18754         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
18755         with body can prevail.
18756         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
18757         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
18758         * cgraph.c (cgraph_get_node_or_alias): New function.
18759         * cgraph.h (cgraph_get_node_or_alias): Declare.
18760
18761 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
18762
18763         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
18764         support.
18765         (ix86_expand_prologue): Likewise.
18766         (ix86_handle_fndecl_attribute): Likewise.
18767         (ix86_asm_declare_function_name): New function for
18768         ASM_DECLARE_FUNCTION_NAME.
18769         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
18770         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
18771         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
18772         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
18773         * doc/extend.texi: Adjust documentation about ms_hook_prologue
18774         attribute.
18775
18776 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18777
18778         * config/i386/i386.md (immediate_operand): New mode attribute.
18779
18780         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
18781         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
18782         using P mode iterator.
18783         (pro_epilogue_adjust_stack_di_2): Rename from
18784         pro_epilogue_adjust_stack_rex64_2.
18785
18786         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
18787
18788 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18789
18790         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
18791         through gen_mov_insv_1 function pointer.
18792         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
18793         gen_truncxf<mode>2 through gen_truncxf function pointer.
18794         (remainder<mode>3): Ditto.
18795         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
18796         (allocate_stack): Call gen_allocate_stack_worker_64 or
18797         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
18798         function pointer.
18799         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
18800         function pointer.
18801
18802 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18803
18804         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
18805         operand constraint instead of <r><i>m.
18806
18807 2010-07-06  Richard Guenther  <rguenther@suse.de>
18808
18809         PR middle-end/44828
18810         * convert.c (convert_to_integer): Watch out for overflowing
18811         MULT_EXPR as well.
18812
18813 2010-07-05  Jan Hubicka  <jh@suse.cz>
18814
18815         * lto-streamer.c (write_symbol_vec): Rename to ...
18816         (write_symbol) ... this one; write only symbol given and when
18817         present in cache. Sanity check that what is defined is present
18818         in cgraph/varpool with body/finalized decl.
18819         (write_symbols_of_kind): Remove.
18820         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
18821         pairs to produce symtab.
18822         (produce_asm_for_decls): Update call of produce_symtab; don't do so
18823         when doing WPA streaming.
18824
18825 2010-07-05  Jan Hubicka  <jh@suse.cz>
18826
18827         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
18828         function is still available to fold into.
18829
18830 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18831
18832         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
18833         * function.h (struct_function): Change type of local_decls field
18834         to a VEC.
18835         (add_local_decl): New function.
18836         (FOR_EACH_LOCAL_DECL): New macro.
18837         * cfgexpand.c (init_vars_expansion): Adjust for new type of
18838         cfun->local_decls.
18839         (estimated_stack_frame_size): Likewise.
18840         (expand_used_vars): Likewise.
18841         * cgraphbuild.c (build_cgraph_edges): Likewise.
18842         * function.c (instantiate_decls_1): Likewise.
18843         * ipa-struct-reorg.c (build_data_structure): Likewise.
18844         * ipa-type-escape.c (analyze_function): Likewise.
18845         * lto-streamer-in.c (input_function): Likewise.
18846         * lto-streamer-out.c (output_function): Likewise.
18847         * tree-ssa-live.c (remove_unused_locals): Likewise.
18848         * tree.c (free_lang_data_in_decl): Likewise.
18849         (find_decls_types_in_node): Likewise.
18850         * omp-low.c (remove_exit_barrier): Likewise.
18851         (expand_omp_taskreg): Likewise.
18852         (list2chain): Rename to...
18853         (vec2chain): ...this.  Adjust.
18854         * cgraphunit.c (assemble_thunk): Call add_local_decl.
18855         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
18856         * gimple-low.c (record_vars_into): Likewise.
18857         * tree-inline.c (remap_decls): Likewise.
18858         (declare_return_variable): Likewise.
18859         (declare_inline_vars): Likewise.
18860         (copy_forbidden): Adjust for new type of cfun->local_decls.
18861         (add_local_variables): New function.
18862         (expand_call_inline): Call it.
18863         (tree_function_versioning): Likewise.
18864
18865 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
18866
18867         AVX Programming Reference (June, 2010)
18868         * config/i386/cpuid.h (bit_F16C): New.
18869         (bit_RDRND): Likewise.
18870         (bit_FSGSBASE): Likewise.
18871
18872         * config/i386/i386-builtin-types.def: Add
18873         "DEF_FUNCTION_TYPE (UINT16)", function types for
18874         float16 <-> float conversions and
18875         "DEF_FUNCTION_TYPE (VOID, UINT64)".
18876
18877         * config/i386/i386-c.c (ix86_target_macros_internal): Support
18878         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
18879         OPTION_MASK_ISA_F16C.
18880
18881         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
18882         (OPTION_MASK_ISA_RDRND_SET): Likewise.
18883         (OPTION_MASK_ISA_F16C_SET): Likewise.
18884         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
18885         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
18886         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
18887         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
18888         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
18889         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
18890         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
18891         (override_options): Handle them.
18892         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
18893         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
18894         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
18895         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
18896         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
18897         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
18898         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
18899         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
18900         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
18901         (bdesc_args): Likewise.
18902         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
18903         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
18904         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
18905         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
18906         Handle non-memory store.
18907
18908         * config/i386/i386.h (TARGET_FSGSBASE): New.
18909         (TARGET_RDRND): Likewise.
18910         (TARGET_F12C): Likewise.
18911
18912         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
18913         (UNSPEC_VCVTPS2PH): Likewise.
18914         (UNSPECV_RDFSBASE): Likewise.
18915         (UNSPECV_RDGSBASE): Likewise.
18916         (UNSPECV_WRFSBASE): Likewise.
18917         (UNSPECV_WRGSBASE): Likewise.
18918         (UNSPECV_RDRAND): Likewise.
18919         (rdfsbase<mode>): Likewise.
18920         (rdgsbase<mode>): Likewise.
18921         (wrfsbase<mode>): Likewise.
18922         (wrgsbase<mode>): Likewise.
18923         (rdrand<mode>): Likewise.
18924
18925         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
18926
18927         * config/i386/immintrin.h (_rdrand_u16): New.
18928         (_rdrand_u32): Likewise.
18929         (_readfsbase_u32): Likewise.
18930         (_readfsbase_u64): Likewise.
18931         (_readgsbase_u32): Likewise.
18932         (_readgsbase_u64): Likewise.
18933         (_writefsbase_u32): Likewise.
18934         (_writefsbase_u64): Likewise.
18935         (_writegsbase_u32): Likewise.
18936         (_writegsbase_u64): Likewise.
18937         (_rdrand_u64): Likewise.
18938         (_cvtsh_ss): Likewise.
18939         (_mm_cvtph_ps): Likewise.
18940         (_mm256_cvtph_ps): Likewise.
18941         (_cvtss_sh): Likewise.
18942         (_mm_cvtps_ph): Likewise.
18943         (_mm256_cvtps_ph): Likewise.
18944
18945         * config/i386/sse.md (vcvtph2ps): New.
18946         (*vcvtph2ps_load): Likewise.
18947         (vcvtph2ps256): Likewise.
18948         (vcvtps2ph): Likewise.
18949         (*vcvtps2ph): Likewise.
18950         (*vcvtps2ph_store): Likewise.
18951         (vcvtps2ph256): Likewise.
18952
18953         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
18954
18955         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
18956
18957 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18958
18959         PR bootstrap/44512
18960         * genenums.c (main): Output include of insn-constants.h
18961         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
18962
18963 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
18964
18965         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
18966         (override_options): Initialize it.
18967         (ix86_expand_prologue): Use it.
18968
18969 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
18970
18971         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
18972
18973 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18974
18975         * double-int.h (fit_double_type): Remove declaration.
18976         * double-int.c (fit_double_type): Remove function.
18977         * tree.h (int_fits_type_p): Adjust prototype.
18978         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
18979         instead of fit_double_type.
18980         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
18981         instead of fit_double_type and build_int_cst_wide.
18982         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
18983         instead of fit_double_type and build_int_cst_wide.
18984         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
18985         of fit_double_type.
18986
18987 2010-07-05  Jan Hubicka  <jh@suse.cz>
18988
18989         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
18990         in_other_partition.
18991         * lto-cgraph.c (referenced_from_other_partition_p,
18992         reachable_from_other_partition_p): Use in_other_partition flags.
18993         (output_node, output_varpool_node): COMDAT nodes always have private
18994         copies and thus are never used from other partition.
18995
18996 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18997
18998         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
18999         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
19000         * config/ia64/ia64.c Include reload.h.
19001         (ia64_memory_move_cost): New function.
19002         (TARGET_MEMORY_MOVE_COST): Define.
19003         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
19004         memory_move_cost.
19005
19006 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
19007
19008         PR middle-end/42505
19009         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
19010         comments about cost model.
19011         (try_add_cand_for):  Add second strategy for choosing initial set
19012         based on original IVs, controlled by ORIGINALP argument.
19013         (get_initial_solution): Add ORIGINALP argument.
19014         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
19015         (find_optimal_iv_set): Try two different strategies for choosing
19016         the IV set, and return the one with lower cost.
19017
19018 2010-07-05  Richard Guenther  <rguenther@suse.de>
19019
19020         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19021
19022 2010-07-05  Richard Guenther  <rguenther@suse.de>
19023
19024         * tree.c (reference_alias_ptr_type): New function.
19025         * tree.h (reference_alias_ptr_type): Declare.
19026         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19027         allow non-TARGET_MEM_REF new refs.
19028         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19029         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19030         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19031         (create_mem_ref): Get alias pointer type.  Adjust calls to
19032         create_mem_ref_raw.
19033         (maybe_fold_tmr): Likewise.
19034         * tree-flow.h (create_mem_ref): Adjust prototype.
19035
19036 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19037
19038         PR c++/44808
19039         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
19040         *from_p is VAR_DECL.
19041
19042 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19043
19044         * tree.h (build_call_list): Remove.
19045         * tree.c (build_call_list): Remove.
19046
19047 2010-07-05  Richard Guenther  <rguenther@suse.de>
19048
19049         * double-int.h (double_int_sub): Declare.
19050         * double-int.c (double_int_sub): New function.
19051         * dwarf2out.c (field_byte_offset): Use it.
19052         * fixed-value.c (do_fixed_add): Likewise.
19053         (do_fixed_multiply): Likewise.
19054         (do_fixed_divide): Likewise.
19055         * tree-predcom.c (add_ref_to_chain): Likewise.
19056         (determine_roots_comp): Likewise.
19057         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
19058
19059 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19060
19061         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
19062         implementations.
19063
19064 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
19065
19066         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
19067         * arm-modes.def (CC_NOTB): Don't define.
19068         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
19069         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
19070         (LTUGEU): New code_iterator.
19071         (cnb, optab): New corresponding code_attrs.
19072         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
19073         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
19074         using LTUGEU.
19075         (addsi3_carryin_shift_<optab>): Likewise.
19076         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
19077         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
19078         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
19079         (subsi3_compare): Renamed from subsi3_compare0_c.
19080         Change CC_NOTB to CC.
19081         (arm_subsi3_insn): Allow constants for operand 0.
19082         (compare_scc peephole for eq case): New.
19083         (compare_scc splitters): Change CC_NOTB to CC.
19084
19085 2010-07-05  Richard Guenther  <rguenther@suse.de>
19086
19087         * tree-ssa-loop-im.c (for_each_index): Do not handle
19088         ALIGN_INDIRECT_REF.
19089         (gen_lsm_tmp_name): Likewise.
19090         * tree-dump.c (dequeue_and_dump): Likewise.
19091         * tree-pretty-print.c (dump_generic_node): Likewise.
19092         (op_code_prio): Likewise.
19093         (op_symbol_code): Likewise.
19094         * tree.c (staticp): Likewise.
19095         (build1_stat): Likewise.
19096         * tree.h (INDIRECT_REF_P): Likewise.
19097         * fold-const.c (maybe_lvalue_p): Likewise.
19098         (operand_equal_p): Likewise.
19099         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19100         (ao_ref_init_from_vn_reference): Likewise.
19101         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
19102         (find_interesting_uses_address): Likewise.
19103         * dwarf2out.c (loc_list_from_tree): Likewise.
19104         * gimplify.c (gimplify_expr): Likewise.
19105         * tree-eh.c (tree_could_trap_p): Likewise.
19106         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
19107         * cfgexpand.c (expand_debug_expr): Likewise.
19108         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
19109         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
19110         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
19111         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
19112         * tree-ssa-operands.c (get_expr_operands): Likewise.
19113         * expr.c (safe_from_p): Likewise.
19114         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
19115         * tree-vect-data-refs.c (vect_setup_realignment): Build
19116         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
19117         * tree-vect-stmts.c (vectorizable_load): Likewise.
19118         * tree.def (ALIGN_INDIRECT_REF): Remove.
19119
19120 2010-07-05  Richard Guenther  <rguenther@suse.de>
19121
19122         PR tree-optimization/44784
19123         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
19124         for inserted stmts.
19125         (find_or_generate_expression): Fix SCCVN insertion check.
19126
19127 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
19128
19129         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
19130         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
19131         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
19132         directives.
19133
19134 2010-07-05  Ira Rosen  <irar@il.ibm.com>
19135
19136         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
19137         statements that are not vectorized.
19138         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
19139         in INSIDE_COST.
19140
19141 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
19142
19143         PR bootstrap/44820
19144         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
19145
19146 2010-07-05  Richard Guenther  <rguenther@suse.de>
19147
19148         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
19149         RESULT_DECLs properly.
19150
19151 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
19152
19153         PR rtl-optimization/44695
19154         * config/i386/i386.md (extract_code): Removed.
19155         (<u>divmodqi4): Likewise.
19156         (divmodqi4): New.
19157         (udivmodqi4): Likewise.
19158         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
19159         (udivmodhiqi3): Likewise.
19160
19161 2010-07-04  Jan Hubicka  <jh@suse.cz>
19162
19163         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
19164
19165 2010-07-04  Jan Hubicka  <jh@suse.cz>
19166
19167         * cgraphunit.c (init_cgraph): Only initialize dump file if it
19168         is not already initialized.
19169
19170 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19171
19172         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
19173         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
19174         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
19175         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
19176         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
19177         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
19178         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
19179         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
19180         (sync_new_nand_optab): Redefine as macros.
19181         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
19182         Delete.
19183         (direct_optab_index): New enum.
19184         (direct_optab_d): New structure.
19185         (direct_optab): New typedef.
19186         (direct_optab_table): Declare.
19187         (direct_optab_handler, set_direct_optab_handler): New functions.
19188         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
19189         (sync_lock_release_optab): New macros.
19190         * optabs.c (direct_optab_table): New variable.
19191         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
19192         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
19193         cmpstr_optab and cmpstrn_optab.
19194         (emit_conditional_move): Likewise for movcc_optab.
19195         (can_conditionally_move_p): Likewise for movcc_gen_code.
19196         (init_insn_codes): Clear direct_optab_table.
19197         (init_optabs): Don't initialize the new "direct optabs" here.
19198         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
19199         vcond_gen_code.
19200         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
19201         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
19202         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
19203         (expand_sync_operation): Likewise other sync_*_optabs.
19204         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
19205         to sync_compare_and_swap_optab.
19206         (expand_sync_lock_test_and_set): Use direct_optab_handler for
19207         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
19208         to the names of both.
19209         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
19210         cmpstr_optab and cmpstrn_optab.
19211         (expand_builtin_lock_release): Likewise sync_lock_release.
19212         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
19213         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
19214         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
19215         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
19216         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
19217         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
19218         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
19219         (sync_lock_test_and_set, sync_lock_release): Delete.
19220         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
19221         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
19222         * genopinit.c (optabs): Use set_direct_optab_handler for the new
19223         macro optabs.
19224         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
19225         the "optab" local variable.  Use direct_optab_handler for optab and
19226         sync_compare_and_swap_optab.
19227         * reload1.c (reload_in_optab, reload_out_optab): Delete.
19228         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
19229         reload_in_optab and reload_out_optab.
19230         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19231         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
19232         * config/pa/pa.c (pa_secondary_reload): Likewise.
19233         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
19234         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
19235         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
19236         (VMSupportsCS8_builtin): Likewise.
19237
19238 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19239
19240         * optabs.h (optab_handlers): Change type of insn_code to int.
19241         (optab_handler, set_optab_handler, convert_optab_handler)
19242         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
19243         CODE_FOR_nothing".
19244         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
19245         (init_insn_codes): Zero both the above arrays.
19246         (init_optabs): Never call init_insn_codes first time around.
19247
19248 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19249
19250         * optabs.h (optab_handler, convert_optab_handler): Turn into
19251         inline functions that return an insn code.
19252         (set_optab_handler, set_convert_optab_handler): New functions.
19253         * builtins.c: Replace optab_handler(X)->insn_code with
19254         optab_handler or set_optab_handler thoughout.  Likewise
19255         convert_optab_handler(X)->insn_code with convert_optab_handler
19256         and set_convert_optab_handler.
19257         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
19258         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
19259         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
19260         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
19261         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
19262         config/spu/spu.c: Likewise.
19263
19264 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
19265
19266         PR target/44531
19267         * config.gcc (sh*-*-*): Use regular expressions instead of
19268         the 'i' modifier for sed substitutions.
19269
19270 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
19271
19272         * gimple.c (gimple_body): Comments added.
19273
19274 2010-07-04  Richard Guenther  <rguenther@suse.de>
19275
19276         PR middle-end/44809
19277         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
19278         of an INDIRECT_REF.
19279
19280 2010-07-04  Richard Guenther  <rguenther@suse.de>
19281
19282         PR tree-optimization/44479
19283         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
19284         extra SSA name copy statements which preserves points-to
19285         information.
19286         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19287         Copy points-to information for all pointers.  Properly handle
19288         MEM_REFs.
19289         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
19290         copy statements.
19291         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
19292         dependency.
19293
19294 2010-07-04  Richard Guenther  <rguenther@suse.de>
19295
19296         PR middle-end/44785
19297         * tree-inline.c (initialize_inlined_parameters): Do not
19298         re-use pointer-map slot over remap_type call.
19299
19300 2010-07-04  Richard Guenther  <rguenther@suse.de>
19301
19302         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
19303
19304 2010-07-04  Richard Guenther  <rguenther@suse.de>
19305
19306         PR tree-optimization/44656
19307         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
19308         again after value-replacing in the defintions lhs.
19309
19310 2010-07-04  Ira Rosen  <irar@il.ibm.com>
19311             Revital Eres  <eres@il.ibm.com>
19312
19313         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
19314         Document new arguments.
19315         * doc/tm.texi: Regenerate.
19316         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
19317         Handle unaligned store.
19318         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
19319         * target.def (builtin_vectorization_cost): Add new arguments.
19320         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
19321         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
19322         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
19323         (vect_vfa_segment_size): Fix indentation.
19324         * tree-vectorizer.h (struct _vect_peel_info): New.
19325         (struct _vect_peel_extended_info): New.
19326         (struct _loop_vec_info): Add new field for peeling hash table and a
19327         macro for its access.
19328         (VECT_MAX_COST): Define.
19329         (vect_get_load_cost): Declare.
19330         (vect_get_store_cost, vect_get_known_peeling_cost,
19331         vect_get_single_scalar_iteraion_cost): Likewise.
19332         (vect_supportable_dr_alignment): Add new argument.
19333         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
19334         field.
19335         (destroy_loop_vec_info): Free peeling hash table.
19336         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
19337         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
19338         vect_analyze_slp. Fix indentation.
19339         (vect_get_single_scalar_iteraion_cost): New function.
19340         (vect_get_known_peeling_cost): Likewise.
19341         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
19342         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
19343         statement. Move outside cost calculation inside unknown peeling case.
19344         Call vect_get_known_peeling_cost for known amount of peeling.
19345         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
19346         reference to the print message of forced alignment.
19347         (vect_verify_datarefs_alignment): Update call to
19348         vect_supportable_dr_alignment.
19349         (vect_get_data_access_cost): New function.
19350         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
19351         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
19352         vect_peeling_hash_choose_best_peeling): Likewise.
19353         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
19354         to store all the accesses in the loop and find best possible access to
19355         align using peeling for known alignment case. For unknown alignment
19356         check if stores are preferred or if peeling is worthy.
19357         (vect_find_same_alignment_drs): Analyze pairs of loads too.
19358         (vect_supportable_dr_alignment): Add new argument and check aligned
19359         accesses according to it.
19360         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
19361         (cost_for_stmt): Call vect_get_stmt_cost.
19362         (vect_model_simple_cost): Likewise.
19363         (vect_model_store_cost): Call vect_get_stmt_cost. Call
19364         vect_get_store_cost to calculate the cost of the statement.
19365         (vect_get_store_cost): New function.
19366         (vect_model_load_cost): Call vect_get_stmt_cost. Call
19367         vect_get_load_cost to calculate the cost of the statement.
19368         (vect_get_load_cost): New function.
19369         (vectorizable_store): Update call to vect_supportable_dr_alignment.
19370         (vectorizable_load): Likewise.
19371         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
19372         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
19373         arguments. Handle unaligned store.
19374         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
19375         (rs6000_builtin_support_vector_misalignment): Return true for word and
19376         double word alignments for VSX.
19377         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
19378         vect_supportable_dr_alignment and builtin_vectorization_cost.
19379
19380 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19381
19382         PR target/44597
19383         * config/pa/predicates.md (prefetch_cc_operand): Remove.
19384         (prefetch_nocc_operand): Likewise.
19385         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
19386         (prefetch_20): New insn.
19387         (prefetch_cc): Remove.
19388         (prefetch_nocc): Likewise.
19389
19390 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19391
19392         * expr.c (vector_mode_valid_p): Move to c-common.c.
19393         * expr.h (vector_mode_valid_p): Do not declare here.
19394         * system.h: Poison GCC_EXPR_H in front-ends.
19395         * Makefile.in: Update dependencies.
19396
19397 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19398
19399         PR target/44705
19400         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
19401
19402 2010-07-03  Jan Hubicka  <jh@suse.cz>
19403
19404         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
19405         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
19406         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
19407         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
19408         Likewise.
19409
19410         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
19411         Update timevars.V
19412         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
19413         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
19414         TV_IPA_LTO_DECL_OUT): New.
19415         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
19416
19417 2010-07-03  Jan Hubicka  <jh@suse.cz>
19418
19419         * ipa-inline.c (update_edge_key): Break out from ...
19420         update_callers_keys): ... here;
19421         (update_callee_keys): Update only the edges from caller to callee.
19422         (update_all_calle_keys): Do what update_calle_keys did.
19423         (decide_inlining_of_small_functions): Avoid recomputing of all
19424         callees when badness increase.
19425
19426 2010-07-03  Jie Zhang  <jie@codesourcery.com>
19427
19428         * config/arm/arm.c (arm_attr_length_move_neon): New.
19429         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
19430         * config/arm/neon.md (define_mode_attr V_slen): Remove.
19431         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
19432         to compute length attribute.
19433
19434 2010-07-03  Jie Zhang  <jie@codesourcery.com>
19435
19436         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
19437         as predicate for operand 1 and remove its constraint.
19438         * config/arm/predicates.md (vfp_register_operand): New.
19439         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
19440         (*push_fp_multi): Likewise.
19441
19442 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
19443
19444         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
19445
19446 2010-07-03  Jan Hubicka  <jh@suse.cz>
19447
19448         * config/i386/i386.c (override_options): Revert accidental commit.
19449
19450 2010-07-02  Le-Chun Wu  <lcwu@google.com>
19451
19452         PR c++/44128
19453         * doc/invoke.texi: Update documentation of -Wshadow.
19454
19455 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
19456             Julian Brown  <julian@codesourcery.com>
19457             Sandra Loosemore  <sandra@codesourcery.com>
19458
19459         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
19460         comparisons.  Adjust to take both operands.
19461         (arm_select_cc_mode): Handle DImode comparisons.
19462         (arm_gen_compare_reg): Generate a scratch register for DImode
19463         comparisons which require one.  Use xor for Thumb equality checks.
19464         (arm_const_double_by_immediates): New.
19465         (arm_print_operand): Allow 'Q' and 'R' for constants.
19466         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
19467         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
19468         arm_canonicalize_comparison.
19469         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
19470         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
19471         prototype.
19472         (arm_const_double_by_immediates): Declare.
19473         * config/arm/constraints.md (Di): New constraint.
19474         * config/arm/predicates.md (arm_immediate_di_operand)
19475         (arm_di_operand, cmpdi_operand): New.
19476         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
19477         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
19478         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
19479         (cstoredi4): Handle non-Cirrus also.
19480
19481 2010-07-02  Julian Brown  <julian@codesourcery.com>
19482             Sandra Loosemore  <sandra@codesourcery.com>
19483
19484         PR target/43703
19485         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
19486         (smax<mode>3): Disable for NEON float modes when
19487         flag_unsafe_math_optimizations is false.
19488         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
19489         (*mul<mode>3_neon)
19490         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
19491         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
19492         for NEON float modes when flag_unsafe_math_optimizations is false.
19493         (quad_halves_<code>v4sf): Only enable if
19494         flag_unsafe_math_optimizations is true.
19495         * doc/invoke.texi (ARM Options): Add note about floating point
19496         vectorization requiring -funsafe-math-optimizations.
19497
19498 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19499             Julian Brown  <julian@codesourcery.com>
19500
19501         * config/arm/neon.md (UNSPEC_VABA): Delete.
19502         (UNSPEC_VABAL): Delete.
19503         (UNSPEC_VABS): Delete.
19504         (UNSPEC_VMUL_N): Delete.
19505         (adddi3_neon): New.
19506         (subdi3_neon): New.
19507         (mul<mode>3add<mode>_neon): Make the pattern named.
19508         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
19509         (neon_vadd<mode>): Replace with define_expand, and move the remaining
19510         unspec parts...
19511         (neon_vadd<mode>_unspec): ...to this.
19512         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
19513         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
19514         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
19515         (neon_vaba<mode>): Rewrite in terms of vabd.
19516         (neon_vabal<mode>): Rewrite in terms of vabdl.
19517         (neon_vabs<mode>): Rewrite without unspec.
19518         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
19519         (*arm_subdi3): Likewise.
19520         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
19521         No_op attribute to disable assembly output checks.
19522         * config/arm/arm_neon.h: Regenerated.
19523         * doc/arm-neon-intrinsics.texi: Regenerated.
19524
19525 2010-07-02  Jan Hubicka  <jh@suse.cz>
19526
19527         * ipa-split.c (split_function): For aggregate values, set the return
19528         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
19529         *<retval> = fncall.part ().
19530         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
19531
19532 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19533
19534         * config/arm/neon.md (UNSPEC_VAND): Delete.
19535         (UNSPEC_VBIC): Delete.
19536         (UNSPEC_VCLZ): Delete.
19537         (UNSPEC_VCNT): Delete.
19538         (UNSPEC_VEOR): Delete.
19539         (UNSPEC_VORN): Delete.
19540         (UNSPEC_VORR): Delete.
19541         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
19542         core registers too.
19543         (anddi3_neon): Likewise.
19544         (orndi3_neon): Likewise.
19545         (bicdi3_neon): Likewise.
19546         (xordi3_neon): Likewise.
19547         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
19548         rid of unspec and handle unused operand.
19549         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
19550         * config/arm/predicates.md (imm_for_neon_logic_operand):
19551         Require TARGET_NEON.
19552         (imm_for_neon_inv_logic_operand): Likewise.
19553         * config/arm/arm.md (define_split for logical_binary_operator):
19554         Disable for NEON registers.
19555         (anddi3): Add new define_expand, and rename the insn.  Disable
19556         this insn for NEON, where anddi3_neon now applies.
19557         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
19558         (iordi3): As for anddi3.
19559         (xordi3): Likewise.
19560         * config/arm/neon.ml (Vand): Split DImode variants and mark them
19561         as No_op to disable testing for exact instruction match.
19562         (Vorr): Likewise.
19563         (Veor): Likewise.
19564         (Vbic): Likewise.
19565         (Vorn): Likewise.
19566         * config/arm/arm_neon.h: Regenerated.
19567         * doc/arm-neon-intrinsics.texi: Regenerated.
19568
19569 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19570
19571         * expr.h (emit_stack_probe): Declare.
19572         * explow.c (emit_stack_probe): Make global.
19573         (anti_adjust_stack_and_probe): Fix comments.
19574         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19575         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19576         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19577         * config/sparc/sparc.c: Include except.h.
19578         (sparc_emit_probe_stack_range): New function.
19579         (output_probe_stack_range): Likewise.
19580         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
19581         built-in stack checking is enabled.
19582         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
19583         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19584         (probe_stack_range): New insn.
19585
19586 2010-07-02  Richard Guenther  <rguenther@suse.de>
19587
19588         PR target/43958
19589         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
19590         for argument alignment.
19591
19592 2010-07-02  Jan Hubicka  <jh@suse.cz>
19593
19594         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
19595         walk backwards from entry_bb to check only those basic block of header
19596         that might lead to execution of split part.
19597         (consider_split) ... here.
19598         (find_return_bb): Allow assignment in return BB.
19599         (find_retval): New.
19600         (split_function): Fix name of cloned function; take care of updating
19601         return value in return_bb containing move.
19602
19603 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
19604
19605         PR target/44771
19606         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
19607         used variable insn.
19608
19609 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19610
19611         * implicit-zee.c (combine_reaching_defs): Fix long lines.
19612         (is_set_with_extension_DI): Delete.
19613         (struct zero_extend_info): New structure.
19614         (add_removable_zero_extend): New function.
19615         (find_removable_zero_extends): Use note_stores to find SETs.
19616         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
19617
19618 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
19619
19620         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
19621         is_miss_rate_acceptable. Pull total_positions computation
19622         out of the loops.  Early return if miss_positions exceeds
19623         the acceptable threshold.
19624         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
19625         is_miss_rate_acceptable after renaming of compute_miss_rate.
19626
19627 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
19628
19629         PR middle-end/44576
19630         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
19631         of 1000) for miss rate if the address diference is greater than or
19632         equal to the cache line size (the two reference will never hit the
19633         same cache line).
19634
19635 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
19636
19637         PR target/42835
19638         * config/arm/arm-modes.def (CC_NOTB): New mode.
19639         * config/arm/arm.c (get_arm_condition_code): Handle it.
19640         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
19641         * config/arm/arm.md (subsi3_compare0_c): New pattern.
19642         (compare_scc): Now a define_and_split.  Add a number of extra
19643         splitters before it.
19644
19645         PR target/42172
19646         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
19647         and ZERO_EXTEND.
19648         (arm_rtx_costs_1): Likewise.
19649         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
19650         * config/arm/arm.md (is_arch6): New attribute.
19651         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
19652         extendqisi2): Tighten the code somewhat, avoiding invalid
19653         RTL to occur in the expander patterns.
19654         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
19655         (thumb1_zero_extendhisi2_v6): Delete.
19656         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
19657         (thumb1_extendhisi2_v6): Delete.
19658         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
19659         (thumb1_extendqisi2_v6): Delete.
19660         (zero_extendhisi2 for register input splitter): New.
19661         (zero_extendqisi2 for register input splitter): New.
19662         (thumb1_extendhisi2 for register input splitter): New.
19663         (extendhisi2 for register input splitter): New.
19664         (extendqisi2 for register input splitter): New.
19665         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
19666         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
19667         and add support for a register alternative requiring a split.
19668         (thumb1_zero_extendqisi2): Likewise.
19669         (arm_zero_extendqisi2): Likewise.
19670         (arm_extendhisi2): Likewise.
19671         (arm_extendqisi2): Likewise.
19672
19673 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19674
19675         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
19676         instead of an unspec.
19677         (neon_expand_vector_init): Likewise.
19678         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
19679         (UNSPEC_VDUP_LANE): Delete.
19680         (UNSPEC VDUP_N): Delete.
19681         (UNSPEC_VGET_HIGH): Delete.
19682         (UNSPEC_VGET_LANE): Delete.
19683         (UNSPEC_VGET_LOW): Delete.
19684         (UNSPEC_VMVN): Delete.
19685         (UNSPEC_VSET_LANE): Delete.
19686         (V_double_vector_mode): New.
19687         (vec_set<mode>_internal): Make code emitted match that for the
19688         corresponding intrinsics.
19689         (vec_setv2di_internal): Likewise.
19690         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
19691         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
19692         (neon_vset_lane<mode>): Combine double and quad patterns and
19693         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
19694         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
19695         (neon_vdup_n<mode>): Rewrite RTL without unspec.
19696         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
19697         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
19698         with neon_vdup_lanev2di, adjusting the pattern from the latter
19699         to be predicable for consistency.
19700         (neon_vdup_lane<mode>_internal): New.
19701         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
19702         to avoid using an unspec.
19703         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
19704         (neon_vdup_lanev2di): Turn into a define_expand.
19705         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
19706         (neon_vget_high<mode>): Replace with....
19707         (neon_vget_highv16qi): New pattern using canonical RTL.
19708         (neon_vget_highv8hi): Likewise.
19709         (neon_vget_highv4si): Likewise.
19710         (neon_vget_highv4sf): Likewise.
19711         (neon_vget_highv2di): Likewise.
19712         (neon_vget_low<mode>): Replace with....
19713         (neon_vget_lowv16qi): New pattern using canonical RTL.
19714         (neon_vget_lowv8hi): Likewise.
19715         (neon_vget_lowv4si): Likewise.
19716         (neon_vget_lowv4sf): Likewise.
19717         (neon_vget_lowv2di): Likewise.
19718
19719         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
19720         test for this emitting vmov.
19721         (Vset_lane): Likewise.
19722         (Vdup_n): Likewise.
19723         (Vmov_n): Likewise.
19724
19725         * doc/arm-neon-intrinsics.texi: Regenerated.
19726
19727 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19728
19729         * config/arm/neon.md (vec_extractv2di): Correct error in register
19730         numbering to reconcile with neon_vget_lanev2di.
19731
19732 2010-07-02  Richard Guenther  <rguenther@suse.de>
19733
19734         * tree-ssa-structalias.c (pt_solution_set_var): New function.
19735         * tree-ssa-alias.h (pt_solution_set_var): Declare.
19736         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
19737         points-to information.
19738
19739 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
19740
19741         * config/s390/s390.c (override_options): Adopt prefetching
19742         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
19743
19744 2010-07-02  Jan Hubicka  <jh@suse.cz>
19745
19746         * df-problems.c (df_kill_notes): Do not collect dead  notes.
19747         (df_set_note): Just call add_reg_note.
19748         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
19749         df_create_unused_note): Do not deal with lists of old notes.
19750         (df_note_bb_compute): Likewise.
19751
19752 2010-07-02  Richard Guenther  <rguenther@suse.de>
19753
19754         * tree-ssa-structalias.c (find_func_aliases): Handle
19755         pointer alignment via BIT_AND_EXPR.
19756         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
19757
19758 2010-07-02  Richard Guenther  <rguenther@suse.de>
19759
19760         * tree-data-ref.c (initialize_data_dependence_relation): Handle
19761         mismatching number of dimensions properly.
19762
19763 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19764
19765         PR target/44707
19766         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
19767         (lo_sum (high ...) ...) patterns generated by earlier passes.
19768
19769 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19770
19771         * doc/install.texi (Prerequisites): Document Perl requirement on
19772         Solaris 2.
19773         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
19774
19775 2010-07-02  Richard Guenther  <rguenther@suse.de>
19776
19777         PR middle-end/44777
19778         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
19779
19780 2010-07-02  Jan Hubicka  <jh@suse.cz>
19781
19782         PR middle-end/44706
19783         * predict.c (predict_paths_for_bb): Handle case when control dependence
19784         BB has only abnormal edges.
19785
19786 2010-07-02  Richard Guenther  <rguenther@suse.de>
19787
19788         PR tree-optimization/44748
19789         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
19790         the embedded conversion in MEM_REFs.
19791
19792 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
19793
19794         * reload.c: Include toplev.h.
19795         * recog.c:  Likewise.
19796         * Makefile.in: Adjust dependencies.
19797
19798 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
19799
19800         PR debug/44694
19801         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
19802         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
19803
19804 2010-07-01  Richard Guenther  <rguenther@suse.de>
19805
19806         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
19807         types for offsets.
19808
19809 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
19810
19811         PR target/44732
19812         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
19813         Fix argument types.
19814
19815 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
19816
19817         PR target/44727
19818         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19819         Make sure operand 0 dies.
19820
19821 2010-07-01  Richard Guenther  <rguenther@suse.de>
19822
19823         PR middle-end/42834
19824         PR middle-end/44468
19825         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
19826         * doc/generic.texi (References to storage): Document MEM_REF.
19827         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
19828         (print_call_name): Likewise.
19829         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
19830         (build_simple_mem_ref_loc): New function.
19831         (mem_ref_offset): Likewise.
19832         * tree.h (build_simple_mem_ref_loc): Declare.
19833         (build_simple_mem_ref): Define.
19834         (mem_ref_offset): Declare.
19835         * fold-const.c: Include tree-flow.h.
19836         (operand_equal_p): Handle MEM_REF.
19837         (build_fold_addr_expr_with_type_loc): Likewise.
19838         (fold_comparison): Likewise.
19839         (fold_unary_loc): Fold
19840         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
19841         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
19842         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
19843         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
19844         (ptr_deref_may_alias_ref_p_1): Likewise.
19845         (ao_ref_base_alias_set): Properly differentiate base object for
19846         offset and TBAA.
19847         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
19848         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
19849         (indirect_refs_may_alias_p): Likewise.
19850         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
19851         chasing code.
19852         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
19853         (call_may_clobber_ref_p_1): Likewise.
19854         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
19855         * expr.c (expand_assignment): Handle MEM_REF.
19856         (store_expr): Handle MEM_REFs from STRING_CSTs.
19857         (store_field): If expanding a MEM_REF of a non-addressable
19858         decl use bitfield operations.
19859         (get_inner_reference): Handle MEM_REF.
19860         (expand_expr_addr_expr_1): Likewise.
19861         (expand_expr_real_1): Likewise.
19862         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
19863         * alias.c (ao_ref_from_mem): Handle MEM_REF.
19864         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
19865         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
19866         (dr_analyze_indices): Likewise.
19867         (dr_analyze_alias): Likewise.
19868         (object_address_invariant_in_loop_p): Likewise.
19869         * gimplify.c (mark_addressable): Handle MEM_REF.
19870         (gimplify_cond_expr): Build MEM_REFs.
19871         (gimplify_modify_expr_to_memcpy): Likewise.
19872         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
19873         (gimple_fold_indirect_ref): Adjust.
19874         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
19875         * tree.def (MEM_REF): New tree code.
19876         * tree-dfa.c: Include toplev.h.
19877         (get_ref_base_and_extent): Handle MEM_REF.
19878         (get_addr_base_and_unit_offset): New function.
19879         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
19880         * gimple-fold.c (may_propagate_address_into_dereference): Handle
19881         MEM_REF.
19882         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
19883         accesses if the array has just one dimension.  Remove always true
19884         parameter.  Do not require type compatibility here.
19885         (maybe_fold_offset_to_component_ref): Remove.
19886         (maybe_fold_stmt_indirect): Remove.
19887         (maybe_fold_reference): Remove INDIRECT_REF handling.
19888         Fold back to non-MEM_REF.
19889         (maybe_fold_offset_to_address): Simplify.  Deal with type
19890         mismatches here.
19891         (maybe_fold_reference): Likewise.
19892         (maybe_fold_stmt_addition): Likewise.  Also handle
19893         &ARRAY + I in addition to &ARRAY[0] + I.
19894         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
19895         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
19896         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
19897         * tree-ssa.c (useless_type_conversion_p): Make most pointer
19898         conversions useless.
19899         (warn_uninitialized_var): Handle MEM_REF.
19900         (maybe_rewrite_mem_ref_base): New function.
19901         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
19902         to SSA form.
19903         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
19904         INDIRECT_REF handling.
19905         (copy_tree_body_r): Handle MEM_REF.
19906         * gimple.c (is_gimple_addressable): Adjust.
19907         (is_gimple_address): Likewise.
19908         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
19909         invariant base are invariant.
19910         (is_gimple_min_lval): Adjust.
19911         (is_gimple_mem_ref_addr): New function.
19912         (get_base_address): Handle MEM_REF.
19913         (count_ptr_derefs): Likewise.
19914         (get_base_loadstore): Likewise.
19915         * gimple.h (is_gimple_mem_ref_addr): Declare.
19916         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
19917         * tree-cfg.c (verify_address): New function, split out from ...
19918         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
19919         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
19920         INDIRECT_REFs.
19921         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
19922         INDIRECT_REF.  Allow conversions.
19923         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
19924         a register does not change its size.
19925         (verify_types_in_gimple_reference): Verify MEM_REF.
19926         (verify_gimple_assign_single): Disallow INDIRECT_REF.
19927         Handle MEM_REF.
19928         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
19929         New.
19930         (mark_address_taken): Handle MEM_REF.
19931         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
19932         (get_asm_expr_operands): Pass opf_not_non_addressable.
19933         (get_expr_operands): Handle opf_[not_]non_addressable.
19934         Handle MEM_REF.  Remove INDIRECT_REF handling.
19935         * tree-vrp.c (check_array_ref): Handle MEM_REF.
19936         (search_for_addr_array): Likewise.
19937         (check_array_bounds): Likewise.
19938         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
19939         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
19940         (ref_always_accessed_p): Likewise.
19941         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
19942         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
19943         Handle MEM_REF.
19944         * cgraphbuild.c (mark_load): Properly check for NULL result
19945         from get_base_address.
19946         (mark_store): Likewise.
19947         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
19948         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
19949         handling for MEM_REF.
19950         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
19951         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
19952         * builtins.c (stabilize_va_list_loc): Use the function ABI
19953         valist type if we couldn't canonicalize the argument type.
19954         Always dereference with the canonical va-list type.
19955         (maybe_emit_free_warning): Handle MEM_REF.
19956         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
19957         memmove to memcpy.
19958         * builtins.c (fold_builtin_memory_op): Use ref-all types
19959         for all memcpy foldings.
19960         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
19961         (build_outer_var_ref): Likewise.
19962         (scan_omp_1_op): Likewise.
19963         (lower_rec_input_clauses): Likewise.
19964         (lower_lastprivate_clauses): Likewise.
19965         (lower_reduction_clauses): Likewise.
19966         (lower_copyprivate_clauses): Likewise.
19967         (expand_omp_atomic_pipeline): Likewise.
19968         (expand_omp_atomic_mutex): Likewise.
19969         (create_task_copyfn): Likewise.
19970         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
19971         Remove old union trick.  Initialize constant offsets.
19972         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
19973         INDIRECT_REF.  Init base_alias_set properly.
19974         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
19975         (vn_reference_fold_indirect): Adjust for MEM_REFs.
19976         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
19977         for ARRAY_REFs.
19978         (may_insert): Remove.
19979         (visit_reference_op_load): Do not test may_insert.
19980         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
19981         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
19982         a field to store the constant offset this op applies.
19983         (run_scc_vn): Adjust prototype.
19984         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
19985         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
19986         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
19987         bother about volatile qualifiers on pointers.
19988         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
19989         * tree-ssa-loop-ivopts.c
19990         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
19991         (strip_offset_1): Likewise.
19992         (find_interesting_uses_address): Replace INDIRECT_REF handling with
19993         MEM_REF handling.
19994         (get_computation_cost_at): Likewise.
19995         * ipa-pure-const.c (check_op): Handle MEM_REF.
19996         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
19997         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
19998         and constants.
19999         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
20000         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
20001         (eliminate_local_variables_1): Likewise.
20002         (create_call_for_reduction_1): Likewise.
20003         (create_loads_for_reductions): Likewise.
20004         (create_loads_and_stores_for_name): Likewise.
20005         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
20006         (ssa_accessed_in_tree): Handle MEM_REF.
20007         (ssa_accessed_in_assign_rhs): Likewise.
20008         (update_type_size): Likewise.
20009         (analyze_accesses_for_call_stmt): Likewise.
20010         (analyze_accesses_for_assign_stmt): Likewise.
20011         (transform_access_sites): Likewise.
20012         (transform_allocation_sites): Likewise.
20013         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
20014         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
20015         not handle INDIRECT_REF.
20016         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
20017         (cond_store_replacement): Likewise.
20018         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20019         MEM_REF, no not handle INDIRECT_REFs.
20020         (insert_into_preds_of_block): Properly initialize avail.
20021         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
20022         for ARRAY_REFs.  Properly handle reference lookups that
20023         require a bit re-interpretation.
20024         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
20025         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20026         (build_ref_for_offset_1): Remove.
20027         (build_ref_for_offset): Build MEM_REFs.
20028         (gate_intra_sra): Disable for now.
20029         (sra_ipa_modify_expr): Handle MEM_REF.
20030         (ipa_early_sra_gate): Disable for now.
20031         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20032         MEM_REF handling.
20033         (disqualify_base_of_expr): Likewise.
20034         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20035         MEM_REF handling.
20036         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20037         Use mem_ref_offset.  Remove bogus folding.
20038         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
20039         (make_fancy_name_1): Add support for MEM_REF.
20040         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
20041         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
20042         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
20043         (compute_complex_ancestor_jump_func): Likewise.
20044         (ipa_analyze_virtual_call_uses): Likewise.
20045         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
20046         INDIRECT_REF folding with more generalized MEM_REF folding.
20047         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
20048         (forward_propagate_addr_into_variable_array_index): Also handle
20049         &ARRAY + I in addition to &ARRAY[0] + I.
20050         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
20051         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
20052         creates assignments with overlap.
20053         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
20054         (get_frame_field): Likewise.
20055         (get_nonlocal_debug_decl): Likewise.
20056         (convert_nonlocal_reference_op): Likewise.
20057         (struct nesting_info): Add mem_refs pointer-set.
20058         (create_nesting_tree): Allocate it.
20059         (convert_local_reference_op): Insert to be folded mem-refs.
20060         (fold_mem_refs): New function.
20061         (finalize_nesting_tree_1): Perform defered folding of mem-refs
20062         (free_nesting_tree): Free the pointer-set.
20063         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
20064         (vectorizable_load): Likewise.
20065         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
20066         (propagate_with_phi): Likewise.
20067         * tree-object-size.c (addr_object_size): Handle MEM_REFs
20068         instead of INDIRECT_REFs.
20069         (compute_object_offset): Handle MEM_REF.
20070         (plus_stmt_object_size): Handle MEM_REF.
20071         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
20072         for &MEM_REF.
20073         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
20074         (symbol_marked_for_renaming): Likewise.
20075         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
20076         (fold-const.o): Add $(TREE_FLOW_H).
20077         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
20078         (find_func_clobbers): Likewise.
20079         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
20080         (decompose_access): Likewise.
20081         (replace_field_acc): Likewise.
20082         (replace_field_access_stmt): Likewise.
20083         (insert_new_var_in_stmt): Likewise.
20084         (get_stmt_accesses): Likewise.
20085         (reorg_structs_drive): Disable.
20086         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
20087         (ix86_canonical_va_list_type): Likewise.
20088
20089 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20090
20091         PR other/44566
20092         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
20093         * target.def (struct gcc_target): Replace enum reg_class with
20094         reg_class_t in hook argument / return types.
20095         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
20096         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
20097         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
20098         * targhooks.h (default_branch_target_register_class): Likewise.
20099         (default_ira_cover_classes, default_secondary_reload): Likewise.
20100         (default_memory_move_cost, default_register_move_cost): Likewise.
20101         * targhooks.c (default_branch_target_register_class): Likewise.
20102         (default_ira_cover_classes, default_secondary_reload): Likewise.
20103         (default_memory_move_cost, default_register_move_cost): Likewise.
20104         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
20105         * bt-load.c (branch_target_load_optimize): Likewise.
20106         * ira.c (setup_cover_and_important_classes): Likewise.
20107         * ira-costs.c (copy_cost): Likewise.
20108         * reload1.c (emit_input_reload_insns): Likewise.
20109         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20110         * config/frv/frv.c (frv_secondary_reload): Likewise.
20111         * config/s390/s390.c (s390_secondary_reload): Likewise.
20112         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
20113         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
20114         (ix86_register_move_cost): Likewise.
20115         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
20116         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
20117         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
20118         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
20119         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
20120         (rs6000_ira_cover_classes): Likewise.
20121         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
20122         * config/picochip/picochip-protos.h (picochip_secondary_reload):
20123         Likewise.
20124         * config/pa/pa.c (pa_secondary_reload): Likewise.
20125         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
20126         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
20127         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
20128         * doc/tm.texi: Regenerate.
20129
20130 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
20131
20132         PR bootstrrap/44726
20133         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
20134         use.
20135         (build_alias_set_optimal_p): Likewise.
20136         (build_base_obj_set_for_drs): Likewise.
20137
20138 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20139
20140         * target.def: Remove comment about licensing problems of function
20141         declarations.
20142
20143         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
20144         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
20145         * doc/tm.texi: Regenerate.
20146
20147         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
20148         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
20149
20150         * target.def (enum_va_list_p): Use DEFHOOK.
20151         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
20152         Rename ptype to ptree.
20153         * doc/tm.texi: Regenerate.
20154
20155         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
20156         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
20157         * doc/tm.texi: Regenerate.
20158
20159         * target.def (memory_move_cost): Use DEFHOOK.
20160         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
20161         Rename regclass AKA class to rclass.
20162         * doc/tm.texi: Regenerate.
20163
20164         * target.def (pragma_parse): Use DEFHOOK.
20165         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
20166         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
20167         * doc/tm.texi: Regenerate.
20168
20169         * target.def (pass_by_reference): Use DEFHOOK.
20170         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
20171         * doc/tm.texi: Regenerate.
20172
20173         * target.def (resolve_overloaded_builtin): Rename params to arglist.
20174         Use DEFHOOK.
20175         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
20176         * doc/tm.texi: Regenerate.
20177
20178         * target.def (return_pops_args): Use DEFHOOK.
20179         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
20180         Rename stack-size to size.
20181         * doc/tm.texi: Regenerate.
20182
20183         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
20184         last-sched_cycle to last_clock, cur_cycle to clock.
20185         * doc/tm.texi.in: Use @hook.
20186         * doc/tm.texi: Regenerate.
20187
20188         * target.def (print_operand, print_operand_address): Update comment.
20189         (print_operand_punct_valid_p): Likewise.
20190
20191 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20192
20193         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
20194         to rtl.h.
20195         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
20196         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
20197         * rtl-error.h: New.
20198         * regrename.c: Do not include toplev.h. Include rtl-error.h.
20199         * rtl-error.c: Likewise.
20200         * reload.c: Likewise.
20201         * recog.c:  Likewise.
20202         * sel-sched.c: Likewise.
20203         * function.c: Likewise.
20204         * reg-stack.c: Likewise.
20205         * cfgrtl.c: Likewise.
20206         * reload1.c: Likewise.
20207         * final.c: Include rtl-error.
20208         * Makefile.in: Adjust dependencies.
20209
20210 2010-06-30  Jan Hubicka  <jh@suse.cz>
20211
20212         PR middle-end/PR44706
20213         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
20214         to return the value.
20215
20216 2010-06-30  Michael Matz  <matz@suse.de>
20217
20218         PR bootstrap/44699
20219         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
20220         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
20221         a gimple reg, attach the original VDEF to the last store in the
20222         sequence.
20223
20224 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
20225
20226         PR other/44034
20227         * config/darwin.c (darwin_override_options): Use renamed
20228         targetm.asm_out.emit_unwind_label.
20229
20230 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20231
20232         PR tree-optimization/39799
20233         * tree-inline.c (remap_ssa_name): Initialize variable only if
20234         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
20235
20236 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
20237
20238         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
20239
20240 2010-06-30  Richard Guenther  <rguenther@suse.de>
20241
20242         PR target/44722
20243         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
20244         against oscillation with reverse peephole2.
20245
20246 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
20247
20248         PR target/44721
20249         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20250         Fix last commit.
20251
20252 2010-06-30  Nick Clifton  <nickc@redhat.com>
20253
20254         * config/rx/rx-modes.def: New file.
20255         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
20256         (CC_REGNUM): Define.
20257         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
20258         register.
20259         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
20260         (SELECT_CC_MODE): Define.
20261         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
20262         (reg:CC CC_REG) instead of (cc0).
20263         (attr "cc"): Delete.
20264         (cbranchsi4): Do not split compare and branch here. Instead move
20265         it to...
20266         (cbranchsi4_<code>): ... here.  New patterns.
20267         (cmpsi): Call rx-compare_redundant to find out if it is necessary
20268         to emit the compare instruction.
20269         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
20270         cc_status flags.
20271         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
20272         FIRST_PSEUDO_REGNUM.
20273         (rx_expand_prologue, rx_expand_epilogue): Likewise.
20274         (rx_notice_update_cc): Delete.
20275         (rx_cc_modes_compatible): New function.
20276         (flags_needed_for_conditional): New function.
20277         (flags_from_mode): New function.
20278         (rx_compare_redundant): New function - scans backwards through
20279         insn list to find out if condition flags are already set correctly.
20280         (TARGET_CC_MODES_COMPATIBLE): Define.
20281         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
20282
20283         * config/rx/rx.h (BRANCH_COST): Define.
20284         (REGISTER_MOVE_COST): Define.
20285         * config/rx/predicates (rx_source_operand): Allow all constant types.
20286         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
20287         (tstsi4): New pattern.
20288         * config/rx/rx.c (rx_memory_move_cost): Define.
20289         (TARGET_MEMORY_MOVE_COST): Define.
20290
20291 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20292
20293         * tree.h (block_may_fallthru): Declare here.
20294         * tree-flow.h (block_may_fallthru): Do not declare here.
20295         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
20296         bitmap.h
20297         * Makefile.in (c-typeck.o): Update dependencies.
20298
20299 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
20300
20301         PR debug/44694
20302         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
20303         * cselib.c (cfa_base_preserved_regno): New static variable.
20304         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
20305         of REGNO (cfa_base_preserved_val->locs->loc).
20306         (cselib_preserve_cfa_base_value): Add regno argument, set
20307         cfa_base_preserved_regno to it.
20308         (cselib_invalidate_regno): Allow removal of registers other than
20309         cfa_base_preserved_regno from cfa_base_preserved_val.
20310         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
20311         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
20312         of MEM addresses, if not on LHS.
20313         (reverse_op): Don't add reverse ops for cfa_base_rtx.
20314         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
20315
20316 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20317
20318         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
20319         static variables.
20320         (peep2_buf_position): New static function.
20321         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
20322         peephole2_optimize): Use it.
20323         (peep2_attempt, peep2_update_life): New static functions, broken out
20324         of peephole2_optimize.
20325         (peep2_fill_buffer): New static function.
20326         (peephole2_optimize): Change the main loop to try to fill the buffer
20327         with the maximum number of insns before matching them against
20328         peepholes.  Use a forward scan.  Remove special case for targets with
20329         conditional execution.
20330         * genrecog.c (change_state): Delete dead code.
20331         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20332         Rewrite so as not to expect the second insn to have had a peephole
20333         applied yet.
20334
20335 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20336
20337         * genhooks.c (emit_findices): Cast field precision to int.
20338         (emit_documentation): Likewise.
20339
20340 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
20341
20342         PR tree-optimization/43801
20343         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
20344         if old_decl was DECL_ONE_ONLY.
20345
20346         PR debug/44668
20347         * dwarf2out.c (add_accessibility_attribute): New function.
20348         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
20349         instead of adding DW_AT_accessibility manually.
20350         (gen_enumeration_type_die, gen_struct_or_union_type_die,
20351         gen_typedef_die): Use it.
20352
20353 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20354
20355         * vmsdbgout.c (full_name): Just output the file name if not native.
20356
20357 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20358
20359         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
20360         (funcnam_table): New static table.
20361         (funcnum_table): New static table.
20362         (write_rtnbeg): Write value saved in funcnum_table.
20363         (write_rtnend): Write value saved in funcnum_table.
20364         (vmsdbgout_begin_function): Save current function info in
20365         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
20366         (vmsdbgout_finish): Iterate over funcnum_table.
20367
20368 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20369
20370         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
20371         (vmsdbgout_type_decl): Declare
20372         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
20373         (FUNC_EPILOGUE_LABEL): New macro
20374         (vmsdbgout_begin_epilogue): New function.
20375         (vmsdbgout_type_decl): New function.
20376
20377 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20378
20379         * vmsdbg.h: Update copyright.
20380
20381 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20382
20383         * vmsdbg.h (DST_K_TBG): New DST constant.
20384         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
20385         (write_modbeg): Cast module_language to avoid warning.
20386         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
20387
20388 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20389
20390         PR other/44034
20391         * target.def, doc/tm.texi.in, genhooks.c: New files.
20392         * target.h: Instead of defining individual hook members,
20393         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
20394         include target.def.
20395         * target-def.h: Instead of defining individual hook initializers,
20396         include target-hooks-def.h.
20397         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
20398         targetm.live_on_entry -> targetm.extra_live_on_entry
20399         targetm.sched.md_finish ->targetm.sched.finish
20400         targetm.sched.md_init -> targetm.sched.init
20401         targetm.sched.md_init_global -> targetm.sched.init_global
20402         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
20403         targetm.asm_out.except_table_label ->
20404           targetm.asm_out.emit_except_table_label
20405         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
20406         targetm.target_help -> targetm.help
20407         targetm.vectorize.builtin_support_vector_misalignment ->
20408           targetm.vectorize.support_vector_misalignment
20409         targetm.file_start_app_off -> targetm.asm_file_start_app_off
20410         targetm.file_start_file_directive ->
20411          targetm.asm_file_start_file_directive
20412         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
20413         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
20414         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
20415         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
20416           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
20417         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
20418           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
20419         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
20420         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
20421         * Makefile.in (TARGET_H): Depend on target.def.
20422         (TARGET_DEF_H): Depend on target-hooks-def.h.
20423         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
20424         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
20425         * doc/tm.texi: Regenerate.
20426
20427         * Makefile.in (s-tm-texi): Remove stray tab / rule.
20428
20429         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
20430         (targetm.sched.init): Likewise.
20431
20432 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20433
20434         PR bootstrap/44713
20435         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
20436         (function_arg_advance_32): Const-ify TYPE parameter.
20437         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
20438         (ix86_function_arg_advance): Change type of NAMED to bool.
20439         (function_arg_32): Const-ify CUM and TYPE parameters.
20440         (function_arg_64): Likewise.  Change type of NAMED to bool.
20441         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
20442         to bool.
20443         (ix86_function_arg): Change type of NAMED to bool.
20444         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
20445         last argument as a bool.
20446
20447 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20448
20449         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
20450         (OVERRIDE_OPTIONS): Add note of obsolescence.
20451         Replace references with references to TARGET_OPTION_OVERRIDE.
20452         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
20453          the macro).
20454         * targhooks.c (default_target_option_override): New function.
20455         * targhooks.h (default_target_option_override): Declare.
20456         * target.h (struct gcc_target): Add override member to
20457         target_option member.
20458         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
20459         targetm.target_option.override call.
20460         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
20461         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
20462
20463 2010-06-29  Jan Hubicka  <jh@suse.cz>
20464
20465         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
20466
20467 2010-06-29  Jan Hubicka  <jh@suse.cz>
20468
20469         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
20470         unreachable.
20471         (rebuild_frequencies): New function.
20472         * predict.h (rebuild_frequencies): Declare.
20473         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
20474         entry block and edge reaching new_entry.
20475         (tree_function_versioning): When doing partial cloning, rebuild
20476         frequencies when done.
20477         * passes.c (execute_function_todo): Use rebild_frequencies.
20478
20479 2010-06-29  Richard Guenther  <rguenther@suse.de>
20480
20481         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
20482         * tree-flow.h (enum noalias_state): Remove.
20483         (struct var_ann_d): Remove noalias_state member.
20484
20485 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
20486
20487         PR target/43902
20488         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
20489         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
20490         (maddhidi4): Likewise.
20491
20492         Revert parts of the change for PR25130.
20493         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
20494         MEM_ALIAS_SET.
20495
20496 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20497
20498         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
20499         targetm.calls.function_incoming_arg, and
20500         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
20501         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
20502         * target.h (struct gcc_target): Add function_arg_advance,
20503         function_arg, and function_incoming_arg fields.
20504         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
20505         (TARGET_FUNCTION_INCOMING_ARG): Define.
20506         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
20507         and TARGET_FUNCTION_INCOMING_ARG.
20508         * targhooks.h (default_function_arg_advance): Declare.
20509         (default_function_arg, default_function_incoming_arg): Declare.
20510         * targhooks.c (default_function_arg_advance): New function.
20511         (default_function_arg, default_function_incoming_arg): New function.
20512         * config/i386/i386.c (function_arg_advance): Rename to...
20513         (ix86_function_arg_advance): ...this.  Make static.
20514         (function_arg): Rename to...
20515         (ix86_function_arg): ...this.  Make static.
20516         (TARGET_FUNCTION_ARG_ADVANCE): Define.
20517         (TARGET_FUNCTION_ARG): Define.
20518         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
20519         (FUNCTION_ARG): Delete.
20520         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
20521         (function_arg): Delete prototype.
20522
20523 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20524
20525         * reginfo.c (init_reg_sets_1): Adjust comments.
20526         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
20527         * calls.c (prepare_call_address): Likewise.
20528         (emit_call_1): Use targetm.calls.return_pops_args.
20529         (expand_call): Likewise.
20530         * function.c (assign_parms): Likewise.
20531         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
20532         * target.h (struct gcc_target) [struct calls]: Add
20533         return_pops_args field.
20534         * targhooks.h (default_return_pops_args): Declare.
20535         * targhooks.c (default_return_pops_args): Define.
20536         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
20537         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
20538         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
20539         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
20540         documentation.
20541         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
20542         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
20543         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
20544         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
20545         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
20546         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
20547         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
20548         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
20549         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
20550         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
20551         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
20552         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
20553         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
20554         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
20555         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
20556         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
20557         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
20558         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
20559         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
20560         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
20561         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
20562         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
20563         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
20564         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
20565         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
20566         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
20567         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
20568         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
20569         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
20570         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
20571         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
20572         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
20573         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
20574         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
20575         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
20576         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
20577         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
20578         * config/i386/i386.c (ix86_return_pops_args): Make static.
20579         Constify arguments.
20580         (TARGET_RETURN_POPS_ARGS): Define.
20581         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
20582         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
20583         (TARGET_RETURN_POPS_ARGS): Define.
20584         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
20585         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
20586         (TARGET_RETURN_POPS_ARGS): Define.
20587
20588 2010-06-29  Richard Guenther  <rguenther@suse.de>
20589
20590         PR middle-end/44667
20591         * tree-inline.c (initialize_inlined_parameters): Make sure
20592         to remap the inlined parameter variable substitutions types.
20593
20594 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
20595
20596         PR rtl-optimization/44659
20597         * combine.c (make_compound_operation) <SUBREG>: Do not return the
20598         result of force_to_mode if it partially re-expanded the compound.
20599
20600 2010-06-28  Jan Hubicka  <jh@suse.cz>
20601
20602         PR middle-end/44671
20603         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
20604         RESULT_DECL.
20605
20606 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
20607
20608         * double-int.h (force_fit_type_double): Remove declaration.
20609         * double-int.c (force_fit_type_double): Move to tree.c.
20610         * tree.h (force_fit_type_double): Declare.
20611         * tree.h (force_fit_type_double): Moved from double-int.c. Use
20612         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
20613         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
20614         * convert.c (convert_to_pointer): Adjust call to
20615         force_fit_type_double.
20616         * tree-vrp.c (extract_range_from_assert,
20617         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
20618         * fold-const.c: Update comment.
20619         (int_const_binop, fold_convert_const_int_from_int,
20620         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
20621         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
20622         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
20623         round_up_loc): Adjust call to force_fit_type_double.
20624
20625 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20626
20627         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
20628
20629 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20630
20631         * tree-sra.c (convert_callers): New parameter, change fndecls of
20632         recursive calls.
20633         (modify_function): Pass the old decl to convert_callers.
20634
20635 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20636
20637         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
20638         ipa_check_create_node_params and ipa_initialize_node_params with
20639         checking asserts they are not necessary.
20640
20641 2010-06-28  Jan Hubicka  <jh@suse.cz>
20642
20643         PR tree-optimization/44687
20644         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
20645
20646 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20647
20648         PR c++/44535
20649         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
20650         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
20651         instead of BINFO_BASE_BINFO.
20652
20653 2010-06-28  Michael Matz  <matz@suse.de>
20654
20655         PR middle-end/44592
20656         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
20657         proper VDEF chain for intermediate stores in the sequence.
20658
20659 2010-06-28  Jan Hubicka  <jh@suse.cz>
20660
20661         PR tree-optimization/44357
20662         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
20663         uninlinable functions.
20664
20665 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20666
20667         * config.gcc (powerpc*-*-*): Handle titan.
20668         * config/rs6000/rs6000.c (titan_cost): New costs.
20669         (rs6000_override_options): Add "titan" to processor_target_table.
20670         Add Titan to branch alignment logic.
20671         Correctly set rs6000_cost for titan.
20672         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
20673         * config/rs6000/titan.md: New file.
20674         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
20675
20676 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
20677
20678         * tree-browser.c (TB_history_stack): Convert to a VEC.
20679         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
20680         (TB_history_prev): Likewise.
20681
20682 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
20683
20684         * vec.h (vec_heap_free): Add parentheses around free.
20685
20686 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
20687
20688         * system.h: Poison GCC_EXCEPT_H for front-end files.
20689
20690         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
20691         langhook.
20692         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
20693         Define to NULL by default.
20694         * except.h: Define GCC_EXCEPT_H.
20695         (doing_eh): Remove prototype.
20696         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
20697         (lang_protect_cleanup_actions): Remove.
20698         * except.c (lang_protect_cleanup_actions): Remove.
20699         (doing_eh): Remove.
20700         (gen_eh_region): Don't check doing_eh here.
20701         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
20702         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
20703         instead of lang_protect_cleanup_actions.
20704         * omp-low.c (maybe_catch_exception): Likewise.
20705         * Makefile.in: Update dependencies.
20706
20707 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
20708
20709         * cgraph.h (struct varpool_node): new used_from_object_file flag.
20710         (struct cgraph_local_info): new used_from_object_file flag.
20711         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
20712         (cgraph_clone_node): initialize used_from_object_file.
20713         (cgraph_create_virtual_clone): initialize used_from_object_file.
20714         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
20715         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
20716         when compiling with -fwhole-program.
20717         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
20718         internal resolver.
20719         * ipa.c (function_and_variable_visibility): Set externally_visible
20720         flag of varpool_node if used_from_object_file flag is set.
20721         (cgraph_externally_visible_p): check used_from_object_file flag.
20722         * doc/invoke.texi (-fwhole-program option): Change description of
20723         externally_visible attribute accordingly.
20724         * doc/extend.texi (externally_visible): Ditto.
20725
20726 2010-06-27  Jan Hubicka  <jh@suse.cz>
20727
20728         * params.def (max-inline-insns-auto): Default to 40.
20729         * doc/invoke.texi (max-inline-insns-auto): Document the change.
20730
20731 2010-06-27  Jan Hubicka  <jh@suse.cz>
20732
20733         PR middle-end/44671
20734         PR middle-end/44686
20735         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
20736         signature change.
20737         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
20738         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
20739
20740 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
20741
20742         * target.h (struct gcc_target): Add register_move_cost field.
20743         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
20744         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
20745         * targhooks.c (default_register_move_cost): New function.
20746         * targhooks.h (default_register_move_cost): Declare function.
20747         * defaults.h (REGISTER_MOVE_COST): Delete.
20748         * ira-int.h (ira_register_move_cost): Update comment.
20749         * ira.c (ira_register_move_cost): Update comment.
20750         * reload.h (register_move_cost): Declare.
20751         * reginfo.c (register_move_cost): New function.
20752         (move_cost): Update comment.
20753         (init_move_cost, memory_move_secondary_cost): Replace
20754         REGISTER_MOVE_COST with register_move_cost.
20755         * postreload.c (reload_cse_simplify_set): (Ditto.).
20756         * reload.c (find_valid_class, find_reloads): (Ditto.).
20757         * reload1.c (choose_reload_regs): (Ditto.).
20758         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
20759         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
20760         * doc/md.texi (can_create_pseudo_p): Update documentation.
20761
20762         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
20763         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
20764         * config/i386/i386.h (ix86_memory_move_cost): Make static.
20765         (TARGET_MEMORY_MOVE_COST): Define.
20766
20767         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20768         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
20769         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
20770         (TARGET_MEMORY_MOVE_COST): Define.
20771
20772 2010-06-27  Richard Guenther  <rguenther@suse.de>
20773
20774         PR tree-optimization/44683
20775         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
20776         false edge from the inverted condition.
20777
20778 2010-06-27  Richard Guenther  <rguenther@suse.de>
20779
20780         PR middle-end/44684
20781         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
20782         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
20783         for register LHS.  Or non-store assignments.
20784
20785 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
20786
20787         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
20788         (sparc_emit_set_const64): Likewise.  Remove disabled code.
20789         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
20790         (sparc_emit_set_const64): Likewise.
20791
20792 2010-06-26  Catherine Moore  <clm@codesourcery.com>
20793
20794         * config/mips/mips.md (alu_type): New attribute.
20795         (type): Infer type from alu_type.
20796         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
20797         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
20798         *subsi3_extended, negsi2, negdi2, *low<mode>,
20799         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
20800         xor<mode>3, *nor<mode>3,
20801         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
20802         *zero_extendhi_truncqi):  Set alu_type instead of type.
20803
20804 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
20805
20806         * config/alpha/alpha.c (alpha_need_linkage): Adjust
20807         splay_tree_new_ggc call.
20808         (alpha_use_linkage): Likewise.
20809
20810 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
20811
20812         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
20813         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
20814         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
20815         (static_specs): Remove switches_need_spaces.
20816         (process_command, do_self_spec): Hardcode handling "-o" instead of
20817         checking switches_need_spaces.
20818         * system.h (SWITCHES_NEED_SPACES): Poison.
20819
20820 2010-06-26  Richard Guenther  <rguenther@suse.de>
20821
20822         PR tree-optimization/44393
20823         * tree-loop-distribution.c (generate_loops_for_partition): Fix
20824         stmt removal and VOP renaming.
20825         (generate_memset_zero): Remove redundant stmt updating.
20826         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
20827         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
20828
20829 2010-06-26  Jan Hubicka  <jh@suse.cz>
20830
20831         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
20832         edges comming from header are equivalent.
20833         (visit_bb): Handle PHIs correctly.
20834         * tree-inline.c (copy_phis_for_bb): Be able to copy
20835         PHI from entry edge.
20836         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
20837
20838 2010-06-26  Richard Guenther  <rguenther@suse.de>
20839
20840         PR middle-end/44674
20841         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
20842         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
20843
20844 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
20845
20846         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
20847         add_infile, alloc_switch): New.
20848         (process_command): Remove variable lang_n_infiles.  Process
20849         options in a single pass.  Use new functions for allocating
20850         infiles and switches arrays.  Properly skip operands of
20851         -Xpreprocessor and -Xassembler.
20852
20853 2010-06-26  Jan Hubicka  <jh@suse.cz>
20854
20855         PR middle-end/44671
20856         * cgraphunit.c (cgraph_function_versioning): Remove wrong
20857         cgraph_make_decl_local call; fix typo copying RTL data.
20858
20859 2010-06-25  DJ Delorie  <dj@redhat.com>
20860
20861         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
20862         (m32c_output_aligned_common): Likewise.
20863         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20864         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20865         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
20866         (m32c_register_pragmas): Register it.
20867         * config/m32c/m32c.c (m32c_get_pragma_address): New.
20868         (m32c_insert_attributes): Set #pragma address decls volatile.
20869         (pragma_entry_eq): New.
20870         (pragma_entry_hash): New.
20871         (m32c_note_pragma_address): New.
20872         (m32c_get_pragma_address): New.
20873         (m32c_output_aligned_common): New.
20874         * doc/extend.texi: Document the new pragma.
20875
20876         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
20877         also.
20878         * config/m32c/predicates.md (m32c_any_operand): Check the code
20879         instead of memory_operand so as to allow matching volatile MEMs.
20880         (m32c_nonimmediate_operand): Likewise.
20881         (mra_operand): Allow volatiles.
20882
20883 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
20884
20885         PR debug/44610
20886         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
20887         address if the offset is unknown.
20888
20889 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
20890
20891         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
20892         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
20893         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
20894         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
20895         to ia64_start_function. Invoke it.
20896         * config/ia64/ia64.c (ia64_start_function): Call new function
20897         dwarf2out_vms_debug_main_pointer.
20898
20899 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20900
20901         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
20902         statements computing the true predicate.
20903
20904 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20905
20906         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
20907         to boolean_true_node.
20908         (reset_bb_predicate): New.
20909         (predicate_bbs): Call reset_bb_predicate.
20910
20911 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20912
20913         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
20914         (tree_if_conversion): Returns true when something has been changed.
20915         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
20916         changed something.
20917
20918 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20919
20920         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
20921         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
20922         * tree-if-conv.c: Include dbgcnt.h.
20923         (tree_if_conversion): Use if_conversion_tree to count the number of
20924         if-convertible loops.
20925
20926 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
20927
20928         * common.opt (fprefetch-loop-arrays): Re-define
20929         -fprefetch-loop-arrays as a tri-state option with the initial
20930         value of -1.
20931         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
20932         pass only when flag_prefetch_loop_arrays > 0.
20933         * toplev.c (process_options): Note that, with tri-states,
20934         flag_prefetch_loop_arrays>0 means prefetching is enabled.
20935         * config/i386/i386.c (override_options): Enable prefetching at -O3
20936         for a set of CPUs that sw prefetching is helpful.
20937         (software_prefetching_beneficial_p): New.  Return TRUE if software
20938         prefetching is beneficial for the given CPU.
20939
20940 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
20941
20942         PR rtl-optimization/44326
20943         * implicit-zee.c (find_removable_zero_extends): Replace
20944         INSN_P with NONDEBUG_INSN_P.
20945
20946 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20947
20948         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
20949         (struct ipa_node_params): Removed the modification_analysis_done flag.
20950         (ipa_is_param_modified): Removed.
20951         (ipa_analyze_node): Declare.
20952         (ipa_compute_jump_functions): Remove declaration.
20953         (ipa_count_arguments): Likewise.
20954         (ipa_detect_param_modifications): Likewise.
20955         (ipa_analyze_params_uses): Likewise.
20956         * ipa-prop.c (struct param_analysis_info): New type.
20957         (visit_store_addr_for_mod_analysis): Removed.
20958         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
20959         moved down in the file.
20960         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
20961         (ipa_count_arguments): Made static.
20962         (mark_modified): New function.
20963         (is_parm_modified_before_call): New function.
20964         (compute_pass_through_member_ptrs): New parameter parms_info, call
20965         is_parm_modified_before_call instead of ipa_is_param_modified.
20966         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
20967         it to compute_pass_through_member_ptrs.
20968         (ipa_compute_jump_functions): New parameter parms_info, pass it to
20969         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
20970         on the callee if it is analyzed.  Made static.
20971         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
20972         is_parm_modified_before_call instead of ipa_is_param_modified.
20973         (ipa_analyze_call_uses): New parameter parms_info, pass it to
20974         ipa_analyze_indirect_call_uses.
20975         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
20976         ipa_analyze_call_uses.
20977         (ipa_analyze_params_uses): New parameter parms_info, pass it to
20978         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
20979         (ipa_analyze_node): New function.
20980         (ipa_print_node_params): Do not dump the modified flag.
20981         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
20982         it.  Do not stream the modified parameter flag.
20983         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
20984         it.  Do not stream the modified parameter flag.
20985         * ipa-cp.c (ipcp_analyze_node): Removed.
20986         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
20987         with only a call to ipa_analyze_node.
20988         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
20989         node with only a call to ipa_analyze_node.
20990
20991 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20992
20993         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
20994
20995 2010-06-25  Jan Hubicka  <jh@suse.cz>
20996
20997         * tree-pass.h (pass_split_functions): Declare.
20998         * opts.c (decode_options): Enable function splitting at -O2
20999         * timevar.def (TV_IPA_FNSPLIT): New macro.
21000         * ipa-split.c: New file.
21001         * common.opt (-fpartial-inlining): New flag.
21002         * Makefile.in (ipa-split.o): New object file.
21003         * passes.c (init_optimization_passes): Add ipa-split.
21004         * params.def (partial-inlining-entry-probability): New parameters.
21005         * doc/invoke.texi (-fpartial-inlining): New.
21006
21007 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21008
21009         PR 44665
21010         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
21011         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
21012         (gimplify_expr): Likewise.
21013
21014 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21015
21016         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
21017         statements instead of bailing out on them.
21018         (ipa_analyze_indirect_call_uses): Do not require that loads from the
21019         parameter are in the same BB as the condition.  Update comments.
21020
21021 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
21022
21023         PR middle-end/43866
21024         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21025         true or always false, return NULL_TREE.
21026         (tree_unswitch_single_loop): Optimize conditions even when reaching
21027         max-unswitch-level parameter.  If num > 0, optimize first all conditions
21028         using entry checks, then do still reachable block discovery and consider
21029         only conditions in still reachable basic blocks in the loop.
21030
21031         PR tree-optimization/44539
21032         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21033         the call doesn't have LHS, but has VDEF.
21034
21035 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21036
21037         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21038         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
21039         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
21040         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
21041         * system.h (MODIFY_TARGET_NAME): Poison.
21042
21043 2010-06-25  Alan Modra  <amodra@gmail.com>
21044
21045         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
21046         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
21047         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
21048         CMODEL_LARGE as default.
21049         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
21050         (offsettable_ok_by_alignment): Delete.
21051         (rs6000_emit_move): Remove mcmodel=medium optimization.
21052
21053 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21054
21055         With large parts from Jim Wilson:
21056         PR target/43902
21057         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
21058         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21059         * optabs.c (optab_for_tree_code): Likewise.
21060         (expand_widen_pattern_expr): Likewise.
21061         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
21062         out of execute_optimize_widening_mul.
21063         (convert_plusminus_to_widen): New function.
21064         (execute_optimize_widening_mul): Use the two new functions.
21065         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
21066         Remove code to generate widening multiply-accumulate.  Add support
21067         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21068         * gimple-pretty-print.c (dump_ternary_rhs): New function.
21069         (dump_gimple_assign): Call it when appropriate.
21070         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
21071         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
21072         (expand_gimple_stmt_1): Likewise.
21073         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
21074         WIDEN_MULT_MINUS_EXPR.
21075         * tree-ssa-operands.c (get_expr_operands): Likewise.
21076         * tree-inline.c (estimate_operator_cost): Likewise.
21077         * gimple.c (extract_ops_from_tree_1): Renamed from
21078         extract_ops_from_tree.  Add new arg for a third operand; fill it.
21079         (gimple_build_assign_stat): Support operations with three operands.
21080         (gimple_build_assign_with_ops_stat): Likewise.
21081         (gimple_assign_set_rhs_from_tree): Likewise.
21082         (gimple_assign_set_rhs_with_ops_1): Renamed from
21083         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
21084         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
21085         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
21086         WIDEN_MULT_MINUS_EXPR.
21087         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
21088         (extract_ops_from_tree_1): Adjust declaration.
21089         (gimple_assign_set_rhs_with_ops_1): Likewise.
21090         (gimple_build_assign_with_ops): Pass NULL for last operand.
21091         (gimple_build_assign_with_ops3): New macro.
21092         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
21093         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
21094         functions.
21095         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
21096         (verify_gimple_assign): Call it.
21097         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
21098         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
21099         functions for dealing with three-operand statements.
21100         * tree.c (commutative_ternary_tree_code): New function.
21101         * tree.h (commutative_ternary_tree_code): Declare it.
21102         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
21103         ternary statements.
21104         (gimple_assign_nonzero_warnv_p): Likewise.
21105         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
21106         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
21107         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
21108         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
21109         (struct hashtable_expr): New member ternary in the union.
21110         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
21111         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
21112         (iterative_hash_hashable_expr): Likewise.
21113         (print_expr_hash_elt): Handle EXPR_TERNARY.
21114         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
21115         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
21116         statements.  Handle GIMPLE_TERNARY_RHS.
21117
21118 2010-06-25  Jan Hubicka  <jh@suse.cz>
21119
21120         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
21121
21122 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
21123
21124         PR c/44517
21125         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
21126         parameters are not good.
21127         (c_parser_parameter_declaration): Error unknown type name if the type
21128         name can't start declaration specifiers.
21129
21130 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21131
21132         * gcc.c (translate_options): Don't mention +e in comment.
21133         (process_command): Don't handle +e specially.
21134
21135 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21136
21137         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
21138
21139         * ira-build.c (merge_hard_reg_conflicts): New function.
21140         (create_cap_allocno, copy_info_to_removed_store_destinations,
21141         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
21142         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
21143         (remove_unnecessary_allocnos, remove_low_level_allocnos)
21144         copy_nifo_to_removed_store_destination): Use them.
21145         * ira-lives.c (make_hard_regno_born): New function, split out of
21146         make_regno_born.
21147         (make_allocno_born): Likewise.
21148         (make_hard_regno_dead): New function, split out of make_regno_dead.
21149         (make_allocno_dead): Likewise.
21150         (inc_register_pressure): New function, split out of set_allocno_live.
21151         (dec_register_pressure): New function, split out of clear_allocno_live.
21152         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
21153         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
21154         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
21155         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
21156         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
21157         mark_pseudo_regno_live.
21158         (process_bb_node_lives): Use mark_pseudo_regno_live,
21159         make_hard_regno_born and make_allocno_dead.
21160         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
21161         set_allocno_live, clear_allocno_live): Delete functions.
21162
21163         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
21164         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
21165         functions.
21166         (ira_flattening): Use ira_parent_allocno.
21167         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
21168         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
21169
21170         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
21171         statement.
21172
21173         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
21174         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
21175         minmax_set_iter_cond, minmax_set_iter_next,
21176         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
21177         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
21178         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
21179         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
21180         uses changed.
21181
21182         * ira-int.h (struct live_range, live_range_t): Renamed from struct
21183         ira_allocno_live_range and allocno_live_range_t; all uses changed.
21184         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
21185         All uses changed.
21186
21187 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
21188
21189         * thumb2.md (thumb2_tlobits_cbranch): Delete.
21190         (peephole2 to convert zero_extract/compare of single bit to
21191          lshift/compare): New.
21192
21193 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
21194
21195         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
21196         recursive call and call to 'int_const_binop'.
21197         (build_range_check, fold_cond_expr_with_comparison, unextend,
21198         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
21199         multiple_of_p): Adjust call to const_binop.
21200
21201 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
21202
21203         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
21204         determine size of XFmode operand.
21205         (XFmode extended DFmode push splitter): Ditto.
21206         (XFmode extended SFmode push splitter): Ditto.
21207
21208 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
21209
21210         PR target/44588
21211         * config/i386/i386.md (extract_code): New.
21212         (<u>divmodqi4): Likewise.
21213         (divmodhiqi3): Likewise.
21214         (udivmodhiqi3): Likewise.
21215         (<u>divqi3): Remvoved.
21216
21217 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
21218
21219         PR middle-end/44492
21220         * recog.h (struct recog_data): Add is_asm field.
21221         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
21222         present in constraints of inline-asm operand and memory operand
21223         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
21224         (extract_insn): Initialize recog_data.is_asm.
21225         * doc/md.texi (Constraints): Document operand side-effect rules.
21226
21227 2010-06-24  Andi Kleen  <ak@linux.intel.com>
21228
21229         * c-parser.c (c_parser_conditional_expression): Call
21230         warn_for_omitted_condop.
21231         * doc/invoke.texi: Document omitted condop warning.
21232
21233 2010-06-24  Nick Clifton<nickc@redhat.com>
21234
21235         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
21236         insn in the sequence is a jump insn before setting its label.
21237
21238 2010-06-24  Alan Modra  <amodra@gmail.com>
21239
21240         * collect2.c (main): Match exactly --version and --help.
21241
21242 2010-06-24  DJ Delorie  <dj@redhat.com>
21243
21244         * config/m32c/m32c-pragma.c: Don't include rtl.h.
21245
21246 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
21247
21248         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
21249         using X87MODEF mode iterator.
21250         (pushsf splitter): Macroize splitter using P mode iterator.
21251         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
21252         mode iterator.
21253
21254         (*movxf_internal): Rename from *movxf_integer.
21255         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
21256         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
21257         (*movdf_internal): Rename from *movdf_integer.
21258         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
21259         (*movsf_internal): Rename from *movdf_1.
21260
21261 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
21262
21263         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
21264         (const_gimple_seq_node): Removed typedefs.
21265
21266         * gimple.h (gimple_seq_node_d, gimple_seq_node)
21267         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
21268
21269 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
21270
21271         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
21272         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
21273         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
21274         and CODE_FOR_vec_extract_lo_v4df.
21275
21276         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
21277         Changed to define_insn_and_split.
21278         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
21279         (vec_extract_lo_v16hi): Likewise.
21280         (vec_extract_lo_v32qi): Likewise.
21281         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
21282         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
21283
21284 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
21285
21286         PR target/44640
21287         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
21288         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
21289         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
21290         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
21291         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
21292
21293         PR target/44640
21294         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
21295
21296         PR other/44644
21297         * df-core.c (struct df): Rename to df_d.
21298         * df.h (struct df): Likewise.
21299         * dse.h (struct df): Remove forward declaration.
21300         * recog.h (struct insn_data): Rename to:
21301         (struct_insn_data_d).  Adjusted all users.
21302
21303 2010-06-23  Arnaud Charlet  <charlet@adacore.com
21304
21305         PR ada/22220
21306         * doc/install.texi: Update requirements to build GNAT.
21307
21308 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
21309
21310         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
21311         enum type.
21312         (m68k_sched_attr_opx_type): Remove unreachable return.
21313         (m68k_sched_attr_opy_type): Likewise.
21314         (m68k_sched_attr_size): Likewise.
21315         (sched_get_opxy_mem_type): Likewise.
21316         (m68k_sched_attr_op_mem): Likewise.
21317
21318 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
21319
21320         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
21321         new statement and adjust VDEF only if necessary.  Remove superfluous
21322         call to maybe_clean_or_replace_eh_stmt.
21323         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
21324         copy the flags.
21325         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
21326         * tree-inline.c (copy_bb): ...and not there.
21327
21328 2010-06-22  Cary Coutant  <ccoutant@google.com>
21329
21330         * dwarf2out.c (is_nested_in_subprogram): New function.
21331         (should_move_die_to_comdat): Use it.
21332         (copy_ancestor_tree): Don't mark DIEs here.
21333         (copy_decls_walk): Start walk from root of newly-added tree;
21334         mark DIEs here instead.
21335
21336 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
21337
21338         * config/i386/i386.md (unit): Also check sseishft1.
21339
21340 2010-06-22  Jan Hubicka  <jh@suse.cz>
21341
21342         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
21343         enabled.
21344
21345 2010-06-22  Jan Hubicka  <jh@suse.cz>
21346
21347         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
21348         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
21349         Return true if something changed.
21350         * df.h (df_confluence_function_n): Return bool.
21351         * df-core.c (df_worklist_propagate_forward,
21352         df_worklist_propagate_backward): Track changes and ages.
21353         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
21354         track ages.
21355         * dse.c (dse_confluence_n): Return always true.
21356
21357 2010-06-22  Jan Hubicka  <jh@suse.cz>
21358
21359         * bitmap.c (bitmap_clear_bit): Micro optimize.
21360
21361 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
21362
21363         * config/i386/i386.md (SWI1248x): New mode iterator.
21364         (SWI48x): Ditto.
21365         (SWI12): Ditto.
21366         (SWI24): Ditto.
21367
21368         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
21369         SWI1248x mode iterator.
21370         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
21371         using SWI124 mode iterator.
21372         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
21373         mode iterator.
21374         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
21375         *pushdi2_prologue_rex64 using P mode iterator.
21376         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
21377         using SWI48 mode iterator.
21378         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
21379         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
21380         using SWI1248x mode iterator.
21381         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
21382         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
21383         SWI48 mode iterator.
21384         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
21385         iterator.
21386         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
21387         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
21388         SWI12 mode iterator.
21389         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
21390         SWI12 mode iterator.
21391         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
21392         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
21393         SWI24 mode iterator.
21394         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
21395         SWI48 mode iterator.
21396         (mov<mode>_insn_1): New expander.
21397         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
21398         using SWI48x mode iterator.
21399
21400         (*movoi_internal_avx): Rename from *movoi_internal.
21401         (*movti_internal_rex64): Rename from *movti_rex64.
21402         (*movti_internal_sse): Rename from *movti_sse.
21403         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
21404         (*movdi_internal): Rename from *movdi_2.
21405         (*movsi_internal): Rename from *movsi_1.
21406         (*movhi_internal): Rename from *movhi_1.
21407         (*movqi_internal): Rename from *movqi_1.
21408
21409         (insv): Update the call to gen_movsi_insv_1 for rename.
21410         * config/i386/i386.c (promote_duplicated_reg): Ditto.
21411
21412 2010-06-22  Jan Hubicka  <jh@suse.cz>
21413
21414         * passes.c (execute_function_todo): Move call of statistics_fini_pass
21415         to ...
21416         (execute_todo) ... this one.
21417
21418 2010-06-22  Alan Modra  <amodra@gmail.com>
21419
21420         PR target/44364
21421         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21422         * caller-save.c (insert_restore, insert_save): Use non-validate
21423         form of adjust_address.
21424
21425 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21426
21427         PR target/39690
21428         * config/pa/pa.c (override_options): Disable
21429         -freorder-blocks-and-partition.
21430
21431 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
21432
21433         PR target/44615
21434         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
21435
21436         * config/i386/i386.md (type): Add sseishft1
21437
21438         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
21439         (ppro_insn_load): Likewise.
21440         (ppro_insn_store): Likewise.
21441         (ppro_insn_both): Likewise.
21442
21443         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
21444         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
21445         for type.
21446         (*vec_extractv2di_1_avx): Likewise.
21447         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
21448         type.  Remove atom_unit.
21449         (*vec_extractv2di_1_sse2): Likewise.
21450
21451 2010-06-21  DJ Delorie  <dj@redhat.com>
21452
21453         * diagnostic.h (diagnostic_classification_change_t): New.
21454         (diagnostic_context): Add history and push/pop list.
21455         (diagnostic_push_diagnostics): Declare.
21456         (diagnostic_pop_diagnostics): Declare.
21457         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
21458         from pragmas in a history chain instead of the global table.
21459         (diagnostic_push_diagnostics): New.
21460         (diagnostic_pop_diagnostics): New.
21461         (diagnostic_report_diagnostic): Scan history chain to find state
21462         of diagnostics as of the diagnostic location.
21463         * opts.c (set_option): Pass UNKNOWN_LOCATION to
21464         diagnostic_classify_diagnostic.
21465         (enable_warning_as_error): Likewise.
21466         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
21467         use in the history chain.
21468         * doc/extend.texi: Document pragma GCC diagnostic changes.
21469
21470 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
21471
21472         * dwarf2out.c (add_linkage_name): New function.  Don't add
21473         anything to DW_TAG_member DIEs.
21474         (add_name_and_src_coords_attributes): Use it.
21475         (gen_variable_die): Call it for C++ static data members if
21476         specification is DW_TAG_member.
21477
21478         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
21479         C++ char16_t and char32_t.
21480
21481         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
21482         * genattrtab.c: Include vecprim.h.
21483         (cached_attrs, cached_attr_count, attrs_seen_once,
21484         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
21485         attrs_cached_after): New variables.
21486         (find_attrs_to_cache): New function.
21487         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
21488         (write_test_expr): Add attrs_cached argument, return it too,
21489         attempt to cache non-const attributes used more than once in
21490         a single case handling.
21491         (write_attr_get): Use find_attrs_to_cache, for caching candidates
21492         emit cached_* variables.  Adjust write_attr_set callers.
21493         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
21494         to find attributes that should be cached in this block.  Adjust
21495         write_test_expr callers.
21496         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
21497         callers.
21498         (make_automaton_attrs): Adjust write_test_expr caller.
21499
21500         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
21501         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
21502         (make_automaton_attrs): If find_tune_attr returns non-NULL,
21503         write separate internal_dfa_insn_code_* and insn_default_latency_*
21504         functions for each attribute's value and emit init_sched_attrs
21505         function and function pointers.
21506         * genattr.c (const_attrs, reservations): New variables.
21507         (gen_attr): Add const attributes to const_attrs vector.
21508         (check_tune_attr, find_tune_attr): New functions.
21509         (main): Add reservations to reservations vector.  If find_tune_attr
21510         returns true, add prototype for init_sched_attrs and make
21511         internal_dfa_insn_code and insn_default_latency function pointers,
21512         otherwise define init_sched_attrs as dummy macro.
21513         * cfgexpand.c: Include insn-attr.h.
21514         (gimple_expand_cfg): Call init_sched_attrs.
21515
21516         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
21517
21518         PR target/44575
21519         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
21520         va_arg from a set of register save slots into a temporary,
21521         if the container is bigger than type size, do the copying
21522         using smaller mode or using memcpy.
21523
21524         PR bootstrap/44426
21525         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
21526         prototype.
21527         (sel_print_to_dot): Remove macro.
21528         (sel_print): Likewise.  New prototype.
21529         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
21530         (sel_print): New function.
21531
21532 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21533
21534         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
21535         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
21536
21537 2010-06-21  Nick Clifton  <nickc@redhat.com>
21538
21539         * config/rx/rx.h (PTRDIFF_TYPE): Define.
21540         (SMALL_REGISTER_CLASS): Define (to zero).
21541         (PRINT_OPERAND): Delete.
21542         (PRINT_OPERAND_ADDRESS): Delete.
21543         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
21544         (rx_print_operand_address): Delete prototype.
21545         * config/rx/rx.c (rx_print_operand): Make static.
21546         Allow %H and %L to handle CONST_DOUBLEs.
21547         (rx_print_operand_address): Make static.
21548         (rx_gen_move_template): Rename local variable 'template' to
21549         out_template.
21550         (rx_function_arg): Do not pass unknown sized objects in registers.
21551         (TARGET_PRINT_OPERAND): Define.
21552         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21553
21554 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
21555
21556         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
21557
21558 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
21559
21560         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
21561         stack-alignment for simple leaf-functions.
21562
21563 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
21564
21565         * doc/install.texi: Document bootstrap-lto.
21566
21567 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
21568
21569         PR debug/44248
21570         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
21571         (input_function): Drop them here, if VTA is disabled.
21572
21573 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
21574
21575         PR target/44546
21576         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
21577         New predicate.
21578         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
21579         ix86_swapped_fp_comparsion_operator instead of
21580         ix86_fp_comparison_operator.
21581
21582         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
21583         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
21584         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
21585         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
21586         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
21587         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
21588
21589 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
21590
21591         PR other/32998
21592         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
21593         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
21594         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
21595         (decode_cmdline_option): Update for this return value.  Set
21596         orig_option_with_args_text field.  Set arg field for unknown
21597         options.  Make static.
21598         (decode_cmdline_options_to_array): New.
21599         (prune_options): Update handling of find_opt return value.
21600         * opts.c (read_cmdline_option): Take decoded option.  Return void.
21601         (read_cmdline_options): Take decoded options.
21602         (decode_options): Add parameters for decoded options.  Use
21603         decode_cmdline_options_to_array.  Use decoded options for -O
21604         scan.  Use integral_argument for -O parameters.  Update call to
21605         read_cmdline_options.
21606         (enable_warning_as_error): Update handling of find_opt return value.
21607         * opts.h: Update comment on unknown options.
21608         (struct cl_decoded_option): Update comments on opt_index and arg.
21609         Add orig_option_with_args_text.
21610         (decode_cmdline_option): Remove.
21611         (decode_cmdline_options_to_array): Declare.
21612         (decode_options): Update prototype.
21613         * toplev.c (save_argv): Remove.
21614         (save_decoded_options, save_decoded_options_count): New.
21615         (read_integral_parameter): Remove.
21616         (print_switch_values): Use decoded options.
21617         (toplev_main): Don't set save_argv.  Update call to decode_options.
21618         * toplev.h (read_integral_parameter): Remove.
21619         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
21620
21621 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
21622
21623         PR target/44072
21624         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
21625         immediate.
21626         * constraints.md (Pw, Px): New constraints.
21627         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
21628
21629 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
21630
21631         * config/i386/sse.md (fma4modesuffixf4): Removed.
21632         (ssemodesuffixf2s): Likewise.
21633         (ssemodesuffixf4): Likewise.
21634         (ssemodesuffixf2c): Likewise.
21635         (ssescalarmodesuffix2s): Likewise.
21636         (avxmodesuffixf2c): Likewise.
21637         (ssemodesuffix): New.
21638         (ssescalarmodesuffix): Likewise.
21639         Update patterns with ssemodesuffix and ssescalarmodesuffix.
21640
21641 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
21642
21643         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
21644
21645 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
21646
21647         * stor-layout.c (debug_rli): Remove unused local variables.
21648
21649 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
21650
21651         PR rtl-optimization/40900
21652         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
21653         original expression for later reuse.
21654         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
21655         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
21656
21657 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
21658
21659         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
21660         double_int_fits_in_uhwi_p): Implement as static inline.
21661         (double_int_xor): New inline function.
21662         (double_int_lrotate, double_int_rrotate, double_int_max,
21663         double_int_umax, double_int_smax, double_int_min, double_int_umin,
21664         double_int_smin): Declare.
21665         (lrotate_double, rrotate_double): Remove declaration.
21666         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
21667         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
21668         (double_int_lrotate, double_int_rrotate, double_int_max,
21669         double_int_umax, double_int_smax, double_int_min, double_int_umin,
21670         double_int_smin): New function.
21671         * fold-const.c (int_const_binop): Clean up, use double_int_*
21672         functions.
21673         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
21674         double_int_* and immed_double_int_const functions.
21675
21676 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
21677
21678         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
21679         * function.c (types_used_by_cur_var_decl): Likewise.
21680         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
21681
21682 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
21683
21684         * tree.h (record_layout_info): Change type of pending_statics field
21685         to a VEC.
21686         * stor-layout.c (start_record_layout): Store NULL into
21687         pending_statics.
21688         (debug_rli): Call debug_vec_tree instead of debug_tree.
21689         (place_field): Likewise.
21690         (finish_record_layout): Likewise.
21691
21692 2010-06-18  Alan Modra  <amodra@gmail.com>
21693
21694         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
21695
21696 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21697
21698         PR target/43740
21699         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
21700         for SET source operand from SET destination operand.
21701
21702 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
21703
21704         PR rtl-optimization/39871
21705         * reload1.c (init_eliminable_invariants): For flag_pic, disable
21706         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
21707         (function_invariant_p): Rule out a plus of frame or arg pointer with
21708         a SYMBOL_REF.
21709         * ira.c (find_reg_equiv_invariant_const): Likewise.
21710
21711 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
21712
21713         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
21714         print_operand_address and puts to output the operand for CONST.
21715
21716 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
21717
21718         PR debug/44572
21719         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
21720         hook.
21721
21722 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21723
21724         * v850-protos.h (print_operand): Delete.
21725         (print_operand_address): Delete.
21726         * v850.h (PRINT_OPERAND): Delete.
21727         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21728         (PRINT_OPERAND_ADDRESS): Delete.
21729         * v850.c (print_operand_address): Rename to...
21730         (v850_print_operand_address): ...this.  Make static. Call
21731         v850_print_operand.
21732         (print_operand): Rename to...
21733         (v850_print_operand): ...this.  Make static.  Call
21734         v850_print_operand_address.
21735         (v850_print_operand_punct_valid_p): New function.
21736         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21737         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21738
21739 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21740
21741         * config/sh/sh-protos.h (print_operand): Delete.
21742         (print_operand_address): Delete.
21743         * config/sh/sh.h (PRINT_OPERAND): Delete.
21744         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21745         (PRINT_OPERAND_ADDRESS): Delete.
21746         * config/sh/sh.c (sh_print_operand_address): Make static.
21747         (sh_print_operand): Make static.  Call sh_print_operand_address
21748         and sh_print_operand.
21749         (sh_print_operand_punct_valid_p): New function.
21750         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21751         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21752
21753 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21754
21755         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
21756         (mcore_print_operand_address): Delete.
21757         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
21758         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21759         (PRINT_OPERAND_ADDRESS): Delete.
21760         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
21761         (mcore_print_operand): Make static.
21762         (mcore_print_operand_punct_valid_p): New function.
21763         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
21764         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21765
21766 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21767
21768         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
21769         (print_operand_address): Delete.
21770         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
21771         (PRINT_OPERAND_ADDRESS): Delete.
21772         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
21773         static.
21774         (m68hc11_print_operand): Make static.
21775         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21776
21777 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21778
21779         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
21780         (m32r_print_operand_address): Delete.
21781         * config/m32r/m32r.h (m32r_punct_chars): Delete.
21782         (PRINT_OPERAND): Delete.
21783         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21784         (PRINT_OPERAND_ADDRESS): Delete.
21785         * config/m32r/m32r.c (m32r_punct_chars): Make static.
21786         (m32r_print_operand_address): Make static.
21787         (m32r_print_operand): Make static.
21788         (m32r_print_operand_punct_valid_p): New function.
21789         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21790         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21791
21792 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21793
21794         * config/iq2000/iq2000-protos.h (print_operand): Delete.
21795         (print_operand_address): Delete.
21796         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
21797         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21798         (PRINT_OPERAND_ADDRESS): Delete.
21799         (iq2000_print_operand_punct): Delete.
21800         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
21801         (iq2000_print_operand_address): Make static.
21802         (iq2000_print_operand): Make static.
21803         (iq2000_print_operand_punct_valid_p): New function.
21804         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21805         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21806
21807 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21808
21809         * config/frv/frv-protos.h (frv_print_operand): Delete.
21810         (frv_print_operand_address): Delete.
21811         * config/frv/frv.h (PRINT_OPERAND): Delete.
21812         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21813         (PRINT_OPERAND_ADDRESS): Delete.
21814         * config/frv/frv.c (frv_print_operand_address): Make static.
21815         (frv_print_operand): Make static.
21816         (frv_print_operand_punct_valid_p): New function.
21817         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21818         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21819
21820 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21821
21822         * tree.h (vec_member): Declare.
21823         * tree.c (vec_member): Define.
21824
21825 2010-06-17  Richard Guenther  <rguenther@suse.de>
21826
21827         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
21828         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
21829
21830 2010-06-17  Richard Guenther  <rguenther@suse.de>
21831
21832         * tree-inline.c (declare_return_variable): Remove bogus code.
21833
21834 2010-06-17  Richard Guenther  <rguenther@suse.de>
21835
21836         * gimplify.c (gimplify_bind_expr): Always promote complex
21837         and vector variables to registers if possible.
21838
21839 2010-06-17  Richard Guenther  <rguenther@suse.de>
21840
21841         * expr.c (get_inner_reference): Use double_int for bit_offset
21842         calculation.
21843
21844 2010-06-16  DJ Delorie  <dj@redhat.com>
21845
21846         * common.opt (-fstrict-volatile-bitfields): new.
21847         * doc/invoke.texi: Document it.
21848         * fold-const.c (optimize_bit_field_compare): For volatile
21849         bitfields, use the field's type to determine the mode, not the
21850         field's size.
21851         * expr.c (expand_assignment): Likewise.
21852         (get_inner_reference): Likewise.
21853         (expand_expr_real_1): Likewise.
21854         * expmed.c (store_fixed_bit_field): Likewise.
21855         (extract_bit_field_1): Likewise.
21856         (extract_fixed_bit_field): Likewise.
21857
21858 2010-06-16  Richard Guenther  <rguenther@suse.de>
21859
21860         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
21861
21862 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
21863
21864         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
21865         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
21866         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
21867         * debug.c: Likewise.
21868         * sdbout.c: Likewise.
21869         * vmsdbgout.c: Likewise.
21870         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
21871         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
21872         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
21873         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
21874         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
21875         * dwarf2out.c (dw_fde_struct): New fields
21876         dw_fde_vms_{end,begin}_prologue.
21877         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
21878         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
21879         (dwarf2out_vms_end_prologue): New function.
21880         (dwarf2out_vms_begin_epilogue): New function.
21881         (dw_val_struct): New value dw_val_class_vms_delta.
21882         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
21883         begin_epilogue for VMS.
21884         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
21885         new static functions.
21886         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
21887         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
21888         static functions.
21889         (print_die): New case dw_val_class_vms_delta.
21890         (attr_checksum): Likewise.
21891         (same_dw_val_p: Likewise.
21892         (size_of_die): Likewise.
21893         (value_format): Likewise.
21894         (output_die): Likewise.
21895         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
21896         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
21897         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
21898         dwarf2out_cfi_begin_epilogue
21899         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
21900
21901 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21902
21903         * config/cris/cris-protos.h (cris_print_operand): Delete.
21904         (cris_print_operand_address): Delete.
21905         * config/cris/cris.h (PRINT_OPERAND): Delete.
21906         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21907         (PRINT_OPERAND_ADDRESS): Delete.
21908         * config/cris/cris.c (cris_print_operand_address): Make static.
21909         (cris_print_operand): Make static.
21910         (cris_print_operand_punct_valid_p): New function.
21911         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21912         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21913
21914 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21915
21916         * config/arm/arm-protos.h (arm_print_operand): Delete.
21917         (arm_print_operand_address): Delete.
21918         * config/arm/arm.h (PRINT_OPERAND): Delete.
21919         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21920         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
21921         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
21922         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
21923         (arm_print_operand): Make static.
21924         (arm_print_operand_punct_valid_p): New function.
21925         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21926         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21927
21928 2010-06-16  Nick Clifton  <nickc@redhat.com>
21929
21930         * config/rx/constraints.md (NEGint4): New constraint.
21931         * config/rx/rx.md (attr cc): Add set_zsc.
21932         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
21933         initialised.
21934         (cmpsf): Likewise.
21935         (call_internal): Clobber the cc0 register.
21936         (call_value_internal): Likewise.
21937         (cstoresi4): Likewise.
21938         (movsieq): Likewise.
21939         (movsine): Likewise.
21940         (addsi3): Add alternative to handle small negative constants.
21941         (sunsi3): Likewise.
21942         (addsi3): Do not set the O bit in the cc0 register.
21943         (adddi3): Likewise.
21944         (subsi3): Likewise.
21945         (subdi3): Likewise.
21946         (andsi3): Reorder alternatives to prefer shorter forms.
21947         (mulsi3): Likewise.
21948         (iorsi3): Likewise.
21949         (negsi2): Note that the cc0 flags are set.
21950         (rotlsi3): Note that only the Z and S bits are set in cc0.
21951         (lshrsi3): Likewise.
21952         (ashlsi3): Likewise.
21953         (subsf3): Use %Q for the MEM operand.
21954         (fix_truncsfsi2): Likewise.
21955         (floatsisf2): Likewise.
21956         (bitset): Remove early clobber from destination.
21957         (bitset_in_memory): Likewise.
21958         (lrintsf2): Clobber the cc0 register.
21959         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
21960         (rx_print_operand): Handle %N.
21961
21962 2010-06-16  Jan Hubicka  <jh@suse.cz>
21963
21964         * df-core.c (df_compact_blocks): Free problem_temps vector.
21965
21966 2010-06-16  Martin Jambor  <mjambor@suse.cz>
21967
21968         PR tree-optimization/43905
21969         * tree-sra.c: Include tree-inline.h.
21970         (create_abstract_origin): Removed.
21971         (modify_function): Version the call graph node instead of creating
21972         abstract origins and dealing with same_body aliases.
21973         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
21974         function is versionable.
21975         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
21976
21977 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
21978
21979         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
21980         (CHOOSE_DYNAMIC_LINKER): Update.
21981
21982 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
21983
21984         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
21985         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
21986         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
21987         *prefetch_3dnow_rex.
21988
21989 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
21990
21991         * target.h (struct asm_out):Add declare_constant_name field.
21992         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21993         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
21994         * output.h (default_asm_declare_constant_name): Declare.
21995         (assemble_label): Update prototype.
21996         * varasm.c (assemble_constant_contents): Use
21997         targetm.asm_out.declare_constant_name target hook.
21998         (assemble_label): Add 'file' argument.
21999         (default_asm_declare_constant_name): New function.
22000         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
22001         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
22002         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
22003
22004         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
22005         * config/darwin.c (darwin_asm_declare_constant_name): New function.
22006         (machopic_output_indirection): Update assemble_label argument list.
22007         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
22008         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22009
22010 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
22011
22012         PR middle-end/44391
22013         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22014         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
22015
22016 2010-06-15  Richard Guenther  <rguenther@suse.de>
22017
22018         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22019
22020 2010-06-15  Paul Brook  <paul@codesourcery.com>
22021
22022         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22023         hard-float ABI.
22024
22025 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
22026
22027         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22028         don't get a vector type for output.
22029
22030 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
22031
22032         PR fortran/44536
22033         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22034         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22035         (LANG_HOOKS_DECLS): Add it.
22036         * gimplify.c (omp_notice_variable): Call
22037         lang_hooks.decls.omp_report_decl.
22038
22039 2010-06-15  Martin Jambor  <mjambor@suse.cz>
22040
22041         PR lto/44464
22042         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
22043         on the newly dead SSA name.
22044
22045 2010-06-15  Alan Modra  <amodra@gmail.com>
22046
22047         * doc/invoke.texi: Add mcmodel to powerpc options.
22048         * configure.ac: Add HAVE_LD_LARGE_TOC test.
22049         * configure: Regenerate.
22050         * config.in: Regenerate.
22051         * config/rs6000/linux64.opt (mcmodel): New.
22052         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
22053         (TARGET_CMODEL, SET_CMODEL): Define.
22054         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
22055         select CMODEL_MEDIUM default.
22056         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
22057         (TARGET_CMODEL): Define default.
22058         * config/rs6000/rs6000.c (cmodel): New variable.
22059         (rs6000_explicit_options): Add cmodel field.
22060         (rs6000_handle_option): Handle -mcmodel.
22061         (create_TOC_reference): Add largetoc_reg param.  Generate high,
22062         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
22063         (rs6000_delegitimize_address): Recognise new toc reference rtl
22064         and minimal-toc rtl.
22065         (rs6000_legitimize_reload_address): Handle new toc references.
22066         (print_operand_address): Handle legitimate_constant_pool_address_p
22067         match before lo_sum.
22068         (rs6000_eliminate_indexed_memrefs): Tidy.
22069         (rs6000_emit_move): Tweak threshold for inlining constants.
22070         Keep rs6000_emit_allocate_stack large stack frame offsets
22071         loaded into r0 inline.
22072         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
22073         (tocrel_base, tocrel_offset): New variables.
22074         (toc_relative_expr_p): Set them here.
22075         (print_operand_address): Skip over any offset on constant pool address.
22076         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
22077         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
22078         (offsettable_ok_by_alignment): New function.
22079         (rs6000_emit_move): Address suitably aligned local symbol_refs
22080         relative to the toc pointer for -mcmodel=medium.
22081         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
22082         strict param.  Allow lo_sum version of addressing.  Verify reg
22083         used for -mminimal-toc and -mcmodel != small.  Update all callers.
22084         * config/rs6000/constraints.md: Update for above change.
22085         * config/rs6000/predicates.md: Likewise.
22086         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
22087         code.
22088         (tls_gd): Split for -mcmodel=medium/large.
22089         (tls_gd_high, tls_gd_low): New.
22090         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
22091         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
22092         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
22093         (largetoc_high, largetoc_low): New.
22094         (cmptf_internal2): Add clobber.
22095         * config/rs6000/rs6000-protos.h: Update.
22096
22097 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
22098
22099         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
22100         true if no prefetch is going to be generated for a given group.
22101         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
22102         estimate the prefetch_count.
22103         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
22104         prefetch count by considering the unroll_factor and prefetch_mod
22105         for is_loop_prefetching_profitable.
22106
22107 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
22108
22109         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
22110         anything if the argument is not a MEM.
22111
22112 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22113
22114         PR debug/43650
22115         PR debug/44181
22116         PR debug/44247
22117         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
22118         debug stmts.
22119         (canonicalize_loop_ivs): Likewise.
22120
22121 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22122
22123         PR debug/43656
22124         * haifa-sched.c (setup_insn_reg_pressure_info,
22125         update_register_pressure): Reject debug insns.
22126         (ready_sort): Don't setup reg pressure for debug insns.
22127         (schedule_insn): Don't update reg pressure for debug insns.
22128
22129 2010-06-14  Richard Guenther  <rguenther@suse.de>
22130
22131         * lto-streamer.c (cached_bp): Remove.
22132         (bitpack_delete): Likewise.
22133         (bitpack_create): Likewise.
22134         (bp_get_next_word): Likewise.
22135         (bp_pack_value, bp_unpack_value): Move ...
22136         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
22137         Re-implement.
22138         (struct bitpack_d): Likewise.
22139         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
22140         New inline functions.
22141         * lto-streamer-out.c (lto_output_bitpack): Remove.
22142         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22143         (pack_value_fields): Adjust.
22144         (lto_write_tree): Likewise.
22145         (output_gimple_stmt): Likewise.
22146         (output_function): Likewise.
22147         * lto-streamer-in.c (input_gimple_stmt): Adjust.
22148         (input_function): Likewise.
22149         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22150         (lto_input_bitpack): Remove.
22151         (lto_materialize_tree): Adjust.
22152         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
22153         * lto-cgraph.c (lto_output_edge): Adjust.
22154         (lto_output_node): Likewise.
22155         (lto_output_varpool_node): Likewise.
22156         (lto_output_ref): Likewise.
22157         (input_node): Likewise.
22158         (input_varpool_node): Likewise.
22159         (input_ref): Likewise.
22160         (input_edge): Likewise.
22161         (output_node_opt_summary): Likewise.
22162         (input_node_opt_summary): Likewise.
22163         * ipa-pure-const.c (pure_const_write_summary): Likewise.
22164         (pure_const_read_summary): Likewise.
22165         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
22166         (ipa_read_indirect_edge_info): Likewise.
22167         (ipa_write_node_info): Likewise.
22168         (ipa_read_node_info): Likewise.
22169
22170 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
22171
22172         PR target/44534
22173         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
22174         (vec_extract_lo_v16hi): Likewise.
22175         (vec_extract_lo_v32qi): Likewise.
22176
22177 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22178
22179         PR bootstrap/44426
22180         * tree.h (build_call_expr): Don't define as vararg macro, instead
22181         add a prototype.
22182         * builtins.c (build_call_nofold): Remove.
22183         (expand_builtin_int_roundingfn, expand_builtin_pow,
22184         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
22185         expand_builtin_memset_args, expand_builtin_strcmp,
22186         expand_builtin_strncmp, expand_builtin_memory_chk): Use
22187         build_call_nofold_loc instead of build_call_nofold.
22188         (build_call_expr): New function.
22189
22190         PR tree-optimization/44508
22191         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
22192         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
22193         don't eliminate trivially dead stmts.
22194         * tree-vrp.c (vrp_finalize): Pass false as last argument
22195         to substitute_and_fold.
22196         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
22197         to substitute_and_fold.
22198         * tree-ssa-ccp.c (ccp_finalize): Likewise.
22199
22200         PR bootstrap/44509
22201         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
22202
22203 2010-06-14  Ira Rosen  <irar@il.ibm.com>
22204
22205         PR tree-optimization/44507
22206         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
22207         to build initial vector for BIT_AND_EXPR.
22208         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
22209
22210 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22211
22212         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
22213         adjust z10prop set_attr.
22214
22215 2010-06-13  Jan Hubicka  <jh@suse.cz>
22216
22217         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
22218         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
22219         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
22220         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
22221         datastructure checks into checking asserts.
22222         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
22223         * tree-ssa-sccvn.c (VN_INFO): Likewise.
22224         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
22225         df_ref_create_structure): Likewise.
22226         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
22227         pool_free): Use gcc_checking_assert.
22228         * alias.c (get_alias_set): Likewise.
22229         * var-tracking.c (variable_htab_free, shared_hash_copy,
22230         canonicalize_values_mark, variable_merge_over_cur): Likewise.
22231         * lto-streamer.c (bp_unpack_value): Likewise.
22232
22233 2010-06-13  Richard Guenther  <rguenther@suse.de>
22234
22235         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
22236         Do not stream but initialize TYPE_CANONICAL to NULL.
22237         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
22238         * gimple.c (gimple_types_compatible_p): Disregard
22239         TYPE_STRUCTURAL_EQUALITY_P.
22240         (gimple_register_type): Use TYPE_CANONICAL as cache.
22241         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
22242         before registering common types.
22243         * config/i386/i386.c (ix86_function_arg_boundary): Do not
22244         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
22245         * tree.h (TYPE_CANONICAL): Clarify documentation.
22246
22247 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
22248
22249         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
22250         LIBCALL_VALUE): Remove macros.
22251         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
22252         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22253         TARGET_FUNCTION_VALUE_REGNO_P): Define.
22254         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
22255         (ia64_function_value): Make static. Handle receiving the function
22256         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
22257
22258 2010-06-12  Jan Hubicka  <jh@suse.cz>
22259
22260         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
22261         at correct place.
22262
22263 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
22264
22265         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
22266
22267 2010-06-12  Jan Hubicka  <jh@suse.cz>
22268
22269         * df-core.c (df_clear_bb_info): New function.
22270         (df_set_blocks): bb_info is always allocated.
22271         (df_get_bb_info): Use block_info_elt_size.
22272         (df_set_bb_info): Likewise.
22273         (df_compact_blocks): Update for new block_info.
22274         (grow_bb_info): New function.
22275         * df-problems.c (df_grow_bb_info): Move to df-core.c
22276         (df_rd_set_bb_info): Remove.
22277         (df_rd_free_bb_info): Do not free block pool.
22278         (df_rd_alloc): Do not create pool, use check for
22279         obstack presence instead of NULL pointer for new blocks.
22280         (df_rd_free): DO not free alloc pool; clear block_info.
22281         (problem_RD): Add size of block info structure.
22282         (df_lr_set_bb_info): Remove.
22283         (df_lr_free_bb_info): Do not free block pool.
22284         (df_lr_alloc): Do not create pool, use check for
22285         obstack presence instead of NULL pointer for new blocks.
22286         (df_lr_free): DO not free alloc pool; clear block_info.
22287         (problem_LR): Add size of block info structure.
22288         (df_live_set_bb_info): Remove.
22289         (df_live_free_bb_info): Do not free block pool.
22290         (df_live_alloc): Do not create pool, use check for
22291         obstack presence instead of NULL pointer for new blocks.
22292         (df_live_free): DO not free alloc pool; clear block_info.
22293         (problem_LIVE): Add size of block info structure.
22294         (problem_CHAIN): Add size of block info structure.
22295         (df_byte_lr_set_bb_info): Remove.
22296         (df_byte_lr_free_bb_info): Do not free block pool.
22297         (df_byte_lr_alloc): Do not create pool, use check for
22298         obstack presence instead of NULL pointer for new blocks.
22299         (df_byte_lr_free): DO not free alloc pool; clear block_info.
22300         (problem_BYTE_LR): Add size of block info structure.
22301         (problem_NOTE): Add size of block info structure.
22302         (df_byte_MD_set_bb_info): Remove.
22303         (df_byte_MD_free_bb_info): Do not free block pool.
22304         (df_byte_MD_alloc): Do not create pool, use check for
22305         obstack presence instead of NULL pointer for new blocks.
22306         (df_byte_MD_free): DO not free alloc pool; clear block_info.
22307         (problem_BD): Add size of block info structure.
22308         * df-scan.c (df_scan_free_internal): Free block pool.
22309         (df_scan_set_bb_info): Remove.
22310         (df_scan_free_bb_info): Check for artificial_defs instead
22311         of bb_info being non-NULL.
22312         (df_scan_alloc): DO not create df_scan_block pool.
22313         (problem_SCAN): Set size of block info.
22314         (df_bb_refs_record): Do not allocate bb_info.
22315         * df.h (df_problem): Add block_info_elt_size.
22316         (struct dataflow): Change block_info to void *.
22317         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
22318         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
22319         in-line structures.
22320
22321 2010-06-12  Jan Hubicka  <jh@suse.cz>
22322
22323         PR tree-optimize/44485
22324         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
22325         containing use of return value of noreturn function.
22326
22327 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
22328
22329         * targhooks.c (default_function_value): Don't use
22330         FUNCTION_OUTGOING_VALUE.
22331         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
22332         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
22333
22334 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
22335
22336         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
22337         Add crtfastmath.o to extra_parts.
22338         * config/mips/crtfastmath.c: New.
22339         * config/mips/linux.h (ENDFILE_SPEC): New.
22340
22341 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
22342
22343         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
22344         old_type in parameter.
22345         (gcc_type_for_value): Update call to gcc_type_for_interval.
22346         (compute_type_for_level_1): Renamed compute_type_for_level.
22347         Update call to gcc_type_for_interval.
22348
22349 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
22350
22351         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
22352         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
22353
22354 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
22355
22356         * opts-common.c: Include options.h.
22357         (integral_argument): Move from opts.c.
22358         (decode_cmdline_option): New.  Based on read_cmdline_option.
22359         * opts.c (integral_argument): Move to opts-common.c.
22360         (read_cmdline_option): Move most contents to
22361         decode_cmdline_option.  Use %qs in diagnostics.
22362         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
22363         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
22364         decode_cmdline_option): New.
22365
22366 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22367
22368         PR target/44481
22369         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
22370         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
22371         (partiysi2_cmp): Ditto.
22372         (*partiyhi2_cmp): Ditto.
22373         (*parityqi2_cmp): Remove.
22374
22375 2010-06-11  Jan Hubicka  <jh@suse.cz>
22376
22377         * bitmap.h (bmp_iter_next_bit): New.
22378         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
22379
22380 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
22381             Eric Botcazou  <ebotcazou@adacore.com>
22382
22383         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
22384         computed cost.
22385
22386 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22387
22388         * config/i386/i386.md (unspec): New define_c_enum.
22389         (unspecv): Ditto.
22390
22391 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
22392
22393         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
22394
22395 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
22396
22397         PR middle-end/44483
22398         * tree-if-conv.c (bb_predicate_s): New struct.
22399         (bb_predicate_p): New.
22400         (bb_has_predicate): New.
22401         (bb_predicate): New.
22402         (set_bb_predicate): New.
22403         (bb_predicate_gimplified_stmts): New.
22404         (set_bb_predicate_gimplified_stmts): New.
22405         (add_bb_predicate_gimplified_stmts): New.
22406         (init_bb_predicate): New.
22407         (free_bb_predicate): New.
22408         (is_predicated): Use bb_predicate.
22409         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
22410         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
22411         before processing their successors.
22412         (clean_predicate_lists): Removed.
22413         (find_phi_replacement_condition): Use bb_predicate.
22414         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
22415         computations.
22416         (insert_gimplified_predicates): New.
22417         (combine_blocks): Call insert_gimplified_predicates.
22418         (tree_if_conversion): Call free_bb_predicate instead of
22419         clean_predicate_lists.
22420
22421 2010-10-11  Paul Brook  <paul@codesourcery.com>
22422
22423         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
22424         * config/arm/arm.c (all_architectures): Change v7e-m default to
22425         cortexm4.
22426         * config/arm/arm-cores.def: Add cortex-m4.
22427         * config/arm/arm-tune.md: Regenerate.
22428
22429 2010-06-11  Jan Hubicka  <jh@suse.cz>
22430
22431         * ipa-pure-const.c (special_builtlin_state): New function.
22432         (check_call): Use it instead of special casign BUILT_IN_RETURN.
22433         (propagate_pure_const): Use it.
22434
22435 2010-06-11  Jan Hubicka  <jh@suse.cz>
22436
22437         * df-problems.c (df_live_scratch): Convert to bitmap_head.
22438         (df_live_alloc): Initialize df_live_scratch when initializing
22439         problem_data.
22440         (df_live_transfer_function): Update uses of df_live_scratch.
22441         (df_live_free): Free problem_data; clear df_live_scratch before
22442         releasing the obstack.
22443         (df_md_free): Free problem data.
22444
22445 2010-06-11  Jan Hubicka  <jh@suse.cz>
22446
22447         * doc/invoke.texi (Wsuggest-attribute): Document.
22448         (Wmissing-noreturn): Remove.
22449         * ipa-pure-const.c (warn_function_noreturn): New function.
22450         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
22451         warn_missing_noreturn.
22452         * common.opt (Wsuggest-attribute=noreturn): New.
22453         * tree-flow.h (warn_function_noreturn): Declare.
22454         * tree-cfg.c (execute_warn_function_noreturn): Use
22455         warn_function_noreturn.
22456         (gate_warn_function_noreturn): New.
22457         (pass_warn_function_noreturn): Update.
22458
22459 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22460
22461         * c-typeck.c (handle_warn_cast_qual): Add loc
22462         parameter. Improve warning message.
22463         (build_c_cast): Pass location to handle_warn_cast_qual.
22464
22465 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22466
22467         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
22468         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
22469         insn mnemonic.
22470         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
22471
22472 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
22473
22474         Fix bootstap on mips
22475         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
22476         be naming typedefs.
22477
22478 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
22479
22480         * system.h (helper_const_non_const_cast): New inline for
22481         gcc version <= 4.0.
22482         (CONST_CAST2): For gcc version <= 4.0 use
22483         new helper to do const/non-const casting.
22484
22485 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22486
22487         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
22488         * Makefile.in (OBJS-common): Include insn-enums.o.
22489         (insn-enums.o): New rule.
22490         (simple_generated_c): Add insn-enums.c.
22491         (build/genenums.o): New rule.
22492         (genprogmd): Add "enums".
22493         * genconstants.c (print_enum_type): Declare a C string array
22494         for each enum.
22495         * genenums.c: New file.
22496         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
22497         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
22498         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
22499
22500 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22501
22502         * doc/md.texi (define_enum_attr): Document.
22503         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
22504         * read-md.h (lookup_enum_type): Declare.
22505         * read-md.c (lookup_enum_type): New function.
22506         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
22507         * genattrtab.c (attr_desc): Add an enum_name field.
22508         (evaluate_eq_attr): Take the associated attribute as argument.
22509         Get the enum prefix from the enum_name field, if defined.
22510         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
22511         (simplify_test_exp): Pass attr to evaluate_eq_attr.
22512         (add_attr_value): New function, split out from...
22513         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
22514         (write_test_expr): Pass attr to evaluate_eq_attr.
22515         (write_attr_get): Use the enum_name as the enum tag, if defined.
22516         (write_attr_valueq): Use the enum_name as a prefix, if defined.
22517         (find_attr): Initialize enum_name.
22518         (main): Handle DEFINE_ENUM_ATTR.
22519         * gensupport.c (process_rtx): Likewise.
22520         * config/mips/mips.h (mips_tune_attr): Delete.
22521         * config/mips/mips.md (cpu): Use define_attr_enum.
22522
22523 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22524
22525         * doc/md.texi (define_c_enum, define_enum): Document.
22526         * read-md.h (md_constant): Add a parent_enum field.
22527         (enum_value, enum_type): New structures.
22528         (upcase_string, traverse_enum_types): Declare.
22529         * read-md.c (enum_types): New variable.
22530         (upcase_string, add_constant): New functions.
22531         (handle_constants): Don't create the hash table here.
22532         Use add_constant.
22533         (traverse_md_constants): Don't check for a null md_constants.
22534         (decimal_string, handle_enum, traverse_enum_types): New functions.
22535         (read_md_files): Initialize md_constants and md_enums.
22536         * genconstants.c (print_md_constant): Ignore info argument.
22537         Only print constants that belong to no enum.
22538         (print_enum_type): New function.
22539         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
22540         for each defined enum type.
22541         * config/mips/mips.md (processor): New define_enum.
22542         (unspec): New define_c_enum.
22543         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
22544         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
22545         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
22546         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
22547         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
22548         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
22549         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
22550         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
22551         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
22552         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
22553         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
22554         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
22555         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
22556         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
22557         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
22558         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
22559         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
22560         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
22561         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
22562         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
22563         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
22564         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
22565         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22566         (UNSPEC_RDDSP): Move to mips-dsp.md.
22567         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
22568         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
22569         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
22570         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
22571         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
22572         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
22573         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
22574         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
22575         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
22576         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
22577         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
22578         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
22579         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
22580         Moved to mips-dspr2.md.
22581         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
22582         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
22583         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
22584         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
22585         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
22586         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
22587         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22588         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22589         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22590         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22591         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22592         UNSPEC_LOONGSON_PSADBH)
22593         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22594         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22595         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
22596         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22597         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22598         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22599         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
22600         (cpu): Update comment.
22601         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
22602         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
22603         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
22604         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
22605         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
22606         UNSPEC_LOONGSON_PCMPEQ)
22607         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
22608         UNSPEC_LOONGSON_PINSR_0)
22609         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22610         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22611         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22612         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22613         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22614         UNSPEC_LOONGSON_PSADBH)
22615         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22616         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22617         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
22618         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22619         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22620         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22621         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
22622         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
22623         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
22624         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
22625         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
22626         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
22627         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
22628         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
22629         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
22630         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
22631         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
22632         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
22633         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
22634         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
22635         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
22636         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
22637         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
22638         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
22639         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
22640         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
22641         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22642         (UNSPEC_RDDSP): Moved from mips.md.
22643         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
22644         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
22645         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
22646         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
22647         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
22648         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
22649         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
22650         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
22651         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
22652         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
22653         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
22654         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
22655         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
22656         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
22657         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
22658         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
22659         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
22660         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
22661         (UNSPEC_SCC): Moved from mips.md.
22662         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
22663         "processor_type" to "processor".
22664         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
22665         * config/mips/mips.h (processor_type): Delete.
22666         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
22667         "processor_type" to "processor".
22668
22669 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22670
22671         * configure.ac (tm_include_list): Add insn-constants.h.
22672         * configure: Regenerate.
22673         * Makefile.in (GTM_H): Move insn-constants.h here from...
22674         (TM_H): ...here.
22675         * mkconfig.sh: Remove special handling for insn-constants.h.
22676
22677 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22678
22679         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
22680         (BUILD_MD): ...this new variable.
22681         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
22682         that include the old contents of simple_generated_h and
22683         simple_generated_c.
22684         (simple_generated_h, simple_generated_c): Include them.  Add
22685         insn-constants.h.
22686         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
22687         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
22688         Remove these dependencies from the main rule and include
22689         insn-conditions.md in the command line only if it appears
22690         in the dependency list.
22691         (insn-constants.h, s-constants): Delete.
22692         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
22693         or gensupport.h.
22694         (build/genmddeps.o): Likewise.
22695         (genprogrtl): New variable that contains everything from genprogmd
22696         except mddeps and constants.
22697         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
22698         depend on $(BUILD_MD)
22699         (genprog): New variable.  Make these programs depend on
22700         $(BUILD_ERRORS).
22701         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
22702         (main): Use read_md_files instead of init_rtx_reader_args.
22703         * genconstants.c: As for genmddeps.c.
22704         * read-md.h (read_skip_construct): Declare.
22705         * read-md.c (read_skip_construct): New function.
22706         (handle_file): Allow a null handle_directive, skipping the
22707         construct if so.
22708         (parse_include): Update the comment accordingly.
22709
22710 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22711
22712         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
22713         * genmddeps.c: Include read-md.h.
22714         (main): Call init_rtx_reader_args instead of init_md_reader_args.
22715         * genattr.c (main): Likewise.
22716         * genattrtab.c (main): Likewise.
22717         * genautomata.c (main): Likewise.
22718         * gencodes.c (main): Likewise.
22719         * genconditions.c (main): Likewise.
22720         * genconfig.c (main): Likewise.
22721         * genconstants.c (main): Likewise.
22722         * genemit.c (main): Likewise.
22723         * genextract.c (main): Likewise.
22724         * genflags.c (main): Likewise.
22725         * genopinit.c (main): Likewise.
22726         * genoutput.c (main): Likewise.
22727         * genpeep.c (main): Likewise.
22728         * genrecog.c (main): Likewise.
22729         * genpreds.c (main): Likewise.
22730         * gensupport.h (in_fname): Move to read-md.h.
22731         (init_md_reader_args_cb): Rename to...
22732         (init_rtx_reader_args_cb): ...this and return a bool.
22733         (init_md_reader_args): Rename to...
22734         (init_rtx_reader_args): ...this and return a bool.
22735         (include_callback): Move to read-md.h.
22736         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
22737         (file_name_list, first_dir_md_include): Move to read-md.c
22738         (first_bracket_include): Delete unused variable.
22739         (last_dir_md_include): Move to read-md.c.
22740         (process_include): Delete, moving code to read-md.c:handle_include.
22741         (process_rtx): Don't handle INCLUDE.
22742         (save_string): Delete.
22743         (rtx_handle_directive): New function.
22744         (init_md_reader_args_cb): Rename to...
22745         (init_rtx_reader_args_cb): ...this and return a boolean success value.
22746         Use read_md_args.
22747         (init_md_reader_args): Rename to...
22748         (init_rtx_reader_args): ...this and return a boolean success value.
22749         * rtl.def (INCLUDE): Delete.
22750         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
22751         argument.
22752         * read-rtl.c (read_conditions): Don't gobble ')' here.
22753         (read_mapping): Likewise.
22754         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
22755         Handle top-level non-rtx constructs here rather than in read_rtx_1.
22756         Store the whole queue in *X.  Remove call to init_md_reader.
22757         (read_rtx_1): Rename to...
22758         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
22759         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
22760         here.
22761         (read_nested_rtx): New function.  Handle (nil) here rather than
22762         in read_rtx_code.
22763         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
22764         gobble ')' here.
22765         * read-md.h (directive_handler_t): New type.
22766         (in_fname, include_callback): Moved from read-md.h.
22767         (read_constants, init_md_reader): Delete.
22768         (read_md_files): Declare.
22769         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
22770         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
22771         from gensupport.c.
22772         (read_constants): Rename to...
22773         (handle_constants): ...this.  Don't gobble ')' here.
22774         (handle_include, handle_file, handle_toplevel_file)
22775         (parse_include): New functions, mostly taken from gensupport.c.
22776         (init_md_reader): Subsume into...
22777         (read_md_files): ...this new function.
22778
22779 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22780
22781         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
22782         (unread_char): Decrement read_md_lineno after putting back '\n'.
22783         * read-md.c (fatal_with_file_and_line): Push back any characters
22784         that we decide not to add to the context.
22785         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
22786         fatal_expected_char in cases where '/' ends a line (for example).
22787         (read_name): Don't increment read_md_lineno here.
22788         (read_escape): Likewise.
22789         (read_quoted_string): Likewise.
22790         (read_braced_string): Likewise.
22791
22792 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22793
22794         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
22795         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
22796         * genconstants.c: Include read-md.h.
22797         * read-rtl.c (md_constants): Move to read-md.c.
22798         (md_name): Move to read-md.h.
22799         (initialize_iterators): Use leading_string_hash instead of def_hash
22800         and leading_string_eq_p instead of def_name_eq_p.
22801         (read_name): Move to read-md.c.
22802         (def_hash, def_name_eq_p): Delete.
22803         (read_constants, traverse_md_constants): Move to read-md.c.
22804         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
22805         * read-md.h: Include hashtab.h.
22806         (md_name): Moved from read-rtl.c.
22807         (md_constant): Moved from read-md.h.
22808         (leading_string_hash, leading_string_eq_p, read_name)
22809         (read_constants, traverse_md_constants): Declare.
22810         * read-md.c (md_constants): Moved from read-rtl.c.
22811         (leading_string_hash, leading_string_eq_p): New functions.
22812         (read_name, read_constants, traverse_md_constants): Moved from
22813         read-rtl.c.
22814
22815 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22816
22817         * read-rtl.c (md_name): New structure.
22818         (read_name): Take an md_name instead of a buffer pointer.
22819         Use the "string" field instead of strcpy when expanding constants.
22820         (read_constants): Remove the tmp_char argument.  Update the calls
22821         to read_name, using two local name buffers instead of the tmp_char
22822         argument.  Merge the constant-creation code.
22823         (read_conditions): Remove the tmp_char argument.  Update the calls
22824         to read_name, using a local name buffer instead of the tmp_char
22825         argument.
22826         (read_mapping): Replace tmp_char variable with a local name buffer.
22827         Update the calls to read_name.
22828         (read_rtx_1): Likewise.  Update the calls to read_constants and
22829         read_conditions.
22830
22831 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22832
22833         * Makefile.in (build/read-md.o): Depend on errors.h.
22834         * read-md.h (error_with_line): Declare.
22835         * read-md.c: Include errors.h.
22836         (message_with_line_1): New function, extracted from...
22837         (message_with_line): ...here.
22838         (error_with_line): New function.
22839         * genattrtab.c: If a call to message_with_line is followed by
22840         "have_error = 1;", replace both statements with a call to
22841         error_with_line.
22842         * genoutput.c: Likewise.
22843         * genpreds.c: Likewise.
22844         * genrecog.c: If a call to message_with_line is followed by
22845         "error_count++;", replace both statements with a call to
22846         error_with_line.
22847         (errorcount): Delete.
22848         (main): Don't check it.
22849         * gensupport.c: If a call to message_with_line is followed by
22850         "errors = 1;", replace both statements with a call to error_with_line.
22851         (errors): Delete.
22852         (process_define_cond_exec): Check have_error instead of errors.
22853         (init_md_reader_args_cb): Likewise.  Don't set errors.
22854
22855 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22856
22857         * read-md.h (read_md_file): Declare.
22858         (read_char, unread_char): New functions.
22859         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
22860         (read_quoted_string, read_string): Remove FILE * argument.
22861         * read-md.c (read_md_file): New variable.
22862         (read_md_filename, read_md_lineno): Update comments and remove
22863         unnecessary initialization.
22864         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
22865         (read_escape, read_quoted_string, read_braced_string, read_string):
22866         Remove FILE * argument.  Update calls accordingly, using read_char
22867         and unread_char instead of getc and ungetc.
22868         * rtl.h (read_rtx): Remove FILE * argument.
22869         * read-rtl.c (iterator_group): Remove FILE * argument from
22870         "find_builtin".
22871         (iterator_traverse_data): Remove "infile" field.
22872         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
22873         (add_mapping, read_name, read_constants, read_conditions)
22874         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
22875         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
22876         Remove file arguments from all calls, using read_char and unread_char
22877         instead of getc and ungetc.
22878         * gensupport.c (process_include): Preserve read_md_file around
22879         the include.  Set read_md_file to the handle of the included file.
22880         Update call to read_rtx.
22881         (init_md_reader_args_cb): Set read_md_file to the handle of the file
22882         and remove local FILE *.  Update calls to read_rtx.
22883
22884 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22885
22886         * read-md.h (read_rtx_lineno): Rename to...
22887         (read_md_lineno): ...this.
22888         (read_rtx_filename): Rename to...
22889         (read_md_filename): ...this.
22890         (copy_rtx_ptr_loc): Rename to...
22891         (copy_md_ptr_loc): ...this.
22892         (print_rtx_ptr_loc): Rename to...
22893         (print_md_ptr_loc): ...this.
22894         * read-md.c: Likewise.  Update references after renaming.
22895         (string_obstack): Replace RTL with MD in comment.
22896         (set_rtx_ptr_loc): Rename to...
22897         (set_md_ptr_loc): ...this.
22898         (get_rtx_ptr_loc): Rename to...
22899         (get_md_ptr_loc): ...this.
22900         * genconditions.c: Update references after renaming.
22901         * genemit.c: Likewise.
22902         * genoutput.c: Likewise.
22903         * genpreds.c: Likewise.
22904         * gensupport.c: Likewise.
22905         * read-rtl.c: Likewise.
22906
22907 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22908
22909         * Makefile.in (READ_MD_H): New variable.
22910         (BUILD_RTL): Add build/read-md.o.
22911         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
22912         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
22913         (build/genattrtab.o, build/genconditions.o build/genemit.o)
22914         (build/genextract.o, build/genflags.o, build/genoutput.o)
22915         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
22916         (build/read-md.o): New rule.
22917         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
22918         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
22919         * coretypes.h: ...here.
22920         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
22921         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
22922         * genattr.c: Include read-md.h.
22923         * genattrtab.c: Likewise.
22924         * genconditions.c: Likewise.
22925         * genemit.c: Likewise.
22926         * genextract.c: Likewise.
22927         * genflags.c: Likewise.
22928         * genoutput.c: Likewise.
22929         * genpreds.c: Likewise.
22930         * genrecog.c: Likewise.
22931         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
22932         (join_c_conditions, print_c_condition, read_rtx_filename)
22933         (read_rtx_lineno): Move to read-md.h.
22934         * read-rtl.c: Include read-md.h.
22935         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
22936         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
22937         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
22938         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
22939         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
22940         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
22941         (read_braced_string, read_string): Move to read-md.c.
22942         (read_rtx): Move some initialization to init_md_reader and call
22943         init_md_reader here.
22944         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
22945         Move to read-md.h.
22946         * gensupport.c: Include read-md.h.
22947         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
22948         * read-md.h, read-md.c: New files.
22949
22950 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
22951
22952         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22953         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22954         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
22955         * config/moxie/moxie.c (moxie_function_value): Make static.
22956         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
22957         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22958
22959 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22960
22961         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
22962         * dbgcnt.def (tree_sra): New counter.
22963         * tree-sra.c: Include dbgcnt.h.
22964         (gate_intra_sra): Check tree_sra debug counter.
22965
22966 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22967
22968         PR tree-optimization/44258
22969         * tree-sra.c (build_access_subtree): Return false iff there is a
22970         partial overlap.
22971         (build_access_trees): Likewise.
22972         (analyze_all_variable_accesses): Disqualify candidates if
22973         build_access_trees returns true for them.
22974
22975 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
22976
22977         PR debug/41371
22978         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
22979         tail-recurse into canonical node.  Fast-forward over
22980         non-canonical VALUEs.
22981
22982 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
22983
22984         PR boostrap/44470
22985         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
22986         (*addsi_1_zext) <TYPE_LEA>: Likewise.
22987         (add lea splitter): Likewise.
22988         (add_zext lea splitter): Likewise.
22989
22990 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
22991
22992         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
22993
22994 2010-06-10  Jan Hubicka  <jh@suse.cz>
22995
22996         * df-problems.c (df_live_problem_data): Add live_bitmaps.
22997         (df_live_alloc): Initialize problem data and live_osbtacks.
22998         (df_live_finalize): Remove obstack, problem data; do not
22999         clear all bitmaps.
23000         (df_live_top_dump, df_live_bottom_dump): Do not dump old
23001         data when not allocated.
23002         (df_live_verify_solution_start): Do not allocate problem data.
23003         (df_live_verify_solution_end): Check if out is allocated.
23004         (struct df_md_problem_data): New structure.
23005         (df_md_alloc): Allocate problem data.
23006         (df_md_free): Free problem data; do not clear bitmaps.
23007
23008 2010-06-10  Jan Beulich  <jbeulich@novell.com>
23009
23010         PR bootstrap/37304
23011         * configure.ac: Replace $() with ${} when intending to expand
23012         variables rather than invoking commands.
23013         * configure: Re-generate.
23014
23015 2010-06-10  Jan Hubicka  <jh@suse.cz>
23016
23017         PR rtl-optimization/44460
23018         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23019         TYPE_NEEDS_CONSTRUCTING sanity check.
23020
23021 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
23022
23023         * doc/include/fdl.texi: Move to GFDL version 1.3.
23024
23025         * doc/cpp.texi: Move to GFDL version 1.3.
23026         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
23027         * doc/gccint.texi: Move to GFDL version 1.3.
23028         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
23029         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
23030         * doc/invoke.texi: Move to GFDL version 1.3.
23031
23032 2010-06-09  Jan Hubicka  <jh@suse.cz>
23033
23034         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23035         Break out from ...
23036         (propagate) ... here; swap the order.
23037
23038 2010-06-09  Jan Hubicka  <jh@suse.cz>
23039
23040         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
23041         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
23042         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
23043         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
23044
23045 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23046
23047         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
23048         Do not the gather memory reference in the outer loop if the step
23049         is not a constant.
23050
23051 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23052
23053         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
23054         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
23055         8 to 4.  Minor change of the related comments.
23056
23057 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23058
23059         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
23060         the scev analysis when the variable is not used outside the loop
23061         in a close phi node: call compute_overall_effect_of_inner_loop.
23062
23063 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23064
23065         * graphite-sese-to-poly.c (single_pred_cond): Renamed
23066         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
23067         (build_sese_conditions_before): Renamed call to single_pred_cond.
23068         (build_sese_conditions_after): Same.
23069
23070 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23071
23072         * graphite-poly.h: Fix comments and indentation.
23073         * graphite-sese-to-poly.c: Same.
23074         (build_sese_conditions_before): Compute stmt and gbb only when needed.
23075         * tree-chrec.c: Fix comments and indentation.
23076         (tree-ssa-loop-niter.c): Same.
23077
23078 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
23079
23080         PR rtl-optimization/42461
23081         * dce.c (deletable_insn_p): Return true for const or pure calls again.
23082         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
23083
23084 2010-06-09  Jan Hubicka  <jh@suse.cz>
23085
23086         * bitmap.c (bitmap_and): Walk array forward.
23087         (bitmap_and_compl_into): Likewise.
23088         (bitmap_xor): Likewise.
23089         (bitmap_xor_into):  Likewise.
23090         (bitmap_equal_p): Likewise.
23091         (bitmap_intersect_p): Likewise.
23092         (bitmap_intersect_compl_p): Likewise.
23093         (bitmap_ior_and_into): Likewise.
23094         (bitmap_elt_copy): Likewise.
23095         (bitmap_and_compl): Likewise.
23096         (bitmap_elt_ior): Likewise.
23097
23098 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
23099
23100         * opts-common.c (prune_options): Ensure replacement argv array
23101         is correctly terminated by a NULL entry.
23102
23103 2010-06-09  Jan Hubicka  <jh@suse.cz>
23104
23105         * cgraph.h (varpool_first_static_initializer,
23106         varpool_next_static_initializer): Make checking only when
23107         checking enabled.
23108         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
23109         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
23110         gcc_assert to gcc_checking_assert.
23111         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
23112         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
23113         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
23114         op_iter_init_phiuse, op_iter_init_phidef,
23115         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
23116         gcc_checking_assert.
23117         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
23118         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
23119         partition_is_global, live_on_entry, live_on_exit,
23120         live_merge_and_clear): Likewise.
23121         * system.h (gcc_checking_assert): New macro.
23122         * gimple.h (set_bb_seq): Use gcc_checking_assert.
23123
23124 2010-06-09  Jason Merrill  <jason@redhat.com>
23125
23126         * Makefile.in (TAGS): Collect tags info from c-family.
23127
23128 2010-06-09  Jan Hubicka  <jh@suse.cz>
23129
23130         * gimple.h (gcc_gimple_checking_assert): New macro.
23131         (gimple_set_def_ops, gimple_set_use_ops,
23132         gimple_set_vuse, gimple_set_vdef,
23133         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
23134         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
23135         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
23136         gimple_asm_output_op, gimple_asm_output_op_ptr,
23137         gimple_asm_set_output_op, gimple_asm_clobber_op,
23138         gimple_asm_set_clobber_op, gimple_asm_label_op,
23139         gimple_asm_set_label_op, gimple_try_set_kind,
23140         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
23141         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
23142         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
23143         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
23144         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
23145         gimple_omp_for_set_initial, gimple_omp_for_final,
23146         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
23147         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
23148         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
23149         conditional with ENABLE_GIMPLE_CHECKING.
23150         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
23151
23152 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
23153
23154         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
23155         (get_computation_cost_at): Use it.
23156         (determine_use_iv_cost_condition): Likewise.
23157         (determine_iv_cost): Likewise.
23158
23159 2010-06-09  Richard Guenther  <rguenther@suse.de>
23160
23161         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
23162         replace constants.
23163
23164 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
23165
23166         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
23167
23168 2010-06-09  Martin Jambor  <mjambor@suse.cz>
23169
23170         PR tree-optimization/44423
23171         * tree-sra.c (dump_access): Dump also grp_assignment_read.
23172         (analyze_access_subtree): Pass negative allow_replacements to children
23173         if the current type is scalar.
23174
23175 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23176
23177         PR testsuite/42843
23178         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
23179         * doc/plugins.texi (Plugin license check): Update information
23180         on type of plugin_is_GPL_compatible.
23181         * Makefile.in (PLUGINCC): Define as $(COMPILER).
23182         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
23183
23184 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
23185
23186         * config/arm/arm.c (thumb2_reorg): New function.
23187         (arm_reorg): Call it.
23188         * config/arm/thumb2.md (define_peephole2 for flag clobbering
23189         arithmetic operations): Delete.
23190
23191 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
23192
23193         PR target/44067
23194         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
23195         e500v2 target.
23196
23197 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23198
23199         PR plugins/44459
23200         * gcc-plugin.h: Encapsulate all declarations in extern "C".
23201
23202 2010-06-08  Jan Hubicka  <jh@suse.cz>
23203
23204         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
23205         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
23206
23207 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
23208
23209         PR tree-optimization/39874
23210         PR middle-end/28685
23211         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
23212         Declare.
23213         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
23214         same_bool_result_p): New.
23215         (and_var_with_comparison, and_var_with_comparison_1,
23216         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
23217         (or_var_with_comparison, or_var_with_comparison_1,
23218         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
23219         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
23220         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
23221         of combine_comparisons.
23222         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
23223
23224 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
23225
23226         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23227         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23228         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
23229         pdp11_function_value_regno_p): New functions.
23230         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23231         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23232
23233 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
23234
23235         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
23236         Thumb-2 in the MINUS case.
23237
23238 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
23239
23240         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
23241
23242         * doc/gty.texi (GTY Options): Document typed GC allocation and
23243         variable_size GTY option.
23244
23245         * ggc-internal.h: New.
23246
23247         * ggc.h: Update copyright year.
23248         (digit_string): Move to stringpool.c.
23249         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
23250         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
23251         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
23252         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
23253         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
23254         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
23255         (ggc_force_collect, ggc_get_size, ggc_statistics)
23256         (ggc_print_common_statistics): Move to ggc-internal.h.
23257         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
23258         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
23259         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
23260         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
23261         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
23262         (ggc_alloc_zone_pass_stat): Remove.
23263         (ggc_internal_alloc_stat, ggc_internal_alloc)
23264         (ggc_internal_cleared_alloc_stat): New.
23265         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
23266         (ggc_internal_vec_alloc_stat)
23267         (ggc_internal_cleared_vec_alloc_stat)
23268         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
23269         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
23270         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
23271         (ggc_cleared_alloc_ptr_array_two_args): New.
23272         (htab_create_ggc, splay_tree_new_ggc): Redefine.
23273         (ggc_splay_alloc): Change the type of the first argument to
23274         enum gt_types_enum.
23275         (ggc_alloc_string): Make macro.
23276         (ggc_alloc_string_stat): New.
23277         (ggc_strdup): Redefine.
23278         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
23279         (ggc_alloc_rtvec_sized): New.
23280         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
23281         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
23282         (ggc_internal_cleared_alloc_zone_stat)
23283         (ggc_internal_zone_alloc_stat)
23284         (ggc_internal_zone_cleared_alloc_stat)
23285         (ggc_internal_zone_vec_alloc_stat)
23286         (ggc_alloc_zone_rtx_def_stat)
23287         (ggc_alloc_zone_tree_node_stat)
23288         (ggc_alloc_zone_cleared_tree_node_stat)
23289         (ggc_alloc_cleared_gimple_statement_d_stat): New.
23290
23291         * ggc-common.c: Include ggc-internal.h.
23292         (ggc_internal_cleared_alloc_stat): Rename from
23293         ggc_alloc_cleared_stat.
23294         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
23295         (ggc_calloc): Remove.
23296         (ggc_cleared_alloc_htab_ignore_args): New.
23297         (ggc_cleared_alloc_ptr_array_two_args): New.
23298         (ggc_splay_alloc): Add obj_type parameter.
23299         (init_ggc_heuristics): Formatting fixes.
23300
23301         * ggc-none.c: Update copyright year.
23302         (ggc_alloc_stat): Rename to ggc_alloc_stat.
23303         (ggc_alloc_cleared_stat): Rename to
23304         ggc_internal_cleared_alloc_stat.
23305         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23306
23307         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
23308         Remove references to ggc_alloc in comments.
23309         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
23310         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
23311         (new_ggc_zone, destroy_ggc_zone): Remove.
23312         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23313
23314         * ggc-zone.c: Include ggc-internal.h.  Remove references to
23315         ggc_alloc in comments.
23316         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
23317         (ggc_internal_alloc_zone_pass_stat): New.
23318         (ggc_internal_cleared_alloc_zone_stat): New.
23319         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
23320         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
23321         (new_ggc_zone, destroy_ggc_zone): Remove.
23322
23323         * stringpool.c: Update copyright year.  Include ggc-internal.h
23324         (digit_vector): Make static.
23325         (digit_string): Moved from ggc.h.
23326         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
23327         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
23328
23329         * Makefile.in (GGC_INTERNAL_H): New.
23330         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
23331         $(GGC_INTERNAL_H) to dependencies.
23332
23333         * gentype.c: Update copyright year.
23334         (walk_type): Accept variable_size GTY option.
23335         (USED_BY_TYPED_GC_P): New macro.
23336         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
23337         whitespace at the end of strings.
23338         (get_type_specifier, variable_size_p): New functions.
23339         (alloc_quantity, alloc_zone): New enums.
23340         (write_typed_alloc_def): New function.
23341         (write_typed_struct_alloc_def): Likewise.
23342         (write_typed_typed_typedef_alloc_def): Likewise.
23343         (write_typed_alloc_defns): Likewise.
23344         (output_typename, write_splay_tree_allocator_def): Likewise.
23345         (write_splay_tree_allocators): Likewise.
23346         (main): Call write_typed_alloc_defns and
23347         write_splay_tree_allocators.
23348
23349         * lto-streamer.h (lto_file_decl_data_ptr): New.
23350
23351         * passes.c (order): Define using cgraph_node_ptr.
23352
23353         * strinpool.c (struct string_pool_data): Declare nested_ptr using
23354         ht_identifier_ptr.
23355
23356         * gimple.h (union gimple_statement_d): Likewise.
23357
23358         * rtl.h (struct rtx_def): Likewise.
23359         (struct rtvec_def): Likewise.
23360
23361         * tree.h (union tree_node): Likewise.
23362
23363         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
23364
23365         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
23366
23367         * tree-scalar-evolution.c (scev_initialize): Likewise.
23368
23369         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
23370
23371         * dwarf2asm.c (dw2_force_const_mem): Likewise.
23372
23373         * omp-low.c (lower_omp_critical): Likewise.
23374
23375         * bitmap.h (struct bitmap_head_def): Update comment to not
23376         reference ggc_alloc.
23377
23378         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
23379
23380         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
23381
23382         * ipa-prop.c (duplicate_ggc_array): Rename to
23383         duplicate_ipa_jump_func_array.  Use typed GC allocation.
23384         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
23385
23386         * gimple.c (gimple_alloc_stat): Use
23387         ggc_alloc_cleared_gimple_statement_d_stat.
23388
23389         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
23390
23391         * tree.c (make_node_stat): Use
23392         ggc_alloc_zone_cleared_tree_node_stat.
23393         (make_tree_vec_stat): Likewise.
23394         (build_vl_exp_stat): Likewise.
23395         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
23396         (make_tree_binfo_stat): Likewise.
23397         (tree_cons_stat): Likewise.
23398
23399         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
23400         (shallow_copy_rtx_stat): Likewise.
23401         (make_node_stat): Likewise.
23402
23403         * lto-symtab.c: Fix comment.
23404
23405         * tree-cfg.c (create_bb): Update comment to not reference
23406         ggc_alloc_cleared.
23407         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
23408
23409         * varpool.c (varpool_node): Use typed GC allocation.
23410         (varpool_extra_name_alias): Likewise.
23411
23412         * varasm.c (emutls_decl): Likewise.
23413         (get_unnamed_section): Likewise.
23414         (get_noswitch_section): Likewise.
23415         (get_section): Likewise.
23416         (get_block_for_section): Likewise.
23417         (build_constant_desc): Likewise.
23418         (create_constant_pool): Likewise.
23419         (force_const_mem): Likewise.
23420
23421         * tree.c (build_vl_exp_stat): Likewise.
23422         (build_real): Likewise.
23423         (build_string): Likewise.
23424         (decl_debug_expr_insert): Likewise.
23425         (decl_value_expr_insert): Likewise.
23426         (type_hash_add): Likewise.
23427         (build_omp_clause): Likewise.
23428
23429         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
23430
23431         * tree-ssa.c (init_tree_ssa): Likewise.
23432
23433         * tree-ssa-structalias.c (heapvar_insert): Likewise.
23434
23435         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
23436
23437         * tree-ssa-loop-niter.c (record_estimate): Likewise.
23438
23439         * tree-ssa-alias.c (get_ptr_info): Likewise.
23440
23441         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
23442
23443         * tree-phinodes.c (allocate_phi_node): Likewise.
23444
23445         * tree-iterator.c (tsi_link_before): Likewise.
23446         (tsi_link_after): Likewise.
23447
23448         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
23449
23450         * tree-dfa.c (create_var_ann): Likewise.
23451
23452         * tree-cfg.c (create_bb): Likewise.
23453
23454         * toplev.c (alloc_for_identifier_to_locale): Likewise.
23455         (general_init): Likewise.
23456
23457         * stringpool.c (stringpool_ggc_alloc): Likewise.
23458         (gt_pch_save_stringpool): Likewise.
23459
23460         * sese.c (if_region_set_false_region): Likewise.
23461
23462         * passes.c (do_per_function_toporder): Likewise.
23463
23464         * optabs.c (set_optab_libfunc): Likewise.
23465         (set_conv_libfunc): Likewise.
23466
23467         * lto-symtab.c (lto_symtab_register_decl): Likewise.
23468
23469         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
23470         (input_eh_region): Likewise.
23471         (input_eh_lp): Likewise.
23472         (make_new_block): Likewise.
23473         (unpack_ts_real_cst_value_fields): Likewise.
23474
23475         * lto-section-in.c (lto_new_in_decl_state): Likewise.
23476
23477         * lto-cgraph.c (input_node_opt_summary): Likewise.
23478
23479         * loop-init.c (loop_optimizer_init): Likewise.
23480
23481         * lambda.h (lambda_vector_new): Likewise.
23482
23483         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
23484
23485         * ira.c (update_equiv_regs): Likewise.
23486
23487         * ipa.c (cgraph_node_set_new): Likewise.
23488         (cgraph_node_set_add): Likewise.
23489         (varpool_node_set_new): Likewise.
23490         (varpool_node_set_add): Likewise.
23491
23492         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
23493         (duplicate_ipa_jump_func_array): Likewise.
23494         (ipa_read_node_info): Likewise.
23495
23496         * ipa-cp.c (ipcp_create_replace_map): Likewise.
23497
23498         * integrate.c (get_hard_reg_initial_val): Likewise.
23499
23500         * gimple.c (gimple_alloc_stat): Likewise.
23501         (gimple_build_omp_for): Likewise.
23502         (gimple_seq_alloc): Likewise.
23503         (gimple_copy): Likewise.
23504
23505         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
23506         (gsi_insert_after_without_update): Likewise.
23507
23508         * function.c (add_frame_space): Likewise.
23509         (insert_temp_slot_address): Likewise.
23510         (assign_stack_temp_for_type): Likewise.
23511         (allocate_struct_function): Likewise.
23512         (types_used_by_var_decl_insert): Likewise.
23513
23514         * except.c (init_eh_for_function): Likewise.
23515         (gen_eh_region): Likewise.
23516         (gen_eh_region_catch): Likewise.
23517         (gen_eh_landing_pad): Likewise.
23518         (add_call_site): Likewise.
23519
23520         * emit-rtl.c (get_mem_attrs): Likewise.
23521         (get_reg_attrs): Likewise.
23522         (start_sequence): Likewise.
23523         (init_emit): Likewise.
23524
23525         * dwarf2out.c (new_cfi): Likewise.
23526         (queue_reg_save): Likewise.
23527         (dwarf2out_frame_init): Likewise.
23528         (new_loc_descr): Likewise.
23529         (find_AT_string): Likewise.
23530         (new_die): Likewise.
23531         (add_var_loc_to_decl): Likewise.
23532         (clone_die): Likewise.
23533         (clone_as_declaration): Likewise.
23534         (break_out_comdat_types): Likewise.
23535         (new_loc_list): Likewise.
23536         (loc_descriptor): Likewise.
23537         (add_loc_descr_to_each): Likewise.
23538         (add_const_value_attribute): Likewise.
23539         (tree_add_const_value_attribute): Likewise.
23540         (add_comp_dir_attribute): Likewise.
23541         (add_name_and_src_coords_attributes): Likewise.
23542         (lookup_filename): Likewise.
23543         (store_vcall_insn): Likewise.
23544         (dwarf2out_init): Likewise.
23545
23546         * dbxout.c (dbxout_init): Likewise.
23547
23548         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
23549
23550         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
23551
23552         * config/score/score7.c (score7_output_external): Likewise.
23553
23554         * config/score/score3.c (score3_output_external): Likewise.
23555
23556         * config/s390/s390.c (s390_init_machine_status): Likewise.
23557
23558         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
23559         (rs6000_init_machine_status): Likewise.
23560         (output_toc): Likewise.
23561
23562         * config/pa/pa.c (pa_init_machine_status): Likewise.
23563         (get_deferred_plabel): Likewise.
23564
23565         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
23566
23567         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
23568
23569         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
23570
23571         * config/mep/mep.c (mep_init_machine_status): Likewise.
23572         (mep_note_pragma_flag): Likewise.
23573
23574         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
23575
23576         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
23577
23578         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
23579
23580         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
23581         (i386_pe_maybe_record_exported_symbol): Likewise.
23582
23583         * config/i386/i386.c (get_dllimport_decl): Likewise.
23584         (ix86_init_machine_status): Likewise.
23585         (assign_386_stack_local): Likewise.
23586
23587         * config/frv/frv.c (frv_init_machine_status): Likewise.
23588
23589         * config/darwin.c (machopic_indirection_name): Likewise.
23590
23591         * config/cris/cris.c (cris_init_machine_status): Likewise.
23592
23593         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
23594
23595         * config/avr/avr.c (avr_init_machine_status): Likewise.
23596
23597         * config/arm/arm.c (arm_init_machine_status): Likewise.
23598
23599         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
23600         (alpha_need_linkage): Likewise.
23601         (alpha_use_linkage): Likewise.
23602
23603         * cgraph.c (cgraph_allocate_node): Likewise.
23604         (cgraph_create_edge_1): Likewise.
23605         (cgraph_create_indirect_edge): Likewise.
23606         (cgraph_add_asm_node): Likewise.
23607
23608         * cfgrtl.c (init_rtl_bb_info): Likewise.
23609
23610         * cfgloop.c (alloc_loop): Likewise.
23611         (rescan_loop_exit): Likewise.
23612
23613         * cfg.c (init_flow): Likewise.
23614         (alloc_block): Likewise.
23615         (unchecked_make_edge): Likewise.
23616
23617         * c-parser.c (c_parse_init): Likewise.
23618         (c_parse_file): Likewise.
23619
23620         * c-decl.c (bind): Likewise.
23621         (record_inline_static): Likewise.
23622         (push_scope): Likewise.
23623         (make_label): Likewise.
23624         (lookup_label_for_goto): Likewise.
23625         (finish_struct): Likewise.
23626         (finish_enum): Likewise.
23627         (c_push_function_context): Likewise.
23628
23629         * bitmap.c (bitmap_element_allocate): Likewise.
23630         (bitmap_gc_alloc_stat): Likewise.
23631
23632         * alias.c (record_alias_subset): Likewise.
23633         (init_alias_analysis): Likewise.
23634
23635 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
23636
23637         * fold-const.c (fold_comparison): Remove redundant parenthesis.
23638         * tree-inline.c (expand_call_inline): Pass translated return value of
23639         cgraph_inline_failed_string to diagnostic function.
23640
23641 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
23642             Shujing Zhao  <pearly.zhao@oracle.com>
23643
23644         PR c/37724
23645         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
23646         implicit bad conversions is initialization.
23647         (error_init): Use gmsgid instead of msgid for argument name and change
23648         the call for error.
23649         (pedwarn_init): Use gmsgid instead of msgid for argument name and
23650         change the call for pedwarn.
23651         (warning_init): Use gmsgid instead of msgid for argument name and
23652         change the call for warning.
23653
23654 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
23655
23656         * config/mips/mips-protos.h (mips_print_operand): Delete.
23657         (mips_print_operand_address): Delete.
23658         * config/mips/mips.h (mips_print_operand_punct): Delete.
23659         (PRINT_OPERAND): Delete.
23660         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23661         (PRINT_OPERAND_ADDRESS): Delete.
23662         * config/mips/mips.c (mips_print_operand_punct): Make static.
23663         (mips_print_operand_address): Make static.
23664         (mips_print_operand): Make static.  Call
23665         mips_print_operand_punct_valid_p.
23666         (mips_print_operand_punct_valid_p): New function.
23667         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23668         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23669
23670 2010-06-07  Jan Hubicka  <jh@suse.cz>
23671
23672         PR middle-end/44454
23673         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
23674         are allocated.
23675
23676 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
23677
23678         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
23679         name of RECORD.
23680
23681 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23682
23683         * doc/sourcebuild.texi (Effective-Target Keywords, Other
23684         attributes): Document gas.
23685
23686 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
23687
23688         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
23689         <TYPE_LEA>: Split instruction.
23690         <default>: Remove alternative 2 handling.
23691         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
23692         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
23693         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
23694
23695         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
23696         (ashift_zext lea splitter): Use DImode for multiplication.
23697
23698         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
23699         to generate addition.
23700
23701 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
23702
23703         * common.opt (fira-verbose): Use Var.
23704         (fpcc-struct-return): Use Init instead of VarExists.
23705         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
23706         toplev.c.
23707         * flags.h (flag_signed_char, flag_short_enums,
23708         flag_pcc_struct_return, flag_ira_verbose,
23709         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
23710         * toplev.c (flag_detailed_statistics, flag_signed_char,
23711         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
23712         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
23713         * toplev.h (flag_crossjumping, flag_if_conversion,
23714         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
23715         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
23716         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
23717         flag_cprop_registers, time_report, flag_ira_loop_pressure,
23718         flag_ira_coalesce, flag_ira_move_spills,
23719         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
23720
23721 2010-06-07  Jan Hubicka  <jh@suse.cz>
23722
23723         * df-core.c (df_analyze_problem): Do verification after allocation.
23724
23725         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
23726         (df_lr_alloc): Initialize problem data; move bitmaps to
23727         lr_bitmaps obstack.
23728         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
23729         (df_lr_verify_solution_start): Do not initialize problem data;
23730         allocate bitmaps in lr_bitmaps.
23731         (df_lr_verify_solution_end): Do not free problem data.
23732
23733 2010-06-07  Jan Hubicka  <jh@suse.cz>
23734
23735         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
23736         if caller is noreturn.
23737         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
23738         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
23739         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
23740         * ipa-pure-const.c (check_decl): Add IPA parameter.
23741         (state_from_flags): New function.
23742         (better_state, worse_state): New functions.
23743         (check_call): When in IPA mode, do not care about callees.
23744         (check_load, check_store): Update.
23745         (check_ipa_load, check_ipa_store): New.
23746         (check_stmt): When in IPA mode, use IPA checkers.
23747         (analyze_function): Use state_from_flags.
23748         (propagate): Check indirect edges and references.
23749
23750 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
23751
23752         PR rtl-optimization/44404
23753         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
23754         of count_occurrences to see if it's safe to modify mem_insn.
23755
23756 2010-06-07  Richard Guenther  <rguenther@suse.de>
23757
23758         * gimplify.c (gimplify_cleanup_point_expr): For empty body
23759         and EH-only cleanup drop the cleanup instead of inserting it
23760         unconditionally.
23761
23762 2010-06-07  Ira Rosen  <irar@il.ibm.com>
23763
23764         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
23765         documentation.
23766         * targhooks.c (default_builtin_vectorization_cost): New function.
23767         * targhooks.h (default_builtin_vectorization_cost): Declare.
23768         * target.h (enum vect_cost_for_stmt): Define.
23769         (builtin_vectorization_cost): Change argument and comment.
23770         * tree-vectorizer.h: Remove cost model macros.
23771         * tree-vect-loop.c: Include target.h.
23772         (vect_get_cost): New function.
23773         (vect_estimate_min_profitable_iters): Replace cost model macros with
23774         calls to vect_get_cost.
23775         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
23776         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
23777         default implementation.
23778         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
23779         calls to target hook builtin_vectorization_cost.
23780         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
23781         Likewise.
23782         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
23783         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
23784         implementation to return costs.
23785         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
23786         * config/spu/spu.h: Remove vectorizer cost model macros.
23787         * config/i386/i386.h: Likewise.
23788         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
23789         a call to target hook builtin_vectorization_cost.
23790
23791 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
23792
23793         PR target/44319
23794         * config/i386/i386.c (override_options): Turn zee pass on for level 2
23795         and above and defer till target is known.
23796         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
23797         turn off otherwise.
23798
23799 2010-05-25  Jan Hubicka  <jh@suse.cz>
23800
23801         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
23802         (df_compact_blocks): Likewise.
23803         * df.h (struct df): Turn hardware_regs_used,
23804         regular_block_artificial_uses, eh_block_artificial_uses,
23805         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
23806         bitmap_head.
23807         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
23808         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
23809         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
23810         df_scan_blocks, df_insn_delete, df_insn_rescan,
23811         df_insn_rescan_debug_internal, df_insn_rescan_all,
23812         df_process_deferred_rescans, df_process_deferred_rescans,
23813         df_notes_rescan, df_get_call_refs, df_get_call_refs,
23814         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
23815         df_record_entry_block_defs, df_record_exit_block_uses,
23816         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
23817         df_scan_verify): Update.
23818
23819 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
23820
23821         PR c++/44188
23822         * c-common.c (is_typedef_decl): Move this definition ...
23823         * tree.c (is_typedef_decl): ... here.
23824         (typdef_variant_p): Move definition here from cp/tree.c.
23825         * c-common.h (is_typedef_decl): Move this declaration ...
23826         * tree.h (is_typedef_decl): ... here.
23827         (typedef_variant_p): Move declaration here from cp/cp-tree.h
23828         * dwarf2out.c (is_naming_typedef_decl): New function.
23829         (gen_tagged_type_die): Split out of ...
23830         (gen_type_die_with_usage): ... this function. When an anonymous
23831         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
23832         is emitted for the typedef.
23833         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
23834         anonymous tagged types.
23835
23836 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23837
23838         PR c/20000
23839         * c-decl.c (grokdeclarator): Delete warning.
23840
23841 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
23842
23843         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
23844         newly built CALL_EXPR.
23845         * tree-profile.c (tree_profiling): Don't profile functions produced
23846         for built-in stuff.
23847
23848 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
23849
23850         PR bootstrap/44427
23851         PR bootstrap/44428
23852         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
23853         endianness-independent.
23854
23855 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
23856
23857         * c-common.c: Move to c-family/.
23858         * c-common.def: Likewise.
23859         * c-common.h: Likewise.
23860         * c-cppbuiltin.c: Likewise.
23861         * c-dump.c: Likewise.
23862         * c-format.c: Likewise.
23863         * c-format.h : Likewise.
23864         * c-gimplify.c: Likewise.
23865         * c-lex.c: Likewise.
23866         * c-omp.c: Likewise.
23867         * c.opt: Likewise.
23868         * c-opts.c: Likewise.
23869         * c-pch.c: Likewise.
23870         * c-ppoutput.c: Likewise.
23871         * c-pragma.c: Likewise.
23872         * c-pragma.h: Likewise.
23873         * c-pretty-print.c: Likewise.
23874         * c-pretty-print.h: Likewise.
23875         * c-semantics.c: Likewise.
23876         * stub-objc.c: Likewise.
23877
23878         * gengtype.c (get_file_langdir): Special-case files in c-family/.
23879         (get_output_file_with_visibility): Fix name for c-common.h.
23880         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
23881
23882         * c-tree.h: Update include path for moved files.
23883         * c-lang.c: Likewise.
23884         * c-lang.h: Likewise.
23885         * c-parser.c: Likewise.
23886         * c-convert.c: Likewise.
23887         * c-decl.c: Likewise.
23888         * c-objc-common.c: Likewise.
23889         * configure.ac: Make sure c-family/ exists in the build directory.
23890         * configure: Regenerate.
23891         * Makefile.in: Update paths for moved files.  Regroup files per
23892         location and update dependencies.  Move generated_files down after
23893         ALL_GTFILES_H.
23894
23895         * config/spu/spu-c.c: Update paths for moved files.
23896         * config/mep/mep-pragma.c: Likewise.
23897         * config/darwin-c.c: Likewise.
23898         * config/i386/msformat-c.c: Likewise.
23899         * config/i386/i386-c.c: Likewise.
23900         * config/avr/avr-c.c: Likewise.
23901         * config/sol2-c.c: Likewise.
23902         * config/ia64/ia64-c.c: Likewise.
23903         * config/rs6000/rs6000-c.c: Likewise.
23904         * config/arm/arm.c: Likewise.
23905         * config/arm/arm-c.c: Likewise.
23906         * config/h8300/h8300.c: Likewise.
23907         * config/v850/v850-c.c: Likewise.
23908
23909         * config/t-darwin: Fix dependencies for moved files.
23910         * config/t-sol2: Fix dependencies for moved files.
23911         * config/mep/t-mep: Fix dependencies for moved files.
23912         * config/ia64/t-ia64: Fix dependencies for moved files.
23913         * config/rs6000/t-rs6000: Fix dependencies for moved files.
23914         * config/v850/t-v850: Fix dependencies for moved files.
23915         * config/v850/t-v850e: Fix dependencies for moved files.
23916
23917         * config/m32c/m32c-pragma.c
23918
23919         * po/exgettext: Look in c-family/ also.
23920
23921 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
23922
23923         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
23924         (mark_control_dependent_edges_necessary): Call it instead of marking
23925         the last statement manually.
23926         (propagate_necessity): Likewise.
23927
23928 2010-06-05  Jan Hubicka  <jh@suse.cz>
23929
23930         * basic-block.h (compute_dominance_frontiers): Updated.
23931         (compute_idf): Likewise.
23932
23933         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
23934         for dominance frontiers.
23935         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
23936         (insert_updated_phi_nodes_for): Likewise.
23937         (update_ssa): Likewise.
23938         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23939         (compute_dominance_frontiers): Likewise.
23940         (compute_idf): Likewise.
23941         * df-problems.c (df_md_local_compute): Likewise.
23942
23943 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
23944
23945         * target.h (struct gcc_target): Add memory_move_cost field.
23946         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
23947         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
23948         * targhooks.c (default_memory_move_cost): New function.
23949         * targhooks.h (default_memory_move_cost): Declare function.
23950         * reload.h (memory_move_cost): Declare.
23951         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23952         * reginfo.c (memory_move_cost): New function.
23953         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23954         * ira.h (ira_memory_move_cost): Update comment.
23955         * ira.c (ira_memory_move_cost): Update comment.
23956         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
23957         with memory_move_cost.
23958         * postreload.c (reload_cse_simplify_set): (Ditto.).
23959         * reload1.c (choose_reload_regs): (Ditto.).
23960         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
23961         (MEMORY_MOVE_COST):  Revise documentation.
23962
23963         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23964         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23965         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
23966         type of 'in' argument to bool.
23967         (TARGET_MEMORY_MOVE_COST): Define.
23968
23969 2010-06-05  Jan Hubicka  <jh@suse.cz>
23970
23971         * ipa-pure-const.c (propagate): Fix typo in handling of functions
23972         that cannot return.  Be more careful when merging the results with
23973         previously known ones.
23974
23975 2010-06-05  Matthias Klose  <doko@ubuntu.com>
23976
23977         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
23978         function to add the -iplugindir option.
23979         (find_plugindir_spec_function): Add new declaration and function.
23980         (static_spec_func): Use it for "find-plugindir".
23981
23982 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
23983
23984         PR c++/44361
23985         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
23986         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
23987         statement expression.
23988
23989 2010-06-05  Jan Hubicka  <jh@suse.cz>
23990
23991         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
23992         (df_rd_problem_data): Convert sparse_invalidated_by_call,
23993         dense_invalidated_by_call to bitmap head.
23994         (df_rd_alloc, df_rd_bb_local_compute_process_def,
23995         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
23996         df_rd_start_dump, df_lr_verify_transfer_functions,
23997         df_live_verify_transfer_functions, df_chain_create_bb,
23998         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
23999         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
24000         df_simulate_one_insn_forwards, df_md_alloc,
24001         df_md_bb_local_compute_process_def,
24002         df_md_bb_local_compute_process_def, df_md_local_compute,
24003         df_md_transfer_function df_md_free): Update.
24004
24005 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
24006
24007         PR c/44322
24008         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
24009         target type for ADDR_EXPR; require no changes to qualifiers except
24010         for function types.
24011         * c-tree.h (c_build_type_variant): Remove.
24012
24013 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24014
24015         * genautomata.c (get_excl_set): Do work per element, not per char.
24016         (check_presence_pattern_sets): Similar.
24017         (check_absence_pattern_sets): Similar.
24018
24019 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24020
24021         * genautomata.c (curr_state_pass_num): Delete.
24022         (min_issue_delay_pass_states): Delete.
24023         (min_issue_delay): Delete.
24024         (initiate_min_issue_delay_pass_states): Delete.
24025         (output_min_issue_delay_table): Compute min_issue_delay_vect
24026         using a breadth-first search variant.
24027         (output_tables): Don't call initiate_min_issue_delay_pass_states.
24028
24029 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
24030
24031         PR boostrap/44421
24032         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24033         (df_byte_lr_bb_local_compute): Likewise.
24034
24035 2010-06-03  Jason Merrill  <jason@redhat.com>
24036
24037         Implement noexcept operator (5.3.7)
24038         * c-common.c (c_common_reswords): Add noexcept.
24039         * c-common.h (enum rid): Add RID_NOEXCEPT.
24040
24041 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
24042
24043         * config/darwin-driver.c (darwin_default_min_version): Use
24044         GCC-specific formats in diagnostics.
24045         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
24046         diagnostics.
24047         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
24048         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
24049         eval_spec_function, handle_braces, process_brace_body, main,
24050         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
24051         getenv_spec_function, compare_version_strings,
24052         version_compare_spec_function): Use GCC-specific formats in
24053         diagnostics.
24054
24055 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24056
24057         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
24058         that operand 0 and operand 1 are equal.
24059         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
24060         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
24061         and operand 1 are equal.
24062         <default>: Ditto.  Remove ??? comment.
24063         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
24064         and operand 1 are equal.
24065         <default>: Ditto.  Remove ??? comment.
24066         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
24067         are equal.
24068         (*add<mode>_4) <default>: Ditto.
24069         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
24070
24071 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
24072
24073         * config/i386/i386-protos.h (ix86_print_operand): Declare.
24074         * config/i386/i386.c (ix86_print_operand): Make non-static.
24075         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
24076         * output.h (output_operand): Declare.
24077         * final.c (output_operand): Make non-static.
24078
24079 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
24080
24081         PR rtl-optimization/44013
24082         * sched-deps.c (add_dependence_list_and_free): Don't free lists
24083         when processing debug insns.
24084
24085         PR debug/41371
24086         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
24087         recursing.  Check that recursion is bounded.  Rename inner var
24088         to avoid hiding incoming argument.
24089
24090 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24091
24092         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
24093         operands[2] == 255.
24094         (*addqi_3): Ditto.
24095         (*addqi_4): Ditto.
24096         (*addqi_5): Ditto.
24097         (*addqi_ext_1_rex64): Ditto.
24098         (*addqi_ext_1): Ditto.
24099
24100         (*addqi_4): Check for incdec_operand in QImode.
24101
24102         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
24103         using SWI mode iterator.
24104         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
24105         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
24106         mode iterator.
24107         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
24108         using SWI mode iterator.
24109
24110 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24111
24112         PR c/25880
24113         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
24114         * c-format.c (gcc_diag_flag_specs): Add hash.
24115         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
24116         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
24117         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
24118         pp_c_cv_qualifiers. Handle qualifiers spelling here.
24119         (pp_c_type_qualifier_list): Call the function above.
24120         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
24121         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
24122         (WARN_FOR_QUALIFIERS): New macro.
24123         (convert_for_assignment): Use it.
24124
24125 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
24126
24127         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
24128
24129 2010-06-04  Jan Hubicka  <jh@suse.cz>
24130
24131         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
24132         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
24133         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
24134         DF_BYTE_LR_OUT): Update for embedded bitmaps.
24135         * fwprop.c (single_def_use_enter_block): Likewise.
24136         * ddg.c (create_ddg_dep_from_intra_loop_link,
24137         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
24138         * loop-iv.c (latch_dominating_def): Likewise.
24139         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
24140         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
24141         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
24142         df_rd_transfer_function, df_rd_top_dump,
24143         df_rd_bottom_dump): Update.
24144         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
24145         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
24146         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
24147         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
24148         df_lr_verify_solution_start, df_lr_verify_solution_end,
24149         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
24150         df_live_free_bb_info, df_live_alloc, df_live_reset,
24151         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
24152         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
24153         df_live_verify_solution_start, df_live_verify_solution_end,
24154         df_live_verify_transfer_functions, df_chain_create_bb,
24155         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
24156         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24157         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24158         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
24159         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
24160         df_byte_lr_transfer_function, df_byte_lr_top_dump,
24161         df_byte_lr_bottom_dump, df_create_unused_note,
24162         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
24163         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
24164         df_md_transfer_function, df_md_init, df_md_confluence_0,
24165         df_md_confluence_n,
24166         df_md_top_dump, df_md_bottom_dump): Update.
24167         (struct df_lr_problem_data): Embedd bitmap headers.
24168
24169 2010-06-04  Jan Hubicka  <jh@suse.cz>
24170
24171         * dce.c (dce_process_block): Do not re-scan already marked
24172         instructions.
24173
24174 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
24175
24176         PR rtl-optimization/39871
24177         PR rtl-optimization/40615
24178         PR rtl-optimization/42500
24179         PR rtl-optimization/42502
24180         * ira.c (init_reg_equiv_memory_loc: New function.
24181         (ira): Call it twice.
24182         * reload.h (calculate_elim_costs_all_insns): Declare.
24183         * ira-costs.c: Include "reload.h".
24184         (regno_equiv_gains): New static variable.
24185         (init_costs): Allocate it.
24186         (finish_costs): Free it.
24187         (ira_costs): Call calculate_elim_costs_all_insns.
24188         (find_costs_and_classes): Take estimated elimination costs
24189         into account.
24190         (ira_adjust_equiv_reg_cost): New function.
24191         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
24192         * reload1.c (init_eliminable_invariants, free_reg_equiv,
24193         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
24194         (elim_bb): New static variable.
24195         (reload): Move code out of here into init_eliminable_invariants and
24196         free_reg_equiv.  Call them.
24197         (calculate_elim_costs_all_insns): New function.
24198         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
24199         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
24200         but call note_reg_elim_costly if we turned a valid memory address
24201         into an invalid one.
24202         * Makefile.in (ira-costs.o): Depend on reload.h.
24203
24204 2010-06-04  Julian Brown  <julian@codesourcery.com>
24205
24206         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
24207         for pool ranges.
24208
24209 2010-06-04  Richard Guenther  <rguenther@suse.de>
24210
24211         PR lto/41584
24212         * cgraph.h (struct varpool_node): Add lto_file_data field.
24213         * lto-cgraph.c (input_varpool_node): Initialize it.
24214
24215 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24216
24217         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
24218         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
24219         predicate in "type" attribute calculation.
24220         (*addsi_1_zext): Ditto.
24221         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
24222         (*addsi_2_zext): Ditto.
24223         (*add<mode>_3): Ditto.
24224         (*addsi_3_zext): Ditto.
24225         (*add<mode>_5): Ditto.
24226
24227 2010-06-03  Jan Hubicka  <jh@suse.cz>
24228
24229         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
24230         of bitmap_bit_p.
24231         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24232
24233 2010-06-03  Jan Hubicka  <jh@suse.cz>
24234
24235         * df-problems.c (df_create_unused_note, df_note_bb_compute):
24236         micro-optimize the checks when to add new note.
24237
24238 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
24239
24240         * final.c (output_asm_insn): Call
24241         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
24242         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
24243         (output_address): Call targetm.asm_out.print_operand_address.
24244         Update comments.
24245         * target.h (struct gcc_target): Add print_operand,
24246         print_operand_address, and print_operand_punct_valid_p fields.
24247         * targhooks.h (default_print_operand): Declare.
24248         (default_print_operand_address): Declare.
24249         (default_print_operand_punct_valid_p): Declare.
24250         * targhooks.c (default_print_operand): Define.
24251         (default_print_operand_address): Define.
24252         (default_print_operand_punct_valid_p): Define.
24253         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
24254         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
24255         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
24256         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
24257         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
24258         * vmsdbgout.c (addr_const_to_string): Update comment.
24259         * config/i386/i386.c (print_operand): Rename to...
24260         (ix86_print_operand): ...this.  Make static.
24261         (print_operand_address): Rename to...
24262         (ix86_print_operand_address): ...this.  Make static.  Call
24263         ix86_print_operand instead of PRINT_OPERAND.
24264         (ix86_print_operand_punct_valid_p): New function.
24265         (TARGET_PRINT_OPERAND): Define.
24266         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24267         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24268         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
24269         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24270         (PRINT_OPERAND): Delete.
24271         (PRINT_OPERAND_ADDRESS): Delete.
24272         * config/i386/i386-protos.h (print_operand): Delete prototype.
24273         (print_operand_address): Delete prototype.
24274
24275 2010-06-03  Richard Guenther  <rguenther@suse.de>
24276
24277         PR tree-optimization/44403
24278         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24279         Preserve pointer qualifiers.
24280         (vect_create_data_ref_ptr): Likewise.
24281
24282 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
24283
24284         PR c++/44294
24285         * defaults.h (MAX_FIXED_MODE_SIZE): New.
24286
24287         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
24288
24289 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
24290
24291         PR debug/44375
24292         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
24293         return false if merging the bbs would lead to goto_locus
24294         location being lost from the IL.
24295
24296 2010-06-03  Jan Hubicka  <jh@suse.cz>
24297             Jakub Jelinek  <jakub@redhat.com>
24298
24299         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
24300         set->regs[i] is NULL or has just one entry.
24301
24302 2010-06-03  Jan Hubicka  <jh@suse.cz>
24303
24304         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
24305         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
24306
24307 2010-06-03  Paul Brook  <paul@codesourcery.com>
24308
24309         * config/arm/arm.c (FL_TUNE): Define.
24310         (arm_default_cpu, arm_cpu_select): Remove.
24311         (all_cores): Populate core field.
24312         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
24313         (arm_find_cpu): New function.
24314         (arm_handle_option): Lookup cpu/architecture names.
24315         (arm_override_options): Cleanup mcpu/march/mtune handling.
24316         (arm_file_start): Ditto.
24317
24318 2010-06-03  Alan Modra  <amodra@gmail.com>
24319
24320         PR target/44169
24321         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
24322         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
24323         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
24324         (rs6000_emit_load_toc_table): Likewise.
24325
24326 2010-06-02  Jan Hubicka  <jh@suse.cz>
24327
24328         * passes.c (init_optimization_passes): Put ipa reference
24329         after ipa pure-const.
24330
24331 2010-06-02  Jan Hubicka  <jh@suse.cz>
24332
24333         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
24334         calls_read_all and calls_write_all.
24335         (get_reference_optimization_summary): Fix formatting.
24336         (is_proper_for_analysis): Check that decl is not readonly.
24337         (propagate_bits): Check CONST/PURE/noreturn flags.
24338         (ipa_init): Move all_module_statics to optimization_summary_obstack.
24339         (analyze_function): Ignore indirect edges.
24340         (copy_global_bitmap): For all module statics, do nothing.
24341         (generate_summary): Do not print calls_read_all/calls_write_all.
24342         (read_write_all_from_decl): Take node as argument; check
24343         cgraph_node_cannot_return.
24344         (propagate): Reorganize read_all/write_all computation;
24345         check indirect edges; check ecf flags; use all_module_statics
24346         in the results; do not free all_module_statics.
24347         (stream_out_bitmap): Handle all_module_statics.
24348         (ipa_reference_write_optimization_summary): Likewise; use
24349         varpool/cgraph encoders to get boundaries.
24350         (ipa_reference_read_optimization_summary): Read in all_module_statics;
24351         use it when possible.
24352
24353 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24354
24355         PR target/44218
24356         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
24357         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
24358
24359         * doc/extend.texi (powerpc builtins): Document vec_recip,
24360         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
24361
24362         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
24363         (rs6000_emit_swrsqrt): Ditto.
24364         (rs6000_emit_swdivsf): Delete.
24365         (rs6000_emit_swdivdf): Ditto.
24366         (rs6000_emit_swrsqrtsf): Ditto.
24367
24368         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
24369         describe the reciprocal estimate support for each type.
24370         (recip_options): Map -mrecip=<opt> into option bits.
24371         (gen_2arg_fn_t): New typedef for binary rtx gen function.
24372         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
24373         reciprocal estimate instructions.
24374         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
24375         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
24376         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
24377         cost information if -mdebug=cost or -mdebug=reg.
24378         (rs6000_override_options): Set -mrecip-precision for power6, and
24379         power7 machines.  If -mvsx or -mdfp, enable various options that
24380         came in previous instruction set ISAs, unless the option was
24381         explicitly disabled by the command line option.  Parse
24382         -mrecip=<opt> options.
24383         (rs6000_builtin_vectorized_function): Add support for vectorizing
24384         the reciprocal estimate builtins and expansions.
24385         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
24386         (bdesc_2arg): Add reciprocal estimate builtins.
24387         (bdesc_1arg): Add reciprocal square root estimate builtins.
24388         (rs6000_expand_builtin): Rewrite to use a switch statement,
24389         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
24390         (rs6000_init_builtins): Create declarations for reciprocal
24391         estimate builtins.
24392         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
24393         sized, prefer traditional floating point registers, if integer
24394         vector types, prefer altivec registers.  Don't actually look at
24395         the memory address any more.
24396         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
24397         builtins.
24398         (rs6000_load_constant_and_splat): New helper function to load up
24399         the constant for reciprocal estimate instructions.
24400         (rs6000_emit_madd): New helper function for generating
24401         multiply/add type instructions, based on the current switches.
24402         (rs6000_emit_msub): Ditto.
24403         (rs6000_emit_mnsub): Ditto.
24404         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
24405         replace a divide with a reciprocal estimate and fixup, adding
24406         support for machines with high precision and vectors.
24407         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
24408         low precision machines.
24409         (rs6000_emit_swdiv): New common function to be called to replace a
24410         division with reciprocal estimate and fixup.
24411         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
24412         for double and vector types.  Add support for high precision machines.
24413
24414         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
24415         the reciprocal estimate instructions can be generated.
24416         (TARGET_FRE): Ditto.
24417         (TARGET_FRSQRTES): Ditto.
24418         (TARGET_FRSQRTE): Ditto.
24419         (RS6000_RECIP_*): New macros for reciprocal estimate support.
24420
24421         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
24422         square root estimate on vectors.
24423         (re<mode>2): New insn for reciprocal division estimate on vectors.
24424
24425         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
24426         New builtin.
24427         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
24428         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
24429         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
24430         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
24431         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
24432         (RS6000_BUILTIN_RSQRT): Ditto.
24433         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
24434         floating point builtin.
24435
24436         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24437         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
24438         __RECIP_PRECISION__ based on the command line switches.
24439         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
24440
24441         * config/rs6000/rs6000.opt (-mrecip): Document add support for
24442         replacing division instructions with reciprocal estimate and fixup.
24443         (-mrecip=<opt>): New option.
24444         (-mrecip-precision): Ditto.
24445
24446         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
24447         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
24448         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
24449         precision scalar.
24450
24451         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
24452         (UNSPEC_VREFP): Ditto.
24453         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
24454         conterparts with regard to support of -mno-fused-madd and -ffast-math.
24455         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
24456         reciprocal estimate instructions to be generated.
24457         (altivec_vrefp): Ditto.
24458
24459         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
24460         estimate support.
24461         (rreg): New mode attribute for reciprocal estimate support.
24462         (recip<mode>3): New insn for division using reciprocal estimate
24463         and fixup builtins.
24464         (divide define_split): New define_split to convert floating point
24465         division to use reciprocal estimate if the user used the
24466         appropriate options and the split is run when we can add new
24467         pseudo registers for the fixup.
24468         (rsqrt<mode>2): New insn for reciprocal square root support.
24469         (recipsf3): Move into recip<mode>3.
24470         (recipdf3): Ditto.
24471         (fres): Use TARGET_FRES.
24472         (rsqrtsf2): Move into rsqrt<mode>2.
24473         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
24474         (copysignsf3): Add support for VSX.
24475         (fred): Use TARGET_FRE.
24476         (fred_fpr): Ditto.
24477         (rsqrtdf_internal1): New function for frsqrte instruciton.
24478
24479         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
24480         (vec_rsqrt): Ditto.
24481
24482 2010-06-03  Richard Guenther  <rguenther@suse.de>
24483
24484         PR middle-end/44291
24485         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
24486         (set_user_assembler_libfunc): Likewise.
24487
24488 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24489
24490         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
24491         defaults.h.
24492         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
24493         to defaults.h
24494         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
24495         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
24496         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
24497         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
24498         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
24499         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
24500         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
24501         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
24502         * defaults.h: Updated for above mentioned changes.
24503
24504 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
24505
24506         * c-common.c: Remove header include of tm_p.h.
24507         * Makefile.in (c-common.o): Remove TM_P_H dependency.
24508
24509 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
24510
24511         * tree.h (struct tree_decl_map): New type.
24512         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
24513         (tree_decl_map_hash): New prototype.
24514         (debug_expr_for_decl, value_expr_for_decl): Change into
24515         tree_decl_map hashtab from tree_map.
24516         (init_ttree): Adjust initialization.
24517         (tree_decl_map_hash): New function.
24518         (decl_debug_expr_lookup, decl_debug_expr_insert,
24519         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
24520
24521 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24522
24523         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
24524         linker emulations.
24525         * configure: Regenerate.
24526         * config.in: Regenerate.
24527
24528         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
24529         (X86_64_EMULATION): Define.
24530         (TARGET_LD_EMULATION): Use them.
24531
24532         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
24533         (SPARC64_EMULATION): Define.
24534         (LINK_ARCH_SPEC): Use them.
24535
24536 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24537
24538         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
24539         smallest_mode_for_size for computing the precision types of new
24540         graphite IVs.  Do not call lang_hooks.types.type_for_size.
24541
24542 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24543
24544         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
24545         information.
24546         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
24547
24548 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24549
24550         PR middle-end/44363
24551         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
24552         return false instead.
24553
24554 2010-06-02  Jan Hubicka  <jh@suse.cz>
24555
24556         PR middle-end/44295
24557         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
24558         create new cgraph node to check callee.
24559
24560 2010-06-02  Richard Guenther  <rguenther@suse.de>
24561
24562         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
24563
24564 2010-06-02  Richard Guenther  <rguenther@suse.de>
24565
24566         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
24567         (lto_wrapper_cleanup): ... this.  Do not exit.
24568         (fatal): Adjust.  Exit here.
24569         (fatal_perror): Likewise.
24570         (fatal_signal): New function.
24571         (main): Set up signal handlers to cleanup temporary files.
24572         * Makefile.in (lto-wrapper.o): Adjust dependencies.
24573
24574 2010-06-02  Richard Guenther  <rguenther@suse.de>
24575
24576         PR tree-optimization/44377
24577         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
24578
24579 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24580
24581         * config/s390/2097.md (z10_fhex): Remove insn reservation.
24582         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
24583         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
24584         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
24585         instruction.
24586         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
24587
24588 2010-06-02  Jan Hubicka  <jh@suse.cz>
24589
24590         * bitmap.c (bitmap_descriptor): Add search_iter.
24591         (bitmap_find_bit): Increment it.
24592         (print_statistics): Print it.
24593
24594 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
24595
24596         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
24597         instead of gimple_build_call_vec.  Delete unnecessary local variable.
24598
24599 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24600
24601         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
24602         change from yesterday.
24603
24604 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24605
24606         * c-ada-spec.c: Clean up redundant includes.
24607
24608 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
24609
24610         * gimplify.c: Do not include except.h and optabs.h.
24611         (gimplify_body): Do not initialize RTL profiling.
24612         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
24613         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
24614         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
24615         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
24616         langhooks.h.
24617
24618         * tree-pretty-print.h: Include pretty-print.h.
24619         * gimple-pretty-print.h: Include pretty-print.h.
24620
24621         * tree-pretty-print.c: Do not include diagnostic.h.
24622         * tree-vrp.c: Likewise.
24623         * tree-tailcall.c: Likewise
24624         * tree-scalar-evolution.c: Likewise
24625         * tree-ssa-dse.c: Likewise
24626         * tree-chrec.c: Likewise
24627         * tree-ssa-sccvn.c: Likewise
24628         * tree-ssa-copyrename.c: Likewise
24629         * tree-nomudflap.c: Likewise
24630         * tree-call-cdce.c: Likewise
24631         * tree-stdarg.c: Likewise
24632         * tree-ssa-math-opts.c: Likewise
24633         * tree-nrv.c: Likewise
24634         * tree-ssa-sink.c: Likewise
24635         * tree-browser.c: Likewise
24636         * tree-ssa-loop-ivcanon.c: Likewise
24637         * tree-ssa-loop.c: Likewise
24638         * tree-parloops.c: Likewise
24639         * tree-ssa-address.c: Likewise
24640         * tree-ssa-ifcombine.c: Likewise
24641         * tree-if-conv.c: Likewise
24642         * tree-data-ref.c: Likewise
24643         * tree-affine.c: Likewise
24644         * tree-ssa-phiopt.c: Likewise
24645         * tree-ssa-coalesce.c: Likewise
24646         * tree-ssa-pre.c: Likewise
24647         * tree-ssa-live.c: Likewise
24648         * tree-predcom.c: Likewise
24649         * tree-ssa-forwprop.c: Likewise
24650         * tree-ssa-dce.c: Likewise
24651         * tree-ssa-ter.c: Likewise
24652         * tree-ssa-loop-prefetch.c: Likewise
24653         * tree-optimize.c: Likewise
24654         * tree-ssa-phiprop.c: Likewise
24655         * tree-object-size.c: Likewise
24656         * tree-outof-ssa.c: Likewise
24657         * tree-ssa-structalias.c: Likewise
24658         * tree-switch-conversion.c: Likewise
24659         * tree-ssa-reassoc.c: Likewise
24660         * tree-ssa-operands.c: Likewise
24661         * tree-vectorizer.c: Likewise
24662         * tree-vect-data-refs.c: Likewise
24663         * tree-vect-generic.c: Likewise
24664         * tree-vect-stmts.c: Likewise
24665         * tree-vect-patterns.c: Likewise
24666         * tree-vect-slp.c: Likewise
24667         * tree-vect-loop.c: Likewise
24668         * tree-ssa-loop-ivopts.c: Likewise
24669         * tree-ssa-loop-im.c: Likewise
24670         * tree-ssa-loop-niter.c: Likewise
24671         * tree-ssa-loop-unswitch.c: Likewise
24672         * tree-ssa-loop-manip.c: Likewise
24673         * tree-ssa-loop-ch.c: Likewise
24674         * tree-dump.c: Likewise
24675         * tree-complex.c: Likewise
24676
24677         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
24678         * tree-ssa-uninit.c: Likewise
24679         * tree-ssa-threadupdate.c: Likewise
24680         * tree-ssa-uncprop.c: Likewise
24681         * tree-ssa-ccp.c: Likewise
24682         * tree-ssa-dom.c: Likewise
24683         * tree-ssa-propagate.c: Likewise
24684         * tree-ssa-alias.c: Likewise
24685         * tree-dfa.c: Likewise
24686         * tree-cfgcleanup.c: Likewise
24687         * tree-sra.c: Likewise
24688         * tree-ssa-copy.c: Likewise
24689         * tree-ssa.c: Likewise
24690         * tree-profile.c: Likewise
24691         * tree-cfg.c: Likewise
24692         * tree-ssa-threadedge.c: Likewise
24693         * tree-vect-loop-manip.c: Likewise
24694
24695         * tree-inline.c: Do not include diagnostic.h and expr.h.
24696         Include rtl.h.
24697         (copy_decl_for_dup_finish): Do not use NULL_RTX.
24698
24699         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
24700         * tree-loop-distribution.c: Likewise.
24701
24702 2010-06-01  Jan Hubicka  <jh@suse.cz>
24703
24704         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
24705
24706 2010-06-01  Jan Hubicka  <jh@suse.cz>
24707
24708         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
24709         remove return value.
24710         (split_bbs_on_noreturn_calls) .... here.
24711         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
24712         * tree-flow.h (fixup_noreturn_call): New.
24713
24714 2010-06-01  Jan Hubicka  <jh@suse.cz>
24715
24716         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
24717
24718 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
24719
24720         * tree.h (build_nt_call_list): Delete.
24721         * tree.c (build_nt_call_list): Delete.
24722
24723 2010-06-01  Jan Hubicka  <jh@suse.cz>
24724
24725         * fwprop.c: Make emit-rtl.h include last.
24726         * rtlanal.c: Include emit-rtl.h.
24727         * genautomata.c: Output emit-rtl include into insn-automata.c
24728         * df-scan.c: Include emit-rtl.h.
24729         * haifa-sched.c: Indlude emit-rtl.h.
24730         * mode-switching.c: Indlude emit-rtl.h.
24731         * graph.c: Indlude emit-rtl.h.
24732         * sel-sched.c: Include emit-rtl.h.
24733         * sel-sched-ir.c: Include emit-rtl.h.
24734         * ira-build.c: Include emit-rtl.h.
24735         * emit-rtl.c (first_insn, last_insn): Remove defines.
24736         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
24737         Move to emit-rtl.h.
24738         (set_new_first_and_last_insn, get_last_insn_anywhere,
24739         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
24740         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
24741         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
24742         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
24743         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
24744         Use accessor functions.
24745         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24746          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24747         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24748         mem_expr_equal_p): Move here from rtl.h.
24749         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
24750         Move here from emit-rtl.c; make inline.
24751         * cfglayout.h: Include emit-rtl.h.
24752         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24753          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24754         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24755         mem_expr_equal_p, get_insns, set_first-insn,
24756         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
24757         * reg-stack.c: Include emit-rtl.h.
24758         * dce.c: Likewise.
24759
24760 2010-06-01  Jan Hubicka  <jh@suse.cz>
24761
24762         * cgraph.h (tree_function_versioning): Update prototype.
24763         (cgraph_function_versioning): Update prototype.
24764         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
24765         bitmap.
24766         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
24767         (cgraph_materialize_clone, save_inline_function_body): Update use of
24768         tree_function_versioning.
24769         * tree-inline.c (copy_bb): Look for previous copied block to link
24770         after; fix debug output.
24771         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
24772         (copy_body): Likewise.
24773         (expand_call_inline): Update use of copy_body.
24774         (tree_function_versioning): Update use of copy body; accept
24775         blocks_to_copy and new_entry.
24776
24777 2010-06-01  Jan Hubicka  <jh@suse.cz>
24778
24779         * gegenrtl.c: Remove unnecesary prototypes.
24780         (gendecl): Remove.
24781         (gendef): Produce static inline.
24782         (gencode): Remove.
24783         (main): Do not decode parameters; generate header only.
24784         * Makefile.in (genrtl.c): Remove.
24785
24786 2010-06-01  Jan Hubicka  <jh@suse.cz>
24787
24788         * tree-switch-conversion.c (build_one_array): Make it readonly.
24789
24790 2010-06-01  Richard Guenther  <rguenther@suse.de>
24791
24792         * optabs.c (init_optabs): Guard all accesses to reinit.
24793         * ipa-pure-const.c (propagate): Fix another typo.
24794         * opts.c (common_handle_option): Split assignment to bool.
24795         * c-opts.c (c_common_handle_option): Likewise.
24796
24797 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
24798             Matthew Gingell  <gingell@adacore.com>
24799
24800         * doc/invoke.texi: Mention -fdump-ada-spec.
24801         * tree-dump.c (dump_files): Add ada-spec.
24802         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
24803         * tree-pass.h (tree_dump_index): Add TDI_ada.
24804         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
24805         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
24806         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
24807         * c-decl.c: Include c-ada-spec.h.
24808         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
24809         functions.
24810         (c_write_global_declarations): Add handling of -fdump-ada-spec.
24811         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
24812         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
24813         * c-ada-spec.h, c-ada-spec.c: New files.
24814
24815 2010-06-01  Richard Guenther  <rguenther@suse.de>
24816
24817         PR lto/43853
24818         * ipa-pure-const.c (get_function_state): Hand back varying state
24819         if we do not have one.
24820         (has_function_state): New function.
24821         (duplicate_node_data): Adjust.
24822         (remove_node_data): Likewise.
24823         (pure_const_write_summary): Likewise.
24824         (propagate): Likewise.  Fix typo.
24825
24826 2010-06-01  Jan Hubicka  <jh@suse.cz>
24827
24828         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
24829         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
24830         (execute_all_ipa_transforms): Do not play with the states.
24831
24832 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
24833
24834         * config/arm/t-linux-androideabi: New.
24835         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
24836
24837 2010-06-01  Jan Hubicka  <jh@suse.cz>
24838
24839         * tree-inline.c (estimate_num_insns): For stdarg functions look
24840         into call statement to count cost of argument passing.
24841
24842 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
24843
24844         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
24845         argument for fprintf.
24846         (ix86_output_addr_diff_elt): Likewise.
24847         (x86_function_profiler): Likewise.
24848         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
24849         (LPREFIX): Likewise.
24850         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
24851
24852 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
24853
24854         PR target/44338
24855         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
24856         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
24857         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
24858         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
24859         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
24860         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
24861         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
24862         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
24863         TARGET_FUSED_MADD.
24864
24865 2010-05-31  Jan Hubicka  <jh@suse.cz>
24866
24867         * tree.h (tree_range_check_failed): Declare noreturn.
24868
24869 2010-05-31  Jan Hubicka  <jh@suse.cz>
24870
24871         * gimple.c (gimple_call_builtin_p): New function.
24872         * gimple.h (gimple_call_builtin_p): Declare.
24873         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
24874         to exit.
24875         (execute_warn_function_return): BUILT_IN_RETURN is return.
24876         (split_critical_edges): Return edges are not critical.
24877         (is_ctrl_altering_stmt): Builtin_in_return is altering.
24878         (gimple_verify_flow_info): Handle built_in_return.
24879         (execute_warn_function_return): Handle built_in_return.
24880         * ipa-pure-const.c (check_call): Ignore builtin_return.
24881
24882 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
24883
24884         PR middle-end/44337
24885         * expr.c (expand_assignment): Don't store anything for out-of-bounds
24886         array accesses with non-MEM.
24887
24888         PR tree-optimization/44182
24889         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
24890         newly needs to end a bb is followed by debug stmts, instead return
24891         true from the function at the end.
24892         (maybe_move_debug_stmts_to_successors): New function.
24893         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
24894
24895 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
24896
24897         PR target/44161
24898         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
24899
24900 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
24901
24902         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
24903         for nested functions in non-optimized compilation.
24904
24905 2010-05-31  Richard Guenther  <rguenther@suse.de>
24906
24907         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
24908
24909 2010-05-30  Jan Hubicka  <jh@suse.cz>
24910
24911         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
24912
24913 2010-05-30  Richard Guenther  <rguenther@suse.de>
24914
24915         PR lto/42975
24916         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
24917         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
24918         no longer needed.
24919
24920 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
24921
24922         * config/darwin.c (output_objc_section_asm_op): Add comment.
24923         (name_needs_quotes): Add '_' to list of valid comment chars.
24924         (machopic_output_function_base_name): Remove unneeded quotes.
24925         (darwin_encode_section_info): Adjust asm whitespace.
24926         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
24927         (ASM_OUTPUT_LOCAL): Ditto.
24928         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
24929         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
24930         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
24931
24932 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
24933
24934         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
24935         RS6000_OUTPUT_BASENAME unconditionally.
24936         (rs6000_output_function_epilogue): Likewise.
24937
24938 2010-05-30  Jan Hubicka  <jh@suse.cz>
24939
24940         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
24941         nodes.
24942
24943 2010-05-30  Richard Guenther  <rguenther@suse.de>
24944
24945         * tree-cfg.c (verify_gimple_assign_single): Implement
24946         verification for COND_EXPR rhs.
24947
24948 2010-05-30  Jan Hubicka  <jh@suse.cz>
24949
24950         * cgraph.h (cgraph_dump_file): Declare.
24951         * cgraphunit.c (cgraph_dump_file): Export.
24952         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
24953
24954 2010-05-30  Jan Hubicka  <jh@suse.cz>
24955
24956         * dwarf2out.c (reference_to_unused,
24957         premark_types_used_by_global_vars_helper): Avoid creation of new
24958         varpool nodes.
24959
24960 2010-05-30  Jan Hubicka  <jh@suse.cz>
24961
24962         * cgraph.h (cgraph_node_cannot_return,
24963         cgraph_edge_cannot_lead_to_return): New functions.
24964         * cgraph.c (cgraph_node_cannot_return,
24965         cgraph_edge_cannot_lead_to_return): Use them.
24966         * ipa-pure-const.c (pure_const_names): New static var.
24967         (check_call): Handle calls not leading to return.
24968         (pure_const_read_summary): Dump info read.
24969         (propagate): Dump info about propagation process; ignore side effects
24970         of functions not leading to exit; fix handling of pure functions.
24971
24972 2010-05-30  Jan Hubicka  <jh@suse.cz>
24973
24974         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
24975         for tail call epilogues.
24976
24977 2010-05-30  Jan Hubicka  <jh@suse.cz>
24978
24979         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
24980         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
24981         dump files.
24982
24983 2010-05-29  Jan Hubicka  <jh@suse.cz>
24984
24985         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
24986         node; remove references in node we no longer keep in cgrpah but need
24987         body of.
24988
24989 2010-05-29  Jan Hubicka  <jh@suse.cz>
24990
24991         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
24992
24993 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24994
24995         PR target/44165
24996         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
24997
24998 2010-05-29  Jan Hubicka  <jh@suse.cz>
24999
25000         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
25001         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
25002         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
25003         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
25004         debug_names_replaced_by, debug_update_ssa): Likewise.
25005         * sbitmap.c (debug_sbitmap): Likewise.
25006         * genrecog.c (debug_decision, debug_decision_list): Likewise.
25007         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
25008         debug_tree_chain): Likewise.
25009         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
25010         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
25011         * optabs.c (debug_optab_libfuncs): Likewise.
25012         (verify_loop_closed_ssa): Likewise.
25013         * value-prof.c (verify_histograms): Likewise.
25014         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
25015         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
25016         * cfghooks.c (verify_flow_info): Likewise.
25017         * fold-const.c (debug_fold_checksum): Likewise.
25018         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25019         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25020         Likewise.
25021         * omega.c (debug_omega_problem): Likewise.
25022         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25023         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25024         * dominance.c (verify_dominators, debug_dominance_info,
25025         debug_dominance_tree): Likewise.
25026         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25027         * df_regno_debug, df_ref_debug,
25028         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25029         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25030         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25031         * sel-sched.c (debug_state): Likewise.
25032         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25033         Likewise.
25034         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25035         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25036         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25037         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25038         Likewise.
25039         * c-pretty-print.c (debug_c_tree): Likewise.
25040         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
25041         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
25042         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
25043         * ebitmap.c (debug_ebitmap): Likewise.
25044         * function.c (debug_find_var_in_block_tree): Likewise.
25045         * print-rtl.c (debug_rtx): Likewise.
25046         (debug_rtx_count): Likewise.
25047         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
25048         * stor-layout.c (debug_rli): Likewise.
25049         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
25050         * tree-data-ref.c (debug_data_references,
25051         debug_data_dependence_relations, debug_data_reference,
25052         debug_data_dependence_relation, debug_rdg_vertex,
25053         debug_rdg_component, debug_rdg): Likewise.
25054         * tree-affine.c (debug_aff): Likewise.
25055         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
25056         Likewise.
25057         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
25058         * emit-rtl.c (verify_rtl_sharing): Likewise.
25059         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
25060         debug_value_expressions): Likewise.
25061         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
25062         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
25063         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
25064         * cfglayout.c (verify_insn_chain): Likewise.
25065         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
25066         debug_clast_stmt, debug_generated_program): Likewise.
25067         * ggc-page.c (debug_print_page_list): Likewise.
25068         * tree-ssa-ter.c (debug_ter): Likewise.
25069         * graphite-dependences.c (debug_pddr): Likewise.
25070         * sched-deps.c (debug_ds): Likewise.
25071         * tree-ssa.c (verify_ssa): Likewise.
25072         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
25073         debug_scattering_functions, debug_iteration_domains, debug_pdr,
25074         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
25075         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
25076         * tree-inline.c (debug_find_tree): Likewise.
25077         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
25078         debug_ppl_powerset_matrix): Likewise.
25079         * var-tracking.c (debug_dv): Likewise.
25080         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
25081         * cfgloop.c (verify_loop_structure): Likewise.
25082         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
25083         * c-common.c (verify_sequence_points): Likewise.
25084         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
25085         debug_candidates, debug_rgn_dependencies): Likewise.
25086         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
25087         * debug_constraint_graph, debug_solution_for_var,
25088         debug_sa_points_to_info): Likewise.
25089         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
25090         Likewie.
25091         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
25092         debug_loops, debug_loop, debug_loop_num): Likewise.
25093         * passes.c (debug_pass): Likewise.
25094         (dump_properties): Likewise; add cfglayout property.
25095         (debug_properties): Likewise.
25096         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
25097         * varpool.c (debug_varpool): Likewise.
25098         * regcprop.c (debug_value_data): Likewise.
25099         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
25100         debug_immediate_uses_for): Likewise.
25101
25102 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25103
25104         PR bootstrap/44315
25105         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
25106         Filter out insn-flags.h.
25107
25108 2010-05-29  Jan Hubicka  <jh@suse.cz>
25109
25110         * cgraph.h (struct varpool_node_set_def,
25111         struct cgraph_node_set_def): Remove unused AUX pointer.
25112         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
25113         VEC_empty macro.
25114
25115 2010-05-29  Jan Hubicka  <jh@suse.cz>
25116
25117         PR middle-end/44324
25118         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
25119
25120 2010-05-29  Richard Guenther  <rguenther@suse.de>
25121
25122         * lto-streamer.c (cached_bp): New global variable.
25123         (bitpack_create): Return the cached bitpack, if available.
25124         (bitpack_delete): Clear and cache the bitpack, if appropriate.
25125         (bp_pack_value): Remove redundant asserts.
25126
25127 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25128
25129         PR middle-end/44306
25130         * tree-if-conv.c (is_true_predicate): New.
25131         (is_predicated): Use is_true_predicate.
25132         (add_to_predicate_list): Same.  Do not use unshare_expr.
25133         (add_to_dst_predicate_list): Same.
25134
25135 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25136
25137         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
25138         field on edges.
25139         (predicate_bbs): Same.
25140         (clean_predicate_lists): Same.
25141         (find_phi_replacement_condition): Do not AND the predicate from
25142         edge->aux.
25143
25144 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25145
25146         PR bootstrap/44315
25147         * Makefile.in (build/gencondmd.o): Add a missing `\'.
25148
25149 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25150
25151         PR target/44261
25152         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
25153         (negdf2): Adjust expander pattern and use negdf2_slow.
25154         (negsf2): Likewise.
25155
25156 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
25157
25158         * basic-block.h (struct control_flow_graph): Move last_label_uid field
25159         up.
25160         * df.h (struct df_base_ref): Move regno field up.
25161         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
25162         * expr.h (struct separate_ops): Move location field up.
25163         * optabs.h (struct optab_d): Move libcall_basename field down.
25164         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
25165         * config/i386/i386.h (struct machine_function): Convert call_abi field
25166         into a bitfield.  Move cfa field to the end of the structure.
25167
25168 2010-05-29  Jan Hubicka  <jh@suse.cz>
25169
25170         * varpool.c (varpool_get_node): Fix lookup.
25171
25172 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25173
25174         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
25175         RTL specific prototypes with #ifdef RTX_CODE.
25176         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
25177         * config/spu/t-spu-elf: Fix dependencies.
25178
25179         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
25180
25181 2010-05-29  Mike Stump  <mikestump@comcast.net>
25182
25183         PR bootstrap/44315
25184         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
25185         TM_H when building to avoid dependency loops.
25186
25187 2010-05-29  Jan Hubicka  <jh@suse.cz>
25188
25189         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
25190         refs and body; not the whole node for masters of materialized clones.
25191
25192 2010-05-29  Mike Stump  <mikestump@comcast.net>
25193
25194         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
25195
25196 2010-05-29  Jan Hubicka  <jh@suse.cz>
25197
25198         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
25199         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
25200         use of clone_function_name.
25201         * cgraph.h (cgraph_create_virtual_clone,
25202         cgraph_function_versioning): update prototypes.
25203         (clone_function_name): Declare.
25204         * ipa-cp.c (ipcp_insert_stage): Update call of
25205         cgraph_create_virtual_clone.
25206         * omp-low.c (create_omp_child_function_name): Use
25207         cgraph_create_virtual_clone.
25208         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
25209         (cgraph_function_versioning): Take SUFFIX argument; produce new name
25210         and make decl local.
25211
25212 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25213
25214         * vec.h: Include statistics.h
25215         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
25216         with VEC_H.
25217
25218 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25219
25220         * c-lex.c: Do not include c-tree.h.
25221         * c-pretty-print.c: Likewise.
25222         * c-opts.c: Likewise.
25223         * c-gimplify.c: Likewise.
25224         * c-common.c: Likewise.
25225         * c-dump.c: Likewise.  Include c-common.h.
25226
25227 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25228
25229         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
25230         before including diagnostic-core.h.
25231         (c_cpp_error): New prototype moved from c-tree.h.
25232         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
25233         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
25234         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
25235         (c_cpp_error): Prototype moved to c-common.h.
25236         * Makefile.in: Update dependency for C_COMMON_H.
25237
25238 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25239
25240         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
25241         * c-common.c (c_register_addr_space): Remove here.
25242         * c-decl.c (c_register_addr_space): Re-add here.
25243
25244 2010-05-28  Mike Stump  <mikestump@comcast.net>
25245
25246         * config/darwin-c.c: Remove c-tree.h include.
25247
25248 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25249
25250         * gcc.c: Include diagnostic.h.
25251         (error_count): Remove.  All users changed to use errorcount.
25252         (programname): Remove.  All users changed to use progname.
25253         (fancy_abort, internal_error, fatal_error, error, warning, inform,
25254         fnotice): Remove.
25255         (execute): Don't include "Internal error" and bug reporting
25256         information in argument of internal_error call.
25257         (process_command): Don't increment error_count after calling
25258         perror_with_name.
25259         (input_filename): Rename to gcc_input_filename.  All users
25260         changed.
25261         (main): Call diagnostic_initialize.  Register delete_temp_files
25262         with atexit.  Use seen_error to test for errors.
25263         * gcc.h: Include diagnostic-core.h.
25264         (fatal_error, error, warning): Remove.
25265         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
25266         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
25267         (gcc.o): Update dependencies.
25268
25269 2010-05-28  Jeff Law  <law@redhat.com>
25270
25271         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
25272         functions.
25273         * ira.h (ira_bad_reload_regno): Declare
25274         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
25275
25276         * ira-color.c (update_curr_costs): Free updated hard reg costs.
25277         (ira_reassign_conflict_allocnos): Remove bogus asserts.
25278         (allocno_reload_assign): Likewise.
25279
25280 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
25281
25282         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
25283         build1_stat.
25284
25285 2010-05-28  Richard Guenther  <rguenther@suse.de>
25286
25287         PR lto/44312
25288         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
25289         Stream fixed-point constants mode.
25290         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
25291         and TYPE_PRECISION.
25292         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
25293         Stream fixed-point constants mode.
25294         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
25295         and TYPE_PRECISION.
25296
25297 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25298
25299         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
25300         only place it was called from.
25301         (number_of_latch_executions): Do not return chrec_dont_know when the
25302         may_be_zero is a runtime condition: instead, return a COND_EXPR
25303         including the may_be_zero condition.
25304         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
25305         of nb_iterations.
25306         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
25307         COND_EXPRs.
25308
25309 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25310
25311         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
25312         generate COND_EXPRs for degenerate_phi_result.
25313
25314 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25315
25316         PR middle-end/44293
25317         * tree-if-conv.c (if_convertible_loop_p): Check the
25318         if-convertibility of phi nodes in non predicated BBs.
25319
25320 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25321
25322         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
25323
25324 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25325
25326         PR driver/15303
25327         * gcc.c (inform, warning, inform): New functions.
25328         (fatal_ice): Rename to internal_error; change cmsgid parameter to
25329         gmsgid.  All callers changed.
25330         (notice): Rename to fnotice; add parameter fp.  All callers changed.
25331         (fatal_error): Rename to fatal_signal.  All users changed.
25332         (fatal): Rename to fatal_error; change cmsgid parameter to
25333         gmsgid.  All callers changed.
25334         (process_command): Use warning instead of error for warnings.
25335         (end_going_arg): Don't use _() around argument of error.
25336         (do_spec_1): Use inform for message from %n specs.  Use warning
25337         instead of error for warnings.
25338         (main): Use inform for comparison messages.  Use warning for
25339         message about unused linker input.
25340         (error): Increment error_count.  Print "error: ".
25341         * gcc.h (fatal): Change to fatal_error.
25342         (warning): Declare.
25343         * config/darwin-driver.c (darwin_default_min_version): Use warning
25344         instead of fprintf for warnings.
25345         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
25346
25347 2010-05-28  Julian Brown  <julian@codesourcery.com>
25348
25349         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
25350         (*thumb2_addsi3_compare0_scratch): New.
25351         * config/arm/constraints.md (Pv): New.
25352         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
25353         for ARM mode only.
25354         (*addsi3_compare0_scratch): Likewise.
25355
25356 2010-05-28  Jan Hubicka  <jh@suse.cz>
25357
25358         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
25359         check.
25360         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
25361         only on local statics.
25362
25363 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
25364
25365         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
25366
25367 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
25368
25369         PR bootstrap/44314
25370         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
25371         (OPTION_GLIBC): Define.
25372
25373 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
25374
25375         PR debug/41048
25376         * dwarf2out.c (double_int_type_size_in_bits): New function.
25377         (round_up_to_align): Change first argument and return value to
25378         double_int.
25379         (field_byte_offset): Work internally on double_ints.
25380
25381         PR target/43636
25382         * builtins.c (expand_movstr): Use a temporary pseudo instead
25383         of target even when target is not NULL and not const0_rtx, but
25384         fails movstr predicate.
25385         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
25386
25387 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25388
25389         * final.c (rest_of_clean_state): Use %m in errors instead of
25390         strerror (errno).
25391         * gengtype.c (read_input_list, close_output_files): Use xstrerror
25392         instead of strerror.
25393         * toplev.c (process_options): Use %m in errors instead of strerror
25394         (errno).
25395         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
25396         (errno).
25397
25398 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
25399
25400         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
25401         (ix86_canonical_va_list_type): Make static.  Add declaration.
25402         (ix86_enum_va_list): Make static.  Reindent.
25403         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
25404         (ix86_canonical_va_list_type): Ditto.
25405         (ix86_enum_va_list): Ditto.
25406
25407 2010-05-28  Richard Guenther  <rguenther@suse.de>
25408
25409         * lto-wrapper.c (run_gcc): With -save-temps generate a
25410         user-visible ltrans filename.  Fixup ltrans unit numbering.
25411
25412 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
25413
25414         * c-common.c (c_common_nodes_and_builtins): Replace use
25415         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
25416         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
25417         to ix86_enum_va_list.
25418         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
25419         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
25420         (TARGET_ENUM_VA_LIST_P): Add hook description.
25421         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
25422         * target.h (gcc_target): Add enum_va_list hook.
25423
25424         PR bootstrap/44299
25425         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
25426         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
25427         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
25428
25429 2010-05-28  Alan Modra  <amodra@gmail.com>
25430
25431         PR target/44266
25432         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
25433         emit_library_call machinery to set up __tls_get_addr calls.
25434
25435 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25436
25437         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
25438
25439 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
25440
25441         Revert fix for PR c++/44188
25442         * c-common.c (is_typedef_decl): Revert the moving of  this
25443         definition ...
25444         * tree.c (is_typedef_decl): ... here.
25445         (typdef_variant_p): Revert the moving of this  definition
25446         here from cp/tree.c.
25447         * c-common.h (is_typedef_decl): Revert the moving of this
25448         declaration ...
25449         * tree.h (is_typedef_decl): ... here.
25450         (typedef_variant_p): Revert the moving of this  declaration here
25451         from cp/cp-tree.h
25452         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
25453         (gen_tagged_type_die): Revert the splitting out of ...
25454         (gen_type_die_with_usage): ... this function. Revert the anonymous
25455         tagged type handling.
25456         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
25457         typedefs naming anonymous tagged types.
25458
25459 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
25460
25461         * config/rs6000/rs6000-modes.def (PSImode): Delete.
25462
25463 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
25464
25465         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
25466         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
25467         throughout.
25468         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
25469         "xer" to "ca".
25470         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
25471         XER_REGS to CA_REGS throughout.
25472         * config/rs6000/rs6000.h: Same.
25473         (ADDITIONAL_REGISTER_NAMES): Add "xer".
25474         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
25475         that mode_iterator "P" is the size for arithmetic carries as well.
25476         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
25477
25478 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
25479
25480         PR bootstrap/44255
25481         * combine.c (struct rtx_subst_pair): Define unconditionally.
25482         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
25483         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
25484         Call make_compound_operation on pair->to.
25485         (propagate_for_debug): Don't call make_compound_operation here.
25486         Always use simplify_replace_fn_rtx.
25487
25488 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
25489
25490         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
25491         * config/xtensa/xtensa.c (override_options): Check
25492           TARGET_FORCE_NO_PIC and set flag_pic.
25493         * config/xtensa/xtensa.opt: Document -mforce-no-pic
25494
25495 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25496
25497         PR bootstrap/44299
25498         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
25499         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
25500
25501 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
25502
25503         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
25504         toplev.h.
25505         * diagnostic.c: Don't include toplev.h.
25506         (progname): Define.  Moved from toplev.c.
25507         (seen_error): New function.
25508         * diagnostic.h: Include diagnostic-core.h.
25509         (diagnostic_t, emit_diagnostic): Don't declare here.
25510         * toplev.c (progname): Move to toplev.c.
25511         (emit_debug_global_declarations, compile_file, finalize,
25512         do_compile, toplev_main): Use seen_error.
25513         * toplev.h: Include diagnostic-core.h.
25514         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
25515         internal_error, warning, warning_at, error, error_n, error_at,
25516         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
25517         verbatim, fnotice, progname): Move to diagnostic-core.h.
25518         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
25519         (expand_builtin_expect): Use seen_error.
25520         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
25521         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
25522         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
25523         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
25524         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
25525         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
25526         errorcount for errors.
25527         * c-opts.c (c_common_finish): Use seen_error.
25528         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25529         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
25530         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
25531         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
25532         (get_coverage_counts): Use seen_error.
25533         * dwarf2out.c (dwarf2out_finish): Use seen_error.
25534         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
25535         gimplify_body): Use seen_error.
25536         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
25537         * ipa-pure-const.c (gate_pure_const): Use seen_error.
25538         * ipa-reference.c (gate_reference): Use seen_error.
25539         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
25540         * lambda-code.c: Include diagnostic-core.h instead of
25541         diagnostic.h.
25542         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25543         * lto-compress.c: Include diagnostic-core.h instead of
25544         diagnostic.h.
25545         * lto-section-in.c: Include diagnostic-core.h instead of
25546         diagnostic.h.
25547         * lto-streamer-out.c: Include diagnostic-core.h instead of
25548         diagnostic.h.
25549         * lto-streamer.c: Include diagnostic-core.h instead of
25550         diagnostic.h.
25551         (gate_lto_out): Use seen_error.
25552         * matrix-reorg.c: Include diagnostic-core.h instead of
25553         diagnostic.h.
25554         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
25555         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
25556         (gate_expand_omp, lower_omp_1): Use seen_error.
25557         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
25558         (rest_of_decl_compilation, rest_of_type_compilation,
25559         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
25560         * tree-cfg.c (label_to_block_fn): Use seen_error.
25561         * tree-inline.c (optimize_inline_calls): Use seen_error.
25562         * tree-mudflap.c (mudflap_finish_file): Use
25563         seen_error.
25564         * tree-optimize.c (gate_all_optimizations,
25565         gate_all_early_local_passes, gate_all_early_optimizations): Use
25566         seen_error.
25567         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
25568         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
25569         (varpool_remove_unreferenced_decls,
25570         varpool_assemble_pending_decls): Use seen_error.
25571         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
25572         (TOPLEV_H, DIAGNOSTIC_H): Update.
25573         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
25574         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
25575         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
25576         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
25577         coverage.o, lambda-code.o): Update dependencies.
25578
25579 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25580
25581         PR c++/44188
25582         * c-common.c (is_typedef_decl): Move this definition ...
25583         * tree.c (is_typedef_decl): ... here.
25584         (typdef_variant_p): Move definition here from cp/tree.c.
25585         * c-common.h (is_typedef_decl): Move this declaration ...
25586         * tree.h (is_typedef_decl): ... here.
25587         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25588         * dwarf2out.c (is_naming_typedef_decl): New function.
25589         (gen_tagged_type_die): Split out of ...
25590         (gen_type_die_with_usage): ... this function. When an anonymous
25591         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25592         is emitted for the typedef.
25593         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25594         anonymous tagged types.
25595
25596 2010-05-27  Jason Merrill  <jason@redhat.com>
25597
25598         * print-tree.c (debug_vec_tree): New fn.
25599         (print_vec_tree): New fn.
25600         * tree.h: Declare them.
25601         * gdbinit.in (pvt): New command.
25602
25603         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
25604
25605         * gdbinit.in (pdd): New command.
25606
25607 2010-05-27  Jan Hubicka  <jh@suse.cz>
25608
25609         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
25610         (update_caller_keys): Return early if there are no callers;
25611         only update fibheap when decresing the key.
25612         (update_callee_keys): Avoid recursion.
25613         (decide_inlining_of_small_functions): When badness does not match;
25614         re-insert into fibheap.
25615
25616 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
25617
25618         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
25619         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
25620         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
25621         (ALL_HOST_OBJS): Now a union of the above two.
25622         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
25623         all files in ALL_HOST_FRONTEND_OBJS.
25624         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
25625
25626         * c-common.c: Pretend to be a backend file by undefining
25627         IN_GCC_FRONTEND (still need rtl.h here).
25628
25629 2010-05-27  Jan Hubicka  <jh@suse.cz>
25630
25631         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
25632         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
25633
25634 2010-05-27  Jan Hubicka  <jh@suse.cz>
25635
25636         * sched-ebb.c: Rename struct deps to struct deps_desc.
25637         * ddg.c: Likewise.
25638         * sel-sched-ir.c: Likewise.
25639         * sched-deps.c: Likewise.
25640         * sched-int.h: Likewise.
25641         * sched-rgn.c: Likewise.
25642
25643 2010-05-27  Jon Beniston  <jon@beniston.com>
25644
25645         PR 43726
25646         * config/lm32/lm32.h: Remove definition of
25647         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
25648
25649 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
25650
25651         PR lto/44230
25652         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
25653
25654 2010-05-27  Richard Guenther  <rguenther@suse.de>
25655
25656         PR tree-optimization/44284
25657         * tree-vect-stmts.c (vectorizable_assignment): Handle
25658         sign-changing conversions as simple copy.
25659
25660 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25661
25662         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
25663         Bionic C library.
25664         (__gthread_active_p): Check for pthread_create if compiling against
25665         Bionic C library.
25666
25667 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25668
25669         Support compilation for Android platform.  Reimplement -mandroid.
25670
25671         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
25672         (*android*): Set ANDROID_DEFAULT.
25673         (arm*-*-linux*): Include linux-android.h.
25674         (arm*-*-eabi*): Don't include previous -mandroid implementation.
25675         * config/arm/eabi.h: Remove, move Android-specific parts ...
25676         * config/linux-android.h: ... here.  New file.
25677         * config/arm/eabi.opt: Rename to ...
25678         * config/linux-android.opt: ... this.
25679         (mandroid): Allow -mno-android option.  Initialize based on
25680         ANDROID_DEFAULT.
25681         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
25682         Move logic to corresponding LINUX_TARGET_* macros.
25683         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
25684         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
25685         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
25686         Android definitions.
25687         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
25688         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
25689         Document.
25690
25691 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25692
25693         Add support for Bionic C library
25694
25695         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
25696         macro.
25697         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
25698         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
25699
25700         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
25701         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
25702         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
25703         to support multiple C libraries.  Handle Bionic.
25704         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
25705         (BIONIC_DYNAMIC_LINKER64): Define.
25706         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
25707         Update.
25708         (TARGET_HAS_SINCOS): Enable for Bionic.
25709
25710         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
25711         the last option specified on command line take effect.
25712         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
25713         (mbionic): New.
25714         (mglibc, muclibc): Update.
25715
25716         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
25717         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
25718         DEFAULT_LIBC.
25719
25720         * doc/invoke.texi (-mglibc, -muclibc): Update.
25721         (-mbionic): Document.
25722
25723 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25724
25725         * c-common.h (c_register_addr_space): Add prototype.
25726         (ADDR_SPACE_KEYWORD): Remove.
25727         * c-common.c (c_register_addr_space): New function.
25728         (c_addr_space_name): Reimplement.
25729         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
25730
25731         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
25732         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
25733
25734         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
25735         Remove TARGET_ADDR_SPACE_KEYWORDS.
25736
25737 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
25738
25739         * input.c: New file.
25740         * input.h (main_input_filename): Move declaration to toplev.h.
25741         * toplev.c (input_location, line_table): Move to input.c
25742         * toplev.h (main_input_filename): Move declaration from input.h.
25743         * tree.c (expand_location): Move to input.c.
25744         * Makefile.in (OBJS-common): Add input.o.
25745         (input.o): Add dependencies.
25746
25747 2010-05-27  Richard Guenther  <rguenther@suse.de>
25748
25749         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
25750         for non-existant files.
25751         (fork_execute): Mark args_name file as deleted.
25752
25753 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25754
25755         PR bootstrp/44287
25756         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
25757         (narrow_signed_type): Likewise.
25758
25759 2010-05-26  Jan Hubicka  <jh@suse.cz>
25760
25761         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
25762         edge only when checking is enabled; check using former_clone_of;
25763         check inline clones too.
25764         (cgraph_materialize_clone): Record former_clone_of pointer.
25765         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
25766         combining redirections; dump args_to_skip bitmap
25767         (cgraph_materialize_all_clones): Do no redirection here.
25768         * ipa-inline.c (inline_transform): Do redirection here.
25769         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
25770         cheking only).
25771
25772 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25773
25774         * config/avr/avr-c.c: Do not include regs.h.
25775         Include cpplib.h for cpp_define and tree.h for c-common.h.
25776         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
25777         * config/avr/t-avr: Fix dependencies for avr-c.o.
25778
25779 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25780
25781         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
25782         string instead of SYMBOL_REF rtx.
25783         * rtl.h (set_stack_check_libfunc): Move prototype from here...
25784         * libfuncs.h: ...to here.  Adjust for explow.c change.
25785
25786 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25787
25788         * pretty-print.c: Don't include ggc.h.
25789         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
25790         (identifier_to_locale): Use them for allocation.
25791         * pretty-print.h (identifier_to_locale_alloc,
25792         identifier_to_locale_free): Declare.
25793         * toplev.c (alloc_for_identifier_to_locale): New.
25794         (general_init): Set identifier_to_locale_alloc and
25795         identifier_to_locale_free.
25796         * Makefile.in (pretty-print.o): Update dependencies.
25797
25798 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
25799
25800         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
25801         pointer types if they have different alignment or mode.
25802
25803 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
25804
25805         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25806         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25807         * config/sparc/sparc-protos.h (function_value): Remove declaration.
25808         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
25809         sparc_function_value_regno_p): New functions.
25810         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25811         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25812         (function_value): Rename to...
25813         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
25814         argument to 'outgoing'.
25815         (function_arg_record_value, function_arg_union_value,
25816         function_arg_vector_value): Update comment.
25817
25818 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
25819
25820         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
25821         (fde_needed_for_eh_p): New predicate.
25822         (output_call_frame_info): Use it throughout to decide whether FDEs
25823         are needed for EH purpose.
25824         (dwarf2out_begin_prologue): Reorder assignments.
25825
25826 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25827
25828         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
25829         special case loop->header.
25830         (is_predicated): New.
25831         (if_convertible_loop_p): Call it.
25832
25833 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25834
25835         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
25836         iterator in parameter.  Do not generate code during the analysis.
25837         (tree_if_convert_cond_stmt): Removed.
25838         (tree_if_convert_stmt): Removed.
25839         (predicate_bbs): New.
25840         (if_convertible_loop_p): Call predicate_bbs.
25841         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
25842         now contains all the analysis part.
25843
25844 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25845
25846         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
25847         statements in the analysis part.
25848         (tree_if_convert_stmt): Update comment.
25849         (remove_conditions_and_labels): New.
25850         (combine_blocks): Call remove_conditions_and_labels.
25851         (tree_if_conversion): Update comment.
25852
25853 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25854
25855         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
25856         than 2 predecessors or more than 2 successors.
25857
25858 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25859
25860         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
25861         of loops in which the data dependence analysis fails.
25862
25863 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25864
25865         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
25866         CDI_POST_DOMINATORS.
25867         (tree_if_conversion): Same.
25868
25869 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25870
25871         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
25872
25873 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25874
25875         * tree-if-conv.c: Update copyright years.  Fix comments.
25876         Fix indentation.
25877
25878 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
25879
25880         * builtin-types.def (BT_INT128): New primitive type.
25881         (BT_UINT128): Likewise.
25882         * c-common.c (c_common_r): Add __int128 keyword.
25883         (c_common_type_for_size): Handle __int128.
25884         (c_common_type_for_mode): Likewise.
25885         (c_common_signed_or_unsigned_type): Likewise.
25886         (c_common_nodes_and_builtins): Add builtin type
25887         if target supports 128-bit integer scalar.
25888         * c-common.h (enum rid): Add RID_INT128.
25889         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
25890         if target supports 128-bit integer scalar.
25891         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
25892         (finish_declspecs): Likewise.
25893         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
25894         (c_token_starts_declspecs): Likewise.
25895         (c_parser_declspecs): Likewise.
25896         (c_parser_attributes): Likewise.
25897         (c_parser_objc_selector): Likewise.
25898         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
25899         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
25900         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
25901         * tree.c (make_or_reuse_type): Likewise.
25902         (make_unsigned_type): Likewise.
25903         (build_common_tree_nodes_2): Likewise.
25904         * tree.h (enum integer_type_kind): Add itk_int128 and
25905         itk_unsigned_int128.
25906         (int128_integer_type_node): New define.
25907         (int128_unsigned_type_node): New define.
25908         * doc/extend.texi: Add documentation about __int128 type.
25909
25910 2010-05-26  Richard Guenther  <rguenther@suse.de>
25911
25912         * tree-ssa-sccvn.c (copy_nary): Adjust.
25913         (copy_phis): Rename to ...
25914         (copy_phi): ... this.  Adjust.
25915         (copy_references): Rename to ...
25916         (copy_reference): ... this.  Adjust.
25917         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
25918         result into the valid table.
25919
25920 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25921
25922         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
25923         insn-config.h, insn-codes.h, recog.h, and optabs.h.
25924
25925 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25926
25927         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
25928
25929 2010-05-26  Richard Guenther  <rguenther@suse.de>
25930
25931         * opts.c (common_handle_option): Handle OPT_Ofast.
25932
25933 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25934
25935         * diagnostic.c: Don't include opts.h.
25936         (permissive_error_option): Define.
25937         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
25938         for classify_diagnostic.  Don't use memset for
25939         classify_diagnostic.  Initialize new and recently added fields.
25940         (diagnostic_classify_diagnostic): Use context->n_opts instead of
25941         N_OPTS.
25942         (diagnostic_report_diagnostic): Pass context parameter to
25943         diagnostic_report_warnings_p.  Use option_enabled and option_name
25944         hooks from context.
25945         (emit_diagnostic): Use permissive_error_option.
25946         (permerror): Likewise.
25947         * diagnostic.h: Don't include options.h.
25948         (struct diagnostic_context): Add n_opts, opt_permissive,
25949         inhibit_warnings, warn_system_headers, option_enabled and
25950         option_name fields.  Change classify_diagnostic to a pointer.
25951         * opts-diagnostic.h: New file.
25952         * opts.c: Include opts-diagnostic.h.
25953         (common_handle_option): Set global_dc fields for -Wfatal-errors,
25954         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
25955         (option_name): New function.
25956         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
25957         (c_common_handle_option): Set global_dc->permissive for
25958         -fpermissive.
25959         * c-common.c (c_cpp_error): Save and restore
25960         global_dc->warn_system_headers, not variable warn_system_headers.
25961         * toplev.c: Include opts-diagnostic.h.
25962         (general_init): Update call to diagnostic_initialize.  Set
25963         global_dc->show_column, global_dc->option_enabled and
25964         global_dc->option_name.
25965         (process_options): Don't set global_dc fields here.
25966         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
25967         (diagnostic.o, opts.o, toplev.o): Update dependencies.
25968
25969 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
25970
25971         * config/picochip/picochip.md (movsi): Split a movsi from a
25972         const after reload.
25973
25974 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25975
25976         * ggc-zone.c: Update copyright year.
25977         (poison_region): Mark memory for Valgrind as undefined before
25978         memset () call and inaccessible afterwards.
25979         (ggc_pch_total_size): Change type of i to int.
25980
25981 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25982
25983         * ggc-common.c (ggc_free_overhead): Allow empty slot.
25984
25985 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25986
25987         * ggc-common.c: Update copyright year.
25988         (ggc_rlimit_bound): Remove prototype.  Compile only if
25989         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
25990         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
25991         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
25992         (ggc_min_heapsize_heuristic): Likewise.
25993
25994 2010-05-26  Richard Guenther  <rguenther@suse.de>
25995
25996         PR rtl-optimization/44164
25997         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
25998         no-common access-path disambiguation.
25999         (indirect_ref_may_alias_decl_p): Adjust.
26000         (indirect_refs_may_alias_p): Likewise.
26001         (refs_may_alias_p_1): Likewise.
26002
26003 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26004
26005         * c-typeck.c: Do not include expr.h.
26006
26007 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26008
26009         * rtl.h (decl_default_tls_model): Move prototype from here...
26010         * output.h: ...to here.
26011         * c-decl.c: Do not include rtl.h.
26012         * c-pragma.c: Likewise.
26013         * c-parser.c: Likewise.
26014         * c-gimplify.c: Likewise.  And also not hard-reg-set.
26015         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
26016         FIXME note for it.  Add a FIXME note for expr.h.
26017         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
26018         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26019         defined.
26020
26021 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
26022
26023         PR target/44199
26024         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26025         or total_size is larger than red zone size for non-V4 ABI, emit a
26026         stack_tie resp. frame_tie insn before stack pointer restore.
26027         * config/rs6000/rs6000.md (frame_tie): New insn.
26028
26029 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
26030
26031         * function.h (struct function): Add can_throw_non_call_exceptions bit.
26032         * lto-streamer-in.c (input_function): Stream it in.
26033         * lto-streamer-out.c (output_function): Stream it out.
26034         * function.c (allocate_struct_function): Set it.
26035         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26036         for flag_non_call_exceptions.
26037         * cfgbuild.c (control_flow_insn_p): Likewise.
26038         (make_edges): Likewise.
26039         * cfgexpand.c (expand_stack_alignment): Likewise.
26040         * combine.c (distribute_notes): Likewise.
26041         * cse.c (cse_extended_basic_block): Likewise.
26042         * except.c (insn_could_throw_p): Likewise.
26043         * gcse.c (simple_mem): Likewise.
26044         * ipa-pure-const.c (check_call): Likewise.
26045         (check_stmt ): Likewise.
26046         * lower-subreg.c (lower-subreg.c): Likewise.
26047         * optabs.c (emit_libcall_block): Likewise.
26048         (prepare_cmp_insn): Likewise.
26049         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
26050         * postreload.c (rest_of_handle_postreload): Likewise.
26051         * reload1.c (reload_as_needed): Likewise.
26052         (emit_input_reload_insns): Likewise.
26053         (emit_output_reload_insns): Likewise.
26054         (fixup_abnormal_edges): Likewise.
26055         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
26056         * store-motion.c (find_moveable_store): Likewise.
26057         * tree-eh.c (stmt_could_throw_p): Likewise.
26058         (tree_could_throw_p): Likewise.
26059         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
26060         * config/arm/arm.c (arm_expand_prologue): Likewise.
26061         (thumb1_expand_prologue): Likewise.
26062         * config/rx/rx.md (cbranchsf4): Likewise.
26063         (cmpsf): Likewise.
26064         * config/s390/s390.c (s390_emit_prologue): Likewise.
26065         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
26066         (inline_forbidden_into_p): New predicate.
26067         (expand_call_inline): Use it to forbid inlining.
26068         (tree_can_inline_p): Likewise.
26069
26070 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26071
26072         * config/i386/i386-c.c: Do not include rtl.h.
26073         * config/i386/t-i386: Update dependencies.
26074
26075 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26076
26077         * attribs.c: Do not include rtl.h.
26078         * Makefile.in: Update dependencies.
26079
26080 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
26081
26082         * double-int.h (double_int_and): New.
26083         * combine.c (try_combine): Clean up, use double_int_* and
26084         immed_double_int_const functions.
26085
26086 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26087
26088         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
26089         stderr to /dev/null instead of grep -q.
26090         * configure: Regenerate.
26091
26092 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26093
26094         * Makefile.in (EXCEPT_H): Fix typo.
26095
26096 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
26097
26098         * ira-build.c (update_conflict_hard_reg_costs): New.
26099         (ira_build): Call update_conflict_hard_reg_costs.
26100
26101 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26102
26103         PR debug/41371
26104         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
26105         ENABLE_CHECKING.
26106         (intersect_loc_chains): Walk the s2var's loc_chain together
26107         with s1node chain as long as the locations are equal, don't
26108         call find_loc_in_1pdv in that case.
26109
26110         PR debug/42801
26111         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
26112         (copy_bind_expr): ... instead of here.
26113         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
26114         if the block hasn't been remapped.
26115         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
26116         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
26117
26118 2010-05-25  Richard Guenther  <rguenther@suse.de>
26119
26120         PR middle-end/44069
26121         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
26122         out-of-bounds array accesses.
26123
26124 2010-05-25  Richard Guenther  <rguenther@suse.de>
26125
26126         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
26127         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
26128         (run_gcc): Re-organize to make cleanup easier.
26129
26130 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26131
26132         * config/s390/s390.c (optimization_options): Fix and move the
26133         flag_prefetch_loop_arrays override ...
26134         (override_options): ... here.
26135
26136 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
26137
26138         * diagnostic.c: Don't include plugin.h.
26139         (diagnostic_report_diagnostic): Don't handle plugins specially
26140         here.  Pass context to internal_error callback.
26141         * diagnostic.h (struct diagnostic_context): Add context parameter
26142         to internal_error callback.
26143         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
26144         * plugin.h (struct diagnostic_context): Declare.
26145         (warn_if_plugins, plugins_internal_error_function): Declare.
26146         * toplev.c (general_init): Set global_dc->internal_error.
26147         * Makefile.in (diagnostic.o): Update dependencies.
26148
26149 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
26150
26151         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
26152         * config/rs6000/t-darwin64: New.
26153         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
26154         build crt2.
26155
26156 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
26157
26158         PR 44203
26159         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
26160         match the original (and intended) behaviour before r159557.  This
26161         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
26162         in two ways.
26163
26164 2010-05-25  Richard Guenther  <rguenther@suse.de>
26165
26166         * doc/invoke.texi: Document -Ofast.
26167         * target.h (struct gcc_target): Add handle_ofast.
26168         * target-def.h (TARGET_HANDLE_OFAST): Add.
26169         (TARGET_INITIALIZER): Adjust.
26170         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
26171         * common.opt (Ofast): Add.
26172
26173 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26174
26175         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
26176         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
26177
26178 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26179
26180         PR target/43610
26181         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
26182         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
26183         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
26184         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
26185
26186 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26187
26188         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
26189         DW_OP_minus with negated offset instead of DW_OP_plus.
26190         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
26191
26192 2010-05-25  Wei Guozhi  <carrot@google.com>
26193
26194         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
26195         tst instruction and a new alternative.
26196         * config/arm/constraints.md (Pu): New constraint.
26197
26198 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
26199
26200         * function.c (assign_stack_local_1): Initialize variable
26201         to avoid warning when bootstrapping at -O3.
26202
26203 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
26204
26205         * configure.ac (all_lang_makefiles): Remove everything related to it.
26206         * configure: Regenerate.
26207         * Makefile.in: Fix reference to ada Make-lang.in.
26208         Remove support for LANG_MAKEFILES.
26209
26210 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
26211             Sandra Loosemore  <sandra@codesourcery.com>
26212
26213         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
26214         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
26215         description.  Add arm_neon_fp16_ok.
26216         (Add Options): Add arm_neon and arm_neon_fp16.
26217
26218 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
26219
26220         * diagnostic.c: Don't include flags.h.
26221         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
26222         context parameters.  Check flags in the context passed as a parameter.
26223         (diagnostic_build_prefix): Add context parameter.  Check
26224         show_column flag in context.
26225         (diagnostic_action_after_output): Check fatal_errors flag in context.
26226         (diagnostic_report_current_module): Check show_column flag in context.
26227         (default_diagnostic_starter): Update call to
26228         diagnostic_build_prefix.
26229         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
26230         (emit_diagnostic): Pass context to permissive_error_kind.
26231         (permerror): Pass context to permissive_error_kind.
26232         * diagnostic.h (struct diagnostic_context): Add show_column,
26233         pedantic_errors, permissive and fatal_errors fields.
26234         (diagnostic_build_prefix): Update prototype.
26235         * langhooks.c
26236         * toplev.c (process_options): Set flags in global_dc from
26237         flag_show_column, flag_pedantic_errors, flag_permissive,
26238         flag_fatal_errors.
26239         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
26240         to diagnostic_build_prefix.
26241         * Makefile.in (diagnostic.o): Update dependencies.
26242
26243 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
26244
26245         * config/i386/ia32intrin.h (__crc32q): Define only if
26246         __SSE4_2__ is defined.
26247
26248 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
26249
26250         PR target/44132
26251         PR middle-end/43602
26252         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
26253         DECL_VISIBILITY_SPECIFIED.
26254         (emutls_decl): Set DECL_PRESERVE_P and copy
26255         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
26256         (emutls_finalize_control_var): New callback.
26257         (emutls_finish): Finalize emutls control variables.
26258         * toplev.c (compile_file): Move the call to emutls_finish ()
26259         before varpool_assemble_pending_decls ().
26260
26261 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
26262
26263         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
26264         added to the preprocessor condition.
26265
26266 2010-05-24  Paul Brook  <paul@codesourcery.com>
26267
26268         * gengtype-lex.l: Add HARD_REG_SET.
26269         * expr.c (expand_expr_real_1): Record writes to hard registers.
26270         * function.c (rtl_data): Add asm_clobbers.
26271         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
26272         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
26273         Use crtl->asm_clobbers.
26274
26275 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26276
26277         * doc/makefile.texi (Makefile): Mention stages 'profile'
26278         and 'feedback' for profiledbootstrap.
26279
26280 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
26281
26282         PR target/44245
26283         * config/i386/i386.c (def_builtin): Properly check
26284         OPTION_MASK_ISA_64BIT.
26285
26286 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
26287
26288         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
26289         typedefs with different but compatible types.  Allow duplicate
26290         typedefs with the same type except for pedantic non-C1X, but give
26291         warning for variably modified types.
26292         * c-typeck.c (tagged_types_tu_compatible_p,
26293         function_types_compatible_p, type_lists_compatible_p,
26294         comptypes_internal): Add parameter different_types_p; set
26295         *different_types_p for different but compatible types.  All
26296         callers changed.
26297         (comptypes_check_different_types): New.
26298         * c-tree.h (comptypes_check_different_types): Declare.
26299
26300 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
26301
26302         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
26303         * jump.c: Include basic-block.h.
26304         * profile.c: Likewise.
26305         * tree-profile.c: Likewise.
26306         * coverage.c: Likewise.
26307         * basic-block.h (optimize_function_for_size_p): Move to function.h.
26308         (optimize_function_for_speed_p): Likewise.
26309         * function.h (optimize_function_for_size_p,
26310         optimize_function_for_speed_p): Moved here from basic-block.h.
26311         * Makefile.in: Update dependencies.
26312
26313 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26314
26315         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
26316         before calling make; allow override through $MAKE.
26317         * doc/invoke.texi (Optimize Options): Document override.
26318
26319 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
26320
26321         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
26322         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26323         (rs6000_mode_dependent_address_ptr): Make static.
26324         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26325         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
26326         Remove.
26327
26328 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
26329
26330         PR target/43869
26331         * config/i386/i386.c: Make sure that the correct regparm is passed.
26332
26333 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
26334
26335         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
26336         * sbitmap.c: ...to here to internalize sbitmap element access.
26337         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
26338         Explain why basic-block.h is included.
26339         * function.h: Include tm.h for CUMULATIVE_ARGS.
26340         * Makefile.in: Update dependencies.
26341
26342 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
26343
26344         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
26345         New core types.
26346         * sbitmap.h (struct sbitmap_def): Do not typedef here.
26347         * sbitmap.c: Include sbitmap.h.
26348         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
26349         hard-reg-set.h.  Split everything related to regsets out from here...
26350         * regset.h: ...to here.  New file.
26351         * df.h: Include regset.h and sbitmap.h.
26352         * tree-flow.h: Likewise.
26353         * cfgloop.h: Likewise.
26354         * except.h: Do not include sbitmap.h.  Include hashtab.h.
26355         * cgraph.h: Include vec.h and function.h.
26356         * reload.h (struct insn_chain): Change types of live_throughout
26357         and dead_or_set from regset_head to bitmap_head.
26358         (compute_use_by_pseudos): Be defined also if regset.h is not included.
26359         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
26360         spilled_regs from regset_head to bitmap_head to avoid dependency
26361         in regset.h.
26362         * sel-sched-ir.h: Include regset.h.
26363         * reload.c: Include df.h before reload.h.
26364         * caller-save.c: Likewise.
26365         * reload1.c: Likewise.
26366         * ira.c: Likewise.
26367         (mark_elimination): Update type of r to bitmap, consistent with
26368         DF_LR_IN.
26369         * dominance.c: Include bitmap.h.
26370         * modulo-sched.c: Include df.h.
26371         * cfganal.c: Include bitmap.h and sbitmap.h.
26372         * cfgbuild.c: Include sbitmap.h.
26373         * lcm.c: Include sbitmap.h.
26374         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
26375         * domwalk.c: Include sbitmap.h, exclude ggc.h.
26376         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
26377         * cselib.c: Include bitmap.h.
26378         * tree-optimize.c: Include regset.h.
26379         * stmt.c: Include bitmap.h.
26380         * Makefile.in: Update dependencies.
26381
26382 2010-05-22  Jan Hubicka  <jh@suse.cz>
26383
26384         * cgraph.h (struct varpool_node): Add same_comdat_group.
26385         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
26386         pointer.
26387         (output_varpool): Update call of lto_output_varpool_node.
26388         (input_varpool): Read same_comdat_group pointer.
26389         (input_varpool_1): Fixup same_comdat_group pointer.
26390         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
26391         group is needed, all are.
26392         * varpool.c (varpool_remove_node): Remove node from same comdat group
26393         linklist too.
26394         (varpool_analyze_pending_decls): Walk same comdat groups.
26395
26396 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
26397
26398         * rtl.h (union rtunion_def): Remove rt_bit member.
26399         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
26400         * print-rtl (print_rtx): Do not print the member.
26401         * gengtype.c (adjust_field_rtx_def): Do not handle it.
26402         * gengenrtl.c (type_from_format): Likewise.
26403         (accessor_from_format): Likewise.
26404
26405 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
26406
26407         * dbgcnt.c: Include toplev.h instead of errors.h.
26408         * ira-emit.c: Don't include errors.h.
26409         * ira.c: Include toplev.h instead of errors.h.
26410         * lto-compress.c: Include toplev.h instead of errors.h.
26411         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
26412         ira.o, dbgcnt.o): Update dependencies.
26413
26414 2010-05-22  Richard Guenther  <rguenther@suse.de>
26415
26416         * gimple.c (gimple_types_compatible_p): Check type qualifications
26417         before merging pointer to complete and pointer to incomplete type.
26418         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
26419         we use our own resolution algorithm.  The gold linker plugin
26420         doesn't do the job we want it to do here.
26421
26422 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
26423
26424         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26425         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26426         (sparc_mode_dependent_address_p): New function.
26427
26428 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26429
26430         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
26431
26432         * timevar.c: Do not include any core headers.
26433         (timevar_print): De-i18n-ize.
26434         (print_time): Likewise.
26435         * timevar.h (timevar_push, timevar_pop): Make inline functions.
26436
26437 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
26438
26439         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
26440         langhooks-def.h.
26441         (diagnostic_initialize): Initialize x_data not last_function.
26442         (diagnostic_report_current_function): Move to tree-diagnostic.c.
26443         (default_diagnostic_starter): Call
26444         diagnostic_report_current_module not
26445         diagnostic_report_current_function.
26446         (diagnostic_report_diagnostic): Initialize x_data not
26447         abstract_origin.
26448         (verbatim): Likewise.
26449         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
26450         x_data.
26451         (struct diagnostic_context): Change last_function to x_data.
26452         (diagnostic_auxiliary_data): Replace with
26453         diagnostic_context_auxiliary_data and
26454         diagnostic_info_auxiliary_data.
26455         (diagnostic_last_function_changed, diagnostic_set_last_function,
26456         diagnostic_report_current_function): Move to tree-diagnostic.h.
26457         (print_declaration, dump_generic_node, print_generic_stmt,
26458         print_generic_stmt_indented, print_generic_expr,
26459         print_generic_decl, debug_c_tree, dump_omp_clauses,
26460         print_call_name, debug_generic_expr, debug_generic_stmt,
26461         debug_tree_chain, default_tree_printer): Move to
26462         tree-pretty-print.h.
26463         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
26464         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
26465         gimple-pretty-print.h.
26466         * pretty-print.c: Don't include tree.h
26467         (pp_base_format): Don't handle %K here.
26468         (pp_base_tree_identifier): Move to tree-pretty-print.c.
26469         * pretty-print.h (text_info): Change abstract_origin to x_data.
26470         (pp_tree_identifier, pp_unsupported_tree,
26471         pp_base_tree_identifier): Move to tree-pretty-print.h.
26472         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
26473         tree-pretty-print.h: New files.
26474         * tree-pretty-print.c: Include tree-pretty-print.h.
26475         (percent_K_format): New.  Moved from pretty-print.c.
26476         (pp_base_tree_identifier): Move from pretty-print.c.
26477         * c-objc-common.c: Include tree-pretty-print.h.
26478         (c_tree_printer): Handle %K here.
26479         * langhooks.c: Include tree-diagnostic.h.
26480         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
26481         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
26482         (default_tree_printer): Handle %K using percent_K_format.
26483         (general_init): Use default_tree_diagnostic_starter.
26484         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
26485         (free_lang_data): Use default_tree_diagnostic_starter.
26486         * c-pretty-print.c: Include tree-pretty-print.h.
26487         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26488         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26489         * dwarf2out.c: Include tree-pretty-print.h.
26490         * except.c: Include tree-pretty-print.h.
26491         * gimple-pretty-print.c: Include tree-pretty-print.h and
26492         gimple-pretty-print.h.
26493         * gimplify.c: Include tree-pretty-print.h.
26494         * graphite-poly.c: Include tree-pretty-print.h and
26495         gimple-pretty-print.h.
26496         * ipa-cp.c: Include tree-pretty-print.h.
26497         * ipa-inline.c: Include gimple-pretty-print.h.
26498         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26499         * ipa-pure-const.c: Include gimple-pretty-print.h.
26500         * ipa-struct-reorg.c: Include tree-pretty-print.h and
26501         gimple-pretty-print.h.
26502         * ipa-type-escape.c: Include tree-pretty-print.h.
26503         * print-rtl.c: Include tree-pretty-print.h.
26504         * print-tree.c: Include gimple-pretty-print.h.
26505         * sese.c: Include tree-pretty-print.h.
26506         * tree-affine.c: Include tree-pretty-print.h.
26507         * tree-browser.c: Include tree-pretty-print.h.
26508         * tree-call-cdce.c: Include gimple-pretty-print.h.
26509         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26510         * tree-chrec.c: Include tree-pretty-print.h.
26511         * tree-data-ref.c: Include tree-pretty-print.h and
26512         gimple-pretty-print.h.
26513         * tree-dfa.c: Include tree-pretty-print.h.
26514         * tree-if-conv.c: Include tree-pretty-print.h and
26515         gimple-pretty-print.h.
26516         * tree-inline.c: Include tree-pretty-print.h.
26517         * tree-into-ssa.c: Include tree-pretty-print.h and
26518         gimple-pretty-print.h.
26519         * tree-nrv.c: Include tree-pretty-print.h.
26520         * tree-object-size.c: Include tree-pretty-print.h and
26521         gimple-pretty-print.h.
26522         * tree-outof-ssa.c: Include tree-pretty-print.h and
26523         gimple-pretty-print.h.
26524         * tree-parloops.c: Include tree-pretty-print.h and
26525         gimple-pretty-print.h.
26526         * tree-predcom.c: Include tree-pretty-print.h and
26527         gimple-pretty-print.h.
26528         * tree-scalar-evolution.c: Include tree-pretty-print.h and
26529         gimple-pretty-print.h.
26530         * tree-sra.c: Include tree-pretty-print.h.
26531         * tree-ssa-address.c: Include tree-pretty-print.h.
26532         * tree-ssa-alias.c: Include tree-pretty-print.h.
26533         * tree-ssa-ccp.c: Include tree-pretty-print.h and
26534         gimple-pretty-print.h.
26535         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
26536         * tree-ssa-copy.c: Include tree-pretty-print.h and
26537         gimple-pretty-print.h.
26538         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
26539         * tree-ssa-dce.c: Include tree-pretty-print.h and
26540         gimple-pretty-print.h.
26541         * tree-ssa-dom.c: Include tree-pretty-print.h and
26542         gimple-pretty-print.h.
26543         * tree-ssa-dse.c: Include gimple-pretty-print.h.
26544         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
26545         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
26546         * tree-ssa-live.c: Include tree-pretty-print.h and
26547         gimple-pretty-print.h.
26548         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
26549         gimple-pretty-print.h.
26550         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
26551         gimple-pretty-print.h.
26552         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
26553         gimple-pretty-print.h.
26554         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
26555         gimple-pretty-print.h.
26556         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
26557         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
26558         * tree-ssa-operands.c: Include tree-pretty-print.h and
26559         gimple-pretty-print.h.
26560         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
26561         gimple-pretty-print.h.
26562         * tree-ssa-pre.c: Include tree-pretty-print.h and
26563         gimple-pretty-print.h.
26564         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
26565         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
26566         gimple-pretty-print.h.
26567         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
26568         gimple-pretty-print.h.
26569         * tree-ssa-sink.c: Include gimple-pretty-print.h.
26570         * tree-ssa-ter.c: Include tree-pretty-print.h and
26571         gimple-pretty-print.h.
26572         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
26573         * tree-ssa.c: Include tree-pretty-print.h and
26574         gimple-pretty-print.h.
26575         * tree-stdarg.c: Include gimple-pretty-print.h.
26576         * tree-switch-conversion.c: Include gimple-pretty-print.h.
26577         * tree-tailcall.c: Include tree-pretty-print.h and
26578         gimple-pretty-print.h.
26579         * tree-vect-data-refs.c: Include tree-pretty-print.h and
26580         gimple-pretty-print.h.
26581         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
26582         gimple-pretty-print.h.
26583         * tree-vect-loop.c: Include tree-pretty-print.h and
26584         gimple-pretty-print.h.
26585         * tree-vect-patterns.c: Include gimple-pretty-print.h.
26586         * tree-vect-slp.c: Include tree-pretty-print.h and
26587         gimple-pretty-print.h.
26588         * tree-vect-stmts.c: Include tree-pretty-print.h and
26589         gimple-pretty-print.h.
26590         * tree-vectorizer.c: Include tree-pretty-print.h.
26591         * tree-vrp.c: Include tree-pretty-print.h and
26592         gimple-pretty-print.h.
26593         * value-prof.c: Include tree-pretty-print.h and
26594         gimple-pretty-print.h.
26595         * var-tracking.c: Include tree-pretty-print.h.
26596         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
26597         (tree-diagnostic.o): New dependencies.
26598         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
26599         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
26600         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
26601         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
26602         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
26603         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
26604         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
26605         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
26606         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
26607         tree-ssa-address.o, tree-ssa-loop-niter.o,
26608         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
26609         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
26610         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
26611         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
26612         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
26613         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
26614         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
26615         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
26616         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
26617         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
26618         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
26619         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
26620         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
26621         tree-switch-conversion.o, var-tracking.o, value-prof.o,
26622         cfgexpand.o, pretty-print.o): Update dependencies.
26623
26624 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
26625
26626         * tree-ssa-structalias.c: Remove tm_p.h from include.
26627
26628 2010-05-21  Jeff Law  <law@redhat.com>
26629
26630         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
26631
26632 2010-05-21  Jason Merrill  <jason@redhat.com>
26633
26634         * tree-eh.c (cleanup_is_dead_in): New.
26635         (lower_try_finally): Don't generate a dead cleanup region.
26636         (lower_cleanup): Likewise.
26637
26638 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26639
26640         PR debug/44223
26641         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
26642         unchain each use from the cyclic next_regno_use chain first.
26643
26644 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26645
26646         * real: Do not include gmp.h, mpfr.h, and mpc.h.
26647         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
26648         (real_value_negate, real_value_abs): New prototypes.
26649         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
26650         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
26651         new include file for interface between MPFR and REAL_VALUE_TYPE.
26652         * real.c: Include realmpfr.h.
26653         (real_arithmetic2): Remove legacy function.
26654         (real_value_negate): New.
26655         (real_value_abs): New.
26656         (mfpr_from_real, real_from_mpfr): Move from here...
26657         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
26658         * builtins.c: Include realmpfr.h.
26659         * fold-const.c: Include realmpfr.h.
26660         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
26661         (fold_negate_const): Likewise.
26662         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
26663         * toplev.c: Include realmpfr.h.
26664         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
26665         and real_value_negate.
26666         * fixed-value.c (check_real_for_fixed_mode): Likewise.
26667         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
26668         (vfp3_const_double_index): Likewise.
26669         (arm_print_operand): Likewise.
26670         * Makefile.in: Update dependencies.
26671
26672 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26673
26674         * config/s390/s390.c (override_options): Increase the default
26675         of max-completely-peel-times.
26676
26677 2010-05-21  Julian Brown  <julian@codesourcery.com>
26678             Mark Mitchell  <mark@codesourcery.com>
26679
26680         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
26681         sibling calls for Thumb-1.
26682         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
26683         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
26684         Thumb-2.
26685         (*call_insn, *call_value_insn): Don't use for Thumb-2.
26686         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
26687         for Thumb-2.
26688         (return): New expander.
26689         (*arm_return): New name for ARM return insn.
26690         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
26691
26692 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
26693
26694         * config.gcc (sparc64-*-rtems*): New target.
26695
26696 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
26697
26698         * tree.c (build_function_decl_skip_args): Fix grammar.
26699         (build_function_type_list_1): Fix typos, adjust formatting.
26700
26701 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26702
26703         * tree.h: Include real.h and fixed-value.h as basic datatypes.
26704         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
26705         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
26706         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
26707         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
26708         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
26709         tree-pretty-print.c, tree-loop-distribution.c,
26710         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
26711         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
26712         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
26713         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
26714         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
26715         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
26716         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
26717         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
26718         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
26719         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
26720         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
26721         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
26722         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
26723         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
26724         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
26725         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
26726         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
26727         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
26728         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
26729         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
26730         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
26731         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
26732         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
26733         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
26734         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
26735         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
26736         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
26737         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
26738         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
26739         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
26740         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
26741         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
26742         config/score/score7.c, config/score/score.c, config/arm/arm.c,
26743         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
26744         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
26745         config/bfin/bfin.c: Clean up redundant includes.
26746         * Makefile.in: Update accordingly.
26747
26748 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
26749
26750         PR middle-end/44204
26751         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
26752         statement has no arguments.
26753
26754 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
26755
26756         PR/44139
26757         * varasm.c (emutls_decl): Merge attributes to new decl.
26758
26759 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
26760
26761         PR middle-end/44101
26762         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
26763         around the uniquized constructor if its type requires a conversion.
26764
26765 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26766
26767         PR debug/44205
26768         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
26769         at -O0 goto_locus of any of the incoming edges differs from
26770         goto_locus of outgoing edge, or gimple_location of any of the
26771         labels differs.
26772
26773 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
26774
26775         * ira.c (ira_non_ordered_class_hard_regs): Define.
26776         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
26777         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
26778         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
26779         cost of unaligned hard regs when allocating multi-reg pseudos.
26780
26781 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
26782
26783         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
26784         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
26785         for TARGET_NO_FLOAT.
26786         * config/mips/mips.c (mips_file_start): Expand conditional expression
26787         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
26788         (mips_override_options): Move -mno-float override -msoft-float and
26789         -mhard-float.
26790         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
26791         Condition(TARGET_SUPPORTS_NO_FLOAT).
26792         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
26793         __mips_no_float here.
26794         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
26795         (TARGET_SUPPORTS_NO_FLOAT): Define.
26796         * config/mips/sdemtk.opt: Delete.
26797
26798 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
26799
26800         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
26801
26802 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
26803
26804         PR target/43733
26805         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
26806         * configure: Regenerate.
26807         * config.in: Regenerate.
26808         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
26809         instead of sahf only for 64bit targets.
26810
26811 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
26812
26813         PR debug/44178
26814         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
26815         setup_ref_regs for DEBUG_INSNs.
26816
26817 2010-05-20  Jan Hubicka  <jh@suse.cz>
26818
26819         PR middle-end/44197
26820         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
26821
26822 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
26823
26824         PR bootstrap/43870
26825         * df-scan.c (df_ref_compare): Stabilize sort.
26826
26827 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
26828
26829         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
26830         argument.  Don't use DW_OP_piece if offset is non-zero,
26831         put offset into second DW_OP_bit_piece argument.
26832         (dw_sra_loc_expr): Adjust callers.  For memory expressions
26833         compute offset.
26834
26835 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
26836
26837         PR target/44202
26838         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
26839         settings for 16-bit-constant "addo" alternative.
26840
26841 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
26842
26843         * config/mips/mips-dsp.md (add<DSPV:mode>3,
26844         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
26845
26846         PR target/43764
26847         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
26848         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
26849         Use it.
26850
26851 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
26852
26853         * diagnostic.c (FLOAT, FFS): Don't undefine.
26854         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
26855         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
26856         include ordering.
26857
26858 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
26859
26860         * combine.c (propagate_for_debug): Call make_compound_operation
26861         on the source value.
26862         (try_combine): When implementing a split chosen by find_split_point,
26863         either copy i2src or set it to null.  Assert that i2src is not null
26864         before substituting into CALL_INSN_FUNCTION_USAGE.
26865
26866 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
26867
26868         * double-int.h (double_int_ior): New function.
26869         * tree.h (build_int_cst_wide_type): Remove.
26870         * tree.c (build_int_cst_wide_type): Remove.
26871         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
26872         of build_int_cst_wide_type.
26873         * stor-layout.c (set_sizetype): (Ditto.).
26874         * dojump.c (do_jump): Use build_int_cstu instead of
26875         build_int_cst_wide_type.
26876
26877 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
26878
26879         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
26880         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
26881         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
26882         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
26883         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
26884         propagate the 'data' argument to copy_tree_r.
26885         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
26886         Propagate 'data' argument to walk_tree.
26887         (copy_if_shared): New function.
26888         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
26889         (unmark_visited): New function.
26890         (unshare_body): Call copy_if_shared instead of doing it manually.
26891         (unvisit_body): Call unmark_visited instead of doing it manually.
26892
26893 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
26894
26895         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
26896         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
26897         * hooks.c: Likewise.
26898         * target-def.h (TARGET_FOLD_BUILTIN): Define to
26899         hook_tree_tree_int_treep_bool_null.
26900         * target.h (struct gcc_target): Update signature of fold_builtin
26901         field.
26902         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
26903         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
26904         instead of the call expression.
26905         (fold_builtin_call_array): Pass n and argarray directly.
26906         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
26907         consing a list.
26908         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
26909         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
26910         `i' and use it in place of `arity'.
26911         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
26912         Dereference `args' directly.
26913         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
26914
26915 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26916
26917         * doc/sourcebuild.texi (Effective-Target Keywords): Document
26918         3dnow, sse3, sse2.
26919         (Directives): Document optional dg-require-effective-target
26920         selector.
26921
26922 2010-05-19  Richard Guenther  <rguenther@suse.de>
26923
26924         PR lto/44196
26925         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
26926
26927 2010-05-19  Richard Guenther  <rguenther@suse.de>
26928
26929         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
26930         * common.opt (fwhopr=): New.
26931         * opts.c (common_handle_option): Handle OPT_fwhopr.
26932         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
26933         * collect2.c (main): Match -fwhopr*.
26934         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
26935         Execute ltrans stage in parallel when jobs is bigger than 1.
26936
26937 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26938
26939         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
26940         pentiumpro on Solaris 8/x86 with Sun as.
26941         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
26942         hidden alias bug.
26943         (gcc_cv_as_ix86_quad): Check for .quad directive.
26944         * configure: Regenerate.
26945         * config.in: Regenerate.
26946         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
26947
26948 2010-05-19  Martin Jambor  <mjambor@suse.cz>
26949
26950         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
26951         also for indirect edges.  Actual printing moved...
26952         (ipa_print_node_jump_functions_for_edge): ...here.
26953         (ipa_compute_jump_functions): Renamed to
26954         ipa_compute_jump_functions_for_edge and made static.
26955         (ipa_compute_jump_functions): New function.
26956         (make_edge_direct_to_target): Check if the number of arguments on
26957         the newly direct edge is the same as the number of parametrs of
26958         the callee.
26959         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
26960         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
26961         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
26962         analysis functions unconditionally, call the new
26963         ipa_analyze_params_uses on the node instead of every edge.
26964
26965 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
26966
26967         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
26968         to tree.
26969         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
26970         also checks for a constant int vs.  non-constant but
26971         loop-invariant steps.
26972         (find_or_create_group): Change the sort algorithm to only consider
26973         steps that are constant ints.
26974         (idx_analyze_ref): Adopt code to handle a tree instead of a
26975         HOST_WIDE_INT for step.
26976         (gather_memory_references_ref): Handle tree instead of int and be
26977         prepared to see a NULL_TREE.
26978         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
26979         prefetches if the step cannot be calculated at compile time.
26980         (issue_prefetch_ref): Issue prefetches for non-constant but
26981         loop-invariant steps.
26982
26983 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26984
26985         Revert:
26986         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26987
26988         * tree.h (build_call_list): Remove.
26989         * tree.c (build_call_list): Remove.
26990
26991 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26992
26993         * tree.h (build_call_list): Remove.
26994         * tree.c (build_call_list): Remove.
26995
26996 2010-05-18  Jan Hubicka  <jh@suse.cz>
26997
26998         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
26999
27000 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
27001
27002         PR rtl-optimization/43332
27003         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
27004
27005 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
27006
27007         * tree.h (build_int_cstu): Implement as static inline.
27008         * tree.c (build_int_cstu): Remove function.
27009         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
27010         sign extended.
27011
27012 2010-05-18  Richard Guenther  <rguenther@suse.de>
27013
27014         PR lto/44143
27015         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
27016         (debug): Initialize from -save-temps.
27017         (collect_execute): Print command-line when verbose.
27018         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
27019         for ltrans invocation.  Produce -dumpbase flag again.
27020         (process_args): Remove.
27021         (main): Simplify.
27022         * collect2.c (maybe_run_lto_and_relink): Only pass object
27023         files to lto-wrapper.
27024         * gcc.c (LINK_COMMAND_SPEC): Likewise.
27025
27026 2010-05-18  Jan Hubicka  <jh@suse.cz>
27027
27028         * opts.c (decode_options): Do not disable whopr at ipa_cp.
27029         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27030
27031 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27032
27033         PR lto/44184
27034         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27035         in a GIMPLE_ASM.
27036         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27037         in a GIMPLE_ASM.
27038
27039 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
27040
27041         PR debug/41371
27042         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
27043         rtx_equal_p inline.
27044
27045 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27046
27047         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
27048         lto-macho as lto_binary_reader.
27049
27050         * darwin.c (darwin_asm_named_section): Do not add assembler comment
27051         after .section directive; just print it before the directive instead.
27052
27053 2010-05-17  Jan Hubicka  <jh@suse.cz>
27054
27055         * cgraph.c (cgraph_create_virtual_clone): Only check
27056         versionable_function_p when not in wpa and checking is enabled.
27057         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
27058         there are no more functions to materialize.
27059
27060 2010-05-17  Jan Hubicka  <jh@suse.cz>
27061
27062         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
27063         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
27064         New functions.
27065         (output_cgraph): Call output_cgraph_opt_summary.
27066         (input_cgrpah): Call input_cgraph_opt_summary.
27067         (output_cgraph_opt_summary_p, output_node_opt_summary,
27068         input_node_opt_summary, input_cgraph_opt_section): New functions.
27069         * lto-section-in.c (lto_section_name): Add cgraphopt.
27070         * tree-inline.c (tree_function_versioning): Handle parm_num.
27071         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
27072         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
27073
27074 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27075
27076         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
27077         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
27078         the insn to prefetch ratio heuristic to loops with known trip count.
27079
27080 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27081
27082         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
27083         (schedule_prefetches): Do not generate a prefetch if the unroll factor
27084         is far from what is required by the prefetch.
27085
27086 2010-05-17  Jan Hubicka  <jh@suse.cz>
27087
27088         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
27089         (ipcp_estimate_growth): Likewise.
27090         (ipcp_const_param_count): Likewise.
27091         (ipcp_insert_stage): Likewise.
27092         * ipa-prop.c (visit_load_for_mod_analysis): New function.
27093         (visit_store_addr_for_mod_analysis): Set used flag.
27094         (ipa_detect_param_modifications): Set used flag for SSE params;
27095         update use of walk_stmt_load_store_addr_ops.
27096         (ipa_print_node_params): Print used flag.
27097         (ipa_write_node_info): Stream used flag.
27098         (ipa_read_node_info): Likewise.
27099         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
27100         (ipa_is_param_used): New function.
27101         (lto_ipa_fixup_call_notes): Remove unused declaration.
27102
27103 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27104
27105         PR target/44074
27106         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
27107         * configure: Regenerate.
27108         * config.in: Regenerate.
27109         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
27110         !HAVE_AS_IX86_REP_LOCK_PREFIX.
27111         Don't emit whitespace.
27112         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
27113         (*rep_movsi): Likewise.
27114         (*rep_movsi_rex64): Likewise.
27115         (*rep_movqi): Likewise.
27116         (*rep_movqi_rex64): Likewise.
27117         (*rep_stosdi_rex64): Likewise.
27118         (*rep_stossi): Likewise.
27119         (*rep_stossi_rex64): Likewise.
27120         (*rep_stosqi): Likewise.
27121         (*rep_stosqi_rex64): Likewise.
27122         (*cmpstrnqi_nz_1): Use {%;} after repz.
27123         (*cmpstrnqi_nz_rex_1): Likewise.
27124         (*cmpstrnqi_1): Likewise.
27125         (*cmpstrnqi_rex_1): Likewise.
27126         (*strlenqi_1): Use {%;} after repnz.
27127         (*strlenqi_rex_1): Likewise.
27128         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
27129         (*sync_compare_and_swap<mode>): Likewise.
27130         (sync_double_compare_and_swap<mode>): Likewise.
27131         (*sync_double_compare_and_swapdi_pic): Likewise.
27132         (sync_old_add<mode>): Likewise.
27133         (sync_add<mode>): Likewise.
27134         (sync_sub<mode>): Likewise.
27135         (sync_<code><mode>): Likewise.
27136
27137 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27138
27139         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
27140         otr_token and polymorphic.
27141         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
27142         (cgraph_clone_edge): Copy the above fields.
27143         * tree.c (get_binfo_at_offset): New function.
27144         * tree.h (get_binfo_at_offset): Declare.
27145         * ipa-prop.h (enum jump_func_type): Added known_type jump function
27146         type, reordered items, updated comments.
27147         (union jump_func_value): Added base_type field, reordered fields.
27148         (enum ipa_lattice_type): Moved down in the file.
27149         (struct ipa_param_descriptor): New field polymorphic.
27150         (ipa_is_param_polymorphic): New function.
27151         * ipa-prop.c: Include gimple.h and gimple-fold.h.
27152         (ipa_print_node_jump_functions): Print known type jump functions.
27153         (compute_complex_pass_through): Renamed to...
27154         (compute_complex_assign_jump_func): this.
27155         (compute_complex_ancestor_jump_func): New function.
27156         (compute_known_type_jump_func): Likewise.
27157         (compute_scalar_jump_functions): Create known type and complex ancestor
27158         jump functions.
27159         (ipa_note_param_call): New parameter polymorphic, set the corresponding
27160         flag in the call note accordingly.
27161         (ipa_analyze_call_uses): Renamed to...
27162         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
27163         variable var only in the block where it is used.
27164         (ipa_analyze_virtual_call_uses): New function.
27165         (ipa_analyze_call_uses): Likewise.
27166         (combine_known_type_and_ancestor_jfs): Likewise.
27167         (update_jump_functions_after_inlining): Implemented handling of a
27168         number of new jump function types combination.
27169         (print_edge_addition_message): Removed.
27170         (make_edge_direct_to_target): New function.
27171         (try_make_edge_direct_simple_call): Likewise.
27172         (try_make_edge_direct_virtual_call): Likewise.
27173         (update_call_notes_after_inlining): Renamed to...
27174         (update_indirect_edges_after_inlining): this.  Moved edge creation for
27175         indirect calls to try_make_edge_direct_simple_call, also calls
27176         try_make_edge_direct_virtual_call for virtual calls.
27177         (ipa_print_node_params): Changed the header message.
27178         (ipa_write_jump_function): Stream also known type jump functions.
27179         (ipa_read_jump_function): Likewise.
27180         (ipa_write_indirect_edge_info): Stream new fields in
27181         cgraph_indirect_call_info.
27182         (ipa_read_indirect_edge_info): Likewise.
27183         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
27184         GIMPLE_FOLD_H.
27185
27186 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27187
27188         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
27189
27190 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27191
27192         * tree.h (CALL_EXPR_ARGS): Delete.
27193         (call_expr_arglist): Delete.
27194         * tree.c (call_expr_arglist): Delete.
27195         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
27196         targetm.fold_builtin.
27197         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
27198         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
27199         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
27200         arglist parameter.  Use CALL_EXPR_ARG.
27201         (picochip_expand_builtin_3op): Likewise.
27202         (picochip_expand_builtin_2opvoid): Likewise.
27203         (picochip_expand_array_get): Likewise.
27204         (picochip_expand_array_put): Likewise.
27205         (picochip_expand_array_testport): Likewise.
27206         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
27207         rather than arglist.
27208         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
27209         CALL_EXPR_ARGS.
27210         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
27211         than TREE_VALUE and TREE_CHAIN.
27212         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
27213         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
27214         the arglist.
27215
27216 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27217
27218         PR bootstrap/42347
27219         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
27220         to have no fallthru edge.
27221
27222         PR middle-end/44102
27223         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
27224         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
27225         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
27226         add BARRIER after previous bb if needed.
27227
27228 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27229
27230         * tree.c (build_function_type_list_1): Remove bogus assert condition.
27231
27232 2010-05-17  Alan Modra  <amodra@gmail.com>
27233
27234         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
27235         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
27236         with copy_reg rtx param.
27237         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
27238         Correct cases where code for ABI_V4 did not initialise the reg
27239         used to access frame.  Also leave frame_reg_rtx as sp for large
27240         frames that save no regs.
27241
27242 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27243
27244         PR middle-end/44133
27245         * tree-sra.c (create_access_replacement): New parameter rename, mark
27246         the replaement for renaming only when it is true.
27247         (get_access_replacement): Pass true in the rename parameter of
27248         create_access_replacement.
27249         (get_unrenamed_access_replacement): New function.
27250         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
27251         replacement declaration from it.
27252
27253 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
27254
27255         * function.c (try_fit_stack_local, add_frame_space): New static
27256         functions.
27257         (assign_stack_local_1): Use them.  Look for opportunities to use
27258         space previously wasted on alignment.
27259         * function.h (struct frame_space): New.
27260         (struct rtl_data): Add FRAME_SPACE_LIST member.
27261         * reload1.c (something_was_spilled): New static variable.
27262         (alter_reg): Set it.
27263         (reload): Test it in addition to testing if the frame size changed.
27264
27265 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
27266
27267         * config/s390/s390.c: Define sane prefetch settings and activate
27268         flag_prefetch_loop_arrays on -O3.
27269         * config/s390/s390.h: Declare that read can use write prefetch.
27270
27271 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27272
27273         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
27274         build.
27275
27276 2010-05-16  Jan Hubicka  <jh@suse.cz>
27277
27278         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
27279         function body; do not check stdarg field of struct function.
27280
27281 2010-05-16  Jan Hubicka  <jh@suse.cz>
27282
27283         * cgraph.c (dump_cgraph_node): Dump versionable flag.
27284         * cgraph.h (cgraph_local_info): Add versionable flag.
27285         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
27286         (ipcp_versionable_function_p): Use it.
27287         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
27288         versionable flag.
27289
27290 2010-05-16  Jan Hubicka  <jh@suse.cz>
27291
27292         * cgraph.c (cgraph_clone_node): Take decl argument and insert
27293         clone into hash when it is different from orig.
27294         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
27295         * cgraph.h (cgraph_clone_node): Update prototype.
27296         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
27297         (lto_cgraph_encoder_delete): Delete body map.
27298         (lto_cgraph_encoder_size): Move to header.
27299         (lto_cgraph_encoder_encode_body_p,
27300         lto_set_cgraph_encoder_encode_body): New.
27301         (lto_output_node): Do not take written_decls argument; output clone_of
27302         pointer.
27303         (add_node_to): Add include_body_argument; call
27304         lto_set_cgraph_encoder_encode_body on master of the clone.
27305         (add_references): Update use of add_node_to.
27306         (compute_ltrans_boundary): Likewise.
27307         (output_cgraph): Do not create written_decls bitmap.
27308         (input_node): Take nodes argument; stream in clone_of correctly.
27309         (input_cgraph_1): Update use of input_node.
27310         * lto-streamer-out.c (lto_output): Use encoder info to decide
27311         what bodies to output.
27312         * ipa-inline.c (cgraph_clone_inlined_nodes,
27313         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
27314         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
27315         (lto_cgraph_encoder_size): Define here.
27316         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
27317         Declare.
27318
27319 2010-05-16  Richard Guenther  <rguenther@suse.de>
27320
27321         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
27322         -fipa-type-escape.
27323         * ipa-type-escape.c (gate_type_escape_vars): Run when
27324         -fipa-struct-reorg runs.
27325         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
27326         * common.opt (fipa-type-escape): Remove.
27327
27328 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
27329
27330         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
27331         (decode_options): Likewise.
27332         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
27333
27334 2010-05-16  Jan Hubicka  <jh@suse.cz>
27335
27336         * ipa.c (function_and_variable_visibility): Also bring local all
27337         aliases.
27338
27339 2010-05-16  Richard Guenther  <rguenther@suse.de>
27340
27341         * alias.c (nonoverlapping_memrefs_p): Remove use of
27342         IPA type-escape information.
27343
27344 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
27345
27346         * c-common.c (c_common_reswords): Add _Static_assert for C.
27347         * c-parser.c (c_token_starts_declaration,
27348         c_parser_next_token_starts_declaration,
27349         c_parser_static_assert_declaration_no_semi,
27350         c_parser_static_assert_declaration): New.
27351         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
27352         Handle static assertions if static_assert_ok.
27353         (c_parser_external_declaration, c_parser_declaration_or_fndef,
27354         c_parser_compound_statement_nostart, c_parser_label,
27355         c_parser_for_statement, c_parser_objc_methodprotolist,
27356         c_parser_omp_for_loop): All callers of
27357         c_parser_declaration_or_fndef changed.
27358         (c_parser_struct_declaration): Handle static assertions.
27359         (c_parser_compound_statement_nostart): Use
27360         c_parser_next_token_starts_declaration and
27361         c_token_starts_declaration to detect start of declarations.
27362         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
27363         Likewise.
27364
27365 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
27366
27367         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27368         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27369         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27370         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27371         (mmix_function_outgoing_value): Rename to...
27372         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
27373         (mmix_function_value_regno_p): Make static.
27374         (mmix_libcall_value): New function.
27375         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
27376         mmix_function_value_regno_p): Remove declaration.
27377
27378 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
27379
27380         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
27381         BUILT_IN_ALLOCA if stack checking is enabled.
27382
27383 2010-05-16  Richard Guenther  <rguenther@suse.de>
27384
27385         * var-tracking.c (vars_copy_1): Inline ...
27386         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
27387         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
27388         (variable_merge_over_cur): Adjust.  Merge asserts.
27389         (variable_merge_over_src): Likewise.
27390         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
27391         (variable_post_merge_new_vals): Merge asserts.
27392         (variable_post_merge_perm_vals): Likewise.
27393         (find_mem_expr_in_1pdv): Likewise.
27394         (dataflow_set_different_value): Remove.
27395         (onepart_variable_different_p): Merge asserts.
27396         (variable_different_p): Likewise.
27397         (dataflow_set_different_1): Inline ...
27398         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
27399         (emit_notes_for_differences_1): Merge asserts.
27400
27401 2010-05-16  Richard Guenther  <rguenther@suse.de>
27402
27403         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
27404         * optabs.c (libfunc_decl_hash): Likewise.
27405         * varasm.c (emutls_decl): Likewise.
27406
27407 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
27408
27409         * c-decl.c: Don't include gimple.h.
27410         (merge_decls): Do not copy gimple_body.
27411
27412 2010-05-15  Jason Merrill  <jason@redhat.com>
27413
27414         * c.opt: Add -fnothrow-opt.
27415
27416 2010-05-15  Jan Hubicka  <jh@suse.cz>
27417
27418         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
27419         analyzed.
27420         * passes.c (ipa_write_summaries): Write all analyzed nodes.
27421
27422 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
27423
27424         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
27425         * Makefile.in: Add it.
27426         Fix all other Makefile dependencies for changes below.
27427         * tree.h: Include it instead of defining VEC primitives here.
27428         * gimple.h: Likewise.
27429         * rtl.h: Likewise.
27430         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
27431         * except.h: Include vecir.h, break dependence on tree.h.
27432
27433         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
27434         Move from here...
27435         * tree-iterator.c: ...to here.
27436         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
27437
27438         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
27439         tm_p.h.
27440         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
27441         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
27442         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
27443         tree-mudflap.h, and target.h.
27444         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
27445         predict.h, tree-inline.h, gimple.h, and langhooks.h.
27446         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
27447         Add FIXME for why gimple.h is still included (should be unnecessary
27448         since GCC 4.5 gimplification unit-at-a-time).
27449         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
27450         * c-pragma.c: Add FIXME for why function.h needs to be included just
27451         for cfun, at front-end level.
27452         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
27453         Do not include ggc.h, but include vecprim.h for VEC(char).
27454         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
27455         Explain why target.h is included.
27456         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
27457         Explain why gimple.h is included.
27458         * c-ppoutput.c: Do not include tm.h.
27459         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
27460         * c-parses.c: Explain why rtl.h is included, and that this (and only
27461         this) is also why tm.h must be included.
27462         Do not include except.h.
27463         * c-lang.c: Do not include ggc.h.
27464
27465 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
27466
27467         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
27468
27469 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
27470
27471         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
27472         unions by default if those structs and unions have no tags.  Do
27473         not condition anonymous struct and unions handling on flag_iso.
27474         Allow anonymous structs and unions for C1X.
27475         (finish_struct): Do not diagnose lack of named fields when
27476         anonymous structs and unions present for C1X.  Accept flexible
27477         array members in structure with anonymous structs or unions but no
27478         directly named fields.
27479         * doc/extend.texi (Unnamed Fields): Update.
27480
27481 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
27482
27483         * gimple.h (compare_field_offset): Rename into...
27484         (gimple_compare_field_offset): ...this.
27485         * gimple.c (compare_field_offset): Rename into...
27486         (gimple_compare_field_offset): ...this.  Compare the full access if
27487         the offset is self-referential.
27488         (gimple_types_compatible_p): Adjust for above renaming.
27489         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
27490         DECL_NONADDRESSABLE_P flag of fields before merging them.
27491
27492 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
27493
27494         * tree.h (ctor_to_list): Delete.
27495         * tree.c (ctor_to_list): Delete.
27496
27497 2010-05-15  Jan Hubicka  <jh@suse.cz>
27498
27499         * ipa-reference.c: Include toplev.h
27500         (is_proper_for_analysis): Only add to all_module_statics
27501         if it is allocated.
27502         (write_node_summary_p, stream_out_bitmap,
27503         ipa_reference_write_optimization_summary,
27504         ipa_reference_read_optimization_summary): New.
27505         (struct ipa_opt_pass_d pass_ipa_reference): Add
27506         optimization summary streaming.
27507         * lto-cgraph.c (referenced_from_this_partition_p,
27508         reachable_from_this_partition_p): New functions.
27509         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
27510         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
27511         * opts.c (decode_options): Enable ipa_reference.
27512         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
27513         * lto-streamer.h (referenced_from_this_partition_p,
27514         reachable_from_this_partition_p): Declare.
27515
27516 2010-05-15  Richard Guenther  <rguenther@suse.de>
27517
27518         PR tree-optimization/44038
27519         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
27520         taking the address of a V_C_E of a constant.
27521
27522 2010-05-14  Jan Hubicka  <jh@suse.cz>
27523
27524         * tree.h (memory_identifier_string): Remove.
27525         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
27526         (ipa_reference_global_vars_info_d): Remove statics_not_read and
27527         statics_not_written.
27528         (ipa_reference_optimization_summary_d): New structure.
27529         (ipa_reference_optimization_summary_t): New type and vector.
27530         (ipa_reference_vars_info_d): Embedd structures instead of using
27531         pointers.
27532         (reference_vars_to_consider): Remove out of GGC space.
27533         (module_statics_escape): Remove.
27534         (global_info_obstack): Rename to ...
27535         (optimization_summary_obstack): ... this one.
27536         (initialization_status_t): Remove.
27537         (memory_identifier_string): Remove.
27538         (get_reference_vars_info): Fix indenting.
27539         (set_reference_vars_info): Likewise.
27540         (get_reference_optimization_summary): New.
27541         (set_reference_optimization_summary): New.
27542         (get_global_reference_vars_info): Remove.
27543         (ipa_reference_get_read_global): Remove.
27544         (ipa_reference_get_written_global): Remove.
27545         (ipa_reference_get_not_read_global): Update.
27546         (ipa_reference_get_not_written_global): Update.
27547         (is_proper_for_analysis): Outlaw addressable.
27548         (propagate_bits): Update for new datastructures.
27549         (analyze_variable): Remove.
27550         (init_function_info): Update for new datastructures.
27551         (clean_function_local_data): Remove.
27552         (clean_function): Remove.
27553         (copy_global_bitmap): Use optimizations_summary_obstack.
27554         (duplicate_node_data): Duplicate optimization summary only.
27555         (remove_node_data): Remove optimization summary only.
27556         (generate_summary): Do not analyze variables; do not compute
27557         module_statics_escape; do not prune solutions by it.
27558         (read_write_all_from_decl): Fix typos in comments.
27559         (propagate): Doscover readonly and nonaddressable first;
27560         update for new datastructures; share global bitmaps.
27561         * ipa-reference.h (ipa_reference_get_read_global,
27562         ipa_reference_get_written_global): Remove.
27563         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
27564         * Makefile.in: Remove ipa-refereference from GT files.
27565
27566 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
27567
27568         PR debug/44112
27569         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
27570         for all SYMBOL_REF_DECLs.
27571
27572 2010-05-14  Jan Hubicka  <jh@suse.cz>
27573
27574         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
27575         (varpool_all_refs_explicit_p): New inline function.
27576         * ipa-reference.c: Update comment.
27577         (module_statics_written): Remove.
27578         (get_static_decl): Remove.
27579         (ipa_init): Do not initialize module_statics_written.
27580         (analyze_function): Likewise.
27581         (generate_summary): Likewise; do not compute module_statics_readonly
27582         and do not update variable flags.
27583         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
27584         * ipa.c: Inlucde flags.h
27585         (cgraph_local_node_p): New.
27586         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
27587         promote functions to local.
27588         (ipa_discover_readonly_nonaddressable_vars): New function.
27589         (function_and_variable_visibility): Use cgraph_local_node_p.
27590         * varpool.c (varpool_finalize_decl): Set force_output for
27591         DECL_PRESERVE_P vars.
27592
27593 2010-05-14  Jan Hubicka  <jh@suse.cz>
27594
27595         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
27596
27597 2010-05-14  Richard Guenther  <rguenther@suse.de>
27598
27599         PR tree-optimization/44119
27600         * tree-ssa-pre.c (eliminate): Properly mark replacement of
27601         a PHI node necessary.
27602
27603 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
27604
27605         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
27606
27607 2010-05-14  Jason Merrill  <jason@redhat.com>
27608
27609         PR c++/44127
27610         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
27611         (gimple_call_set_nothrow): New.
27612         * gimple.c (gimple_build_call_from_tree): Call it.
27613         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
27614
27615         PR c++/44127
27616         * gimplify.c (gimplify_seq_add_stmt): No longer static.
27617         * gimple.h: Declare it.
27618         * gimple.c (gimple_build_eh_filter): No ops.
27619
27620 2010-05-14  Jan Hubicka  <jh@suse.cz>
27621
27622         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
27623         nodes already in queue.
27624         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
27625         re-enqueueing node.
27626
27627 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
27628
27629         PR debug/44136
27630         * cfgexpand.c (expand_debug_expr): If non-memory op0
27631         has BLKmode, return NULL.
27632
27633 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
27634
27635         * config.gcc: Add support for --with-cpu option for bdver1.
27636         * config/i386/i386.h (TARGET_BDVER1): New macro.
27637         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
27638         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27639         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
27640         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27641         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
27642         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
27643         (processor_type): Add PROCESSOR_BDVER1.
27644         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
27645         processor_type in config/i386/i386.h.
27646         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
27647         movaps <reg, reg> instead of movapd <reg, reg> when replacing
27648         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
27649         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
27650         to emit packed xor instead of packed double/packed integer
27651         xor for SSE and AVX when moving a zero value.
27652         * config/i386/sse.md: Add check for
27653         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
27654         movapd/movdqa for SSE and AVX.
27655         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
27656         single logical operations i.e and, or and xor instead of packed double
27657         logical operations for SSE and AVX.
27658         * config/i386/i386-c.c (ix86_target_macros_internal):
27659         Add PROCESSOR_BDVER1.
27660         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
27661         (has_fma4, has_xop): New.
27662         * config/i386/i386.c (bdver1_cost): New variable.
27663         (m_BDVER1): New macro.
27664         (m_AMD_MULTIPLE): Add m_BDVER1.
27665         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
27666         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
27667         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
27668         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
27669         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
27670         x86_tune_sse_partial_reg_dependency,
27671         x86_tune_sse_unaligned_load_optimal,
27672         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
27673         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
27674         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
27675         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
27676         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
27677         Enable/disable for bdver1.
27678         (processor_target_table): Add bdver1_cost.
27679         (cpu_names): Add bdver1.
27680         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
27681          processor_alias_table.
27682         (ix86_expand_vector_move_misalign): Change.
27683         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
27684         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
27685         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
27686         of movupd/movdqu for SSE and AVX.
27687         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
27688         (ix86_tune_adjust_cost): Add code for bdver1.
27689         (standard_sse_constant_opcode): Add check for
27690         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
27691         of packed double xor for SSE and AVX.
27692
27693 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
27694
27695         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
27696         result to unsigned.
27697
27698 2010-05-14  Tristan Gingold  <gingold@adacore.com>
27699
27700         * toplev.c (default_debug_hooks): Remove this variable.
27701         (process_options): Remove assignments to default_debug_hooks.
27702
27703 2010-05-14  Martin Jambor  <mjambor@suse.cz>
27704
27705         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
27706         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
27707         * langhooks.h (struct lang_hooks_for_decls): Removed field
27708         fold_obj_type_ref.
27709         * tree.c (free_lang_data): Remove assignment to
27710         lang_hooks.fold_obj_type_ref.
27711         * tree.def (OBJ_TYPE_REF): Update comment.
27712
27713 2010-05-14  Richard Guenther  <rguenther@suse.de>
27714
27715         PR tree-optimization/44124
27716         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
27717
27718 2010-05-14  Alan Modra  <amodra@gmail.com>
27719
27720         PR target/44075
27721         * config/rs6000/rs6000.c (struct machine_function): Reorder
27722         fields for better packing.  Add lr_save_state.
27723         (rs6000_ra_ever_killed): Return lr_save_state if set.
27724         (rs6000_emit_eh_reg_restore): Set lr_save_state.
27725
27726 2010-05-13  Jan Hubicka  <jh@suse.cz>
27727
27728         * varpool.c (decide_is_variable_needed): Drop code checking
27729         TREE_SYMBOL_REFERENCED.
27730
27731 2010-05-13  Jan Hubicka  <jh@suse.cz>
27732
27733         * final.c (output_addr_const): Do not call mark_decl_referenced.
27734         * cgraphunit.c (process_function_and_variable_attributes): Use
27735         mark_needed_node dirrectly.
27736         (assemble_thunk): Do not call mark_decl_referenced.
27737
27738 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
27739
27740         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
27741
27742 2010-05-13  Jeff Law  <law@redhat.com>
27743
27744         * ira-conflicts.c (print_allocno_conflicts): New function broken out
27745         from...
27746         (print_conflicts): Call print_allocno_conflicts.
27747
27748 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
27749
27750         PR debug/44104
27751         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
27752         if it is NULL.
27753
27754 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
27755
27756         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
27757         t-mingw-w64 or t-mingw-w32 for multilib configuration.
27758         * config/i386/t-mingw-w32: New.
27759         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
27760
27761 2010-05-13  Martin Jambor  <mjambor@suse.cz>
27762
27763         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
27764         gimple-fold.c).
27765         * gimple-fold.c (get_base_binfo_for_type): New function.
27766         (gimple_get_relevant_ref_binfo): Likewise.
27767         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27768         (gimple_fold_obj_type_ref): Likewise.
27769         (fold_gimple_call): Simplify condition for folding virtual calls
27770         and call gimple_fold_obj_type_ref.
27771         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
27772         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27773
27774 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
27775
27776         * config/rs6000/rs6000-protos.h
27777         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
27778         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
27779         (rs6000_debug_mode_dependent_address)
27780         (rs6000_mode_dependent_address_ptr): Likewise.
27781
27782 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
27783
27784         PR debug/43983
27785         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
27786         by SRA.
27787         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
27788         * tree-sra.c (create_access_replacement): Call unshare_expr before
27789         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
27790         * dwarf2out.c: Include tree-flow.h.
27791         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
27792         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
27793         Handle DW_OP_bit_piece.
27794         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
27795         construct_piece_list, adjust_piece_list): New functions.
27796         (add_var_loc_to_decl): Handle SRA optimized variables.
27797         Adjust for var_loc_note to loc field renaming.
27798         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
27799         in VAR_LOCATION note.
27800         (new_loc_descr_op_bit_piece): New function.
27801         (dw_sra_loc_expr): New function.
27802         (dw_loc_list): Use it.  Don't handle the last range after the
27803         loop, handle it inside of the loop.  Adjust for var_loc_note
27804         to loc field renaming.
27805         (add_location_or_const_value_attribute): Only special case
27806         single entry loc lists if loc is NOTE_P.  Adjust for
27807         var_loc_note to loc field renaming.
27808         (dwarf2out_var_location): Don't set newloc->var_loc_note
27809         and newloc->next here.
27810
27811 2010-05-12  Jan Hubicka  <jh@suse.cz>
27812
27813         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
27814         flag.
27815         * cgraph.h (cgraph_only_called_directly_p,
27816         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
27817         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
27818         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
27819         (assemble
27820         * ipa.c (cgraph_remove_unreachable_nodes): Use
27821         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
27822         flags.
27823         * tree-inline.c (copy_bb): Check address_taken flag.
27824         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
27825         externally_visible flag.
27826
27827 2010-05-12  Jason Merrill  <jason@redhat.com>
27828
27829         PR bootstrap/44048
27830         PR target/44099
27831         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
27832         * sdbout.c (plain_type_1): Likewise.
27833         * dwarf2out.c (is_base_type): Likewise.
27834         (gen_type_die_with_usage): Likewise.  Generate
27835         DW_TAG_unspecified_type for any LANG_TYPE.
27836
27837 2010-05-12  Jan Hubicka  <jh@suse.cz>
27838
27839         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
27840         indrect edges too.
27841         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
27842         (cgraph_clone_edge): Update.
27843         (cgraph_node_remove_callees): Remove indirect calls too.
27844         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
27845         (cgraph_create_indirect_edge): Update prototype.
27846         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
27847         is_proper_for_analysis.
27848         (add_new_function, visited_nodes, function_insertion_hook_holder,
27849         get_local_reference_vars_info, mark_address_taken, mark_address,
27850         mark_load, mark_store, check_asm_memory_clobber, check_call,
27851         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
27852         (ipa_init): Do not initialize visited_nodes;
27853         function_insertion_hook_holder.
27854         (analyze_variable): Rewrite.
27855         (analyze_function): Rewrite.
27856         (copy_local_bitmap): Remove.
27857         (duplicate_node_dat): Do not duplicate local info.
27858         (generate_summary): Simplify to only walk cgraph.
27859         (write_node_summary_p, ipa_reference_write_summary,
27860         ipa_reference_read_summary): Remove.
27861         (propagate): Do not remove function insertion;
27862         generate summary.
27863         (pass_ipa_reference): NULLify summary handling fields.
27864         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
27865         (input_edge): Input ecf_flags.
27866         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
27867         (update_indirect_edges_after_inlining): Ignore edges with unknown
27868         param.
27869
27870 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
27871
27872         * implicit-zee.c: New file.
27873         * tree-pass.h (pass_implicit_zee): Declare.
27874         * passes.c (init_optimization_passes): Add zee pass.
27875         * common.opt (fzee): New flag.
27876         * timevar.def (TV_ZEE): Define.
27877         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
27878         and beyond.
27879         * Makefile.in (implicit-zee.o): Add new build file.
27880
27881 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27882             Nathan Froyd  <froydnj@codesourcery.com>
27883
27884         * c-common.c (sync_resolve_params): Remove write-only variable.
27885
27886 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
27887
27888         * target.h (struct gcc_target): Add mode_dependent_address_p field.
27889         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
27890         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
27891         * targhooks.c (default_mode_dependent_address_p): New function.
27892         * targhooks.h (default_mode_dependent_address_p): Declare function.
27893         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
27894         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
27895         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
27896         target hook. Change return type to bool.
27897         * recog.h (mode_dependent_address_p): Change return type to bool.
27898
27899 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27900             Nathan Froyd  <froydnj@codesourcery.com>
27901
27902         * tree-mudflap.c (build_function_type_0, build_function_type_1,
27903         build_function_type_2, build_function_type_3): Remove.
27904         (mudflap_init): Use build_function_type_list.
27905
27906 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27907             Nathan Froyd  <froydnj@codesourcery.com>
27908
27909         * coverage.c (build_fn_info_value): Call build_constructor instead of
27910         build_constructor_from_list.
27911         (build_ctr_info_value): Likewise.
27912         (build_gcov_info): Likewise.
27913
27914 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
27915
27916         * tree.c (build_constructor): Compute TREE_CONSTANT for the
27917         resultant constructor.
27918         (build_constructor_single): Don't set TREE_CONSTANT.
27919         (build_constructor_from_list): Don't compute TREE_CONSTANT.
27920
27921 2010-05-12  Jan Hubicka  <jh@suse.cz>
27922
27923         * cgraph.h (struct varpool_node): Add aux.
27924         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
27925         * varpool.c (varpool_remove_node): Do not remove initializer.
27926         (varpool_reset_queue): Export.
27927         (varpool_finalize_decl): Volatile vars are forced to be output.
27928         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
27929         replaced decl.
27930         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
27931         process_references, varpool_can_remove_if_no_refs): New functions.
27932         (cgraph_remove_unreachable_nodes): Handle variables too.
27933
27934 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
27935
27936         PR target/44088
27937         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
27938
27939 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
27940
27941         PR middle-end/44085
27942         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
27943         change value of ORT_TASK.
27944         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
27945         (omp_notice_threadprivate_variable): New function.
27946         (omp_notice_variable): Call it for threadprivate variables.
27947         If enclosing ctx is a task, print enclosing task rather than
27948         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
27949         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
27950         if task has untied clause.
27951
27952         PR debug/42278
27953         * dwarf2out.c (base_type_die): Don't add name attribute here.
27954         (modified_type_die): Instead of sizetype use
27955         its underlying original type.  If a DW_TAG_base_type doesn't
27956         have name added, add __unknown__.
27957         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
27958         always call force_type_die instead.
27959
27960 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
27961
27962         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
27963         for __stack_chk_guard.
27964
27965 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
27966
27967         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
27968         don't call start_source_file debug hook here...
27969         (finish_options): ... but here, after outputting predefined and
27970         command line defines and undefs.
27971
27972         PR middle-end/44071
27973         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
27974         no fallthru edge.
27975         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
27976         optimizing away empty bb with no successors, move over its
27977         footer chain to fallthru predecessor.
27978         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
27979         (rtl_split_edge): For asm goto call patch_jump_insn even if
27980         splitting fallthru edge.
27981
27982         PR c++/44059
27983         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
27984         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
27985         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
27986         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
27987         on DW.ref.* decls.
27988
27989         PR c++/44062
27990         * c-parser.c (c_parser_expression): Mark LHS of a comma
27991         expression as read if it is a decl, handled component or
27992         COMPOUND_EXPR with that on the RHS.
27993         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
27994         if it is a decl or handled component.
27995
27996 2010-05-11  Jan Hubicka  <jh@suse.cz>
27997
27998         * lto-symtab.c (lto_symtab_free): New function.
27999         * lto-streamer.h (lto_symtab_free): Declare.
28000
28001 2010-05-11  Jan Hubicka  <jh@suse.cz>
28002
28003         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
28004         that if function is needed it is reachable.
28005         (lto_output_node): See if it the function is reachable or referenced.
28006         (output_cgraph): Update call of lto_output_node.
28007         * lto-streamer.h (reachable_from_other_partition_p): Declare.
28008
28009 2010-05-11  Jan Hubicka  <jh@suse.cz>
28010
28011         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
28012         Mark as used.
28013
28014 2010-05-11  Jan Hubicka  <jh@suse.cz>
28015
28016         PR tree-optimize/44063
28017         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
28018         queue.
28019         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28020         limits.
28021         (estimate_function_body_sizes): Compute sizes even when disregarding.
28022
28023 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
28024
28025         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28026
28027 2010-05-11  Jan Hubicka  <jh@suse.cz>
28028
28029         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28030         into every boundary.
28031
28032 2010-05-11  Jan Hubicka  <jh@suse.cz>
28033
28034         * matrix-reorg.c (matrix_reorg): Rebuild edges.
28035
28036 2010-05-11  Jan Hubicka  <jh@suse.cz>
28037
28038         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
28039         lto_streamer_cache_delete): Put nodes into heap.
28040         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
28041         heap.
28042
28043 2010-05-11  Jan Hubicka  <jh@suse.cz>
28044
28045         * cgraphbuild.c (cgraph_rebuild_references): New.
28046         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
28047         out extern inlines.
28048         * cgraph.h (cgraph_rebuild_references): Declare.
28049         * tree-inline.c (tree_function_versioning): Use it.
28050         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
28051
28052 2010-05-11  Jan Hubicka  <jh@suse.cz>
28053
28054         * cgraph.c: Include ipa-utils.h
28055         (cgraph_create_virtual_clone): Update references.
28056         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
28057
28058 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28059
28060         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
28061         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
28062         cache size.
28063
28064 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28065
28066         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
28067
28068 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28069
28070         * gcc.c (execute): For -### don't quote arguments that
28071         contain just alphanumerics and _/-. characters.
28072         * doc/invoke.texi: Document that change for -###.
28073
28074         PR debug/44023
28075         * df-problems.c (struct dead_debug): Add to_rescan field.
28076         (dead_debug_init): Clear to_rescan field.
28077         (dead_debug_finish): Rescan all debug insns in to_rescan
28078         bitmap and free the bitmap.
28079         (dead_debug_insert_before): Instead of rescanning debug insns
28080         immediately queue their rescanning until dead_debug_finish.
28081         (df_note_bb_compute): After dead_debug_add do continue instead
28082         of break.
28083
28084 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
28085
28086         PR debug/44028
28087         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
28088         clear also INSN_REG_USE_LIST.
28089
28090 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28091
28092         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
28093
28094 2010-05-10  Jan Hubicka  <jh@suse.cz>
28095
28096         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
28097         commited change.
28098
28099 2010-05-10  Jan Hubicka  <jh@suse.cz>
28100
28101         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
28102         Allocate encoders.
28103         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
28104         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
28105         (lto_streamer_cache_create): Init alloc pool.
28106         (lto_streamer_cache_delete): Free alloc pool.
28107         * lto-streamer.h: Include alloc pool.
28108         (lto_streamer_cache_d): Use alloc pool.
28109         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
28110
28111 2010-05-10  Jan Hubicka  <jh@suse.cz>
28112
28113         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
28114         * cgraphbuild.c: Include except.h
28115         (record_type_list, record_eh_tables): New function.
28116         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
28117
28118 2010-05-10  Jan Hubicka  <jh@suse.cz>
28119
28120         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
28121         __frame_dummy_init_array_entry, force_to_data): Attribute as used
28122         rather than unused.
28123
28124 2010-05-10  Michael Matz  <matz@suse.de>
28125
28126         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
28127         (can_reassociate_p): Use FLOAT_TYPE_P.
28128         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
28129         (vect_force_simple_reduction): ... this.
28130         * tree-parloops.c (gather_scalar_reductions): Use
28131         vect_force_simple_reduction.
28132         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
28133         vect_is_simple_reduction, add modify argument, if true rewrite
28134         "a-b" into "a+(-b)".
28135         (vect_is_simple_reduction, vect_force_simple_reduction): New
28136         functions.
28137         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
28138
28139 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
28140             Vladimir Makarov  <vmakarov@redhat.com>
28141
28142         PR rtl-optimization/44012
28143         * ira-build.c (remove_unnecessary_allocnos): Nullify
28144         regno_allocno_map of the removed allocno.
28145
28146 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28147
28148         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
28149         to /dev/null.
28150         * configure: Regenerate.
28151
28152 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28153
28154         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
28155         unused.
28156         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
28157         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
28158         support in Sun ld.
28159         * configure: Regenerate.
28160
28161 2010-05-10  Richard Guenther  <rguenther@suse.de>
28162
28163         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
28164         marked if the entry identifier is marked.
28165
28166 2010-05-10  Richard Guenther  <rguenther@suse.de>
28167
28168         * c-common.c (struct c_common_attributes): Add fnspec attribute.
28169         (handle_fnspec_attribute): New function.
28170         * gimple.h (gimple_call_return_flags): Declare.
28171         (gimple_call_arg_flags): Likewise.
28172         * gimple.c (gimple_call_arg_flags): New function.
28173         (gimple_call_return_flags): Likewise.
28174         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
28175         New argument flags.
28176         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
28177         return value flags.
28178         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
28179         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
28180         main work to ...
28181         (make_heapvar_for): ... this new function.
28182         (handle_rhs_call): Handle fnspec attribute argument specifiers.
28183         (handle_lhs_call): Likewise.
28184         (find_func_aliases): Adjust.
28185
28186 2010-05-10  Richard Guenther  <rguenther@suse.de>
28187
28188         PR tree-optimization/44050
28189         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
28190
28191 2010-05-10  Wei Guozhi  <carrot@google.com>
28192
28193         PR target/42879
28194         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
28195
28196 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28197
28198         PR c/10676
28199         * c-typeck.c (lookup_field): Take a type directly.  Update
28200         recursive calls.
28201         (build_component_ref): Update call to lookup_field.
28202         (set_init_label): Use lookup_field to find initialized field.
28203         Handle returned list of fields like a sequence of designators.
28204
28205 2010-05-09  Richard Guenther  <rguenther@suse.de>
28206
28207         PR middle-end/44024
28208         * fold-const.c (tree_single_nonzero_warnv_p): Properly
28209         handle &FUNCTION_DECL.
28210
28211 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28212
28213         PR c/4784
28214         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
28215         structures and unions recursively.
28216         (detect_field_duplicates): Move duplicate detection with a hash to
28217         detect_field_duplicates_hash.  Always use a hash if anonymous
28218         structures or unions are present.
28219         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
28220         give errors.
28221
28222 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
28223
28224         PR target/44046
28225         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
28226         detect Atom, Core 2 and Core i7.
28227
28228 2010-05-09  Richard Guenther  <rguenther@suse.de>
28229
28230         * gcc.c (store_arg): Handle temporary file deletion for
28231         joined arguments.
28232
28233 2010-05-09  Richard Guenther  <rguenther@suse.de>
28234
28235         PR middle-end/44043
28236         * ipa-inline.c (estimate_function_body_sizes): Return after
28237         disregarding inline limits.
28238
28239 2010-05-09  Richard Guenther  <rguenther@suse.de>
28240
28241         * gcc.c (store_arg): Revert last change.
28242
28243 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
28244
28245         PR middle-end/28685
28246         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
28247         (optimize_ops_list): Call it.
28248
28249 2010-05-08  Richard Guenther  <rguenther@suse.de>
28250
28251         PR tree-optimization/44030
28252         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
28253         NECESSARY flag if we propagate from a inserted expression.
28254
28255 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
28256
28257         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
28258         domain types as equal if they are both PLACEHOLDER_EXPRs.
28259
28260 2010-05-08  Richard Guenther  <rguenther@suse.de>
28261
28262         * lto-wrapper.c (run_gcc): Remove linker output from
28263         command line for LTRANS invocation.
28264
28265 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
28266
28267         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
28268         lto-macho as lto_binary_reader.
28269         * target.h (struct gcc_target): New hooks lto_start and lto_end.
28270         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
28271         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
28272         in lto_start and lto_end calls.
28273         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
28274         magic numbers.
28275         (scan_prog_file): Update is_elf_or_coff call.
28276         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
28277
28278         * collect2.c (main): Fix enum comparison.
28279
28280         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
28281         Add prototypes.
28282         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
28283         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
28284         and TARGET_ASM_LTO_END.
28285         * darwin.c: Include obstack.h and lto-streamer.h.
28286         (lto_section_names_offset, lto_section_names_obstack,
28287         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
28288         global variables.
28289         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
28290         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
28291         to a temporary file.
28292         (darwin_asm_lto_end): New function.  Restore asm_out_file.
28293         (darwin_asm_named_section): For LTO sections, replace the name with
28294         the offset of the section name in a string table, and build this
28295         table.
28296         (darwin_file_start): Initialize global vars for LTO support.
28297         (darwin_file_end): If output to asm_out_file was redirected, append it
28298         to the proper asm_out_file here.  Add the section names section.
28299
28300 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
28301
28302         * c-pragma.c (pending_weak_d, pending_weak): New.
28303         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
28304         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
28305         handle_pragma_weak): Update the uses of pending_weaks.
28306
28307 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28308
28309         PR documentation/44016
28310         * doc/standards.texi (Standards): Link to unversioned
28311         cxx0x_status.html page.
28312
28313 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
28314
28315         PR target/43708
28316         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
28317         in addition to TREE_USED, to avoid "set but unused" warnings.
28318
28319 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28320
28321         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
28322         (is_loop_prefetching_profitable): Do not insert prefetches
28323         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
28324         times the prefetch ahead distance.
28325
28326 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28327
28328         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
28329         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
28330         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
28331         the unroll_factor.
28332
28333 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28334
28335         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
28336         a diagnostic info when the insn-to-mem ratio is too small.
28337
28338 2010-05-07  Richard Guenther  <rguenther@suse.de>
28339
28340         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
28341         the linker plugin.
28342         (store_arg): Queue temp_filename for deletion instead of
28343         the whole argument.
28344
28345 2010-05-07  Richard Guenther  <rguenther@suse.de>
28346
28347         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
28348         (run_gcc): Handle LTRANS phase invocation.
28349         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
28350
28351 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
28352
28353         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
28354         this is also meaningful on PARM_DECLs and RESULT_DECLs.
28355
28356 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28357
28358         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
28359
28360 2010-05-07  Richard Guenther  <rguenther@suse.de>
28361
28362         PR tree-optimization/44020
28363         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
28364         code when PRE is not yet initialized.
28365
28366 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28367
28368         * config/mips/dbxmdebug.h: Remove.
28369         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
28370
28371 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
28372
28373         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
28374         with null pointer and also warn about ordered comparison of zero with
28375         pointer if -Wextra.
28376
28377 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
28378
28379         * graphite-blocking.c
28380         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
28381         * graphite-clast-to-gimple.c
28382         (clast_to_gcc_expression): Same.
28383         (precision_for_value): Same.
28384         (precision_for_interval): Same.
28385         (gcc_type_for_interval): Same.
28386         (graphite_create_new_guard): Same.
28387         (compute_bounds_for_level): Same.
28388         (graphite_create_new_loop_guard): Same.
28389         * graphite-interchange.c
28390         (build_linearized_memory_access): Same.
28391         (pdr_stride_in_loop): Same.
28392         (memory_strides_in_loop_1): Same.
28393         (memory_strides_in_loop): Same.
28394         (extend_scattering): Same.
28395         (psct_scattering_dim_for_loop_depth): Same.
28396         (pbb_number_of_iterations): Same.
28397         * graphite-poly.h
28398         (debug_iteration_domains): Same.
28399         * graphite-ppl.c
28400         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
28401         (ppl_set_inhomogeneous_gmp): Same.
28402         (ppl_strip_loop): Same.
28403         (ppl_lexico_compare_linear_expressions): Same.
28404         (ppl_read_polyhedron_matrix): Same.
28405         (ppl_max_for_le_pointset): Same.
28406         * graphite-ppl.h
28407         (ppl_read_polyhedron_matrix): Same.
28408         (tree_int_to_gmp): Same.
28409         (gmp_cst_to_tree): Same.
28410         (ppl_set_inhomogeneous): Same.
28411         (ppl_set_inhomogeneous_tree): Same.
28412         (ppl_set_coef): Same.
28413         (ppl_set_coef_tree): Same.
28414         * graphite-sese-to-poly.c
28415         (build_pbb_scattering_polyhedrons): Same.
28416         (build_scop_scattering): Same.
28417         (scan_tree_for_params_right_scev): Same.
28418         (scan_tree_for_params): Same.
28419         (find_params_in_bb): Same.
28420         (find_scop_parameters): Same.
28421         (add_upper_bounds_from_estimated_nit): Same.
28422         (build_loop_iteration_domains): Same.
28423         (add_condition_to_domain): Same.
28424         (pdr_add_memory_accesses): Same.
28425
28426 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
28427
28428         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
28429         CLooG's value_* macros to their respective mpz_* counterparts.
28430         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
28431         (graphite_create_new_loop_guard): Same.
28432         * graphite-interchange.c (build_linearized_memory_access): Same.
28433         (pdr_stride_in_loop): Same.
28434         (memory_strides_in_loop_1): Same.
28435         (1st_interchange_profitable_p): Same.
28436         * graphite-poly.c (extend_scattering): Same.
28437         (psct_scattering_dim_for_loop_depth): Same.
28438         (pbb_number_of_iterations): Same.
28439         (pbb_number_of_iterations_at_time): Same.
28440         * graphite-poly.h (new_1st_loop): Same.
28441         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
28442         (oppose_constraint): Same.
28443         (insert_constraint_into_matrix): Same.
28444         (ppl_set_inhomogeneous_gmp): Same.
28445         (ppl_set_coef_gmp): Same.
28446         (ppl_strip_loop): Same.
28447         (ppl_lexico_compare_linear_expressions): Same.
28448         (ppl_max_for_le_pointset): Same.
28449         (ppl_min_for_le_pointset): Same.
28450         (ppl_build_realtion): Same.
28451         * graphite-ppl.h (gmp_cst_to_tree): Same.
28452         (ppl_set_inhomogeneous): Same.
28453         (ppl_set_inhomogeneous_tree): Same.
28454         (ppl_set_coef): Same.
28455         (ppl_set_coef_tree): Same.
28456         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
28457         (build_scop_scattering): Same.
28458         (add_value_to_dim): Same.
28459         (scan_tree_for_params_right_scev): Same.
28460         (scan_tree_for_params_int): Same.
28461         (scan_tree_for_params): Same.
28462         (find_params_in_bb): Same.
28463         (find_scop_parameters): Same.
28464         (add_upper_bounds_from_estimated_nit): Same.
28465         (build_loop_iteration_domains): Same.
28466         (create_linear_expr_from_tree): Same.
28467         (add_condition_to_domain): Same.
28468         (pdr_add_memory_accesses): Same.
28469
28470 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
28471             Jason Merrill  <jason@redhat.com>
28472
28473         * c-common.c (c_common_reswords): Add nullptr.
28474         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
28475         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
28476         (gen_type_die_with_usage): Likewise.
28477         * dbxout.c (dbxout_type): Likewise.
28478         * sdbout.c (plain_type_1): Likewise.
28479
28480 2010-05-06  Jason Merrill  <jason@redhat.com>
28481
28482         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
28483         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
28484         ret appropriately.
28485         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
28486
28487         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
28488         stripping WITH_SIZE_EXPR.
28489         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
28490         change.
28491
28492 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28493
28494         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
28495         list of obsolete configurations.
28496         Disabled check for obsolete configurations.
28497         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
28498         Removed support for previous versions.
28499         * config/mips/iris.h: Removed.
28500         * config/mips/iris5.h: Removed.
28501         * config/mips/iris6.h: Merged old iris.h contents.
28502         (TARGET_IRIX): Removed.
28503         (DRIVER_SELF_SPECS): Removed mabi=32.
28504         (IDENT_ASM_OP): Removed undef.
28505         (STARTFILE_SPEC): Removed mabi=32.
28506         (ENDFILE_SPEC): Likewise.
28507         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
28508         (MACHINE_TYPE): Update for IRIX 6.5.
28509         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
28510         TARGET_IRIX by TARGET_IRIX6.
28511         (mips_file_start): Likewise.
28512         (mips_output_external): Remove IRIX 5/6 O32 support.
28513         (mips_output_function_prologue): Likewise.
28514         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
28515         TARGET_IRIX6.
28516         (TARGET_CPU_CPP_BUILTINS): Likewise.
28517         (TARGET_IRIX): Removed.
28518         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
28519         (MULTILIB_DIRNAMES): Removed 32.
28520         (MULTILIB_OSDIRNAMES): Removed ../lib.
28521         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
28522         (Specific, mips-sgi-irix5): Document removal.
28523         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
28524         Remove references to older IRIX 6 releases and the O32 ABI.
28525
28526 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
28527
28528         PR bootstrap/43994
28529         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
28530         instead of DF_REF_REAL_REG.
28531
28532 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
28533
28534         PR target/43888
28535         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
28536         handling to still return true for x64 targets.
28537
28538 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
28539
28540         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
28541
28542 2010-05-06  Jan Hubicka  <jh@suse.cz>
28543
28544         PR tree-optimization/43791
28545         * ipa-inline.c (update_caller_keys): Remove bogus
28546         disregard_inline_limits check.
28547
28548 2010-05-06  Michael Matz  <matz@suse.de>
28549
28550         PR tree-optimization/43984
28551         * tree-ssa-pre.c (inserted_phi_names): Remove.
28552         (inserted_exprs): Change to bitmap.
28553         (create_expression_by_pieces): Set bits, don't append to vector.
28554         (insert_into_preds_of_block): Don't handle inserted_phi_names.
28555         (eliminate): Don't look at inserted_phi_names, remove deleted
28556         insns from inserted_exprs.
28557         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
28558         (init_pre, fini_pre): Allocate and free bitmaps.
28559         (execute_pre): Insert insns on edges before elimination.
28560
28561 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
28562
28563         * tree.c (initializer_zerop): Handle STRING_CST.
28564
28565 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28566
28567         PR 40989
28568         * doc/invoke.texi (Wimplicit): Document as C only.
28569         * opts.c (common_handle_option): Add argument kind.
28570         (handle_option): Rename as read_cmdline_option. Factor out code to...
28571         (handle_option): ... here. New.
28572         (handle_options): Rename as read_cmdline_options.
28573         (decode_options): Update call.
28574         (set_option): Use option index instead of option pointer. Classify
28575         diagnostics correctly.
28576         (enable_warning_as_error): Call handle_option.
28577         * opts.h (set_option): Update declaration.
28578         (handle_option): Declare.
28579         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
28580         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
28581         * c-opts.c (set_Wimplicit): Delete.
28582         (c_family_lang_mask): New static constant.
28583         (c_common_handle_option): Add argument kind. Use handle_option
28584         instead of set_Wimplicit.
28585         (c_common_post_options): warn_implicit and warn_implicit_int
28586         are disabled by default.
28587         * c-common.c (warn_implicit): Do not define here.
28588         * c-common.h (warn_implicit): Do not declare here.
28589         (c_common_handle_option): Update declaration.
28590         * lto-opts.c (lto_reissue_options): Update call to set_option.
28591
28592 2010-05-06  Richard Guenther  <rguenther@suse.de>
28593
28594         PR tree-optimization/43571
28595         * domwalk.c (walk_dominator_tree): Walk the dominator
28596         sons in more optimal order.
28597
28598 2010-05-06  Richard Guenther  <rguenther@suse.de>
28599
28600         PR tree-optimization/43934
28601         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
28602         (stmt_cost): Likewise.
28603         (extract_true_false_args_from_phi): New helper.
28604         (determine_max_movement): For PHI nodes verify we can hoist them
28605         and compute their cost.
28606         (determine_invariantness_stmt): Handle PHI nodes.
28607         (move_computations_stmt): Likewise.  Hoist PHI nodes in
28608         if-converted form using COND_EXPRs.
28609         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
28610         (tree_ssa_lim): Likewise.
28611         * tree-flow.h (tree_ssa_lim): Adjust prototype.
28612         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
28613
28614 2010-05-06  Richard Guenther  <rguenther@suse.de>
28615
28616         PR tree-optimization/43987
28617         * tree-ssa-structalias.c (could_have_pointers): For possibly
28618         address-taken variables force pointers to be recorded.
28619         (create_variable_info_for_1): Likewise.
28620         (push_fields_onto_fieldstack): Pass in wheter all fields
28621         must have pointers.
28622         (find_func_aliases): Query types instead of vars whether
28623         they contain pointers where appropriate.
28624
28625 2010-05-06  Jan Hubicka  <jh@suse.cz>
28626
28627         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
28628         (record_reference, mark_address, mark_load, mark_store): Record
28629         references.
28630         (record_references_in_initializer): Update call of record_references.
28631         (rebuild_cgraph_edges): Remove all references before rebuiding.
28632         * cgraph.c (cgraph_create_node): Clear ref list.
28633         (cgraph_remove_node): Remove references.
28634         (dump_cgraph_node): Dump references.
28635         (cgraph_clone_node): Clone references.
28636         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
28637         (struct cgraph_node, varpool_node): Add ref_lst.
28638         * ipa-ref.c: New file.
28639         * ipa-ref.h: New file.
28640         * ipa-ref-inline.h: New file.
28641         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
28642         (referenced_from_other_partition_p): New function.
28643         (lto_output_varpool_node): Take set arugment; call
28644         referenced_from_other_partition.
28645         (lto_output_ref): New.
28646         (add_references): New.
28647         (output_refs): New.
28648         (output_cgraph): Compute boundary based on references; output refs.
28649         (output_varpool): Accept cgraph_node_set argument.
28650         (input_ref): New.
28651         (input_refs): New.
28652         (input_cgraph): Call input_refs.
28653         * lto-section-in.c (lto_section_name): Add refs.
28654         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
28655         (ipa-ref.o): New file.
28656         * varpool.c (varpool_node): Clear ipa ref list.
28657         (varpool_remove_node): Remove references.
28658         (dump_varpool_node): Dump references.
28659         (varpool_assemble_decl): Only compile finalized ones.
28660         (varpool_extra_name_alias): Initialize ref list.
28661         * lto-streamer.c (lto-get_section_name): Add .refs section.
28662         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
28663         (referenced_from_other_partition_p): Declared.
28664
28665 2010-05-06  Ira Rosen  <irar@il.ibm.com>
28666
28667         PR tree-optimization/43901
28668         * tree-vect-stmts.c (vectorizable_call): Assert that vector
28669         type is not NULL if it's transformation phase, and return
28670         FALSE if it's analysis.
28671         (vectorizable_conversion, vectorizable_operation,
28672         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
28673
28674 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
28675
28676         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28677         Delete.
28678         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28679         New define.
28680         * config/mips/mips-protos.h
28681         (mips_small_register_classes_for_mode_p): Delete prototype.
28682
28683 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
28684
28685         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
28686         * config/arm/arm.c (multiple_operation_profitable_p,
28687         compute_offset_order): New static functions.
28688         (load_multiple_sequence, store_multiple_sequence): Use them.
28689         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
28690         memory offsets, not register numbers.
28691         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
28692
28693 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
28694
28695         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
28696         (get_pending_sizes, put_pending_size, put_pending_sizes):
28697         Update the uses of pending_sizes.
28698         * c-decl.c (store_parm_decls): Likewise.
28699         * c-tree.h (struct c_arg_info): Likewise.
28700         * tree.h: Update the prototype for get_pending_sizes and
28701         put_pending_sizes.
28702
28703 2010-05-05  Jason Merrill  <jason@redhat.com>
28704
28705         PR debug/43370
28706         * c-common.c (handle_aligned_attribute): Respect
28707         ATTR_FLAG_TYPE_IN_PLACE.
28708
28709         PR testsuite/43758
28710         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
28711         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
28712         (TARGET_INITIALIZER): Use it.
28713         * c-common.c (attribute_takes_identifier_p): Call it.
28714         * c-common.h: Update prototype.
28715         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
28716         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
28717
28718 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
28719
28720         PR debug/43950
28721         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
28722         DW_ID_down_case for Fortran compilation units.
28723
28724 2010-05-05  Jan Hubicka  <jh@suse.cz>
28725
28726         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
28727         handle aliases.
28728
28729 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
28730
28731         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
28732         a variable-sized RESULT_DECL.
28733
28734 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
28735
28736         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
28737
28738 2010-05-05  Jason Merrill  <jason@redhat.com>
28739
28740         PR c++/43787
28741         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
28742         returns GS_OK.
28743         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
28744
28745 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
28746             Jakub Jelinek  <jakub@redhat.com>
28747
28748         PR debug/43478
28749         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
28750         (dead_debug_init, dead_debug_finish): New functions.
28751         (dead_debug_add, dead_debug_insert_before): Likewise.
28752         (df_note_bb_compute): Initialize a dead_debug object, add dead
28753         debug uses to it, insert debug bind insns before death insns,
28754         reset debug insns that refer to pending uses at the end.
28755         * rtl.h (make_debug_expr_from_rtl): New prototype.
28756         * varasm.c (make_debug_expr_from_rtl): New function.
28757
28758 2010-05-05  Jan Hubicka  <jh@suse.cz>
28759
28760         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
28761         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
28762         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
28763         lto_varpool_encoder_deref, lto_varpool_encoder_size,
28764         lto_varpool_encoder_encode_initializer_p,
28765         lto_set_varpool_encoder_encode_initializer): New functions.
28766         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
28767         call output_varpool.
28768         (input_varpool_node): Do not always set analyzed.
28769         (input_cgraph_1): Return vector of cgraph nodes.
28770         (input_varpool_1): Return vector of varpools.
28771         (input_cgraph): Free the vectors.
28772         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
28773         output only initializers needed.
28774         (lto_output): Only call output_cgraph.
28775         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
28776         * lto-section-out.c (lto_new_out_decl_state): Initialize
28777         state->varpool_node_encoder.
28778         * lto-streamer.h (lto_varpool_encoder_d): New.
28779         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
28780         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
28781         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
28782         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
28783         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
28784         Declare.
28785         (output_varpool, input_varpool): Remove declarations.
28786
28787 2010-05-05  Jan Hubicka  <jh@suse.cz>
28788
28789         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
28790         with body can prevail.
28791
28792 2010-05-05  Jan Hubicka  <jh@suse.cz>
28793
28794         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
28795         size.
28796
28797 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28798
28799         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
28800
28801         * gengtype.h (erro_at_line): Constify pos argument.
28802
28803         * gengtype.c: Include hashtab.h.
28804         (enum gc_used): Document GC_MAYBE_POINTED_TO.
28805         (error_at_line): Constify pos argument.
28806         (do_typedef): Initialize p->opt field.
28807         (get_file_gtfilename): Fix comment typo.
28808         (struct walk_type_data): Constify line field.
28809         (get_output_file_for_structure): New function.
28810         (write_local_func_for_structure): Constify orig_s argument.
28811         Use get_output_file_for_structure.
28812         (write_func_for_structure): Use get_output_file_for_structure.
28813         (INDENT): New define.
28814         (dump_pair, dump_type, dump_type_list, dump_typekind)
28815         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
28816         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
28817         functions.
28818         (seen_types): New variable.
28819         (main): New variable do_dump.  Process "-d" command line option.
28820         Call dump_everything if dump requested.
28821
28822 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
28823
28824         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
28825         in a temporary instead of invoking the macro multiple times.
28826         (track_expr_p): Likewise.
28827
28828 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
28829
28830         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
28831         per new semantics.
28832         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
28833         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
28834         conditions for printing notes.
28835         * common.opt (-Wcoverage-mismatch): Allow negative, default to
28836         true, update documentation.
28837         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
28838
28839 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
28840
28841         PR c/43981
28842         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
28843         on dimen.
28844
28845 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
28846
28847         PR target/43799
28848         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
28849         (*sse_prologue_save_insn1): Likewise.
28850         (SSE prologue save splitter): Likewise.
28851
28852 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
28853
28854         * tree.c (free_lang_data_in_one_sizepos): New inline function.
28855         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
28856         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
28857         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
28858         all decls.  Call it on DECL_FIELD_OFFSET of fields.
28859         (find_decls_types_r): Follow DECL_VALUE_EXPR.
28860         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
28861
28862 2010-05-04  Martin Jambor  <mjambor@suse.cz>
28863
28864         * tree-sra.c (build_access_from_expr_1): The first parameter type
28865         changed to simple tree.
28866         (build_access_from_expr): Likewise, gsi parameter was eliminated.
28867         (scan_assign_result): Renamed to assignment_mod_result, enum elements
28868         renamed as well.
28869         (build_accesses_from_assign): Removed all parameters except for a
28870         simple gimple statement.  Now returns a simple bool.
28871         (scan_function): All non-analysis parts moved to separate functions
28872         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
28873         parameters and updated both callers.
28874         (sra_modify_expr): Removed parameter data.
28875         (sra_modify_function_body): New function.
28876         (perform_intra_sra): Call sra_modify_function_body to modify the
28877         function body.
28878         (replace_removed_params_ssa_names): Parameter data changed into
28879         adjustments vector.
28880         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
28881         changed the parameter dont_convert to convert with the opposite
28882         meaning.
28883         (sra_ipa_modify_assign): Parameter data changed into adjustments
28884         vector, return value changed to bool.
28885         (ipa_sra_modify_function_body): New function.
28886         (sra_ipa_reset_debug_stmts): Updated a comment.
28887         (modify_function): Use ipa_sra_modify_function_body to modify function
28888         body.
28889
28890 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
28891
28892         PR middle-end/43671
28893         * alias.c (true_dependence): Handle the same VALUE in x and mem.
28894         (canon_true_dependence): Likewise.
28895         (write_dependence_p): Likewise.
28896
28897 2010-05-04  Jan Hubicka  <jh@suse.cz>
28898
28899         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
28900         * cgraphbuild.c: Include ipa-utils.h
28901         (record_reference_ctx): New struct.
28902         (record_reference): Simplify to work on initializers; not statements.
28903         (mark_address, mark_load, mark_store): New.
28904         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
28905         walk PHI nodes too.
28906         (record_references_in_initializer): Update use of record_reference.
28907         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
28908         walk PHI nodes too.
28909
28910 2010-05-04  Jan Hubicka  <jh@suse.cz>
28911
28912         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
28913         node will be removed anyway.
28914         (lto_varpool_replace_node): Allow also unanalyzed nodes;
28915         relink aliases of node into prevailing node.
28916         * varpool.c (varpool_remove_node): Remove aliases properly;
28917         when removing node, remove all its aliases too; remove DECL_INITIAL
28918         of removed node; ggc_free the varpool node.
28919
28920 2010-05-04  Richard Guenther  <rguenther@suse.de>
28921
28922         PR tree-optimization/43879
28923         * tree-ssa-structalias.c (alias_get_name): Use
28924         DECL_ASSEMBLER_NAME if available.
28925         (create_function_info_for): Return the varinfo node.
28926         (ipa_pta_execute): Associate same-body aliases and extra names
28927         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
28928
28929 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
28930
28931         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
28932
28933 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
28934
28935         PR bootstrap/43964
28936         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
28937         only if HONOR_REG_ALLOC_ORDER is not defined.
28938
28939 2010-05-04  Richard Guenther  <rguenther@suse.de>
28940
28941         PR tree-optimization/43949
28942         * tree-vrp.c (extract_range_from_binary_expr): Only handle
28943         TRUNC_MOD_EXPR.
28944
28945 2010-04-26  Jason Merrill  <jason@redhat.com>
28946
28947         * c.opt (-fstrict-enums): New.
28948         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
28949
28950 2010-05-03  David Ung  <davidu@mips.com>
28951             James E. Wilson  <wilson@codesourcery.com>
28952
28953         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
28954         emit the trap instruction before the divide for TUNE_74K.
28955
28956 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
28957
28958         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
28959         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
28960         based on the above, for new target hook.
28961
28962         * hooks.c (hook_bool_mode_true): New generic hook.
28963         * hooks.h (hook_bool_mode_true): Add prototype.
28964
28965         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
28966         target hook.
28967         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
28968         target hook, set to hook_bool_mode_false.
28969         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
28970         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
28971         with targetm.small_register_classes_for_mode_p.
28972         (find_reusable_reload): Likewise.
28973         (combine_reloads): Likewise.
28974         * reload1.c (reload_as_needed): Likewise.
28975         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
28976         * ifcvt.c (noce_process_if_block, check_cond_move_block,
28977         dead_or_predicable): Likewise.
28978         * regmove.c (optimize_reg_copy_1): Likewise.
28979         * calls.c (prepare_call_address): Likewise.
28980         (precompute_register_parameters): Likewise.
28981
28982         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
28983         hook definition.
28984         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
28985         implementation of the hook that considers all register classes
28986         small except for SH64.
28987         (sh_override_options): Use the new hook.
28988         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
28989         Add prototype.
28990
28991         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
28992         hook definition.
28993         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
28994         implementation of the hook that considers all register classes
28995         small for THUMB1.
28996         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
28997         Add prototype.
28998
28999         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
29000         hook definition.
29001         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
29002         implementation of the hook that considers all register classes
29003         small for MIPS16.
29004         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
29005         Add prototype.
29006
29007         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
29008         hook definition.
29009         * config/m32c/m32c.h: Likewise.
29010         * config/pdp11/pdp11.h: Likewise.
29011         * config/avr/avr.h: Likewise.
29012         * config/xtensa/xtensa.h: Likewise.
29013         * config/m68hc11/m68hc11.h: Likewise.
29014         * config/mn10300/mn10300.h: Likewise.
29015         * config/mcore/mcore.h: Likewise.
29016         * config/h8300/h8300.h: Likewise.
29017         * config/bfin/bfin.h: Likewise.
29018
29019         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29020         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29021
29022 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
29023
29024         * double-int.h (tree_to_double_int): Remove macro.
29025         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29026         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29027         (tree_to_double_int): New function.
29028         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29029         Move ...
29030         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29031
29032 2010-05-03  Richard Guenther  <rguenther@suse.de>
29033
29034         PR tree-optimization/43971
29035         * tree-ssa-structalias.c (get_constraint_for_1): Fix
29036         constraints in the !flag_delete_null_pointer_checks case.
29037
29038 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
29039
29040         PR debug/43972
29041         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
29042         result mode matches original rtl mode.
29043
29044 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
29045
29046         PR target/43888
29047         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
29048
29049 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29050
29051         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
29052         when processing flag options.
29053
29054 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29055
29056         * gcov-iov.c (main): Change format string placeholder
29057         from %#08x to 0x%08x.
29058         * genchecksum.c (dosum): Change format string placeholder
29059         from %#02x to 0x%02x.
29060
29061 2010-05-02  Richard Guenther  <rguenther@suse.de>
29062
29063         PR tree-optimization/43879
29064         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
29065
29066 2010-05-02  Bruno Haible  <bruno@clisp.org>
29067
29068         * doc/extend.texi (Function Attributes): Fix a typo.
29069
29070 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29071
29072         Revert:
29073         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
29074         placeholder from 0x%x to %#x.
29075         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29076         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29077         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29078         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29079         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29080         * config/i386/i386.c (ix86_target_string): Ditto.
29081         * config/i386/i386.c (output_pic_addr_const): Ditto.
29082         (print_operand): Ditto.
29083
29084 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29085
29086         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
29087         placeholder from 0x%x to %#x.
29088         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
29089         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
29090         (ASM_OUTPUT_DEBUG_DATA): Ditto.
29091         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
29092         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
29093         * optc-gen.awk: Ditto.
29094         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
29095         (HOST_WIDE_INT_PRINT_HEX): Ditto.
29096         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
29097         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29098
29099 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29100
29101         * target.h (struct calls): Add function_value_regno_p field.
29102         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
29103         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
29104         * targhooks.c (default_function_value_regno_p): New function.
29105         * targhooks.h (default_function_value_regno_p): Declare function.
29106         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
29107         * builtins.c. (apply_result_size): (Ditto.).
29108         * combine.c. (likely_spilled_retval_p): (Ditto.).
29109         * mode-switching.c. Include 'target.h'.
29110         (create_pre_exit): Use function_value_regno_p hook.
29111         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
29112         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
29113         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
29114
29115         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
29116         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
29117         (ix86_function_value_regno_p): Declare as static, change argument
29118         type to const unsigned int.
29119         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
29120
29121 2010-05-01  Richard Guenther  <rguenther@suse.de>
29122
29123         PR tree-optimization/43949
29124         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
29125         types.
29126         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
29127
29128 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29129
29130         * rtl.h (CONST_DOUBLE_P): Define.
29131         (rtx_to_double_int): Declare.
29132         * emit-rtl.c (rtx_to_double_int): New function.
29133         * dwarf2out.c (insert_double): New function.
29134         (loc_descriptor, add_const_value_attribute): Clean up, use
29135         rtx_to_double_int and insert_double functions.
29136
29137 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
29138
29139         * doc/extend.texi (Inline): Add missing return keyword to examples.
29140         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
29141         "command-line".
29142
29143 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
29144
29145         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
29146         the variable part of the offset as well.  Use highest_pow2_factor for
29147         all alignment checks.
29148
29149 2010-04-30  Richard Guenther  <rguenther@suse.de>
29150
29151         PR tree-optimization/43879
29152         * tree-ssa-structalias.c (type_could_have_pointers): Functions
29153         can have pointers.
29154
29155 2010-04-30  Jan Hubicka  <jh@suse.cz>
29156
29157         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
29158         varpool.
29159         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
29160
29161 2010-04-30  Jan Hubicka  <jh@suse.cz>
29162
29163         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
29164         New.
29165         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
29166         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
29167         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
29168         cgraph_node_set_needs_ltrans_p): Remove.
29169
29170 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29171
29172         * sdbout.c: Include vec.h, do not include varray.h.
29173         (deferred_global_decls, sdbout_global_decl,
29174         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
29175         * toplev.c: Do not include varray.h.
29176         (dump_memory_report): Do not dump VARRAY statistics.
29177         * gengtype.c (open_base_file): Ignore varray.h.
29178         * Makefile.in: Update for abovementioned changes.
29179         Remove all traces of varray.c and varray.h.
29180         * varray.c: Remove file.
29181         * varray.h: Remove file.
29182
29183 2010-04-30  Jan Hubicka  <jh@suse.cz>
29184
29185         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
29186         references.
29187
29188 2010-04-30  Jan Hubicka  <jh@suse.cz>
29189
29190         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
29191         needed.
29192
29193 2010-04-30  Richard Guenther  <rguenther@suse.de>
29194
29195         * tree-ssa-structalias.c (get_constraint_for_1): Generate
29196         constraints for CONSTRUCTOR.
29197
29198 2010-04-30  Richard Guenther  <rguenther@suse.de>
29199
29200         PR lto/43946
29201         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
29202         first after all lowering passes.
29203
29204 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29205
29206         * toplev.c: Include varray.h for statistics dumping.
29207         * tree.h: Do not declare varray_head_tag.
29208         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
29209         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
29210         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
29211         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
29212         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
29213         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
29214         c-common.c, c-common.h, reg-stack.c, basic-block.h,
29215         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
29216         include varray.h.
29217         * Makefile.in: Update for abovementioned changes.
29218
29219 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
29220
29221         PR debug/43942
29222         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
29223
29224 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29225
29226         * config/picochip/picochip.c (picochip_legitimize_address): Define.
29227         Use this function to do machine-specific conversion.
29228         (picochip_legitimize_reload_address): Likewise.
29229         (picochip_legitimate_address_p): Check valid base register only if
29230         strict.
29231         (picochip_check_conditional_copy): Check for modw only if opnd is
29232         register.
29233         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
29234         to call the function in c.
29235         * config/picochip/picochip-protos.h
29236         (picochip_legitimize_reload_address): Define.
29237         * config/picochip/picochip.md (supported_compare1): Define.
29238
29239 2010-04-30  Jan Hubicka  <jh@suse.cz>
29240
29241         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
29242         (cgraph_global_info): Remove inlined.
29243         (LTO_cgraph_tag_names): Remove.
29244         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
29245         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
29246         simplify cgraph tags and document.
29247         (lto_output_node): Use only LTO_cgraph_unavail_node and
29248         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
29249         for_functions_valid, global info, process and output flags.
29250         (input_overwrite_node): Initialize estimated stack size and
29251         estimated growth.  Do not read flags we no longer store.
29252         (input_node): Likewise do not read info no longer stored.
29253         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
29254         flag.
29255
29256 2010-04-30  Richard Guenther  <rguenther@suse.de>
29257
29258         PR tree-optimization/43879
29259         * tree-ssa-structalias.c (get_constraint_for_1): Properly
29260         handle non-zero initializers.
29261
29262 2010-04-30  Richard Guenther  <rguenther@suse.de>
29263
29264         * builtins.c (fold_builtin_1): Delete free (0).
29265
29266 2010-04-29  Jan Hubicka  <jh@suse.cz>
29267
29268         * gengtype.c (open_base_files): Add lto-streamer.h
29269         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
29270         (pass_ipa_cp): GGC collect.
29271         * toplev. (compile_file): Do not output symbols.
29272         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
29273         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
29274         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
29275         * lto-section-in.c: Include ggc.h
29276         (lto_new_in_decl_state): Alloc in GGC.
29277         (lto_delete_in_decl_state): Likewise.
29278         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
29279         Collect.
29280
29281 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
29282
29283         PR target/42895
29284         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
29285         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
29286         (HONOR_REG_ALLOC_ORDER): Describe new macro.
29287         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
29288         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
29289         account only if HONOR_REG_ALLOC_ORDER is not defined.
29290         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
29291         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
29292
29293 2010-04-29  Jon Grant  <04@jguk.org>
29294
29295         * collect2.c (vflag): Change type from int to bool.
29296         (debug): Likewise.
29297         (helpflag): New global bool.
29298         (main): Set vflag and debug with boolean, not integer truth values.
29299         Accept new "--help" option and output usage text if found.
29300         * collect2.h (vflag): Update prototype.
29301         (debug): Likewise.
29302
29303 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
29304
29305         PR bootstrap/43936
29306         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
29307
29308 2010-04-29  Richard Guenther  <rguenther@suse.de>
29309
29310         PR bootstrap/43935
29311         * plugin.h (invoke_plugin_callbacks): Annotate arguments
29312         with ATTRIBUTE_UNUSED.
29313
29314 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
29315
29316         PR target/43921
29317         * config/i386/i386.c (get_some_local_dynamic_name): Replace
29318         INSN_P with NONDEBUG_INSN_P.
29319         (distance_non_agu_define): Likewise.
29320         (distance_agu_use): Likewise.
29321
29322 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
29323
29324         From Dominique d'Humieres  <dominiq@lps.ens.fr>
29325         PR bootstrap/43858
29326         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
29327         test_set.
29328
29329 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
29330
29331         * plugin.h (invoke_plugin_callbacks): New inline function.
29332         * plugin.c (flag_plugin_added): New global flag.
29333         (add_new_plugin): Initialize above flag.
29334         (invoke_plugin_callbacks): Rename to ...
29335         (invoke_plugin_callbacks_full): ... this.
29336
29337 2010-04-28  Jan Hubicka  <jh@suse.cz>
29338
29339         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
29340         (lto_varpool_replace_node): New.
29341         (lto_symtab_resolve_symbols): Resolve varpool nodes.
29342         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
29343         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
29344         * cgraph.h (varpool_node_ptr): New type.
29345         (varpool_node_ptr): New vector.
29346         (varpool_node_set_def): New structure.
29347         (varpool_node_set): New type.
29348         (varpool_node_set): New vector.
29349         (varpool_node_set_element_def): New structure.
29350         (varpool_node_set_element, const_varpool_node_set_element): New types.
29351         (varpool_node_set_iterator): New type.
29352         (varpool_node): Add prev pointers, add used_from_other_partition,
29353         in_other_partition.
29354         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
29355         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
29356         varpool_get_node, varpool_remove_node): Declare.
29357         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
29358         varpool_node_set_size): New inlines.
29359         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
29360         * tree-pass.h (varpool_node_set_def): Forward declare.
29361         (ipa_opt_pass_d): Summary writting takes vnode sets too.
29362         (ipa_write_optimization_summaries): Update prototype.
29363         * ipa-cp.c (ipcp_write_summary): Update.
29364         * ipa-reference.c (ipa_reference_write_summary): Update.
29365         * lto-cgraph.c (lto_output_varpool_node): New static function.
29366         (output_varpool): New function.
29367         (input_varpool_node): New static function.
29368         (input_varpool_1): New function.
29369         (input_cgraph): Input varpool.
29370         * ipa-pure-const.c (pure_const_write_summary): Update.
29371         * lto-streamer-out.c (lto_output): Update, output varpool too.
29372         (write_global_stream): Kill WPA hack.
29373         (produce_asm_for_decls): Update.
29374         (output_alias_pair_p): Handle variables.
29375         (output_unreferenced_globals): Output only needed partition of varpool.
29376         * ipa-inline.c (inline_write_summary): Update.
29377         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
29378         cgraph.
29379         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
29380         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
29381         varpool_node_set_new, varpool_node_set_add,
29382         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
29383         debug_varpool_node_set): New functions.
29384         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
29385         (execute_one_pass): Process new decls too.
29386         (ipa_write_summaries_2): Pass around vsets.
29387         (ipa_write_summaries_1): Likewise.
29388         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
29389         to add.
29390         (ipa_write_optimization_summaries_1): Pass around vsets.
29391         (ipa_write_optimization_summaries): Likewise.
29392         * varpool.c (varpool_get_node): New.
29393         (varpool_node): Update doubly linked lists.
29394         (varpool_remove_node): New.
29395         (dump_varpool_node): More dumping.
29396         (varpool_enqueue_needed_node): Update doubly linked lists.
29397         (decide_is_variable_needed): Kill ltrans hack.
29398         (varpool_finalize_decl): Kill lto hack.
29399         (varpool_assemble_decl): Skip decls in other partitions.
29400         (varpool_assemble_pending_decls): Update doubly linkes lists.
29401         (varpool_empty_needed_queue): Likewise.
29402         (varpool_extra_name_alias): Likewise.
29403         * lto-streamer.c (lto_get_section_name): Add vars section.
29404         * lto-streamer.h (lto_section_type): Update.
29405         (output_varpool, input_varpool): Declare.
29406
29407 2010-04-28  Mike Stump  <mikestump@comcast.net>
29408
29409         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
29410
29411 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29412
29413         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
29414         record or union type with RECORD_OR_UNION_TYPE_P predicate.
29415         (lto_input_ts_type_tree_pointers): Likewise.
29416         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
29417         (lto_output_ts_type_tree_pointers): Likewise.
29418
29419 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29420
29421         Uniquization of constants at the Tree level
29422         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
29423         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
29424         bit to the end.
29425         (tree_output_constant_def): Declare.
29426         * gimplify.c (gimplify_init_constructor): When using block copy, first
29427         uniquize the constant constructor on the RHS.
29428         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
29429         DECL_IN_CONSTANT_POOL flag.
29430         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
29431         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
29432         constant pool.
29433         (assemble_variable): Deal with symbols belonging to the tree constant
29434         pool.
29435         (get_constant_section): Add ALIGN parameter and simplify.
29436         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
29437         (assemble_constant_contents): Use the expression of the VAR_DECL.
29438         (output_constant_def_contents): Use the alignment of the VAR_DECL.
29439         (tree_output_constant_def): New global function.
29440         (mark_constant): Use the expression of the VAR_DECL.
29441         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
29442         its expression.
29443         (output_object_block): Likewise and assemble the expression.
29444
29445 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29446
29447         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
29448         hash_tree, eq_tree): New tree hash table.
29449         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
29450         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
29451         lto_orig_address_remove): Reimplement.
29452
29453 2010-04-28  Xinliang David Li  <davidxl@google.com>
29454
29455         PR c/42643
29456         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
29457         (compute_uninit_opnds_pos): New function.
29458         (is_non_loop_exit_postdominating): New function.
29459         (compute_control_dep_chain): New function.
29460         (find_pdom): New function.
29461         (convert_control_dep_chain_into_preds): New function.
29462         (find_predicates): New function.
29463         (find_control_equiv_block): New function.
29464         (collect_phi_def_edges): New function.
29465         (find_def_preds): New function.
29466         (find_dom): New function.
29467         (dump_predicates): New function.
29468         (get_cmp_code): New function.
29469         (is_value_included_in): New function.
29470         (find_matching_predicate_in_rest_chains): New function.
29471         (use_pred_not_overlap_with_undef_path_pred): New function.
29472         (is_use_properly_guarded): New function.
29473         (normalize_cond_1): New function.
29474         (is_and_or_or): New function.
29475         (normalize_cond): New function.
29476         (is_gcond_subset_of): New function.
29477         (is_subset_of_any): New function.
29478         (is_or_set_subset_of): New function.
29479         (is_and_set_subset_of): New function.
29480         (is_norm_cond_subset_of): New function.
29481         (is_pred_expr_subset_of): New function.
29482         (is_pred_chain_subset_of): New function.
29483         (is_included_in): New function.
29484         (is_superset_of): New function.
29485         (find_uninit_use): New function.
29486         (warn_uninitialized_phi): New function.
29487         (compute_possibly_undefined_names): New function.
29488         (ssa_undefined_value_p): New function.
29489         (execute_late_warn_uninitialized): New function.
29490         * tree-ssa.c (ssa_undefined_value_p): Removed.
29491         (warn_uninit): Changed to extern.
29492         (warn_uninitialized_phi): Removed.
29493         (warn_uninitialized_vars): Changed to extern.
29494         (execute_late_warn_uninitialized): Removed
29495         * tree-flow.h: Add new prototypes.
29496         * timevar.def: Add new time variable.
29497         * Makefile.in: Add new build file.
29498
29499 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
29500
29501         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
29502         type if available.
29503
29504 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29505
29506         PR target/22224
29507         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
29508
29509 2010-04-28  Martin Jambor  <mjambor@suse.cz>
29510
29511         * cgraph.h (struct cgraph_node): New field indirect_calls.
29512         (struct cgraph_indirect_call_info): New type.
29513         (struct cgraph_edge): Removed field indirect_call. New fields
29514         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
29515         (cgraph_create_indirect_edge): Declare.
29516         (cgraph_make_edge_direct): Likewise.
29517         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
29518         * ipa-prop.h (struct ipa_param_call_note): Removed.
29519         (struct ipa_node_params): Removed field param_calls.
29520         (ipa_create_all_structures_for_iinln): Declare.
29521         * cgraph.c: Described indirect edges and uids in initial comment.
29522         (cgraph_add_edge_to_call_site_hash): New function.
29523         (cgraph_edge): Search also among the indirect edges, use
29524         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
29525         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
29526         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
29527         site hash.
29528         (initialize_inline_failed): Assign a reason to indirect edges.
29529         (cgraph_create_edge_1): New function.
29530         (cgraph_create_edge): Moved some functionality to
29531         cgraph_create_edge_1.
29532         (cgraph_create_indirect_edge): New function.
29533         (cgraph_edge_remove_callee): Add an assert checking for
29534         non-indirectness.
29535         (cgraph_edge_remove_caller): Special-case indirect edges.
29536         (cgraph_remove_edge): Likewise.
29537         (cgraph_set_edge_callee): New function.
29538         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
29539         (cgraph_make_edge_direct): New function.
29540         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
29541         the declaration of the call statement matches.
29542         (cgraph_node_remove_callees): Special-case indirect edges.
29543         (cgraph_clone_edge): Likewise.
29544         (cgraph_clone_node): Clone also the indirect edges.
29545         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
29546         indirect_call, dump count of indirect_calls edges.
29547         * ipa-prop.c (iinlining_processed_edges): New variable.
29548         (ipa_note_param_call): Create indirect edges instead of
29549         creating notes.  New parameter node.
29550         (ipa_analyze_call_uses): New parameter node, pass it on to
29551         ipa_note_param_call.
29552         (ipa_analyze_stmt_uses): Likewise.
29553         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
29554         (print_edge_addition_message): Work on edges rather than on notes.
29555         (update_call_notes_after_inlining): Likewise, renamed to
29556         update_indirect_edges_after_inlining.
29557         (ipa_create_all_structures_for_iinln): New function.
29558         (ipa_free_node_params_substructures): Do not free notes.
29559         (ipa_edge_duplication_hook): Propagate bits within
29560         iinlining_processed_edges bitmap.
29561         (ipa_node_duplication_hook): Do not duplicate notes.
29562         (free_all_ipa_structures_after_ipa_cp): Renamed to
29563         ipa_free_all_structures_after_ipa_cp.
29564         (free_all_ipa_structures_after_iinln): Renamed to
29565         ipa_free_all_structures_after_iinln.
29566         (ipa_write_param_call_note): Removed.
29567         (ipa_read_param_call_note): Removed.
29568         (ipa_write_indirect_edge_info): New function.
29569         (ipa_read_indirect_edge_info): Likewise.
29570         (ipa_write_node_info): Do not stream notes, do stream information
29571         in indirect edges.
29572         (ipa_read_node_info): Likewise.
29573         (lto_ipa_fixup_call_notes): Removed.
29574         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
29575         * ipa-inline.c (pass_ipa_inline): Likewise.
29576         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
29577         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
29578         * tree-inline.c (copy_bb): Removed an unnecessary double check for
29579         is_gimple_call.
29580         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
29581         edges.
29582         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
29583         (output_cgraph): Stream also indirect edges.
29584         (lto_output_edge): Added capability to stream indirect edges.
29585         (input_edge): Likewise.
29586         (input_cgraph_1): Likewise.
29587         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
29588         of indirect edges.
29589
29590 2010-04-28  Richard Guenther  <rguenther@suse.de>
29591
29592         PR tree-optimization/43879
29593         PR tree-optimization/43909
29594         * tree-ssa-structalias.c (struct variable_info): Add
29595         only_restrict_pointers flag.
29596         (new_var_info): Initialize it.  Increment stats.total_vars here.
29597         (create_function_info_for): Do not increment stats.total_vars here.
29598         (get_function_part_constraint): Fix build with C++.
29599         (insert_into_field_list): Remove.
29600         (push_fields_onto_fieldstack): Properly merge fields.
29601         (create_variable_info_for): Split and simplify.
29602         (create_variable_info_for_1): New piece.
29603         (intra_create_variable_infos): Properly make restrict constraints
29604         from parameters.
29605
29606 2010-04-28  Richard Guenther  <rguenther@suse.de>
29607
29608         PR c++/43880
29609         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
29610
29611 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29612             Jan Hubicka  <hubicka@ucw.cz>
29613
29614         * doc/invoke.texi (-Wsuggest-attribute=const,
29615         -Wsuggest-attribute=pure): Document.
29616         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
29617         (function_always_visible_to_compiler_p,
29618         suggest_attribute, warn_function_pure, warn_function_const):
29619         New functions.
29620         (check_call): Improve debug info.
29621         (analyze_function): Do not check availability.
29622         (add_new_function): Check availability.
29623         (propagate): Output warnings.
29624         (skip_function_for_local_pure_const): New function.
29625         (local_pure_const): Use it; output warnings.
29626         * common.opt (Wsuggest-attribute=const,
29627         Wsuggest-attribute=pure): New.
29628
29629 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
29630
29631         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
29632         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
29633         or DW_CFA_def_cfa_offset{,_sf}.
29634
29635 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29636
29637         * tree.h: Fix truncated long macros.
29638
29639 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
29640
29641         * collect2.c (TARGET_64BIT): Redefine to target's default.
29642         * tlink.c: Likewise.
29643         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
29644         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
29645         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
29646         for underscoring __USER_LABEL_PREFIX__.
29647         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
29648         (SUB_LINK_ENTRY32): New.
29649         (SUB_LINK_ENTRY64): New.
29650         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
29651         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
29652         (SUB_LINK_ENTRY64): New.
29653         (SUB_LINK_ENTRY): New.
29654         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
29655         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
29656         x64 target is choosen.
29657         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
29658         * configure: Regenerated.
29659         * configure.ac (leading-mingw64-underscores): Option added.
29660
29661 2010-04-27  Jan Hubicka  <jh@suse.cz>
29662
29663         * doc/invoke.texi (-fipa-profile): Document.
29664         * opts.c (decode_options): Enable ipa-profile at -O1.
29665         * timevar.def (TV_IPA_PROFILE): Define.
29666         * common.opt (fipa-profile): Add.
29667         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
29668         flag for clones.
29669         (cgraph_propagate_frequency): Handle only local ones.
29670         * tree-pass.h (pass_ipa_profile): Declare.
29671         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
29672         (pass_ipa_profile): Use TV_IPA_PROFILE.
29673         * ipa.c (ipa_profile): New function.
29674         (gate_ipa_profile): Likewise.
29675         (pass_ipa_profile): New global variable.
29676         * passes.c (pass_ipa_profile): New.
29677
29678 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
29679
29680         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
29681
29682 2010-04-27  Martin Jambor  <mjambor@suse.cz>
29683
29684         PR middle-end/43812
29685         * ipa.c (dissolve_same_comdat_group_list): New function.
29686         (function_and_variable_visibility): Call
29687         dissolve_same_comdat_group_list when comdat group contains external or
29688         newly local nodes.
29689         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
29690         lists are circular and that they contain only DECL_ONE_ONLY nodes.
29691
29692 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29693
29694         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
29695         (const_hash_1) <VECTOR_CST>: New case.
29696         (compare_constant) <VECTOR_CST>: Likewise.
29697         <ADDR_EXPR>: Deal with LABEL_REFs.
29698         (copy_constant) <VECTOR_CST>: New case.
29699
29700 2010-04-27  Jan Hubicka  <jh@suse.cz>
29701
29702         * cgraph.c (cgraph_propagate_frequency): New function.
29703         * cgraph.h (cgraph_propagate_frequency): Declare.
29704         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
29705         cgraph_propagate_frequency.
29706
29707 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
29708
29709         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
29710
29711 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
29712
29713         PR target/40657
29714         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
29715         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
29716         here to determine which regs to push and how much stack to reserve.
29717
29718 2010-04-27  Jie Zhang  <jie@codesourcery.com>
29719
29720         * doc/gimple.texi (gimple_statement_with_ops): Remove
29721         addresses_taken field.
29722         (gimple_statement_with_memory_ops): Likewise.
29723
29724 2010-04-27  Jan Hubicka  <jh@suse.cz>
29725
29726         * tree-inline.c (eni_inlining_weights): Remove.
29727         (estimate_num_insns): Special case more builtins.
29728
29729 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
29730
29731         PR c/32207
29732         * c-typeck.c (build_binary_op): Move forward check for comparison
29733         pointer with null pointer constant and adjust the diagnostic message.
29734
29735 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
29736
29737         PR lto/42776
29738         * configure.ac (gcc_cv_as_section_has_align): Set if installed
29739         binutils supports extended .section directive needed by LTO, or
29740         warn if older binutils found.
29741         (LTO_BINARY_READER): New AC_SUBST'd variable.
29742         (LTO_USE_LIBELF): Likewise.
29743         * config.gcc (lto_binary_reader): New target-specific configure
29744         variable.
29745         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
29746         (LTO_USE_LIBELF): Likewise.
29747         * configure: Regenerate.
29748
29749         * collect2.c (is_elf): Rename from this ...
29750         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
29751          object files in addition to ELF-formatted ones.
29752         (scan_prog_file): Caller updated.  Also allow for LTO info marker
29753         symbol to be prefixed or not by an extra underscore.
29754
29755         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
29756         * config/i386/winnt.c: Also #include lto-streamer.h
29757         (i386_pe_asm_named_section): Specify 1-byte section alignment for
29758         LTO named sections.
29759         (i386_pe_asm_output_aligned_decl_common): Add comment.
29760         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
29761
29762 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
29763
29764         PR target/43889
29765         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
29766         Add missing earlyclobber for second alternative.
29767
29768 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
29769
29770         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
29771         bits for artificial defs at the top of the block.
29772         * fwprop.c (single_def_use_enter_block): Don't call it.
29773
29774 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
29775
29776         PR 43715
29777         * configure.ac: Use "$gcc_cv_nm -g" on darwin
29778         instead of "$gcc_cv_objdump -T".
29779         Use "-undefined dynamic_lookup" on darwin.
29780         * configure: Regenerate.
29781
29782 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
29783
29784         PR c/43893
29785         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
29786
29787 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29788
29789         * c-parser.c (struct c_token): Move location field up.
29790         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
29791         (struct c_declspecs): Convert typespec_word, storage_class, and
29792         default_int_p into bitfields.
29793         (struct c_declarator): Move loc field up.
29794
29795 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29796
29797         * cfgloop.h (struct loop): Move can_be_parallel field up.
29798         * ipa-prop.h (struct ip_node_params): Move bitfields up.
29799         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
29800         down.
29801         (struct iv_cand): Convert pos field into a bitfield.
29802         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
29803         field up.
29804         (struct _stmt_vec_info): Shuffle fields for better packing.
29805
29806 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
29807
29808         * varasm.c (IN_NAMED_SECTION): Remove guard.
29809         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
29810         (IN_NAMED_SECTION_P): ...this.
29811         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
29812         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
29813
29814 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
29815
29816         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
29817         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
29818         of shadowing it.  Fix comments.
29819
29820 2010-04-26  Jan Hubicka  <jh@suse.cz>
29821
29822         * cgraph.c (cgraph_create_node): Set node frequency to normal.
29823         (cgraph_clone_node): Copy function frequency.
29824         * cgraph.h (node_frequency): New enum
29825         (struct cgraph_node): Add.
29826         * final.c (rest_of_clean_state): Update.
29827         * lto-cgraph.c (lto_output_node): Output node frequency.
29828         (input_overwrite_node): Input node frequency.
29829         * tre-ssa-loop-ivopts (computation_cost): Update.
29830         * lto-streamer-out.c (output_function): Do not output function
29831         frequency.
29832         * predict.c (maybe_hot_frequency_p): Update and handle functions
29833         executed once.
29834         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
29835         attribute lookup.
29836         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
29837         (compute_function_frequency): Set noreturn functions to be executed
29838         once.
29839         (choose_function_section): Update.
29840         * lto-streamer-in.c (input_function): Do not input function frequency.
29841         * function.c (allocate_struct_function): Do not initialize function
29842         frequency.
29843         * function.h (function_frequency): Remove.
29844         (struct function): Remove function frequency.
29845         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
29846         (try_update): Update.
29847         * tree-inline.c (initialize_cfun): Do not update function frequency.
29848         * passes.c (pass_init_dump_file): Update.
29849         * i386.c (ix86_compute_frame_layout): Update.
29850         (ix86_pad_returns): Update.
29851
29852 2010-04-26  Jie Zhang  <jie@codesourcery.com>
29853
29854         PR tree-optimization/43833
29855         * tree-vrp.c (range_int_cst_p): New.
29856         (range_int_cst_singleton_p): New.
29857         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
29858         when both operands are constants.  Use range_int_cst_p in
29859         BIT_IOR_EXPR case.
29860
29861 2010-04-26  Jan Hubicka  <jh@suse.cz>
29862
29863         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
29864
29865 2010-04-26  Richard Guenther  <rguenther@suse.de>
29866
29867         PR lto/43080
29868         * gimple.c (gimple_decl_printable_name): Deal gracefully
29869         with a NULL DECL_NAME.
29870
29871 2010-04-26  Richard Guenther  <rguenther@suse.de>
29872
29873         PR lto/42425
29874         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
29875         if emitting debug information and it is either a function
29876         or a namespace decl.
29877
29878 2010-04-26  Ira Rosen  <irar@il.ibm.com>
29879
29880         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
29881         determine if the statement is vectorizable, and a macro to access it.
29882         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29883         Skip statements that can't be vectorized. If the analysis fails,
29884         mark the statement as unvectorizable if vectorizing basic block.
29885         (vect_compute_data_refs_alignment): Likewise.
29886         (vect_verify_datarefs_alignment): Skip statements marked as
29887         unvectorizable. Add print.
29888         (vect_analyze_group_access): Skip statements that can't be
29889         vectorized. If the analysis fails, mark the statement as
29890         unvectorizable if vectorizing basic block.
29891         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
29892         * tree-vect-stmts.c (vectorizable_store): Fix the number of
29893         generated stmts for SLP.
29894         (new_stmt_vec_info): Initialize the new field.
29895         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
29896         statements marked as unvectorizable.
29897
29898 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
29899
29900         * c-common.c (flag_isoc1x): New.
29901         (flag_isoc99): Update comment.
29902         * c-common.h (flag_isoc1x): New.
29903         (flag_isoc99): Update comment.
29904         * c-cppbuiltin.c (builtin_define_float_constants): Also define
29905         __<type>_DECIMAL_DIG__.
29906         * c-opts.c (set_std_c1x): New.
29907         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
29908         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
29909         * c.opt (-std=c1x, -std=gnu1x): New options.
29910         * doc/cpp.texi: Mention -std=c1x.
29911         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
29912         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
29913         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
29914         * doc/standards.texi: Mention C1X.
29915         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
29916         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
29917         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
29918         Define for C1X.
29919
29920 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
29921
29922         * config/i386/gmon-sol2.c (_mcleanup): Change format string
29923         placeholder from 0x%x to %#x.
29924         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29925         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29926         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29927         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29928         * config/i386/i386.c (ix86_target_string): Ditto.
29929         (output_pic_addr_const): Ditto.
29930         (print_operand): Ditto.
29931
29932 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
29933
29934         * combine.c (find_split_point): Add third argument.  Use it
29935         to find nested multiply-accumulate instructions.  Adjust calls.
29936         (try_combine): Adjust call to find_split_point.
29937
29938 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
29939
29940         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
29941
29942 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
29943
29944         PR tree-optimization/41442
29945         * fold-const.c (merge_truthop_with_opposite_arm): New function.
29946         (fold_binary_loc): Call it.
29947
29948 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29949
29950         * toplev.c (general_init): Set default for fdiagnostics-show-option.
29951         * opts.c (common_handle_option): Allow disabling it.
29952         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
29953
29954 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
29955
29956         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
29957         between modes if both types are integral.
29958
29959 2010-04-23  Richard Guenther  <rguenther@suse.de>
29960
29961         PR tree-optimization/43572
29962         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
29963
29964 2010-04-23  Richard Guenther  <rguenther@suse.de>
29965
29966         PR lto/43455
29967         * tree-inline.c (tree_can_inline_p): Also check compatibility
29968         of return types.
29969
29970 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29971
29972         PR tree-optimization/43846
29973         * tree-sra.c (struct access): New flag grp_assignment_read.
29974         (build_accesses_from_assign): Set grp_assignment_read.
29975         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
29976         (enum mark_read_status): New type.
29977         (analyze_access_subtree): Propagate grp_assignment_read, create
29978         accesses also if both direct_read and root->grp_assignment_read.
29979
29980 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29981
29982         PR middle-end/43835
29983         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
29984         function does not have type attributes.
29985
29986 2010-04-23  Richard Guenther  <rguenther@suse.de>
29987
29988         PR lto/42653
29989         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
29990         of FUNCTION_DECLs.
29991
29992 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29993
29994         * sese.h (create_if_region_on_edge): Remove.
29995
29996         * sese.c (create_if_region_on_edge): Make static.
29997
29998         * tree-inline.c: Do not include ggc.h.
29999
30000         * expr.c: Do not include ggc.h.
30001
30002         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
30003         dependencies.
30004
30005 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
30006
30007         PR target/43744
30008         * config/sh/sh.c (find_barrier): Don't emit a constant pool
30009         in the middle of insns for casesi_worker_2.
30010
30011 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
30012
30013         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
30014
30015 2010-04-22  Ira Rosen  <irar@il.ibm.com>
30016
30017         PR tree-optimization/43842
30018         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30019         loop unrolling in update of exit phis. Fix comment.
30020         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30021         least two reduction statements in the loop before starting SLP
30022         analysis.
30023
30024 2010-04-22  Nick Clifton  <nickc@redhat.com>
30025
30026         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30027
30028 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
30029
30030         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30031         to simplify a + ~a.
30032
30033 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30034
30035         * tree-parloops.c (loop_parallel_p): New argument
30036         parloop_obstack.  Pass it down.
30037         (parallelize_loops): New variable parloop_obstack.  Initialize it,
30038         pass it down, free it.
30039
30040         * tree-loop-linear.c (linear_transform_loops): Pass down
30041         lambda_obstack.
30042
30043         * tree-data-ref.h (lambda_compute_access_matrices): New argument
30044         of type struct obstack *.
30045
30046         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
30047         scratch_obstack.  Initialize it, pass down, free it.
30048
30049         * lambda.h (lambda_loop_new): Remove.
30050         (lambda_matrix_new, lambda_matrix_inverse)
30051         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
30052         argument of type struct obstack *.
30053
30054         * lambda-trans.c (lambda_trans_matrix_new): New argument
30055         lambda_obstack.  Pass it down, use obstack allocation for ret.
30056         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
30057         it down.
30058
30059         * lambda-mat.c (lambda_matrix_get_column)
30060         (lambda_matrix_project_to_null): Remove.
30061         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
30062         allocation for mat.
30063         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
30064         lambda_obstack.
30065
30066         * lambda-code.c (lambda_loop_new): New function.
30067         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
30068         (lambda_compute_auxillary_space, lambda_compute_target_space)
30069         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
30070         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
30071         (build_access_matrix): New argument lambda_obstack.  Use obstack
30072         allocation for am.
30073         (lambda_compute_step_signs, lambda_compute_access_matrices): New
30074         argument lambda_obstack.  Pass it down.
30075
30076 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30077
30078         * optabs.h (expand_widening_mult): Declare.
30079
30080 2010-04-22  Richard Guenther  <rguenther@suse.de>
30081
30082         PR tree-optimization/43845
30083         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
30084         lookup the CALL_EXPR function and arguments.
30085
30086 2010-04-22  Nick Clifton  <nickc@redhat.com>
30087
30088         * config/stormy16/stormy16.c
30089         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
30090         * config/stormy16/stormy16.h: Tidy up formatting.
30091         (DONT_USE_BUILTIN_SETJMP): Remove definition.
30092         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
30093         (ineqbranchsi): Delete pattern.
30094         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
30095         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
30096         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
30097         stormy16-lib2-ucmpsi2.c.
30098
30099 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30100
30101         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
30102         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
30103         extra set merge_set_noclobber, and use it to relax the final test
30104         slightly.
30105         * df.h (df_simulate_find_noclobber_defs): Declare.
30106         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
30107         conditional defs.
30108         (df_simulate_find_noclobber_defs): New function.
30109
30110 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
30111
30112         * config/i386/i386.md: Use {} around multi-line preparation statements.
30113
30114 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30115
30116         * c-tree.h (push_init_level, pop_init_level, set_init_index)
30117         (process_init_element): New argument of type struct obstack *.
30118
30119         * c-typeck.c (push_init_level, pop_init_level, set_designator)
30120         (set_init_index, set_init_label, set_nonincremental_init)
30121         (set_nonincremental_init_from_string, find_init_member)
30122         (output_init_element, output_pending_init_elements)
30123         (process_init_element): New argument braced_init_obstack.  Pass it
30124         down.
30125         (push_range_stack, add_pending_init): New argument
30126         braced_init_obstack.  Use obstack allocation.
30127
30128         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
30129         braced_init_obstack.  Pass it down.
30130         (c_parser_braced_init): New variables ret, braced_init_obstack.
30131         Initialize obstack, pass it down and finally free it.
30132
30133 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30134
30135         PR middle-end/29274
30136         * tree-pass.h (pass_optimize_widening_mul): Declare.
30137         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
30138         gate_optimize_widening_mul): New static functions.
30139         (pass_optimize_widening_mul): New.
30140         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
30141         <case MULT_EXPR>: Remove support for widening multiplies.
30142         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
30143         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
30144         simplify_gen_unary rather than directly building extensions.
30145         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
30146         WIDEN_MULT_EXPR.
30147         * expmed.c (expand_widening_mult): New function.
30148         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
30149
30150 2010-04-21  Jan Hubicka  <jh@suse.cz>
30151
30152         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
30153         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
30154         * lto-wpa-fixup.c: Remove.
30155         * Makefile.in (lto-wpa-fixup.o): Remove.
30156         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
30157         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
30158         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
30159
30160 2010-04-21  Jan Hubicka  <jh@suse.cz>
30161
30162         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
30163         add write_optimization_summary, read_optimization_summary.
30164         (ipa_write_summaries_of_cgraph_node_set): Remove.
30165         (ipa_write_optimization_summaries): Declare.
30166         (ipa_read_optimization_summaries): Declare.
30167         * ipa-cp.c (pass_ipa_cp): Update.
30168         * ipa-reference.c (pass_ipa_reference): Update.
30169         * ipa-pure-const.c (pass_ipa_pure_const): Update.
30170         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
30171         Update.
30172         * ipa-inline.c (pass_ipa_inline): Update.
30173         * ipa.c (pass_ipa_whole_program): Update.
30174         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
30175         * passes.c (ipa_write_summaries_1): Do not test wpa.
30176         (ipa_write_optimization_summaries_1): New.
30177         (ipa_write_optimization_summaries): New.
30178         (ipa_read_summaries): Do not test ltrans.
30179         (ipa_read_optimization_summaries_1): New.
30180         (ipa_read_optimization_summaries): New.
30181
30182 2010-04-21  Jan Hubicka  <jh@suse.cz>
30183
30184         * lto-cgraph.c (lto_output_node): Do not output comdat groups
30185         for boundary nodes.
30186         (output_cgraph): Do not arrange comdat groups for boundary nodes.
30187
30188 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30189
30190         PR debug/40040
30191         * dwarf2out.c (add_name_and_src_coords_attributes): Add
30192         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
30193
30194 2010-04-21  Jan Hubicka  <jh@suse.cz>
30195
30196         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
30197
30198 2010-04-21  Jan Hubicka  <jh@suse.cz>
30199
30200         * varpool.c (decide_is_variable_needed): Variable is always needed
30201         during ltrans.
30202
30203 2010-04-21  Jan Hubicka  <jh@suse.cz>
30204
30205         * opts.c (decode_options): Enable pure-const pass for whopr.
30206
30207 2010-04-21  Jan Hubicka  <jh@suse.cz>
30208
30209         * cgraph.c (dump_cgraph_node): Dump also assembler name.
30210         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
30211         at WPA dumping.
30212         (cgraph_decide_inlining): Do not expect callee to be removed in all
30213         cases.
30214
30215 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
30216
30217         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
30218
30219 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30220
30221         * config/i386/i386.md (x86_shrd): Add athlon_decode and
30222         amdfam10_decode attributes.
30223
30224 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30225
30226         PR middle-end/43570
30227         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
30228         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
30229         (lower_copyprivate_clauses): Use private var in outer
30230         context instead of original var.  Make sure the types
30231         are correct for VLAs.
30232
30233 2010-04-21  Richard Guenther  <rguenther@suse.de>
30234
30235         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
30236         to non-pointer objects.
30237
30238 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30239
30240         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
30241         last chain entry if it starts with the still current label.
30242         (add_location_or_const_value_attribute): Check that
30243         loc_list->first->next is NULL instead of comparing ->first with ->last.
30244         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
30245         to add_var_loc_to_decl.
30246
30247         * dwarf2out.c (output_call_frame_info): For dw_cie_version
30248         >= 4 add also address size and segment size fields into CIE header.
30249
30250         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
30251         long as address size is the same as sizeof (void *) and
30252         segment size is 0.
30253         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
30254         address size or segment size is unexpected, return DW_EH_PE_omit.
30255         (classify_object_over_fdes): If get_cie_encoding returned
30256         DW_EH_PE_omit, return -1.
30257         (init_object): If classify_object_over_fdes returned -1,
30258         pretend there were no FDEs at all.
30259
30260 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30261
30262         * config/i386/i386.md (bswap<mode>2): Macroize expander from
30263         bswap{si,di}2 using SWI48 mode iterator.
30264         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
30265         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
30266         set modrm attribute of bswap insn to 0 and remove length attribute.
30267         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
30268         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
30269         set mode attribute to <MODE> and remove length attribute.
30270
30271 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
30272
30273         PR rtl-optimization/43520
30274         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
30275         zero available registers.
30276
30277 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30278
30279         * builtins.c (fold_builtin_cproj): Fold more cases.
30280
30281 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30282
30283         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
30284         (fold_builtin_1): Fold builtin cproj.
30285         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
30286         Use ATTR_CONST_NOTHROW_LIST.
30287
30288 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
30289
30290         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
30291         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
30292         ffsi2_no_cmove for !TARGET_CMOVE.
30293         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
30294         (ffssi2): Remove expander.
30295         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
30296         mode iterator.
30297         (ctz<mode>2): Ditto from ctz{si,di}2.
30298         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
30299         mode iterator.
30300         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
30301         mode iterator.
30302
30303 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
30304
30305         * dwarf2out.c (AT_linkage_name): Define.
30306         (clone_as_declaration): Handle DW_AT_linkage_name.
30307         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
30308         of DW_AT_MIPS_linkage_name.
30309         (move_linkage_attr): Likewise.
30310         (dwarf2out_finish): Likewise.
30311
30312 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
30313
30314         PR middle-end/41952
30315         * fold-const.c (fold_comparison): New folding rule.
30316
30317 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
30318
30319         * double-int.h (double_int_setbit): Declare.
30320         * double-int.c (double_int_setbit): New function.
30321         * rtl.h (immed_double_int_const): Declare.
30322         * emit-rtl.c (immed_double_int_const): New function.
30323         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
30324         and immed_double_int_const functions.
30325         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
30326         expand_copysign_bit): (Ditto.).
30327         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
30328         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
30329         * dojump.c (prefer_and_bit_test): (Ditto.).
30330         * expr.c (convert_modes, reduce_to_bit_field_precision,
30331         const_vector_from_tree): (Ditto.).
30332         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30333
30334 2010-04-20  Jan Hubicka  <jh@suse.cz>
30335
30336         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
30337         (dump_cgraph_node): Dump new flags.
30338         * cgraph.h (struct cgraph_node): Add flags
30339         reachable_from_other_partition and in_other_partition.
30340         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
30341         other partition can not be removed.
30342         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
30343         the other partition must be output; silence sanity checking on
30344         leaking functions bodies from other paritition.
30345         * lto-cgraph.c (reachable_from_other_partition_p): New function.
30346         (lto_output_node): Output new flags; do not sanity check that inline
30347         clones are output; drop lto_forced_extern_inline_p code; do not mock
30348         visibility flags at partition boundaries.
30349         (add_node_to): New function.
30350         (output_cgraph): Use it to sort functions so masters appear before
30351         clones.
30352         (input_overwrite_node): Input new flags.
30353         * passes.c (ipa_write_summaries): Do not call
30354         lto_new_extern_inline_states.
30355         * lto-section-out.c (forced_extern_inline,
30356         lto_new_extern_inline_states lto_delete_extern_inline_states,
30357         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
30358         * lto-streamer.h (lto_new_extern_inline_states,
30359         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
30360         lto_forced_extern_inline_p): Kill.
30361
30362 2010-04-20  Richard Guenther  <rguenther@suse.de>
30363
30364         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
30365         from vars that can have pointers.
30366         (process_constraint): Dump useless constraints.
30367
30368 2010-04-20  Richard Guenther  <rguenther@suse.de>
30369
30370         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
30371         (dump_sa_points_to_info): Remove asserts.
30372         (init_base_vars): nothing_id isn't an escape point nor does it
30373         have pointers.
30374
30375 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
30376
30377         * tree.h (TYPE_REF_IS_RVALUE): Define.
30378         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
30379         should_move_die_to_comdat, prune_unused_types_walk): Handle
30380         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
30381         (modified_type_die, gen_reference_type_die): Emit
30382         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
30383         if TYPE_REF_IS_RVALUE and -gdwarf-4.
30384
30385 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30386
30387         PR target/43635
30388         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
30389         calls for -fpic -m31 if they have been sibcall optimized.
30390
30391 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
30392
30393         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
30394         ar.lc fixed and call-used.
30395
30396         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
30397
30398 2010-04-19  Jan Hubicka  <jh@suse.cz>
30399
30400         * opts.c (decode_options): Disable whpr incompatible passes.
30401         * lto/lto.c (lto_1_to_1_map): Skip clones.
30402         (read_cgraph_and_symbols): Do not mark everything as needed.
30403         (do_whole_program_analysis): Do map only after optimizing;
30404         set proper cgraph_state; use passmanager.
30405
30406 2010-04-19  DJ Delorie  <dj@redhat.com>
30407
30408         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
30409         POINTER_PLUS_EXPR and fix them.
30410
30411 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
30412
30413         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
30414         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
30415         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
30416         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
30417         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
30418         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
30419         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
30420         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
30421         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
30422         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
30423         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
30424
30425 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
30426
30427         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
30428         (check_cond_move_block): Likewise.
30429         (cond_move_process_if_block): Likewise.
30430         (noce_find_if_block): Improve formatting.
30431         (find_if_header): Pass 0 to memset and tweak conditions.
30432         (cond_exec_find_if_block): Fix long lines and tweak conditions.
30433
30434 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
30435
30436         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
30437         for -gdwarf-4.
30438
30439         PR middle-end/43337
30440         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
30441         with non-local decl doesn't need chain.
30442
30443 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
30444
30445         * ira-color.c (allocno_reload_assign): Avoid accumulating
30446         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
30447
30448 2010-04-19  Martin Jambor  <mjambor@suse.cz>
30449
30450         * gimple.h (create_tmp_reg): Declare.
30451         * gimplify.c (create_tmp_reg): New function.
30452         (gimplify_return_expr): Use create_tmp_reg.
30453         (gimplify_omp_atomic): Likewise.
30454         (gimple_regimplify_operands): Likewise.
30455         * tree-dfa.c (make_rename_temp): Likewise.
30456         * tree-predcom.c (predcom_tmp_var): Likewise.
30457         (reassociate_to_the_same_stmt): Likewise.
30458         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
30459         (get_replaced_param_substitute): Likewise.
30460         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30461         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
30462         * tree-ssa-pre.c (get_representative_for): Likewise.
30463         (create_expression_by_pieces): Likewise.
30464         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
30465         (create_tailcall_accumulator): Likewise.
30466
30467 2010-04-19  Martin Jambor  <mjambor@suse.cz>
30468
30469         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
30470         new_stmt.
30471         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
30472
30473 2010-04-19  Richard Guenther  <rguenther@suse.de>
30474
30475         PR tree-optimization/43796
30476         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
30477         from SCEV in the lattice.
30478         (vrp_visit_phi_node): Dump change.
30479
30480 2010-04-19  Richard Guenther  <rguenther@suse.de>
30481
30482         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
30483         * configure: Re-generated.
30484
30485 2010-04-19  Richard Guenther  <rguenther@suse.de>
30486
30487         PR tree-optimization/43783
30488         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
30489         constant ARRAY_REF operands two and three if possible.
30490
30491 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
30492
30493         PR target/43766
30494         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
30495
30496 2010-04-19  Jie Zhang  <jie@codesourcery.com>
30497
30498         PR target/43662
30499         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
30500
30501 2010-04-19  Ira Rosen  <irar@il.ibm.com>
30502
30503         PR tree-optimization/37027
30504         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
30505         and macro to access it.
30506         (vectorizable_reduction): Add argument.
30507         (vect_get_slp_defs): Likewise.
30508         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
30509         statements for possible use in SLP.
30510         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
30511         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
30512         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
30513         add new argument.
30514         (vectorizable_reduction): Likewise.
30515         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
30516         vect_get_slp_defs.
30517         (vectorizable_type_demotion, vectorizable_type_promotion,
30518         vectorizable_store): Likewise.
30519         (vect_analyze_stmt): Update call to vectorizable_reduction.
30520         (vect_transform_stmt): Likewise.
30521         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
30522         (vect_build_slp_tree): Fix indentation. Check that there are no loads
30523         from different interleaving chains in same node.
30524         (vect_slp_rearrange_stmts): New function.
30525         (vect_supported_load_permutation_p): Allow load permutations for
30526         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
30527         inside SLP nodes if necessary.
30528         (vect_analyze_slp_instance): Handle reductions.
30529         (vect_analyze_slp): Try to build SLP instances originating from groups
30530         of reductions.
30531         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
30532         (vect_get_constant_vectors): Create initial vectors for reductions
30533         according to reduction code. Add new argument.
30534         (vect_get_slp_defs): Add new argument, pass it to
30535         vect_get_constant_vectors.
30536         (vect_schedule_slp_instance): Remove SLP tree root statements.
30537
30538 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
30539
30540         * tree.h (ENUM_IS_SCOPED): Define.
30541         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
30542         for ENUM_IS_SCOPED enums.
30543
30544 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
30545
30546         * fold-const.c (fold_comparison): Use ssizetype.
30547         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
30548         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
30549         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
30550         * tree-object-size.c (compute_object_sizes): Use size_type_node.
30551
30552         * tree.h (initialize_sizetypes): Remove parameter.
30553         (build_common_tree_nodes): Remove second parameter.
30554         * stor-layout.c (initialize_sizetypes): Remove parameter.
30555         Always create an unsigned type.
30556         (set_sizetype): Assert that the passed type is unsigned and simplify.
30557         * tree.c (build_common_tree_nodes): Remove second parameter.
30558         Adjust call to initialize_sizetypes.
30559         * c-decl.c (c_init_decl_processing): Remove second argument in call to
30560         build_common_tree_nodes.
30561
30562 2010-04-18  Matthias Klose  <doko@ubuntu.com>
30563
30564         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
30565
30566 2010-04-18  Ira Rosen  <irar@il.ibm.com>
30567
30568         PR tree-optimization/43771
30569         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
30570         load permutation doesn't have gaps.
30571
30572 2010-04-18  Jan Hubicka  <jh@suse.cz>
30573
30574         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
30575         (sse_prologue_save_insn expander): Use new pattern.
30576         (sse_prologue_save_insn1): New pattern and splitter.
30577         (sse_prologue_save_insn): Update to deal also with 64bit aligned
30578         blocks.
30579         * i386.c (setup_incoming_varargs_64): Do not compute jump
30580         destination here.
30581         (ix86_gimplify_va_arg): Update alignment needed.
30582         (ix86_local_alignment): Do not align all local arrays to 128bit.
30583
30584 2010-04-17  Jan Hubicka  <jh@suse.cz>
30585
30586         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
30587
30588 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30589
30590         * arm.md (negdi2): Remove redundant code to force values into a
30591         register.
30592
30593 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30594
30595         * arm/bpabi.S: Add EABI alignment attributes to objects.
30596         * arm/bpabi-v6m.S: Likewise.
30597         * arm/crti.asm: Likewise.
30598         * arm/crtn.asm: Likewise.
30599         * arm/lib1funcs.asm: Likewise.
30600         * arm/libunwind.S: Likewise.
30601
30602 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30603
30604         * arm-protos.h (tune_params): New structure.
30605         * arm.c (current_tune): New variable.
30606         (arm_constant_limit): Delete.
30607         (struct processors): Add pointer to the tune parameters.
30608         (arm_slowmul_tune): New tuning option.
30609         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
30610         (all_cores): Adjust to pick up the tuning model.
30611         (arm_constant_limit): New function.
30612         (arm_override_options): Select the appropriate tuning model.  Delete
30613         initialization of arm_const_limit.
30614         (arm_split_constant): Use the new constant-limit model.
30615         (arm_rtx_costs): Pick up the current tuning model.
30616         * arm.md (is_strongarm, is_xscale): Delete.
30617         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
30618         for Xscale variant architectures.
30619         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
30620
30621 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30622
30623         * config/arm/arm.c (arm_gen_constant): Remove unused variable
30624         can_shift.
30625         (arm_rtx_costs_1): Remove unused variable extra_cost.
30626         (arm_unwind_emit_set): Use variable offset.
30627         (thumb1_output_casesi): Remove unused variable flags.
30628
30629 2010-04-16  Jeff Law  <law@redhat.com>
30630
30631         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
30632         needing assignment rather than doing a two-phase assignment.  Remove
30633         unused variable 'm'.
30634
30635 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30636
30637         PR bootstrap/43767
30638         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
30639
30640 2010-04-16  Doug Kwan  <dougkwan@google.com>
30641
30642         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
30643         (next_operand_entry_id): New static variable.
30644         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
30645         (add_to_ops_vec): Assigned unique ID to operand entry.
30646         (struct oecount_s): New field ID.
30647         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
30648         (undistribute_ops_list): Assign unique IDs to oecounts.
30649         (init_reassoc): reset next_operand_entry_id.
30650
30651 2010-04-16  Doug Kwan  <dougkwan@google.com>
30652
30653         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
30654         missing left parenthesis.
30655
30656 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
30657
30658         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
30659         *btdi_rex64 using SWI48 mode iterator.
30660         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
30661         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
30662         *jcc_btdi_mask_rex64.
30663
30664 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
30665
30666         * double-int.h (tree_to_double_int): Convert to macro.
30667         * double-int.c (tree_to_double_int): Remove.
30668
30669 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30670
30671         PR debug/43762
30672         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
30673         with want_address 2 and in case a single element list might be
30674         possible, call it again with want_address 0.
30675
30676 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30677
30678         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
30679         case 'W' print operands for HI mode.
30680         * config/h8300/h8300.h (Y0, Y2) : New constraints.
30681         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
30682         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
30683         * config/h8300/predicate.md (bit_register_indirect_operand): New.
30684
30685         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
30686
30687         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
30688         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
30689         #xx:3 and #xx:4 mode.
30690
30691         * config/h8300/h8300.md (inverted load with HImode dest): Add
30692         support for H8300SX.
30693
30694         * config/h8300/predicate.md (bit_operand): Allow immediate values that
30695         satisfy 'U' constraint.
30696
30697 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30698
30699         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
30700         * configure: Regenerate.
30701         * config.in: Regenerate.
30702         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
30703         works.
30704
30705 2010-04-16  Richard Guenther  <rguenther@suse.de>
30706
30707         * tree.h (struct tree_decl_minimal): Move pt_uid ...
30708         (struct tree_decl_common): ... here.
30709         (DECL_PT_UID): Adjust.
30710         (SET_DECL_PT_UID): Likewise.
30711         (DECL_PT_UID_SET_P): Likewise.
30712
30713 2010-04-16  Richard Guenther  <rguenther@suse.de>
30714
30715         PR tree-optimization/43572
30716         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
30717         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
30718         * tree-flow.h (is_call_clobbered): Remove.
30719         * tree-flow-inline.h (is_call_clobbered): Likewise.
30720         * tree-dfa.c (dump_variable): Do not dump call clobber state.
30721         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
30722         (execute_return_slot_opt): Adjust.
30723         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
30724         check for call clobbered vars here.
30725         (find_tail_calls): Move tailcall verification to the
30726         proper place.
30727
30728 2010-04-16  Diego Novillo  <dnovillo@google.com>
30729
30730         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
30731
30732 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
30733
30734         PR target/40603
30735         * config/arm/arm.md (cbranchqi4): New pattern.
30736         * config/arm/predicates.md (const0_operand,
30737         cbranchqi4_comparison_operator): New predicates.
30738
30739 2010-04-16  Richard Guenther  <rguenther@suse.de>
30740
30741         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
30742         (dump_gimple_stmt): Likewise.
30743
30744 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
30745
30746         * recog.h (struct recog_data): New field is_operator.
30747         (struct insn_operand_data): New field is_operator.
30748         * recog.c (extract_insn): Set recog_data.is_operator.
30749         * genoutput.c (output_operand_data): Emit code to set the
30750         is_operator field.
30751         * reload.c (find_reloads): Use it rather than testing for an
30752         empty constraint string.
30753
30754         PR target/41514
30755         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
30756         If the previous insn is a cbranchsi4_insn with the same arguments,
30757         omit the compare instruction.
30758
30759         * config/arm/arm.md (addsi3_cbranch): If destination is a high
30760         register, inputs must be low registers and we need a low register
30761         scratch.  Handle alternative 2 like alternative 3.
30762
30763 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30764
30765         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
30766         don't call get_addr on both.  If one expression is a VALUE and
30767         the other a REG, check VALUE's locs if the REG isn't among them.
30768
30769 2010-04-16  Christian Bruel  <christian.bruel@st.com>
30770
30771         * config/sh/sh.h (sh_frame_pointer_required): New function.
30772         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
30773         (flag_omit_frame_pointer) Set.
30774         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
30775         (rounded_frame_size): Adjust size with outgoing_args_size.
30776         (sh_set_return_address): Must return from stack pointer.
30777         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
30778         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
30779         (ACCUMULATE_OUTGOING_ARGS): Define.
30780         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
30781         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
30782
30783 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30784
30785         PR target/43471
30786         * config/sh/sh.c (sh_legitimize_reload_address): Use
30787         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
30788         Remove a unneeded check for offset_base.
30789
30790 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
30791
30792         * configure: Regenerated.
30793
30794 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30795
30796         * config/s390/s390.c (s390_call_save_register_used): Switch back
30797         to HARD_REGNO_NREGS.
30798
30799 2010-04-15  Richard Guenther  <rguenther@suse.de>
30800
30801         * alias.c (alias_set_subset_of): Handle alias-set zero
30802         child properly.
30803
30804 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
30805             Julian Brown  <julian@codesourcery.com>
30806
30807         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
30808         alternatives according to use of high and low regs.
30809         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
30810         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
30811         optimizing for size on Thumb-2.
30812
30813 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
30814
30815         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
30816
30817 2010-04-15  Richard Guenther  <rguenther@suse.de>
30818
30819         * tree-ssa-structalias.c (struct variable_info): Add
30820         is_fn_info flag.
30821         (new_var_info): Initialize it.
30822         (dump_constraints): Support printing last added constraints.
30823         (debug_constraints): Adjust.
30824         (dump_constraint_graph): Likewise.
30825         (make_heapvar_for): Check for NULL cfun.
30826         (get_function_part_constraint): New function.
30827         (get_fi_for_callee): Likewise.
30828         (find_func_aliases): Properly implement IPA PTA constraints.
30829         (process_ipa_clobber): New function.
30830         (find_func_clobbers): Likewise.
30831         (insert_into_field_list_sorted): Remove.
30832         (create_function_info_for): Properly allocate vars for IPA mode.
30833         Do not use insert_into_field_list_sorted.
30834         (create_variable_info_for): Properly generate constraints for
30835         global vars in IPA mode.
30836         (dump_solution_for_var): Always dump the solution.
30837         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
30838         (find_what_var_points_to): Adjust.
30839         (pt_solution_set): Change.
30840         (pt_solution_ior_into): New function.
30841         (pt_solution_empty_p): Export.
30842         (pt_solution_includes_global): Adjust.
30843         (pt_solution_includes_1): Likewise.
30844         (pt_solutions_intersect_1): Likewise.
30845         (dump_sa_points_to_info): Check some invariants.
30846         (solve_constraints): Move constraint dumping ...
30847         (compute_points_to_sets): ... here.
30848         (ipa_pta_execute): ... and here.
30849         (compute_may_aliases): Do not re-compute points-to info
30850         locally if IPA info is available.
30851         (ipa_escaped_pt): New global var.
30852         (ipa_pta_execute): Properly implement IPA PTA.
30853         * tree-into-ssa.c (dump_decl_set): Support dumping
30854         decls not in referenced-vars.
30855         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
30856         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
30857         (dump_points_to_solution): Likewise.
30858         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
30859         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
30860         (remap_gimple_stmt): Reset call clobber/use information if necessary.
30861         (copy_decl_to_var): Copy DECL_PT_UID.
30862         (copy_result_decl_to_var): Likewise.
30863         * tree.c (make_node_stat): Initialize DECL_PT_UID.
30864         (copy_node_stat): Copy it.
30865         * tree.h (DECL_PT_UID): New macro.
30866         (SET_DECL_PT_UID): Likewise.
30867         (DECL_PT_UID_SET_P): Likewise.
30868         (struct tree_decl_minimal): Add pt_uid member.
30869         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
30870         (pt_solution_empty_p): Declare.
30871         (pt_solution_set): Adjust.
30872         (ipa_escaped_pt): Declare.
30873         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
30874         * gimple-pretty-print.c (pp_points_to_solution): New function.
30875         (dump_gimple_call): Dump call clobber/use information.
30876         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
30877         * tree-pass.h (TDF_ALIAS): New dump option.
30878         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
30879         * doc/invoke.texi (-fipa-pta): Update documentation.
30880
30881 2010-04-15  Richard Guenther  <rguenther@suse.de>
30882
30883         * Makefile.in (OBJS-common): Add gimple-fold.o.
30884         (gimple-fold.o): New rule.
30885         * tree.h (maybe_fold_offset_to_reference,
30886         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
30887         prototypes ...
30888         * gimple.h: ... here.
30889         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
30890         may_propagate_address_into_dereference): Move prototypes ...
30891         * gimple.h: ... here.
30892         * tree-ssa-ccp.c (get_symbol_constant_value,
30893         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
30894         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
30895         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
30896         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
30897         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
30898         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
30899         gimplify_and_update_call_from_tree): Move ...
30900         * gimple-fold.c: ... here.  New file.
30901         (ccp_fold_builtin): Rename to ...
30902         (gimple_fold_builtin): ... this.
30903         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
30904
30905 2010-04-15  Richard Guenther  <rguenther@suse.de>
30906
30907         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
30908         fit_double_type, force_fit_type_double, add_double_with_sign,
30909         neg_double, mul_double_with_sign, lshift_double, rshift_double,
30910         lrotate_double, rrotate_double, div_and_round_double): Move ...
30911         * double-int.c: ... here.
30912         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
30913         add_double, neg_double, mul_double_with_sign, mul_double,
30914         lshift_double, rshift_double, lrotate_double, rrotate_double,
30915         div_and_round_double): Move prototypes ...
30916         * double-int.h: ... here.
30917
30918 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
30919
30920         PR target/43742
30921         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
30922         matching constraints to ensure inputs match the output.
30923
30924 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30925
30926         PR target/43742
30927         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
30928         in an input-only operand.
30929
30930 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
30931
30932         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
30933         (double_int_not, double_int_lshift, double_int_rshift): Declare.
30934         (double_int_negative_p): Convert to static inline function.
30935         * double-int.c (double_int_lshift, double_int_lshift): New functions.
30936         (double_int_negative_p): Remove.
30937         * tree.h (lshift_double, rshift_double):
30938         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
30939         * fold-const.c (fold_convert_const_int_from_real,
30940         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
30941         (lshift_double): Change type of arith argument to bool.
30942         (rshift_double): Change type of arith argument to bool. Correct
30943         comment.
30944         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30945
30946 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
30947
30948         PR target/21803
30949         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
30950         at the start and end of the then/else blocks, and omit them from the
30951         conversion.
30952         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
30953         argument; all callers changed.  Pass zero to old_insns_match_p instead.
30954         (flow_find_head_matching_sequence): New function.
30955         (old_insns_match_p): Check REG_EH_REGION notes for calls.
30956         * basic-block.h (flow_find_cross_jump,
30957         flow_find_head_matching_sequence): Declare functions.
30958
30959 2010-04-14  Jason Merrill  <jason@redhat.com>
30960
30961         PR c++/36625
30962         * c-common.c (attribute_takes_identifier_p): New fn.
30963         * c-common.h: Declare it.
30964
30965 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30966
30967         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
30968         splitter condition.
30969         (*udivmod<mode>4): Ditto.
30970
30971 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30972
30973         * config/i386/i386.md (maxmin_int): Rename code attribute from
30974         maxminiprefix and update all users.
30975         (maxmin_float): Ditto from maxminfprefix.
30976         (logic): Ditto from logicprefix.
30977         (absneg_mnemonic): Ditto from absnegprefix.
30978         * config/i386/mmx.md: Update all users of maxminiprefix,
30979         maxminfprefix and logicprefix for rename.
30980         * config/i386/sse.md: Ditto.
30981         * config/i386/sync.md (sync_<code><mode>): Update for
30982         logicprefix rename.
30983
30984 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30985
30986         PR 42966
30987         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
30988         warnings converted to errors.
30989
30990 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30991
30992         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
30993         used insn_type variable.
30994         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
30995         to avoid set-but-not-used warning.
30996
30997 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30998
30999         * df-core.c (df_ref_debug): Change format string placeholder
31000         from 0x%x to %#x.
31001         * dwarf2asm.c (dw2_asm_output_data_raw,
31002         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
31003         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
31004         * dwarf2out.c (output_cfi, output_cfi_directive,
31005         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
31006         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
31007         Ditto.
31008         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
31009         * print-rtl.c (print_rtx): Ditto.
31010
31011 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31012
31013         PR middle-end/42694
31014         * builtins.c (expand_builtin_pow_root): New function to expand pow
31015         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
31016         series of sqrt and cbrt calls under -ffast-math.
31017         (expand_builtin_pow): Call it.
31018
31019 2010-04-14  Michael Matz  <matz@suse.de>
31020
31021         PR tree-optimization/42963
31022         * tree-cfg.c (touched_switch_bbs): New static variable.
31023         (group_case_labels_stmt): New function broken out from ...
31024         (group_case_labels): ... here, use the above.
31025         (start_recording_case_labels): Allocate touched_switch_bbs.
31026         (end_recording_case_labels): Deallocate it, call
31027         group_case_labels_stmt.
31028         (gimple_redirect_edge_and_branch): Remember index of affected BB.
31029
31030 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31031
31032         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31033         from insn template.
31034
31035 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31036
31037         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31038
31039 2010-04-13  Jan Hubicka  <jh@suse.cz>
31040
31041         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
31042         of optimized out static functions.
31043         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
31044         cost computation.  Also sanity check for overflows.
31045         (update_caller_keys): Update cgraph_edge_badness call; properly
31046         update fibheap and sanity check that it is up to date.
31047         (add_new_edges_to_heap): Update cgraph_edge_badness.
31048         (cgraph_decide_inlining_of_small_function): Likewise;
31049         add sanity checking that badness in heap is up to date;
31050         improve dumping of reason; Update badness of calls to the
31051         offline copy of function currently inlined; dump badness
31052         of functions not inlined because of unit growth limits.
31053
31054 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31055
31056         PR middle-end/32628
31057         * c-common.c (pointer_int_sum): Disregard overflow that occured only
31058         because of sign-extension change when converting to sizetype here...
31059         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
31060
31061         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
31062         the folding to constants.  Remove redundant final conversion.
31063         (fold_binary) <associate>: Do not associate if the re-association of
31064         constants alone overflows.
31065         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
31066         to the end of the list.
31067         (multiple_of_p) <COND_EXPR>: New case.
31068
31069 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31070
31071         * opt-functions.awk (opt_sanitized_name): New.
31072         (opt_enum): New.
31073         * optc-gen.awk: Use it
31074         * opth-gen.awk: Use it.
31075
31076 2010-04-13  Martin Jambor  <mjambor@suse.cz>
31077
31078         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
31079         (sra_modify_assign): Delete stmts loading dead data even if racc has no
31080         children.  Call replace_uses_with_default_def_ssa_name to handle
31081         SSA_NAES on lhs.
31082
31083 2010-04-13  Michael Matz  <matz@suse.de>
31084
31085         PR middle-end/43730
31086         * builtins.c (expand_builtin_interclass_mathfn): Also create
31087         a register if the predicate doesn't match.
31088
31089 2010-04-13  Diego Novillo  <dnovillo@google.com>
31090
31091         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
31092         * c-pch.c: Include timevar.h.
31093         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
31094         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
31095         * ggc-common.c: Include timevar.h.
31096         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
31097         * timevar.def (TV_PCH_SAVE): Define.
31098         (TV_PCH_CPP_SAVE): Define.
31099         (TV_PCH_PTR_REALLOC): Define.
31100         (TV_PCH_PTR_SORT): Define.
31101         (TV_PCH_RESTORE): Define.
31102         (TV_PCH_CPP_RESTORE): Define.
31103
31104 2010-04-13  Michael Matz  <matz@suse.de>
31105
31106         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
31107         into MINUS_EXPRs.
31108         (can_reassociate_p): New function.
31109         (break_up_subtract_bb, reassociate_bb): Use it.
31110
31111 2010-04-13  Richard Guenther  <rguenther@suse.de>
31112
31113         PR bootstrap/43737
31114         * builtins.c (c_readstr): Fix assert.
31115
31116 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
31117
31118         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
31119         when generating cltd insn.
31120
31121         (*ashl<mode>3_1): Remove special handling for register operand 2.
31122         (*ashlsi3_1_zext): Ditto.
31123         (*ashlhi3_1): Ditto.
31124         (*ashlhi3_1_lea): Ditto.
31125         (*ashlqi3_1): Ditto.
31126         (*ashlqi3_1_lea): Ditto.
31127         (*<shiftrt_insn><mode>3_1): Ditto.
31128         (*<shiftrt_insn>si3_1_zext): Ditto.
31129         (*<shiftrt_insn>qi3_1_slp): Ditto.
31130         (*<rotate_insn><mode>3_1): Ditto.
31131         (*<rotate_insn>si3_1_zext): Ditto.
31132         (*<rotate_insn>qi3_1_slp): Ditto.
31133
31134 2010-04-13  Richard Guenther  <rguenther@suse.de>
31135
31136         * tree-ssa-structalias.c (callused_id): Remove.
31137         (call_stmt_vars): New.
31138         (get_call_vi): Likewise.
31139         (lookup_call_use_vi): Likewise.
31140         (lookup_call_clobber_vi): Likewise.
31141         (get_call_use_vi): Likewise.
31142         (get_call_clobber_vi): Likewise.
31143         (make_transitive_closure_constraints): Likewise.
31144         (handle_const_call): Adjust to do per-call call-used handling.
31145         (handle_pure_call): Likewise.
31146         (find_what_var_points_to): Remove general callused handling.
31147         (init_base_vars): Likewise.
31148         (init_alias_vars): Initialize call_stmt_vars.
31149         (compute_points_to_sets): Process call-used and call-clobbered
31150         vars for call statements.
31151         (delete_points_to_sets): Free call_stmt_vars.
31152
31153 2010-04-13  Richard Guenther  <rguenther@suse.de>
31154
31155         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31156         Only add RW dependence for dependence distance zero.
31157         Adjust maximal vectorization factor according to dependences.
31158         Move alignment handling ...
31159         (vect_find_same_alignment_drs): ... here.  New function.
31160         (vect_analyze_data_ref_dependences): Adjust.
31161         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
31162         (vect_analyze_data_refs): Adjust minimal vectorization factor
31163         according to data references.
31164         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
31165         dependences before determining the vectorization factor.
31166         Analyze alignment after determining the vectorization factor.
31167         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
31168         dependences before alignment.
31169         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
31170         Adjust prototype.
31171         (vect_analyze_data_refs): Likewise.
31172         (MAX_VECTORIZATION_FACTOR): New define.
31173
31174 2010-04-13  Duncan Sands  <baldrick@free.fr>
31175
31176         * except.h (lang_eh_type_covers): Remove.
31177         * except.c (lang_eh_type_covers): Likewise.
31178
31179 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31180             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31181
31182         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
31183         * config/s390/s390.c: Replace UNTIS_PER_WORD with
31184         UNITS_PER_LONG where it is ABI relevant.
31185         (s390_return_addr_rtx): Likewise.
31186         (s390_back_chain_rtx): Likewise.
31187         (s390_frame_area): Likewise.
31188         (s390_frame_info): Likewise.
31189         (s390_initial_elimination_offset): Likewise.
31190         (save_gprs): Likewise.
31191         (s390_emit_prologue): Likewise.
31192         (s390_emit_epilogue): Likewise.
31193         (s390_function_arg_advance): Likewise.
31194         (s390_function_arg): Likewise.
31195         (s390_va_start): Likewise.
31196         (s390_gimplify_va_arg): Likewise.
31197         (s390_function_profiler): Likewise.
31198         (s390_optimize_prologue): Likewise.
31199         (s390_rtx_costs): Likewise.
31200         (s390_secondary_reload): Likewise.
31201         (s390_promote_function_mode): Likewise.
31202         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
31203         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
31204         registers available.
31205         (s390_unwind_word_mode): New function.
31206         (s390_function_value): Split 64 bit values into register pair if
31207         used as return value.
31208         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
31209         function call parameters.  Handle parallels.
31210         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
31211         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
31212         (DWARF_CIE_DATA_ALIGNMENT): New macro.
31213         (s390_expand_setmem): Remove unused variable src_addr.
31214         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
31215         deal with 64 bit registers.
31216         * config/s390/s390.h: Define __zarch__ predefined macro.
31217         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
31218         (UNITS_PER_LONG): New macro.
31219         * libjava/include/s390-signal.h: Define extended ucontext
31220         structure containing the upper halfs of the 64 bit registers.
31221
31222 2010-04-13  Simon Baldwin  <simonb@google.com>
31223
31224         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
31225
31226 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31227
31228         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
31229         rvalue on the RHS if the LHS is of a non-renamable type.
31230         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
31231
31232 2010-04-13  Matthias Klose  <doko@ubuntu.com>
31233
31234         * gcc.c (cc1_options): Handle -iplugindir before processing
31235         the cc1 spec. Only add -iplugindir once.
31236         (cpp_unique_options): Add -iplugindir option if -fplugin* options
31237         found.
31238         * common.opt (iplugindir): Remove `Separate' property, initialize.
31239         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
31240         option.
31241         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
31242         (distclean): Remove plugin dir.
31243         * doc/invoke.texi: Document -iplugindir.
31244
31245 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
31246
31247         * doc/plugins.texi (Loading Plugins): Document short
31248         -fplugin=foo option.
31249         (Plugin API): Mention default_plugin_dir_name function.
31250
31251         * gcc.c (find_file_spec_function): Add new declaration.
31252         (static_spec_func): Use it for "find-file".
31253         (find_file_spec_function): Add new function.
31254         (cc1_options): Add -iplugindir option if -fplugin* options found.
31255
31256         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
31257
31258         * plugin.c (add_new_plugin): Updated comment, and handle short
31259         plugin name.
31260         (default_plugin_dir_name): Added new function.
31261
31262         * common.opt (iplugindir): New option to set the plugin directory.
31263
31264 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
31265
31266         * config/i386/i386.md (any_rotate): New code iterator.
31267         (rotate_insn): New code attribute.
31268         (rotate): Ditto.
31269         (SWIM124): New mode iterator.
31270         (<rotate_insn>ti3): New expander.
31271         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
31272         any_rotate code iterator.
31273         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
31274         using any_rotate code iterator and SWIM124 mode iterator.
31275         (ix86_rotlti3): New insn_and_split pattern.
31276         (ix86_rotrti3): Ditto.
31277         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
31278         ix86_rotl{di,ti}3 patterns.
31279         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
31280         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
31281         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
31282         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
31283         code iterator and SWI mode iterator.
31284         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
31285         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
31286         code iterator.
31287         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
31288         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
31289         (bswap rotatert splitter): Add splitter.
31290         (bswap splitter): Macroize splitter using any_rotate code iterator.
31291         Add insn predicate to split only for TARGET_USE_XCHGB or when
31292         optimizing function for size.
31293
31294 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31295
31296         * config/pa/pa.c (emit_move_sequence): Remove use of
31297         deleted variable flag_argument_noalias.
31298
31299 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31300
31301         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
31302         configurations.
31303         Add to unsupported targets list.
31304         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
31305         sparc*-sun-solaris2.[567]* from target lists.
31306         * configure: Regenerate.
31307         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
31308         removal.
31309         Remove Solaris 7 patch references.
31310         (Specific, sparc-sun-solaris2.7): Removed.
31311         (sparc-sun-solaris2*): Update Solaris 7 example.
31312         (sparc64-*-solaris2*): Likewise.
31313
31314 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31315
31316         * config.build (alpha*-dec-osf4*): Remove.
31317         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
31318         of obsolete configurations.
31319         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
31320         support.
31321         * config/alpha/t-osf4: Renamed to ...
31322         * config/alpha/t-osf5: ... this.
31323         * config/alpha/osf.h: Renamed to ...
31324         * config/alpha/osf5.h: ... this.
31325         Merged old osf5.h contents.
31326         Update comments.
31327         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
31328         (EXTRA_SPECS): Removed.
31329         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
31330         reflect removal of Tru64 UNIX V4.0/V5.0 support.
31331         Document that.
31332
31333 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31334
31335         * doc/contrib.texi (Contributors, Rainer Orth): Update.
31336
31337 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
31338
31339         PR/43702
31340         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
31341         __thiscall convention.
31342
31343 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31344
31345         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
31346         orig_base.
31347         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
31348
31349 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31350
31351         * function.c (assign_parms_initialize_all): Add unused attribute
31352         to fntype.
31353
31354 2010-04-12  Richard Guenther  <rguenther@suse.de>
31355
31356         * gsstruct.def (GSS_CALL): New.
31357         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
31358         * gimple.h: Include tree-ssa-alias.h.
31359         (struct gimple_statement_call): New.
31360         (union gimple_statement_struct_d): Add gimple_call member.
31361         (gimple_call_reset_alias_info): Declare.
31362         (gimple_call_use_set): New function.
31363         (gimple_call_clobber_set): Likewise.
31364         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
31365         * gimple.c (gimple_call_reset_alias_info): New function.
31366         (gimple_build_call_1): Call it.
31367         * lto-streamer-in.c (input_gimple_stmt): Likewise.
31368         * tree-inline.c (remap_gimple_stmt): Likewise.
31369         (expand_call_inline): Remove callused handling.
31370         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
31371         * tree-dfa.c (dump_variable): Likewise.
31372         * tree-parloops.c (parallelize_loops): Likewise.
31373         * tree-ssa.c (init_tree_ssa): Likewise.
31374         (delete_tree_ssa): Likewise.
31375         * tree-flow-inline.h (is_call_used): Remove.
31376         * tree-flow.h (struct gimple_df): Remove callused member.
31377         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
31378         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
31379         (ref_maybe_used_by_call_p_1): Simplify.
31380         (call_may_clobber_ref_p_1): Likewise.
31381         * tree-ssa-structalias.c (compute_points_to_sets): Set
31382         the call stmt used and clobbered sets.
31383         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
31384         (find_tail_calls): Verify the tail call.
31385
31386 2010-04-12  Richard Guenther  <rguenther@suse.de>
31387
31388         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
31389         single-iteration always-inline inlining.
31390         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
31391         (cgraph_decide_inlining): Do not handle always-inline specially.
31392         (try_inline): Remove always-inline cycle detection special case.
31393         Do not recurse on always-inlines.
31394         (cgraph_early_inlining): Do not iterate if not optimizing.
31395         (cgraph_gate_early_inlining): remove.
31396         (pass_early_inline): Run unconditionally.
31397         (gate_cgraph_decide_inlining): New function.
31398         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
31399         not inlining or optimizing.
31400         (cgraph_decide_inlining_of_small_functions): Also consider
31401         always-inline functions.
31402         (cgraph_default_inline_p): Return true for nodes which should
31403         disregard inline limits.
31404         (estimate_function_body_sizes): Assume zero size and time for
31405         nodes which are marked as disregarding inline limits.
31406         (cgraph_decide_recursive_inlining): Do not perform recursive
31407         inlining on always-inline nodes.
31408
31409 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
31410
31411         PR bootstrap/43699
31412         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
31413         for exprs satisfying handled_component_p.
31414
31415 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
31416
31417         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
31418         non-constant aggregate elements.
31419
31420         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
31421         is a real initialization.
31422
31423 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
31424
31425         PR c/36774
31426         * c-decl.c (start_function): Move forward check for nested function.
31427
31428 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
31429
31430         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
31431         * config/sh/sh.c: Include reload.h.
31432         (sh_legitimize_reload_address): New.
31433         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
31434         sh_legitimize_reload_address.
31435
31436 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31437
31438         * config/sh/sh.md (*movqi_pop): New insn pattern.
31439         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
31440
31441 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31442
31443         * config/i386/i386.md (any_shiftrt): New code iterator.
31444         (shiftrt_insn): New code attribute.
31445         (shiftrt): Ditto.
31446         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
31447         using any_shiftrt code iterator.
31448         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
31449         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
31450         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
31451         pattern from corresponding peephole2 patterns.
31452         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
31453         using any_shiftrt code iterator.
31454         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
31455         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
31456         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
31457         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
31458         *{ashr,lshr}<mode>3_cmp_zext.
31459         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
31460
31461 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31462
31463         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
31464         scratch register.
31465         (*lshr<mode>3_cconly): Ditto.
31466
31467 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31468
31469         * config/i386/i386.md (lshr<mode>3): Macroize expander from
31470         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31471         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31472         pattern from *lshr{di,ti}3_1 and corresponding splitters using
31473         DWI mode iterator.
31474         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31475         from corresponding peephole2 patterns.
31476         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
31477         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
31478         and *lshrdi3_1_rex64 using SWI mode iterator.
31479         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
31480         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
31481         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
31482         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
31483         and *lshrdi3_cmp_rex64 using SWI mode iterator.
31484         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
31485         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
31486         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
31487         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
31488         SWI mode iterator.
31489
31490 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
31491
31492         * config/i386/i386.md (ashr<mode>3): Macroize expander from
31493         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31494         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31495         pattern from *ashr{di,ti}3_1 and corresponding splitters using
31496         DWI mode iterator.
31497         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31498         from corresponding peephole2 patterns.
31499         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
31500         (ashrsi3_cvt): Rename from ashrsi3_31.
31501         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
31502         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
31503         and x86_64_shift_adj_3 using SWI48 mode iterator.
31504         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
31505         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
31506         and *ashrdi3_1_rex64 using SWI mode iterator.
31507         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
31508         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
31509         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
31510         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
31511         and *ashrdi3_cmp_rex64 using SWI mode iterator.
31512         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
31513         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
31514         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
31515         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
31516         SWI mode iterator.
31517         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
31518         * config/i386/i386.c (ix86_split_ashr): Update for renamed
31519         x86_shift<mode>_adj_3 expanders.
31520
31521 2010-04-10  Wei Guozhi  <carrot@google.com>
31522
31523         PR target/42601
31524         * config/arm/arm.c (arm_pic_static_addr): New function.
31525         (legitimize_pic_address): Call arm_pic_static_addr when it detects
31526         a static symbol.
31527         (arm_output_addr_const_extra): Output expression for new pattern.
31528         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
31529
31530 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
31531
31532         * ira-costs.c (record_reg_classes): Ignore alternatives that are
31533         not enabled.
31534
31535         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
31536         * web.c: Include "insn-config.h" and "recog.h".
31537         (union_match_dups): New function.
31538         (web_main): Call it.
31539         (union_defs): Don't try to recognize match_dups.
31540
31541         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
31542         if doing so would replace the entire pattern.
31543
31544 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
31545
31546         PR target/43707
31547         PR target/43709
31548         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
31549         and splitter pattern.  Change splitter operand 1 predicate to
31550         nonmemory_operand.
31551
31552 2010-04-09  Martin Jambor  <mjambor@suse.cz>
31553
31554         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
31555         lattices are addresses of CONST_DECLs with the same initial value.
31556         (ipcp_print_all_lattices): Print values of CONST_DECLs.
31557         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
31558
31559 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
31560             Bernd Schmidt  <bernds@codesourcery.com>
31561
31562         * loop-invariant.c (replace_uses): New static function.
31563         (move_invariant_reg): Use it to ensure we can replace the uses.
31564
31565 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
31566
31567         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
31568         function template.
31569         (picochip_override_options): Enable section anchors only above -O1.
31570         (picochip_reorg): Fixed a couple of build warnings.
31571
31572 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31573
31574         * configure.ac (plugin -rdynamic test): Log result.
31575         * configure: Regenerate.
31576         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
31577         (RDYNAMIC_SPEC): Define.
31578         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
31579
31580 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31581
31582         * configure.ac: Determine Sun ld version numbers.
31583         (comdat_group): Restrict GNU ld version checks to gld.
31584         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
31585         (enable_comdat): Support --enable-comdat.
31586         * configure: Regenerate.
31587         * doc/install.texi (Configuration): Document --enable-comdat.
31588
31589 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31590
31591         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
31592         * config/sol2-gld.h: ... here.
31593         * config.gcc (sparc*-*-solaris2*): Reflect this.
31594         (i[34567]86-*-solaris2*): Use it.
31595
31596 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
31597
31598         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
31599         setup_clocks_p.
31600         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
31601
31602 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31603
31604         PR 42965
31605         * diagnostic.c (diagnostic_initialize): Initialize
31606         some_warnings_are_errors.
31607         (diagnostic_finish): New.
31608         (diagnostic_action_after_output): Call it before exiting.
31609         (diagnostic_report_diagnostic): Do not print message here. Set
31610         some_warnings_are_errors.
31611         * diagnostic.h (diagnostic_context): Delete
31612         issue_warnings_are_errors_message. Add some_warnings_are_errors.
31613         (diagnostic_finish): Declare.
31614         * toplev.c (toplev_main): Call it before exit.
31615
31616 2010-04-09  Jason Merrill  <jason@redhat.com>
31617
31618         PR c++/42623
31619         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
31620         for incomplete type.
31621
31622         PR c++/41788
31623         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
31624         based on a warning flag.
31625
31626 2010-04-09  Richard Guenther  <rguenther@suse.de>
31627
31628         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
31629
31630 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
31631
31632         PR bootstrap/43684
31633         * varasm.c (default_assemble_visibility): Wrap vars that are
31634         set, but unused, by targets without GAS.
31635         * config/rs6000/rs6000.c (paired_emit_vector_compare):
31636         Remove set, but unused, vars.
31637         (rs6000_legitimize_tls_address): Likewise.
31638         (altivec_expand_dst_builtin): Likewise.
31639         * config/darwin.c (machopic_classify_symbol): Likewise.
31640         (machopic_indirection_name): Likewise.
31641
31642 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
31643
31644         * config/i386/i386.md (DWI): New mode iterator.
31645         (S): New mode attribute.
31646         (shift_operand): Ditto.
31647         (shift_immediate_operand): Ditto.
31648         (ashl_input_operand): Ditto.
31649         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
31650         using SDWIM mode iterator.
31651         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31652         pattern from *ashl{di,ti}3_1 and corresponding splitters using
31653         DWI mode iterator.
31654         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
31655         from corresponding peephole2 patterns.
31656         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
31657         and x86_64_shift_adj_1 using SWI48 mode iterator.
31658         (x86_shift<mode>_adj_2): Ditto.
31659         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
31660         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
31661         using SWI48 mode iterator.
31662         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
31663         *ashldi3_cmp_rex64 using SWI mode iterator.
31664         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
31665         *ashldi3_cconly_rex64 using SWI mode iterator.
31666         * config/i386/i386.c (ix86_split_ashl): Update for renamed
31667         x86_shift<mode>_adj_{1,2}.
31668         (ix86_split_ashr): Ditto.
31669         (ix86_split_lshr): Ditto.
31670
31671 2010-04-09  Richard Guenther  <rguenther@suse.de>
31672
31673         * target.h (builtin_conversion): Pass in input and output types.
31674         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
31675         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
31676         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
31677         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
31678
31679         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
31680         Handle AVX modes.
31681         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
31682
31683 2010-04-09  Richard Guenther  <rguenther@suse.de>
31684
31685         PR target/43152
31686         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
31687
31688 2010-04-09  Richard Guenther  <rguenther@suse.de>
31689
31690         * tree-vectorizer.h (struct _stmt_vec_info): Document
31691         that vectype is the type of the LHS.
31692         (supportable_widening_operation, supportable_narrowing_operation):
31693         Get both input and output vector types as arguments.
31694         (vect_is_simple_use_1): Declare.
31695         (get_same_sized_vectype): Likewise.
31696         * tree-vect-loop.c (vect_determine_vectorization_factor):
31697         Set STMT_VINFO_VECTYPE to the vector type of the def.
31698         (vectorizable_reduction): Adjust.
31699         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
31700         Adjust.  Specify the output vector type.
31701         (vect_pattern_recog_1): Adjust.
31702         * tree-vect-stmts.c (get_same_sized_vectype): New function.
31703         (vectorizable_call): Adjust.
31704         (vectorizable_conversion): Likewise.
31705         (vectorizable_operation): Likewise.
31706         (vectorizable_type_demotion): Likewise.
31707         (vectorizable_type_promotion): Likewise.
31708         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
31709         the def.
31710         (vect_is_simple_use_1): New function.
31711         (supportable_widening_operation): Get both input and output
31712         vector types.
31713         (supportable_narrowing_operation): Likewise.
31714         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
31715
31716 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
31717
31718         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
31719         __thiscall and _thiscall as predefined macros.
31720         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
31721         thiscall attribute handling.
31722         (ix86_comp_type_attributes): Likewise.
31723         (ix86_function_regparm): Likewise.
31724         (ix86_return_pops_args): Likewise.
31725         (init_cumulative_args): Likewise.
31726         (find_drap_reg): Likewise.
31727         (ix86_static_chain): Likewise.
31728         (x86_this_parameter): Likewise.
31729         (x86_output_mi_thunk): Likewise.
31730         (ix86_attribute_table): Add description for thiscall attribute.
31731         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
31732         * doc/extend.texi: Add documentation for thiscall.
31733
31734 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31735
31736         PR c++/28584
31737         * c.opt (Wint-to-pointer-cast): Available in C++.
31738         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
31739
31740 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
31741
31742         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
31743         * calls.c (expand_call): Pass the function type to aggregate_value_p.
31744         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
31745         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
31746         function type instead.  Reorder and simplify checks.
31747
31748         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
31749
31750 2010-04-08  Jing Yu  <jingyu@google.com>
31751             Zdenek Dvorak  <ook@ucw.cz>
31752
31753         PR tree-optimization/42720
31754         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
31755         loop unswitch conditions here from ...
31756         (tree_unswitch_single_loop): ... here.
31757
31758 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31759
31760         * tree-if-conv.c: Fix comments and simplify logic.
31761
31762 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31763
31764         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
31765         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
31766         (main_tree_if_conversion): Update call to tree_if_conversion.
31767
31768 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31769
31770         PR 42485
31771         * doc/invoke.texi (-b,-V): Delete.
31772         * doc/tm.texi: Do not mention -b.
31773         * gcc.c (display_help): Delete -b and -V.
31774         (process_command): Delete -b and -V.
31775         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
31776
31777 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
31778             Wolfgang Gellerich  <gellerich@de.ibm.com>
31779
31780         Implement target hook for loop unrolling
31781         * target.h (loop_unroll_adjust): Add a new target hook function.
31782         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
31783         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
31784         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
31785         (s390_loop_unroll_adjust): Implement the new target hook for s390.
31786         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
31787         target hook.
31788         (decide_unroll_stupid): Likewise.
31789
31790 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31791
31792         PR target/43643
31793         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
31794
31795 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31796
31797         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
31798         (Specific, *-*-solaris2*): Likewise.
31799         Don't prefer Sun as over GNU as.
31800
31801 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
31802
31803         * config/s390/s390.c (override_options): Adjust the z10 defaults
31804         for max-unroll-times, max-completely-peeled-insns
31805         and max-completely-peel-times.
31806
31807 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31808
31809         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
31810         instructions for z10.
31811         (s390_expand_setmem): Likewise.
31812         (s390_expand_cmpmem): Likewise.
31813
31814 2010-04-08  Richard Guenther  <rguenther@suse.de>
31815
31816         PR tree-optimization/43679
31817         * tree-ssa-pre.c (eliminate): Only propagate copies.
31818
31819 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
31820
31821         PR bootstrap/43681
31822         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
31823         set but not used variable warning.
31824
31825 2010-04-08  Wei Guozhi  <carrot@google.com>
31826
31827         PR target/41653
31828         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
31829         (arm_size_rtx_costs): Call the new function when optimized for size.
31830
31831 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
31832
31833         PR debug/43670
31834         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
31835         op0 is not a MEM, just return NULL instead of assertion
31836         failure.
31837         (discover_nonconstant_array_refs): Don't walk debug stmts.
31838
31839 2010-04-08  Doug Kwan  <dougkwan@google.com>
31840
31841         * configure.ac: Recognize gold and do not use its version number
31842         to test ld features.
31843         * configure: Regenerate.
31844
31845 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
31846
31847         PR middle-end/40815
31848         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
31849         (negate_value): Move code to push elements to broken_up_substracts ...
31850         (eliminate_plus_minus_pair): ... here.  Push operands that have no
31851         negative pair to plus_negates.
31852         (repropagate_negates, init_reassoc, fini_reassoc): Update.
31853
31854 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31855
31856         * doc/install.texi (Configuration): Move description of
31857         --enable-lto, --with-libelf*, --enable-gold from Java section to
31858         general section.
31859
31860         * doc/generic.texi (Working with declarations)
31861         (Function Properties, C and C++ Trees): Fix typos.
31862         * doc/sourcebuild.texi (Top Level): Likewise.
31863
31864 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31865
31866         PR c/18624
31867         * tree.h (DECL_READ_P): Define.
31868         (struct tree_decl_common): Add decl_read_flag.
31869         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
31870         a set but not used warning.
31871         (merge_decls): Merge DECL_READ_P flag.
31872         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
31873         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
31874         * c-common.c (handle_used_attribute, handle_unused_attribute):
31875         Likewise.
31876         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
31877         New prototypes.
31878         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
31879         New functions.
31880         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
31881         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
31882         c_parser_binary_expression, c_parser_cast_expression,
31883         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
31884         Call default_function_array_read_conversion instead of
31885         default_function_array_conversion where needed.
31886         (c_parser_unary_expression, c_parser_conditional_expression,
31887         c_parser_postfix_expression_after_primary, c_parser_initelt):
31888         Likewise.  Call mark_exp_read where needed.
31889         (c_parser_statement_after_labels, c_parser_asm_operands,
31890         c_parser_typeof_specifier, c_parser_sizeof_expression,
31891         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
31892         where needed.
31893         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
31894         New.
31895         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
31896         (warn_unused_but_set_parameter): Default to warn_unused
31897         && extra_warnings.
31898         * doc/invoke.texi: Document -Wunused-but-set-variable and
31899         -Wunused-but-set-parameter.
31900
31901         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
31902         used count variable.
31903         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
31904         when operandN variables aren't used in the body of the expander
31905         or splitter.
31906         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
31907         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
31908         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
31909         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
31910         FOR_EACH_IMM_USE_ON_STMT): Likewise.
31911         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
31912         * tree.c (PROCESS_ARG): Likewise.
31913
31914 2010-04-07  Simon Baldwin  <simonb@google.com>
31915
31916         * diagnostic.h (diagnostic_override_option_index): New macro to
31917         set a diagnostic's option_index.
31918         * c-tree.h (c_cpp_error): Add warning reason argument.
31919         * opts.c (_warning_as_error_callback): New.
31920         (register_warning_as_error_callback): Store callback for
31921         warnings enabled via enable_warning_as_error.
31922         (enable_warning_as_error): Call callback, minor code tidy.
31923         * opts.h (register_warning_as_error_callback): Declare.
31924         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
31925         response to -Werror=.
31926         (c_common_init_options): Register warning_as_error_callback in opts.c.
31927         * common.opt: Add -Wno-cpp option.
31928         * c-common.c (struct reason_option_codes_t): Map cpp warning
31929         reason codes to gcc option indexes.
31930         * (c_option_controlling_cpp_error): New function, lookup the gcc
31931         option index for a cpp warning reason code.
31932         * (c_cpp_error): Add warning reason argument, call
31933         c_option_controlling_cpp_error for diagnostic_override_option_index.
31934         * doc/invoke.texi: Document -Wno-cpp.
31935
31936 2010-04-07  Richard Guenther  <rguenther@suse.de>
31937
31938         * ipa-reference.c (mark_load): Use get_base_address.
31939         (mark_store): Likewise.
31940
31941         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
31942         inserting GIMPLE_NOPs into the IL.
31943         * tree-ssa-structalias.c (get_constraint_for_component_ref):
31944         Explicitly strip handled components and indirect references.
31945
31946         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
31947         folding address expressions.
31948         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
31949         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
31950         operand_equal_p to compare decls.
31951         (ptr_deref_may_alias_decl_p): Likewise.
31952         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
31953         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
31954         Handle reversed comparison ops.
31955         * tree-sra.c (asm_visit_addr): Use get_base_address.
31956         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
31957         * ipa-reference.c (mark_address): Use get_base_address.
31958
31959 2010-04-07  Richard Guenther  <rguenther@suse.de>
31960
31961         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
31962         Propagate constants everywhere.
31963
31964 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31965
31966         PR debug/43516
31967         * tree.c (MAX_INT_CACHED_PREC): Define.
31968         (nonstandard_integer_type_cache): New array.
31969         (build_nonstandard_integer_type): Cache results for precision
31970         <= MAX_INT_CACHED_PREC.
31971
31972 2010-04-07  Richard Guenther  <rguenther@suse.de>
31973
31974         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
31975         -fargument-noalias-global, -fargument-noalias-anything): Remove.
31976         * common.opt: Likewise.
31977         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
31978         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
31979         (nonoverlapping_memrefs_p): Likewise.
31980         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
31981         * opts.c (common_handle_option): Handle OPT_fargument_alias,
31982         OPT_fargument_noalias, OPT_fargument_noalias_anything and
31983         OPT_fargument_noalias_global for backward compatibility.
31984
31985 2010-04-07  Richard Guenther  <rguenther@suse.de>
31986
31987         PR tree-optimization/43270
31988         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
31989         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
31990         * tree-ssa-pre.c (phi_translate_1): Adjust.
31991         (fully_constant_expression): Split out vn_reference handling to ...
31992         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
31993         Fold reads from constant strings.
31994         (vn_reference_lookup): Handle fully constant references.
31995         (vn_reference_lookup_pieces): Likewise.
31996         * Makefile.in (expmed.o-warn): Add -Wno-error.
31997
31998 2010-04-07  Martin Jambor  <mjambor@suse.cz>
31999
32000         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
32001
32002 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
32003
32004         PR driver/41594
32005         * gcc.c: Add -static-libstdc++ to list of recognized options.
32006
32007 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32008
32009         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
32010
32011 2010-04-07  Richard Guenther  <rguenther@suse.de>
32012
32013         PR middle-end/42617
32014         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
32015         bases build simple mem attributes to retain points-to information.
32016
32017 2010-04-07  Richard Guenther  <rguenther@suse.de>
32018
32019         PR middle-end/42617
32020         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32021         preserve points-to related information.
32022
32023 2010-04-07  Richard Guenther  <rguenther@suse.de>
32024
32025         PR middle-end/42617
32026         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32027         discard plain indirect references.
32028         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32029         * tree.c (tree_nop_conversion): Likewise.
32030
32031 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
32032
32033         PR debug/43628
32034         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32035
32036 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
32037
32038         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
32039         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
32040
32041 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32042
32043         * tree-if-conv.c: Fix indentation and comments.
32044
32045 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32046
32047         * tree-if-conv.c: Sort static functions in topological order.
32048
32049 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32050
32051         * tree-if-conv.c: Fix indentation and comments.
32052
32053 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32054
32055         PR middle-end/43519
32056         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
32057         lang_hooks.types.type_for_size instead of
32058         build_nonstandard_integer_type.
32059         When converting an unsigned type to signed, double its precision.
32060         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
32061         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
32062         (graphite_create_new_loop_guard): When ub + 1 wraps around,
32063         use lb <= ub.
32064
32065 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32066
32067         PR middle-end/43519
32068         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
32069         POINTER_PLUS_EXPR for pointer types.
32070
32071 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32072
32073         PR middle-end/43519
32074         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
32075         * graphite-clast-to-gimple.c: Include langhooks.h.
32076         (max_signed_precision_type): New.
32077         (max_precision_type): Takes two types as arguments.
32078         (precision_for_value): New.
32079         (precision_for_interval): New.
32080         (gcc_type_for_interval): New.
32081         (gcc_type_for_value): New.
32082         (gcc_type_for_clast_term): New.
32083         (gcc_type_for_clast_red): New.
32084         (gcc_type_for_clast_bin): New.
32085         (gcc_type_for_clast_expr): Split up into several functions.
32086         (gcc_type_for_clast_eq): Rewritten.
32087         (compute_bounds_for_level): New.
32088         (compute_type_for_level_1): New.
32089         (compute_type_for_level): New.
32090         (gcc_type_for_cloog_iv): Removed.
32091         (gcc_type_for_iv_of_clast_loop): Rewritten.
32092         (graphite_create_new_loop): Compute the lower and upper bound types
32093         with gcc_type_for_clast_expr.
32094         (graphite_create_new_loop_guard): Same.
32095         (find_cloog_iv_in_expr): Removed.
32096         (compute_cloog_iv_types_1): Removed.
32097         (compute_cloog_iv_types): Removed.
32098         (gloog): Do not call compute_cloog_iv_types.
32099         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
32100         GBB_CLOOG_IV_TYPES.
32101         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
32102         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
32103         (GBB_CLOOG_IV_TYPES): Removed.
32104
32105 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32106
32107         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
32108         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
32109         (detect_commutative_reduction): Same.
32110
32111 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32112
32113         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
32114         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
32115         argument.
32116         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
32117         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
32118         (rewrite_commutative_reductions_out_of_ssa): Same.
32119         * passes.c (execute_function_todo): Call verify_ssa for every pass
32120         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
32121         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
32122         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
32123         with an extra argument.
32124         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
32125         verify_ssa only when the extra argument is true.
32126         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
32127         with an extra argument.
32128         (tree_transform_and_unroll_loop): Same.
32129
32130 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32131
32132         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
32133         for all the passes of the LNO having LOOP_CLOSED_SSA.
32134         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
32135         * tree-loop-distribution.c (pass_loop_distribution): Same.
32136         * tree-pass.h (TODO_verify_loops): Removed.
32137         * tree-ssa-loop.c (pass_tree_loop_init): Same.
32138         (pass_lim): Same.
32139         (pass_tree_unswitch): Same.
32140         (pass_predcom): Same.
32141         (pass_vectorize): Same.
32142         (pass_linear_transform): Same.
32143         (pass_graphite_transforms): Same.
32144         (pass_iv_canon): Same.
32145         (pass_complete_unroll): Same.
32146         (pass_complete_unrolli): Same.
32147         (pass_parallelize_loops): Same.
32148         (pass_loop_prefetch): Same.
32149         (pass_iv_optimize): Same.
32150
32151 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
32152
32153         PR middle-end/32824
32154         * passes.c (init_optimization_passes): Move pass_lim before
32155         pass_copy_prop and pass_dce_loop.
32156
32157 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32158
32159         PR target/43667
32160         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
32161         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
32162         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
32163         MULTI_* defines for 4 argument vpermil2p* builtins.
32164
32165 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32166
32167         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
32168         * config/i386/i386.c (x86_maybe_negate_const_int): New.
32169         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
32170         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
32171         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
32172         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
32173         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
32174         Use x86_maybe_negate_const_int to output insn mnemonic.
32175         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
32176         check from instruction predicate.  Update comments.
32177         * config/i386/sync.md (sync_add<mode>): Use
32178         x86_maybe_negate_const_int to output insn mnemonic.
32179
32180 2010-04-06  Jan Hubicka  <jh@suse.cz>
32181
32182         PR tree-optimization/42906
32183         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
32184         IGNORE_SELF argument.  Set visited_control_parents for fully
32185         processed BBs.
32186         (find_obviously_necessary_stmts): Update call of
32187         mark_control_dependent_edges_necessary.
32188         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
32189
32190 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32191
32192         * config/i386/i386.md: Remove comment about 'e' and 'E'
32193         operand modifier.
32194
32195 2010-04-06  Richard Guenther  <rguenther@suse.de>
32196
32197         PR tree-optimization/43627
32198         * tree-vrp.c (extract_range_from_unary_expr): Widenings
32199         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
32200         not varying.
32201
32202 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32203
32204         * BASE-VER: Change to 4.6.0.
32205
32206         PR target/43638
32207         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
32208         handling.
32209
32210 2010-04-06  Richard Guenther  <rguenther@suse.de>
32211
32212         PR middle-end/43661
32213         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
32214
32215 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32216
32217         * doc/invoke.texi (Optimize Options): Document that LTO
32218         won't remove object access purely due to incompatible
32219         declarations.
32220
32221 2010-04-04  Matthias Klose  <doko@ubuntu.com>
32222
32223         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
32224         Initialize variable.
32225
32226 2010-04-03  Richard Guenther  <rguenther@suse.de>
32227
32228         PR middle-end/42509
32229         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
32230         require a non-NULL MEM_OFFSET.
32231
32232 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
32233
32234         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
32235         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
32236         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
32237         config/alpha/predicates.md, config/arm/arm.md,
32238         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
32239         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
32240         config/darwin9.h, config/darwin.c, config/darwin.h,
32241         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
32242         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
32243         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
32244         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
32245         config/mips/mips.md, config/mn10300/mn10300.c,
32246         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
32247         config/rs6000/aix.h, config/rs6000/dfp.md,
32248         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
32249         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
32250         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
32251         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
32252         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
32253         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
32254         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
32255         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
32256         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
32257         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
32258         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
32259         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
32260         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
32261         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
32262         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
32263         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
32264         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
32265         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
32266         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
32267         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
32268         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
32269         opt-functions.awk, opth-gen.awk, params.def, passes.c,
32270         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
32271         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
32272         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
32273         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
32274         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
32275         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
32276         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
32277         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
32278         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
32279         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
32280         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
32281         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
32282         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
32283         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
32284
32285 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32286
32287         PR other/43620
32288         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
32289         * aclocal.m4: Regenerate.
32290
32291 2010-04-02  Richard Guenther  <rguenther@suse.de>
32292
32293         PR tree-optimization/43629
32294         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
32295         if we have seen a constant value.
32296
32297 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
32298
32299         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
32300
32301 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
32302
32303         PR target/43469
32304         * arm.c (legitimize_tls_address): Adjust call to
32305         gen_tls_load_dot_plus_four.
32306         (arm_note_pic_base): New function.
32307         (arm_cannot_copy_insn_p): Use it.
32308         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
32309         constraint.
32310
32311 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32312
32313         PR bootstrap/43531
32314
32315         Revert:
32316         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32317
32318         * Makefile.in ($(out_object_file)): Depend on
32319         gt-$(basename $(notdir $(out_file))).h.
32320
32321 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
32322
32323         * config.gcc (lm32-*-rtems*): Add t-lm32.
32324
32325 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
32326
32327         * config.gcc: Add lm32-*-rtems*.
32328         * config/lm32/rtems.h: New file.
32329
32330 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
32331
32332         PR target/42609
32333         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
32334
32335 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
32336
32337         * dwarf2out.c (output_compilation_unit_header): For
32338         -gdwarf-4 use version 4 instead of version 3.
32339         (output_line_info): For version 4 and above emit additional
32340         maximum ops per insn header field.
32341         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
32342
32343         * dwarf2out.c (is_c_family, is_java): Remove.
32344         (lower_bound_default): New function.
32345         (add_bound_info, gen_descr_array_type_die): Use it.
32346
32347 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
32348
32349         PR debug/43325
32350         * dwarf2out.c (gen_variable_die): Allow debug info for variable
32351         re-declaration when it happens in a function.
32352
32353 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
32354
32355         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
32356         (cgraph_remove_function_insertion_hook): Same.
32357         (cgraph_call_function_insertion_hooks): Same.
32358
32359 2010-04-01  Richard Guenther  <rguenther@suse.de>
32360
32361         PR middle-end/43614
32362         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
32363         and TREE_THIS_VOLATILE.
32364         (copy_ref_info): Likewise.
32365         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
32366         * tree.c (build6_stat): Ignore side-effects of all but arg5
32367         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
32368         TARGET_MEM_REF.
32369
32370 2010-04-01  Richard Guenther  <rguenther@suse.de>
32371
32372         PR tree-optimization/43607
32373         * ipa-type-escape.c (check_call): Do not access non-existing
32374         arguments.
32375
32376 2010-04-01  Richard Guenther  <rguenther@suse.de>
32377
32378         PR middle-end/43602
32379         Revert
32380         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
32381                     Jack Howarth  <howarth@bromo.med.uc.edu>
32382
32383         * tree-profile.c (tree_init_ic_make_global_vars): Make static
32384         variables TLS.
32385
32386 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32387
32388         * doc/install.texi (Prerequisites): Document libelf usability on
32389         IRIX 5/6 and Solaris 2.
32390         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
32391         Update GNU as, GNU ld requirements.
32392         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
32393         Document Sun Studio compiler download.
32394         Update and simplify as, ld recommendations.
32395         (Specific, *-*-solaris2.7): Note obsoletion, removal.
32396
32397 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32398
32399         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
32400         with_tune_32 to pentium4.
32401
32402 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
32403
32404         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
32405
32406 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32407
32408         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
32409         obsoletion, removal.
32410         Update IDO URL.
32411         Document GNU as requirement.
32412         Update configure requirements.
32413         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
32414         Recomment IRIX 6.5.18+.
32415         Document IDF/IDL requirement.
32416         Document GNU as requirement.
32417         Document GNU ld bootstrap failure.
32418         Remove freeware.sgi.com reference.
32419
32420 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32421
32422         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
32423         UNIX V4.0, V5.0 obsoletion, removal.
32424         Remove --with-gc=simple reference.
32425         Update VM requirements during bootstrap.
32426         Remove -oldas bootstrap description.
32427         Update binutils reference.
32428         Remove comparison failure note.
32429
32430 2010-03-31  Richard Guenther  <rguenther@suse.de>
32431             Zdenek Dvorak  <ook@ucw.cz>
32432             Sebastian Pop  <sebastian.pop@amd.com>
32433
32434         PR middle-end/43464
32435         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
32436         with multiple arguments.
32437         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
32438
32439 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32440
32441         * graphite-dependences.c (print_pddr): Call print_pdr with an
32442         extra argument.
32443         * graphite-poly.c (debug_pdr): Add an extra argument for the
32444         verbosity level.
32445         (print_pdr): Same.
32446         (print_pbb_domain): Same.
32447         (print_pbb): Same.
32448         (print_scop_context): Same.
32449         (print_scop): Same.
32450         (print_cloog): Same.
32451         (debug_pbb_domain): Same.
32452         (debug_pbb): Same.
32453         (print_pdrs): Same.
32454         (debug_pdrs): Same.
32455         (debug_scop_context): Same.
32456         (debug_scop): Same.
32457         (debug_cloog): Same.
32458         (print_scop_params): Same.
32459         (debug_scop_params): Same.
32460         (print_iteration_domain): Same.
32461         (print_iteration_domains): Same.
32462         (debug_iteration_domain): Same.
32463         (debug_iteration_domains): Same.
32464         (print_scattering_function): Same.
32465         (print_scattering_functions): Same.
32466         (debug_scattering_function): Same.
32467         (debug_scattering_functions): Same.
32468         * graphite-poly.h (debug_pdr): Update declaration.
32469         (print_pdr): Same.
32470         (print_pbb_domain): Same.
32471         (print_pbb): Same.
32472         (print_scop_context): Same.
32473         (print_scop): Same.
32474         (print_cloog): Same.
32475         (debug_pbb_domain): Same.
32476         (debug_pbb): Same.
32477         (print_pdrs): Same.
32478         (debug_pdrs): Same.
32479         (debug_scop_context): Same.
32480         (debug_scop): Same.
32481         (debug_cloog): Same.
32482         (print_scop_params): Same.
32483         (debug_scop_params): Same.
32484         (print_iteration_domain): Same.
32485         (print_iteration_domains): Same.
32486         (debug_iteration_domain): Same.
32487         (debug_iteration_domains): Same.
32488         (print_scattering_function): Same.
32489         (print_scattering_functions): Same.
32490         (debug_scattering_function): Same.
32491         (debug_scattering_functions): Same.
32492
32493 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32494
32495         * graphite-poly.c (print_scattering_function_1): New.
32496         (print_scattering_function): Call it.
32497         (print_scop_params): Remove spaces at the end of lines.
32498         (print_cloog): New.
32499         (debug_cloog): New.
32500         * graphite-poly.h (print_cloog): Declared.
32501         (debug_cloog): Declared.
32502
32503 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32504
32505         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
32506         in loop->header.
32507         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
32508         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
32509         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
32510         to switch between adding the IV bump in loop->latch or in loop->header.
32511
32512 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32513
32514         * graphite-poly.c (print_scattering_function): Pretty print following
32515         the scoplib format.
32516         (print_pdr): Same.
32517         (print_pbb_domain): Same.
32518         (dump_gbb_cases): Same.
32519         (dump_gbb_conditions): Same.
32520         (print_pdrs): Same.
32521         (print_pbb): Same.
32522         (print_scop_params): Same.
32523         (print_scop_context): Same.
32524         (print_scop): Same.
32525         (print_pbb_body): New.
32526         (lst_indent_to): New.
32527         (print_lst): Start new lines with a #.
32528         * graphite-poly.h (pbb_bb): New.
32529         (pbb_index): Use pbb_bb.
32530         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
32531         disjuncts.
32532         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
32533
32534 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
32535
32536         * dwarf2out.c (size_of_die): For -gdwarf-4 use
32537         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
32538         and 0 instead of 1 for dw_val_class_flag.
32539         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
32540         dw_val_class_range_list, dw_val_class_loc_list,
32541         dw_val_class_lineptr and dw_val_class_macptr, use
32542         DW_FORM_flag_present for dw_val_class_flag and
32543         DW_FORM_exprloc for dw_val_class_loc.
32544         (output_die): For -gdwarf-4 print dw_val_class_loc
32545         size as uleb128 instead of 1 or 2 bytes and don't print
32546         anything for dw_val_class_flag.
32547
32548         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
32549         instead of cselib_lookup following by tweaking locs->setting_insn.
32550
32551         PR bootstrap/43596
32552         * cselib.c (cselib_process_insn): Clear cselib_current_insn
32553         even before returning from label, setjmp call or volatile asm
32554         handling.
32555
32556 2010-03-31  Richard Guenther  <rguenther@suse.de>
32557
32558         PR middle-end/43600
32559         * cgraphunit.c (cgraph_output_in_order): Do not allocate
32560         temporary data on stack.
32561
32562 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32563
32564         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
32565         (PUSHSECTION_ASM_OP): Remove.
32566         (POPSECTION_ASM_OP): Remove.
32567         (PUSHSECTION_FORMAT): Remove.
32568         * config/sol2.h (PUSHSECTION_FORMAT): Define.
32569         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
32570         * config/sol2.c (solaris_output_init_fini): Use it.
32571
32572 2010-03-31  Jie Zhang  <jie@codesourcery.com>
32573
32574         PR 43574
32575         * opt-functions.awk (var_type_struct): Use signed char type
32576         for simple variables.
32577
32578 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32579
32580         * config/sol2.c: Include output.h.
32581         (solaris_assemble_visibility): New function.
32582         * config/t-sol2 (sol2.o): Add output.h dependency.
32583         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
32584         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
32585         Redefine.
32586
32587 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
32588
32589         PR target/43580
32590         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
32591         V2SImode or XFmode on PRE_DEC.
32592
32593         PR debug/43557
32594         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
32595         BLKmode.
32596
32597 2010-03-31  Jie Zhang  <jie@codesourcery.com>
32598
32599         PR 43562
32600         * reload.h (caller_save_initialized_p): Declare.
32601         * toplev.c (backend_init_target): Don't call
32602         init_caller_save but set caller_save_initialized_p to false.
32603         * caller-save.c (caller_save_initialized_p): Define.
32604         (init_caller_save): Check caller_save_initialized_p.
32605         * ira.c (ira): Call init_caller_save if flag_caller_saves.
32606
32607 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32608
32609         PR target/39048
32610         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
32611         and soft-fp/t-softfp to tmake_file.
32612         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
32613         (LIBGCC2_TF_CEXT): Define.
32614         (TF_SIZE): Define.
32615
32616 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
32617
32618         PR debug/42977
32619         * cselib.c (n_useless_values): Document handling of debug locs.
32620         (n_useless_debug_values, n_debug_values): New variables.
32621         (new_elt_loc_list): Don't add to debug values, keep count.
32622         (promote_debug_loc): New.
32623         (cselib_reset_table): Zero new variables.
32624         (entry_and_rtx_equal_p): Promote debug locs.
32625         (discard_useless_locs): Increment n_useless_debug_values for
32626         debug values.
32627         (remove_useless_values): Adjust n_useless_values and n_debug_values
32628         with n_useless_debug_values.
32629         (add_mem_for_addr): Promote debug locs.
32630         (cselib_lookup_mem): Likewise.
32631         (cselib_lookup_addr): Renamed to...
32632         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
32633         (cselib_log_lookup): ... this.  Turn into...
32634         (cselib_lookup_addr): ... new wrapper.
32635         (cselib_lookup_from_insn): New.
32636         (cselib_invalidate_regno): Increment n_useless_debug_values for
32637         debug values.
32638         (cselib_invalidate_mem): Likewise.
32639         (cselib_process_insn): Take n_deleted and n_debug_values into
32640         account to guard remove_useless_value call.
32641         (cselib_finish): Zero n_useless_debug_values.
32642         * cselib.h (cselib_lookup_from_insn): Declare.
32643         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
32644         (sched_analyze_2): Likewise.
32645
32646 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
32647
32648         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
32649         functions.
32650         (adjust_mems): Replace narrowing SUBREG of expression containing
32651         just PLUS, MINUS, MULT and ASHIFT of registers and constants
32652         with operations in the narrower mode.
32653
32654         PR debug/43593
32655         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
32656         regs_invalidated_by_call instead all call_used_reg_set registers.
32657
32658 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
32659
32660         PR middle-end/43430
32661         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
32662         pointer comparisons with types_compatible_p.
32663         * tree-vect-stmts.c (vectorizable_call): Same.
32664         (vectorizable_condition): Same.
32665
32666 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32667
32668         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
32669         stack check if the mask would be zero.
32670
32671 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
32672             Jack Howarth  <howarth@bromo.med.uc.edu>
32673
32674         * tree-profile.c (tree_init_ic_make_global_vars): Make static
32675         variables TLS.
32676
32677 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
32678
32679         PR other/25232
32680         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
32681         and __unordtf2.
32682         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
32683         Include ___unordxf2 and ___unordtf2.
32684         * config/i386/libgcc-glibc.ver: Do not define inheritance from
32685         GCC_4.4.0 here.
32686
32687 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
32688
32689         * config/lm32/t-lm32: New file.
32690         * config.gcc: Use the above file when targetting lm32.
32691
32692 2010-03-28  Duncan Sands  <baldrick@free.fr>
32693
32694         * Makefile.in (PLUGIN_HEADERS): Add except.h.
32695
32696 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
32697
32698         PR middle-end/43431
32699         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
32700         Improve vectorization cost model diagnostic.
32701
32702 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
32703
32704         PR middle-end/43436
32705         * tree-vect-data-refs.c (vect_analyze_data_refs): When
32706         compute_data_dependences_for_loop returns false, early exit
32707         and output an extra diagnostic for the failed data reference
32708         analysis.
32709
32710 2010-03-29  Richard Guenther  <rguenther@suse.de>
32711
32712         PR tree-optimization/43560
32713         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
32714         (can_sm_ref_p): Treat stores to readonly locations as trapping.
32715
32716 2010-03-29  Jie Zhang  <jie@codesourcery.com>
32717
32718         PR 43564
32719         * toplev.c (process_options): Set optimization_default_node
32720         and optimization_current_node.
32721         * opts.c (decode_options): Don't set optimization_default_node
32722         and optimization_current_node.
32723
32724 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
32725
32726         * config/rtems.h: Abandon -qrtems_debug.
32727
32728 2010-03-28  Jan Hubicka  <jh@suse.cz>
32729
32730         PR tree-optimization/43505
32731         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
32732         map should not be copied.
32733
32734 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32735
32736         PR middle-end/41674
32737         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
32738         cdtors, set DECL_PRESERVE_P.
32739         * ipa.c (cgraph_externally_visible_p): Return true if declaration
32740         should be preseved.
32741
32742 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
32743
32744         PR tree-optimization/43528
32745         * stor-layout.c (place_field): Check that constant fits into
32746         unsigned HWI when skipping calculation of MS bitfield layout.
32747
32748 2010-03-27  Jan Hubicka  <jh@suse.cz>
32749
32750         PR middle-end/43391
32751         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
32752         notice_global_symbol work.
32753
32754 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
32755
32756         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
32757         instead of dwarf2out_decl.
32758         (struct var_loc_node): Remove section_label field.
32759         (dwarf2out_function_decl): New function.
32760         (dwarf2out_var_location): Don't set section_label field.
32761         (dwarf2out_begin_function): Don't empty decl_loc_table here.
32762
32763 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
32764
32765         PR tree-optimization/43544
32766         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
32767         First argument for builtin vectorized function hook is now a
32768         tree to be able to distinguish between machine specific and
32769         standard builtins.
32770         * targhooks.c (default_builtin_vectorized_function): Ditto.
32771         * targhooks.h (default_builtin_vectorized_function): Ditto.
32772         * target.h (struct gcc_target): Ditto.
32773         * tree-vect-stmts.c (vectorizable_function): Ditto.
32774         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
32775         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
32776         Ditto.
32777
32778 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
32779
32780         PR c/43381
32781         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
32782         nested binding iff it is a FUNCTION_DECL.
32783         (store_parm_decls_newstyle): Pass nested=true to bind for
32784         FUNCTION_DECLs amongst parameters.
32785
32786 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
32787
32788         * var-tracking.c (vt_expand_loc_callback): Don't run
32789         cselib_expand_value_rtx_cb in dummy mode if
32790         cselib_dummy_expand_value_rtx_cb returned false.
32791
32792         * var-tracking.c (emit_note_insn_var_location): For one part
32793         notes with offset 0, don't add EXPR_LIST around the location.
32794         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
32795         add_location_or_const_value_attribute): Adjust for that change.
32796
32797         PR debug/43540
32798         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
32799         into first operand and location into second.
32800         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
32801         dw_cfi_oprnd_loc for DW_CFA_expression.
32802         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
32803         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
32804         assume first argument is regnum and second argument is location.
32805
32806 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
32807
32808         PR target/42113
32809         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
32810         of scratch register to DImode.  Split to DImode comparison operator.
32811         Use SImode subreg of scratch register in the multiplication.
32812         (*cmp_sadd_sidi): Ditto.
32813         (*cmp_ssub_si): Ditto.
32814         (*cmp_ssub_sidi): Ditto.
32815
32816 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
32817
32818         PR target/43524
32819         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
32820         Remove invalid assert and wrong comment.
32821
32822 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
32823
32824         PR debug/43516
32825         * flags.h (final_insns_dump_p): New extern.
32826         * final.c (final_insns_dump_p): New variable.
32827         (rest_of_clean_state): Set it before -fdump-final-insns=
32828         dumping, clear afterwards.
32829         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
32830         MEM_ALIAS_SET on MEMs.
32831
32832 2010-03-26  David S. Miller  <davem@davemloft.net>
32833
32834         * configure.ac: Fix sparc GOTDATA_OP bug check.
32835         * configure: Rebuild.
32836
32837 2010-03-26  Alan Modra  <amodra@gmail.com>
32838
32839         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
32840
32841 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32842
32843         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
32844         TLS_SECTION_ASM_FLAG.
32845
32846 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
32847
32848         PR bootstrap/43511
32849         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
32850         Clear first_function_block_is_cold.
32851
32852         PR c/43385
32853         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
32854         argument if the argument is truth_value_p.
32855
32856 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
32857
32858         * config/rs6000/constraints.md: Update copyright year for my changes.
32859
32860         PR target/43484
32861         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
32862         used in reg+reg addressing, swap registers.
32863
32864 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32865
32866         PR debug/43293
32867         * target.h (struct gcc_target): Add code_end hook.
32868         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
32869         if not yet defined.
32870         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
32871         * toplev.c (compile_file): Call targetm.asm_out.code_end
32872         hook before unwind info/debug info output.
32873         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
32874         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
32875         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
32876         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
32877         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
32878         * config/i386/i386.c (ix86_file_end): Renamed to...
32879         (ix86_code_end): ... this.  Make static.  Don't call
32880         file_end_indicate_exec_stack.  Emit unwind info using
32881         final_start_function/final_end_function.
32882         (darwin_x86_file_end): Remove.
32883         (TARGET_ASM_CODE_END): Define.
32884         * config/i386/i386.h (TARGET_ASM_FILE_END,
32885         NEED_INDICATE_EXEC_STACK): Don't define.
32886         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
32887         (TARGET_ASM_FILE_END): Define to darwin_file_end.
32888         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
32889         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
32890
32891         PR target/43498
32892         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
32893         at the beginning and final_end_function at the end.
32894         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
32895
32896 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32897
32898         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
32899         and Sun as TLS syntax.
32900         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
32901         * configure: Regenerate.
32902         * config.in: Regenerate.
32903         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
32904         (default_elf_asm_named_section): Use it.
32905         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
32906         (i386_output_dwarf_dtprel): Likewise.
32907         (output_addr_const_extra): Likewise.
32908         (output_pic_addr_const): Lowercase @GOTTPOFF.
32909         (output_addr_const_extra): Likewise.
32910         (output_pic_addr_const): Lowercase @GOTNTPOFF.
32911         (output_addr_const_extra): Likewise.
32912         (output_pic_addr_const): Lowercase @INDNTPOFF.
32913         (output_addr_const_extra): Likewise.
32914         (output_pic_addr_const): Lowercase @NTPOFF.
32915         (output_addr_const_extra): Likewise.
32916         (output_pic_addr_const): Lowercase @TPOFF.
32917         (output_addr_const_extra): Likewise.
32918         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
32919         (*tls_global_dynamic_64): Likewise.
32920         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
32921         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
32922
32923         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
32924         (ASM_OUTPUT_TLS_COMMON): Use it.
32925         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
32926
32927         PR target/38118
32928         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
32929         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
32930         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
32931         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
32932         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32933         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
32934
32935 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32936
32937         * config/i386/i386.c (override_options): Don't accept
32938         -mtls-dialect=sun any longer.
32939         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
32940         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
32941         (*tls_local_dynamic_base_32_sun): Likewise.
32942         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32943
32944 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32945
32946         PR debug/43508
32947         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
32948         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
32949
32950         PR debug/43479
32951         * ira.c (adjust_cleared_regs): New function.
32952         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
32953
32954         PR debug/19192
32955         PR debug/43479
32956         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
32957         from gimple_block.
32958         * expr.c (expand_expr_real): Restore previous
32959         curr_insn_source_location and curr_insn_block after
32960         expand_expr_real_1 call.
32961         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
32962         instead of expand_expr_real_1.
32963
32964 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
32965
32966         PR rtl-optimization/43413
32967         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
32968         hard regs too.
32969
32970 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
32971
32972         PR target/43348
32973         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
32974         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
32975
32976 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
32977
32978         * config/i386/i386.c (ix86_target_string): Add -mfma.
32979         Fix a typo in comment.
32980
32981 2010-03-22  Mike Stump  <mikestump@comcast.net>
32982
32983         PR target/23071
32984         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
32985         Don't overly align based upon packed packed fields.
32986
32987 2010-03-22  Jason Merrill  <jason@redhat.com>
32988
32989         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
32990         Use () rather than [], and move before the element type.
32991
32992 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32993
32994         * doc/configfiles.texi (Configuration Files): Removed
32995         fixinc/Makefile*, intl/Makefile.*.
32996         * doc/makefile.texi: Fixed markup. Abstract from version
32997         control system used.
32998         (Makefile): Removed obsolete java/parse.y example.
32999         * doc/sourcebuild.texi: Likewise.
33000         (Top Level): Added config, gnattools, libdecnumber, libgcc,
33001         libgomp, libssp.  Removed fastjar.
33002         (Miscellaneous Docs): Clarify location.
33003         Added COPYING3, COPYING3.LIB.
33004         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
33005
33006 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33007
33008         PR target/38085
33009         * config/i386/i386.c (x86_function_profiler)
33010         [!NO_PROFILE_COUNTERS]: Fix typo.
33011         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
33012         instead of callq.
33013
33014 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
33015             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33016
33017         * doc/sourcebuild.texi (Test Directives): Split into six
33018         subsections, with most of the current text in new subsections
33019         Directives, Selectors, and Final Actions.
33020         (Directives): Split list of test directives into multiple
33021         subsubsections.
33022         (Selectors): Describe use and syntax of selectors.
33023         (Effective-Target Keywords): Describe all existing keywords.
33024         (Add Options): Describe features for dg-add-options.
33025         (Require Support): Describe variants of dg-require-support.
33026         (Final Actions): Describe commands to use in dg-final.
33027
33028 2010-03-22  Michael Matz  <matz@suse.de>
33029
33030         PR middle-end/43475
33031         * recog.c (validate_replace_rtx_group): Replace also in
33032         REG_EQUAL and REG_EQUIV notes.
33033
33034 2010-03-22  Richard Guenther  <rguenther@suse.de>
33035
33036         PR tree-optimization/43390
33037         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33038         sure vector extracts are type correct.
33039
33040 2010-03-22  Richard Guenther  <rguenther@suse.de>
33041
33042         PR middle-end/40106
33043         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
33044         x * sqrt (x) even when optimizing for size if the target
33045         has native support for sqrt.
33046
33047 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
33048
33049         * varasm.c (make_decl_rtl_for_debug): Also clear
33050         flag_mudflap for the duration of make_decl_rtl call.
33051
33052         PR debug/43443
33053         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
33054         locs from preserved VALUEs.
33055
33056 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33057
33058         PR middle-end/42718
33059         * pa.md (movmemsi): Set align to one if zero.
33060         (movmemdi): Likewise.
33061
33062 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
33063
33064         PR target/42321
33065         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
33066         with their corresponding prologue pushes.
33067
33068 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
33069
33070         PR target/43156
33071         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
33072         at the begining or end.
33073         (spu_expand_epilogue): Likewise.
33074
33075 2010-03-20  Richard Guenther  <rguenther@suse.de>
33076
33077         PR rtl-optimization/43438
33078         * combine.c (make_extraction): Properly zero-/sign-extend an
33079         extraction of the low part of a CONST_INT.  Also handle
33080         CONST_DOUBLE.
33081
33082 2010-03-19  Mike Stump  <mikestump@comcast.net>
33083
33084         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
33085         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
33086         (override_options): Use SUBTARGET32_DEFAULT_CPU.
33087
33088 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33089
33090         PR c/43211
33091         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
33092         an error.
33093
33094 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
33095
33096         PR rtl-optimization/42258
33097         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
33098         use that may match DEF.
33099
33100         PR target/40697
33101         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
33102         the cost of loading the constant rather than assuming
33103         COSTS_N_INSNS (1).
33104         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
33105         outer code is AND, do the same tests as the andsi3 expander and
33106         return COSTS_N_INSNS (1) if and is cheap.
33107
33108         * optabs.c (avoid_expensive_constant): Fix formatting.
33109
33110 2010-03-19  Michael Matz  <matz@suse.de>
33111
33112         PR c++/43116
33113         * attribs.c (decl_attributes): When rebuilding a function pointer
33114         type use the same qualifiers as the original pointer type.
33115
33116 2010-03-19  Martin Jambor  <mjambor@suse.cz>
33117
33118         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
33119         and is_gimple_ip_invariant_address.
33120
33121 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33122
33123         Revert
33124         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33125
33126         * config/arm/arm.c (arm_override_options): Turn off
33127         flag_dwarf2_cfi_asm for AAPCS variants.
33128
33129 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33130
33131         PR target/43399
33132         * config/arm/arm.c (emit_multi_reg_push): Update comments.
33133         Use PRE_MODIFY instead of PRE_DEC.
33134         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
33135         (vfp_emit_fstmd): Likewise.
33136
33137 2010-03-19  Michael Matz  <matz@suse.de>
33138
33139         PR target/43305
33140         * builtins.c (expand_builtin_interclass_mathfn,
33141         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
33142         if that fails.
33143
33144 2010-03-19  Richard Guenther  <rguenther@suse.de>
33145
33146         PR tree-optimization/43415
33147         * tree-ssa-pre.c (phi_translate): Split out worker to ...
33148         (phi_translate_1): ... this.
33149         (phi_translate): Move all caching here.  Cache all NARY
33150         and REFERENCE translations.
33151
33152 2010-03-19  David S. Miller  <davem@davemloft.net>
33153
33154         With help from Eric Botcazou.
33155         * config/sparc/sparc.c: Include dwarf2out.h.
33156         (emit_pic_helper): Delete.
33157         (pic_helper_symbol_name): Delete.
33158         (pic_helper_emitted_p): Delete.
33159         (pic_helper_needed): New.
33160         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
33161         (get_pc_thunk_name): New.
33162         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
33163         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
33164         Set pic_helper_needed to true.  Don't call emit_pic_helper.
33165         (sparc_expand_prologue): Update load_pic_register call.
33166         (sparc_output_mi_thunk): Likewise.
33167         (sparc_file_end): Emit a hidden comdat symbol for the PIC
33168         thunk if possible.  Output CFI information as needed.
33169
33170 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33171             Jack Howarth  <howarth@bromo.med.uc.edu>
33172
33173         PR target/36399
33174         * config/i386/i386.h: Fix ABI on darwin x86-32.
33175
33176 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
33177
33178         * tree.h: Declare make_decl_rtl_for_debug.
33179         * varasm.c (make_decl_rtl_for_debug): New.
33180         * dwarf2out.c (rtl_for_decl_location): Call it.
33181         * cfgexpand.c (expand_debug_expr): Call it.
33182
33183 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33184
33185         PR bootstrap/43399
33186         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
33187         mem_mode.
33188
33189         PR bootstrap/43403
33190         * var-tracking.c (vt_init_cfa_base): Do nothing if
33191         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
33192
33193 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
33194
33195         PR debug/42873
33196         * var-tracking.c (canonicalize_vars_star): New.
33197         (dataflow_post_merge_adjust): Use it.
33198
33199 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33200
33201         PR debug/43058
33202         * var-tracking.c (non_suitable_const): New function.
33203         (add_uses): For DEBUG_INSNs with constants, don't record any
33204         value, instead just the constant value itself.
33205         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
33206         is not VAR_LOC_UNKNOWN_P, set var to the constant.
33207         (emit_notes_in_bb): Likewise.
33208         (emit_note_insn_var_location): For onepart variables if
33209         cur_loc is a VOIDmode constant, use DECL_MODE.
33210
33211 2010-03-18  Martin Jambor  <mjambor@suse.cz>
33212
33213         PR middle-end/42450
33214         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
33215         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
33216         all non-clones.  Moved call redirection...
33217         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
33218         (cgraph_materialize_all_clones): Dispose of all
33219         combined_args_to_skip bitmaps.
33220         (verify_cgraph_node): Do not check for edges pointing to wrong
33221         nodes in inline clones.
33222         * tree-inline.c (copy_bb): Call
33223         cgraph_redirect_edge_call_stmt_to_callee.
33224         * ipa.c (cgraph_remove_unreachable_nodes): Call
33225         cgraph_node_remove_callees even when there are used clones.
33226
33227 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33228
33229         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
33230
33231 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33232
33233         PR target/43383
33234         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
33235         for 32bit.
33236
33237 2010-03-18  Michael Matz  <matz@suse.de>
33238
33239         PR middle-end/43419
33240         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
33241         into sqrt(x) if we need to preserve signed zeros.
33242
33243 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
33244             Eric Botcazou  <ebotcazou@adacore.com>
33245
33246         PR rtl-optimization/43360
33247         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
33248         note if we don't know its invariant status.
33249
33250 2010-03-18  Michael Matz  <matz@suse.de>
33251
33252         PR tree-optimization/43402
33253         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
33254         PHI chains of ssa names registered for update.
33255
33256 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
33257
33258         PR target/42427
33259         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
33260         non-offsettable and pre_modify update addressing.
33261         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
33262         and "2" alternatives "#".
33263         (*movdd_softfloat32): Make all alternatives "#";
33264         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
33265         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
33266         (*movdf_softfloat32): Make all alternatives "#";
33267         (movdi): Use the new DIFD mode iterator to create a common splitter
33268         for movdi, movdf and movdd patterns.
33269
33270 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
33271
33272         * common.opt (dumpdir): Remove redundant tab.
33273
33274 2010-03-17  Martin Jambor  <mjambor@suse.cz>
33275
33276         PR tree-optimization/43347
33277         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
33278         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
33279
33280 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
33281
33282         PR rtl-optimization/42216
33283         * regrename.c (create_new_chain): New function, broken out from...
33284         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
33285         appending a use to an empty chain.
33286         (build_def_use): Remove previous changes that convert OP_INOUT to
33287         OP_OUT operands; instead detect the case where an OP_INOUT operand
33288         uses a previously untracked register and create an empty chain for it.
33289
33290 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33291
33292         * doc/extend.texi (Function Attributes): Rewrite unfinished
33293         sentence in ms_abi documentation.
33294
33295 2010-03-17  Alan Modra  <amodra@gmail.com>
33296
33297         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
33298         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
33299         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
33300         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
33301
33302 2010-03-16  Richard Henderson  <rth@redhat.com>
33303
33304         PR middle-end/43365
33305         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
33306         (lower_try_finally): Save and restore eh_seq around the expansion
33307         of the try-finally.
33308
33309 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
33310
33311         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
33312         statements before splitting block.
33313
33314 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33315
33316         * doc/sourcebuild.texi (Testsuites): Fix markup.
33317         Use pathnames relative to gcc/testsuite.
33318         (Test Directives): Move description of how timeout is determined.
33319         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
33320         (C Tests): Correct gcc.misc-tests directory.
33321         Framework tests now live in gcc.test-framework.
33322
33323 2010-03-16  Richard Guenther  <rguenther@suse.de>
33324
33325         PR middle-end/43379
33326         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
33327         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
33328
33329 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
33330             Alexandre Oliva  <aoliva@redhat.com>
33331
33332         PR tree-optimization/42917
33333         * lambda-code.c (remove_iv): Skip debug statements.
33334         (lambda_loopnest_to_gcc_loopnest): Likewise.
33335         (not_interesting_stmt): Debug statements are not interesting.
33336
33337 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
33338
33339         PR debug/43051
33340         PR debug/43092
33341         * cselib.c (cselib_preserve_constants,
33342         cfa_base_preserved_val): New static variables.
33343         (preserve_only_constants): New function.
33344         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
33345         clear its REG_VALUES.  If cselib_preserve_constants, don't
33346         empty the whole hash table, but preserve there VALUEs with constants,
33347         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
33348         (cselib_preserve_cfa_base_value): New function.
33349         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
33350         (cselib_init): Change argument to int bitfield.  Set
33351         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
33352         is in it.
33353         (cselib_finish): Clear cselib_preserve_constants and
33354         cfa_base_preserved_val.
33355         * cselib.h (enum cselib_record_what): New enum.
33356         (cselib_init): Change argument to int.
33357         (cselib_preserve_cfa_base_value): New prototype.
33358         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
33359         * dse.c (dse_step1): Likewise.
33360         * cfgcleanup.c (thread_jump): Likewise.
33361         * sched-deps.c (sched_analyze): Likewise.
33362         * gcse.c (local_cprop_pass): Likewise.
33363         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
33364         If FN is non-NULL, call the callback always and whenever it returns
33365         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
33366         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
33367         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
33368         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
33369         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
33370         * var-tracking.c: Include recog.h.
33371         (bb_stack_adjust_offset): Remove.
33372         (vt_stack_adjustments): Don't call it, instead just gather the
33373         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
33374         (adjust_stack_reference): Remove.
33375         (compute_cfa_pointer): New function.
33376         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
33377         (struct adjust_mem_data): New type.
33378         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
33379         functions.
33380         (get_address_mode): New function.
33381         (replace_expr_with_values): Use it.
33382         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
33383         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
33384         (adjust_sets): Remove.
33385         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
33386         Use get_address_mode.
33387         (get_adjusted_src): Remove.
33388         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
33389         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
33390         (add_with_sets): Don't call adjust_sets.
33391         (fp_setter, vt_init_cfa_base): New functions.
33392         (vt_initialize): Change return type to bool.  Move most of pool etc.
33393         initialization to the beginning of the function from end.  Pass
33394         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
33395         If !frame_pointer_needed, call vt_stack_adjustment before mos
33396         vector is filled, call vt_init_cfa_base if argp/framep has been
33397         eliminated to sp.  If frame_pointer_needed and argp/framep has
33398         been eliminated to hard frame pointer, set
33399         hard_frame_pointer_adjustment and call vt_init_cfa_base after
33400         encountering fp setter in the prologue.  For MO_ADJUST, call
33401         log_op_type before pusing the op into mos vector, not afterwards.
33402         Call adjust_insn before cselib_process_insn/add_with_sets,
33403         call cancel_changes (0) afterwards.
33404         (variable_tracking_main_1): Adjust for vt_initialize calling
33405         vt_stack_adjustments and returning whether it succeeded or not.
33406
33407 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
33408
33409         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
33410         debug statements.
33411
33412 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
33413
33414         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
33415         has been set.
33416         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
33417         drap_reg has not been set.
33418
33419 2010-03-15  Michael Matz  <matz@suse.de>
33420
33421         PR middle-end/43300
33422         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
33423         use it to expand block copies.
33424         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
33425         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
33426         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
33427
33428 2010-03-15  Richard Guenther  <rguenther@suse.de>
33429
33430         PR tree-optimization/43367
33431         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
33432         elimination check.
33433
33434 2010-03-15  Richard Guenther  <rguenther@suse.de>
33435
33436         PR tree-optimization/43317
33437         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
33438
33439 2010-03-15  Martin Jambor  <mjambor@suse.cz>
33440
33441         PR tree-optimization/43141
33442         * tree-sra.c (create_abstract_origin): New function.
33443         (modify_function): Call create_abstract_origin.
33444
33445 2010-03-15  Chris Demetriou  <cgd@google.com>
33446
33447         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
33448         wasn't copied.
33449
33450 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33451
33452         PR middle-end/43354
33453         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
33454         call insert_out_of_ssa_copy for default definitions.
33455
33456 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33457
33458         * graphite-clast-to-gimple.c (my_long_long): Defined.
33459         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
33460         * graphite-sese-to-poly.c (my_long_long): Defined.
33461         (scop_ivs_can_be_represented): Use it.
33462
33463 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33464
33465         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
33466         graphite-max-bbs-per-function, and loop-block-tile-size.
33467         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
33468         with "maximum".
33469         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
33470
33471 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33472
33473         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
33474         forward declaration.
33475         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
33476         (add_upper_bounds_from_estimated_nit): New.
33477         (build_loop_iteration_domains): Use it.
33478
33479 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33480
33481         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
33482
33483 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33484
33485         PR middle-end/43306
33486         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
33487         should be an INTEGER_CST.  Also handle CASE_CONVERT.
33488
33489 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33490
33491         * graphite.c (graphite_initialize): To bound the number of bbs per
33492         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
33493         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
33494         * doc/invoke.texi: Document it.
33495
33496 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33497
33498         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
33499         * graphite-sese-to-poly.h (build_poly_scop): Same.
33500
33501 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33502
33503         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
33504         the number of parameters in the scop.  Use as an upper bound
33505         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
33506         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
33507         * doc/invoke.texi: Document it.
33508
33509 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
33510
33511         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
33512         * doc/c-tree.texi: Remove.
33513         * doc/generic.texi: Merge c-tree.texi here.
33514         * doc/gccint.texi (Trees): Remove menu entry.
33515         (c-tree.texi): Remove @include.
33516         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
33517         * doc/languages.texi (Reading RTL): Ditto.
33518
33519 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
33520
33521         PR target/42869
33522         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
33523
33524 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
33525
33526         PR middle-end/42431
33527         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
33528         code added to work around reload clobbering CONST insns.
33529
33530 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
33531
33532         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
33533         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
33534         (cselib_preserve_only_values): Remove retain argument, don't
33535         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
33536         * cselib.h (cselib_preserve_only_values): Remove retain argument.
33537         * var-tracking.c (micro_operation): Move insn field before union.
33538         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
33539         (struct variable_tracking_info_def): Remove n_mos field, change
33540         mos into a vector of micro_operations.
33541         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
33542         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
33543         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
33544         changing into a vector.
33545         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
33546         come before all other uops generated by add_stores.
33547         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
33548         argument removal.
33549         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
33550         a vector.  Run just one pass over the bbs instead of separate counting
33551         and computation phase.
33552         (vt_finalize): Free VTI (bb)->mos vector instead of array.
33553
33554         PR debug/43329
33555         * tree-inline.c (remap_decls): Put old_var rather than origin_var
33556         into *nonlocalized_list vector.
33557         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
33558         even if origin is non-NULL.
33559         (gen_variable_die): Likewise.
33560         (process_scope_var): Don't change origin.
33561         (gen_decl_die): Likewise.
33562         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
33563         before adding new edges instead of after it, fix moving over
33564         debug stmts.
33565
33566 2010-03-11  David S. Miller  <davem@davemloft.net>
33567
33568         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
33569         of four.
33570         * configure: Rebuild.
33571
33572 2010-03-11  Martin Jambor  <mjambor@suse.cz>
33573
33574         PR tree-optimization/43257
33575         * tree.c (assign_assembler_name_if_neeeded): New function.
33576         (free_lang_data_in_cgraph): Assembler name assignment moved to the
33577         above new function.
33578         * tree.h (assign_assembler_name_if_neeeded): Declare.
33579         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
33580         the function if needed.
33581
33582 2010-03-11  Chris Demetriou  <cgd@google.com>
33583
33584         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
33585         include/stdint-gcc.h, and include/stdint.h world-readable.
33586
33587 2010-03-11  Richard Guenther  <rguenther@suse.de>
33588
33589         PR tree-optimization/43255
33590         * tree-vrp.c (process_assert_insertions_for): Do not insert
33591         asserts for trivial conditions.
33592
33593 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33594
33595         PR tree-optimization/43280
33596         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
33597         generation.  Move calculation of size out of the if branch.
33598         (find_bswap): Modify compare number generation.
33599
33600 2010-03-11  Richard Guenther  <rguenther@suse.de>
33601
33602         PR lto/43200
33603         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
33604         (input_gimple_stmt): Fixup handled component types during
33605         operand read.  Also fix up decls in ADDR_EXPRs.
33606
33607 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
33608
33609         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
33610         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
33611
33612 2010-03-10  Jan Hubicka  <jh@suse.cz>
33613
33614         PR c/43288
33615         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
33616         * varasm.c (get_variable_section): Don't do that here...
33617         (make_decl_rtl): ... and here.
33618         (do_assemble_alias): Produce decl RTL.
33619         (assemble_alias): Likewise.
33620
33621 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
33622
33623         PR debug/43290
33624         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
33625         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
33626         of fde->vdrap_reg.
33627         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
33628         (based_loc_descr): Only express drap or vdrap regno based expressions
33629         using DW_OP_fbreg when not optimizing.
33630         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
33631         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
33632         REG_CFA_SET_VDRAP note.
33633
33634 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
33635
33636         PR tree-optimization/43236
33637         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
33638         error in calculation of base address in reverse iteration case.
33639         (generate_builtin): Take number of latch executions if the statement
33640         is in the latch.
33641
33642 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
33643
33644         PR middle-end/42859
33645         * tree-eh.c: Include pointer-set.h.
33646         (lower_eh_dispatch): Filter out duplicate case labels and
33647         remove the unneeded edge when the label is unused.  Return
33648         true when some edges are removed.
33649         (execute_lower_eh_dispatch): When any lowering resulted in
33650         removing an edge, also delete unreachable blocks.
33651
33652 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
33653
33654         PR bootstrap/43287
33655         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
33656         UNSPEC_MACHOPIC_OFFSET.
33657
33658 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
33659
33660         PR target/43294
33661         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
33662         (m68k_delegitimize_address): New function.
33663
33664 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
33665
33666         PR debug/43299
33667         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
33668
33669         PR debug/43299
33670         * var-tracking.c (adjust_sets): New function.
33671         (count_with_sets, add_with_sets): Use it.
33672         (get_adjusted_src): New inline function.
33673         (add_stores): Use it.
33674
33675         PR debug/43304
33676         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
33677         call cselib_dummy_expand_value_rtx_cb instead of
33678         cselib_expand_value_rtx_cb.
33679
33680         PR debug/43293
33681         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
33682         * config/i386/i386.c: Include debug.h and dwarf2out.h.
33683         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
33684         and .cfi_endproc around the pic thunks.
33685         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
33686         all queued unwind info register saves are saved before the call.
33687         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
33688         considered as sp-=4 for unwind info and the pop as sp+=4 which
33689         also clobbers dest, but doesn't actually restore it.
33690
33691         PR debug/43290
33692         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
33693         RTX_FRAME_RELATED_P.
33694
33695 2010-03-09  Jie Zhang  <jie@codesourcery.com>
33696
33697         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
33698         whitespaces in output template.
33699
33700 2010-03-09  Jie Zhang  <jie@codesourcery.com>
33701
33702         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
33703         out array boundary.
33704
33705 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
33706
33707         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
33708         builtins.exp in a separate job.
33709
33710 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33711
33712         * graphite-sese-to-poly.c (add_param_constraints): Use
33713         lower_bound_in_type and upper_bound_in_type.
33714
33715 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33716
33717         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
33718         instead of unsigned_type_node.
33719
33720 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33721             Reza Yazdani  <reza.yazdani@amd.com>
33722
33723         PR middle-end/43065
33724         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
33725         on pointer type parameters.
33726
33727 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
33728
33729         PR middle-end/42644
33730         PR middle-end/42130
33731         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
33732         handle conversions from pointer to integers.
33733         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
33734         induction variable, to be able to work with code generated by CLooG.
33735         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
33736         (build_poly_scop): Bail out if we cannot codegen a loop.
33737
33738 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
33739
33740         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
33741         code generation with gloog_error.
33742
33743 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33744
33745         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
33746         Call fold_convert on all the returned values.
33747         (expand_scalar_variables_expr): Pass to
33748         expand_scalar_variables_ssa_name the type of the resulting expression.
33749
33750 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33751
33752         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
33753         ppl_min_for_le_pointset.
33754         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
33755         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
33756
33757 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33758
33759         * graphite-dependences.c (map_into_dep_poly): Removed.
33760         (dependence_polyhedron_1): Use combine_context_id_scat.
33761
33762 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33763
33764         * graphite-poly.h (struct poly_scattering): Add layout documentation.
33765         (struct poly_bb): Same.
33766         (combine_context_id_scat): New.
33767
33768 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33769
33770         PR middle-end/42326
33771         * sese.c (name_defined_in_loop_p): Return false for default
33772         definitions.
33773
33774 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33775
33776         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
33777         and clean up the logic.
33778
33779 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33780
33781         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
33782         early return.
33783
33784 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
33785
33786         * var-tracking.c (remove_cselib_value_chains): Define only for
33787         ENABLE_CHECKING.
33788         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
33789         delete_slot_part, emit_notes_for_differences_1): Don't call
33790         remove_cselib_value_chains here.
33791         (set_slot_part, emit_notes_for_differences_2): Don't call
33792         add_cselib_value_chains here.
33793         (preserved_values): New vector.
33794         (preserve_value): New function.
33795         (add_uses, add_stores, vt_add_function_parameters): Use it
33796         instead of cselib_preserve_value.
33797         (changed_values_stack): New vector.
33798         (check_changed_vars_0): New function.
33799         (check_changed_vars_1, check_changed_vars_2): Use it.
33800         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
33801         changed_values_stack VALUEs.
33802         (vt_emit_notes): For all preserved_values call
33803         add_cselib_value_chains.  If ENABLE_CHECKING call
33804         remove_cselib_value_chains before verifying value_chains is empty.
33805         Initialize and free changed_values_stack.
33806         (vt_initialize): Initialize preserved_values.
33807         (vt_finalize): Free preserved_values.
33808
33809 2010-03-08  Richard Guenther  <rguenther@suse.de>
33810
33811         PR tree-optimization/43269
33812         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
33813         region detection.
33814
33815 2010-03-08  Martin Jambor  <mjambor@suse.cz>
33816
33817         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
33818         (ipa_is_param_called): Removed.
33819         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
33820         (ipa_print_node_params): Do not print the called flag.
33821         (ipa_write_node_info): Do not stream the called flag.
33822         (ipa_read_node_info): Likewise.
33823
33824 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
33825
33826         PR debug/43176
33827         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
33828         * cselib.c (struct expand_value_data): Add dummy field.
33829         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
33830         dummy to false.
33831         (cselib_dummy_expand_value_rtx_cb): New function.
33832         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
33833         any rtl.
33834         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
33835         * var-tracking.c: Include pointer-set.h.
33836         (variable): Change n_var_parts to char from int.  Add
33837         cur_loc_changed and in_changed_variables fields.
33838         (variable_canonicalize): Remove.
33839         (shared_var_p): New inline function.
33840         (unshare_variable): Maintain cur_loc_changed and
33841         in_changed_variables fields.  If var was in changed_variables,
33842         replace it there with new_var.  Just copy cur_loc instead of
33843         resetting it to something else.
33844         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
33845         (dataflow_set_union): Don't call variable_canonicalize.
33846         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
33847         of their DEBUG_EXPR_TREE_DECLs.
33848         (canonicalize_loc_order_check): Verify that cur_loc is NULL
33849         and in_changed_variables and cur_loc_changed is false.
33850         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
33851         and cur_loc_changed.  Don't update cur_loc here.
33852         (variable_merge_over_src): Don't call variable_canonicalize.
33853         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
33854         removing loc that is equal to cur_loc, clear cur_loc,
33855         set cur_loc_changed and ensure variable_was_changed is called.
33856         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
33857         compare pointers in cur_loc check, if it is equal to loc,
33858         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
33859         (variable_different_p): Remove compare_current_location argument,
33860         don't compare cur_loc.
33861         (dataflow_set_different_1): Adjust variable_different_p caller.
33862         (variable_was_changed): If dv had some var in changed_variables
33863         already, reset in_changed_variables flag for it and propagate
33864         cur_loc_changed over to the new variable.  On empty var
33865         always set cur_loc_changed.  Set in_changed_variables on whatever
33866         var is added to changed_variables.
33867         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
33868         Use shared_var_p.  When removing loc that is equal to cur_loc,
33869         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
33870         end, don't set it to something else, just call variable_was_changed.
33871         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
33872         loc being removed, clear cur_loc and set cur_loc_changed.
33873         Set cur_loc_changed if all locations have been removed.
33874         (struct expand_loc_callback_data): New type.
33875         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
33876         allocated.  Always create SUBREGs if simplify_subreg failed.
33877         Prefer to use cur_loc, when that fails and still in
33878         changed_variables (and seen first time) recompute it.  Set
33879         cur_loc_changed of variables which had to change cur_loc and
33880         compute elcd->cur_loc_changed if any of the subexpressions used
33881         had to change cur_loc.
33882         (vt_expand_loc): Adjust to pass arguments in
33883         expand_loc_callback_data structure.
33884         (vt_expand_loc_dummy): New function.
33885         (emitted_notes): New variable.
33886         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
33887         that weren't used for any other decl in current
33888         emit_notes_for_changes call call vt_expand_loc_dummy to update
33889         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
33890         first loc_chain location if NULL before.  Always use just
33891         cur_loc instead of first loc_chain location.  When cur_loc_changed
33892         is false, when not --enable-checking=rtl just don't emit any note.
33893         When rtl checking, compute the note and assert it is the same
33894         as previous note.  Clear cur_loc_changed and in_changed_variables
33895         at the end before removing from changed_variables.
33896         (check_changed_vars_3): New function.
33897         (emit_notes_for_changes): Traverse changed_vars to call
33898         check_changed_vars_3 on each changed var.
33899         (emit_notes_for_differences_1): Clear cur_loc_changed and
33900         in_changed_variables.  Recompute cur_loc of new_var.
33901         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
33902         (vt_emit_notes): Initialize and destroy emitted_notes.
33903
33904 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
33905
33906         PR rtl-optimization/42220
33907         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
33908         Use verify_reg_tracked to determine if we should use OP_OUT rather
33909         than OP_INOUT.
33910         (build_def_use): If we see an in-out operand for a register that we
33911         know nothing about, treat is an output if possible, fail the block if
33912         not.
33913
33914 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33915
33916         PR debug/42897
33917         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
33918         permanently.
33919
33920 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33921
33922         PR debug/42897
33923         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
33924         uses of relevant DEFs that are dead outside the loop too.
33925
33926 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33927
33928         * var-tracking.c (dataflow_set_merge): Swap src and src2.
33929         Reverted:
33930         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
33931         PR debug/41371
33932         * var-tracking.c (values_to_unmark): New variable.
33933         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
33934         values_to_unmark vector.  Moved body to...
33935         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
33936         instead queue it into values_to_unmark vector.
33937         (vt_find_locations): Free values_to_unmark vector.
33938
33939 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
33940
33941         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
33942         (site.exp): Export them when plugins are enabled.
33943
33944 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
33945
33946         PR middle-end/42326
33947         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
33948         that contain scevs.
33949         (chrec_fold_multiply): Same.
33950
33951 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33952
33953         PR c/43248
33954         * c-decl.c (build_compound_literal): Return early if init is
33955         an error_mark_node.
33956
33957 2010-03-04  Martin Jambor  <mjambor@suse.cz>
33958
33959         PR tree-optimization/43164
33960         PR tree-optimization/43191
33961         * tree-sra.c (type_consists_of_records_p): Reject records with
33962         zero-size bit-fields at the end.
33963
33964 2010-03-04  Mike Stump  <mikestump@comcast.net>
33965
33966         * Makefile.in (TAGS): Remove *.y.
33967
33968 2010-03-04  Richard Guenther  <rguenther@suse.de>
33969
33970         PR tree-optimization/40761
33971         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
33972         in reverse order.
33973         (my_rev_post_order_compute): New function.
33974         (init_pre): Call it.
33975
33976 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
33977
33978         PR middle-end/43209
33979         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
33980         decrease the cost of an IV candidate when the cost is infinite.
33981
33982 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33983
33984         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
33985         Use '3DNow!' for the extension of that name, ensure normal space
33986         after the string.
33987         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
33988
33989 2010-03-03  Jeff Law  <law@redhat.com>
33990
33991         * PR middle-end/32693
33992         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
33993         than gen_rtx_SUBREG.
33994         (extract_bit_field_1): Likewise.
33995
33996 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
33997
33998         * doc/sourcebuild.texi (Test directives): Document that arguments
33999         include-opts and exclude-opts are now optional for dg-skip-if,
34000         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
34001
34002 2010-03-03  Jason Merrill  <jason@redhat.com>
34003
34004         PR c++/12909
34005         * cgraph.h (varpool_node): Add extra_name field.
34006         * varpool.c (varpool_extra_name_alias): New.
34007         (varpool_assemble_decl): Emit extra name aliases.
34008         (varpool_mark_needed_node): Look past an extra name alias.
34009         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
34010         * lto-streamer-in.c (lto_input_tree): Read it.
34011         * lto-streamer-out.c (output_unreferenced_globals): Write it.
34012
34013 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34014
34015         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
34016         (sparc*-*-solaris2*): ...this.
34017
34018 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
34019
34020         PR debug/43229
34021         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34022         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
34023         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34024         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34025
34026         PR debug/43237
34027         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34028         fallthrough to default handling, just with want_address 0 instead of 2.
34029         For single element lists, add_AT_loc directly, otherwise create an
34030         artificial variable DIE and stick location list to it.
34031
34032         PR debug/43177
34033         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34034         (VAL_EXPR_HAS_REVERSE): Define.
34035         (reverse_op): New function.
34036         (add_stores): For reversible operations add an extra MO_VAL_USE.
34037
34038 2010-03-02  Jason Merrill  <jason@redhat.com>
34039
34040         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
34041
34042 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
34043
34044         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
34045         (sparc64-*-linux*): Likewise.
34046         (sparc64-*-solaris2*): Include assembler files before linker ones.
34047         (sparc-*-solaris2*): Simplify and reorder to match previous case.
34048         * config/sparc/gas.h: Delete.
34049         * config/sparc/sol2-64.h: Add copyright notice.
34050         * config/sparc/sol2-gas-bi.h: Likewise.
34051         * config/sparc/sol2-gld.h: Likewise.
34052         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
34053         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
34054         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
34055         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
34056         (sparc_elf_asm_named_section): Rename into...
34057         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
34058
34059 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
34060
34061         * config/alpha/alpha.c (override_options): Fix -mtune error message.
34062
34063 2010-03-02  Jeff Law  <law@redhat.com>
34064
34065         PR middle-end/42431
34066         * reload1.c (rtx_p, substitute_stack): Declare.
34067         (substitute): Record addresses of changed rtxs.
34068         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
34069         Restore the original rtx when complete.
34070         (reload): Free subsitute_stack when complete.
34071
34072 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
34073
34074         * doc/gccint.texi (menu): Add Testsuites as a chapter.
34075         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
34076         new chapter.
34077         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
34078         LTO Testing, gcov Testing, profopt Testing, compat Testing,
34079         Torture Tests): Change from subsection to section.
34080
34081 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
34082             Steven Bosscher  <steven@gcc.gnu.org>
34083
34084         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
34085         instead of bb.
34086
34087 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
34088
34089         PR middle-end/42640
34090         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
34091         the assignment from the new induction variable to the assignment
34092         of the value from the original loop PHI function.
34093
34094 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
34095             Daniel Jacobowitz  <dan@codesourcery.com>
34096
34097         * doc/sourcebuild.texi (Test directives): Clarify options to
34098         dg-skip-if.
34099
34100 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34101
34102         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
34103         Disable cfi directives unless GCC and gas agree on using read-only
34104         .eh_frame sections for 64-bit.
34105         * configure: Regenerate.
34106
34107 2010-03-01  Richard Guenther  <rguenther@suse.de>
34108
34109         PR tree-optimization/43220
34110         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
34111         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
34112
34113 2010-03-01  Richard Guenther  <rguenther@suse.de>
34114             Martin Jambor  <mjambor@suse.cz>
34115
34116         PR middle-end/41250
34117         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
34118         gimplified parameters.
34119
34120 2010-03-01  Christian Bruel  <christian.bruel@st.com>
34121
34122         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
34123
34124 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
34125
34126         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
34127
34128 2010-03-01  Richard Guenther  <rguenther@suse.de>
34129
34130         PR middle-end/43213
34131         * expr.c (expand_assignment): Use the alias-oracle to tell
34132         if the rhs aliases the result decl.
34133
34134 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34135
34136         PR pch/14940
34137         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
34138         to sol_gt_pch_get_address.
34139         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
34140         64-bit, SPARC and x86.
34141         (sol_gt_pch_get_address): New function.
34142
34143 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
34144
34145         * toplev.h (inform_n, error_n): Declare.
34146         * diagnostic.c (inform_n, error_n): New function.
34147
34148 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
34149
34150         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
34151         has no rtl yet when processing local_decls, queue it and recheck
34152         if deferred stack allocation hasn't assigned it rtl.
34153
34154 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
34155
34156         * config/sh/sh.c (unspec_bbr_uid): New.
34157         (gen_block_redirect): Use it instead of INSN_UID.
34158         (gen_far_branch): Likewise.
34159
34160 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
34161
34162         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
34163         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
34164
34165 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34166
34167         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
34168         (Warning Options): -Wno-conversion-null is valid for
34169         Objective-C++ as well.
34170         * doc/tm.texi (Named Address Spaces): Likewise.
34171         * doc/plugins.texi (Plugins): Replace TABs with spaces.
34172         * doc/tree-ssa.texi (Tree SSA): Likewise.
34173
34174 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34175
34176         PR bootstrap/43202
34177         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
34178         by default.  Don't set the default arch for
34179         i[34567]86-*-darwin*|x86_64-*-darwin*.
34180
34181 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34182
34183         PR bootstrap/43202
34184         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
34185         default.  Set the default 32bit/64bit archs with $with_arch
34186         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
34187
34188 2010-02-27  Richard Guenther  <rguenther@suse.de>
34189
34190         PR tree-optimization/43186
34191         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
34192         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
34193         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
34194         unroller iterations.
34195
34196 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34197
34198         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
34199         required and i[34567]86-*-* targets don't support 64bit ISA.
34200
34201 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
34202
34203         PR ada/43096
34204         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34205         the same alias set.
34206
34207 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34208
34209         * config.gcc: Set the default arch at least to Prescott for
34210         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
34211         if SSE math is enabled.
34212
34213 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34214
34215         * diagnostic.c (diagnostic_initialize): Update.
34216         (diagnostic_report_diagnostic): Test inhibit_notes_p for
34217         informative notes.
34218         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
34219         (diagnostic_inhibit_notes): New.
34220         * toplev.c (process_options): inhibit notes with -fcompare-debug.
34221
34222 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34223
34224         PR c/20631
34225         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
34226         * doc/standards.texi: Likewise.
34227         * doc/extend.texi: Likewise.
34228         * doc/trouble.texi: Likewise.
34229         * doc/cppopts.texi: Likewise.
34230         * doc/install.texi: Likewise.
34231         * c.opt (std=c90,std=gnu90): New options.
34232         * c-opts.c (c_common_handle_option): Handle them.
34233
34234 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34235
34236         PR c/24577
34237         * c-decl.c (undeclared_variable): Use an informative note.
34238
34239 2010-02-26  Richard Guenther  <rguenther@suse.de>
34240
34241         PR tree-optimization/43186
34242         * gimple.h (gimple_fold): Remove.
34243         * gimple.c (gimple_fold): Remove.  Inline into single user ...
34244         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
34245         Try harder for conditions.
34246
34247 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
34248
34249         PR debug/43190
34250         * function.c (used_types_insert): Don't skip through named pointer
34251         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
34252         and it is different from the main variant's type.
34253
34254 2010-02-26  Nick Clifton  <nickc@redhat.com>
34255
34256         * config/rx/rx.md (sminsi3): Remove bogus alternative.
34257
34258 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34259
34260         * config.gcc: Support --with-fpmath=sse for x86.
34261
34262         * config/i386/ssemath.h: New.
34263
34264         * doc/install.texi (--with-fpmath=sse): Documented.
34265
34266 2010-02-26  Richard Guenther  <rguenther@suse.de>
34267
34268         PR tree-optimization/43188
34269         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
34270         vector types of over-aligned element type.
34271
34272 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
34273
34274         PR target/43175
34275         * config/i386/i386.c (expand_vec_perm_blend): Use correct
34276         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
34277
34278 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
34279
34280         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
34281
34282 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
34283
34284         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
34285         * var-tracking.c: Include diagnostic.h.
34286         (debug_dv): New function.
34287         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
34288
34289         PR debug/43160
34290         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
34291         (add_value_chain, add_value_chains, remove_value_chain,
34292         remove_value_chains): Handle DEBUG_EXPRs.
34293         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
34294
34295         PR debug/43161
34296         * regcprop.c (struct queued_debug_insn_change): New type.
34297         (struct value_data_entry): Add debug_insn_changes field.
34298         (struct value_data): Add n_debug_insn_changes field.
34299         (debug_insn_changes_pool): New variable.
34300         (free_debug_insn_changes, apply_debug_insn_changes,
34301         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
34302         (kill_value_one_regno): Call free_debug_insn_changes if needed.
34303         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
34304         fields.
34305         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
34306         changes for them.
34307         (copyprop_hardreg_forward_1): Don't call apply_change_group for
34308         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
34309         changes, call cprop_find_used_regs via note_stores.
34310         (copyprop_hardreg_forward): When copying vd from predecessor
34311         which has any queued DEBUG_INSN changes, make sure the pointers are
34312         cleared.  At the end call df_analyze and then if there are any
34313         DEBUG_INSN changes queued at the end of some basic block for still
34314         live registers, apply them.
34315         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
34316
34317 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
34318
34319         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
34320         (arm*-*-*): Ditto.
34321
34322 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
34323
34324         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
34325         targets.  Set the default with_cpu/with_arch from arch/cpu.
34326         Allow x86-64 and native for with_cpu/with_arch.
34327
34328 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
34329
34330         * ebitmap.c: Change calls to verify_popcount with calls to
34331         sbitmap_verify_popcount.
34332         (ebitmap_clear_bit): Fixed map->cacheindex test and
34333         map>cache update when bit clearing results in an empty
34334         element.
34335
34336 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34337
34338         PR target/43154
34339         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
34340         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
34341         and support both V2DF and V2DI modes.
34342         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
34343         support both V2DF and V2DI modes.
34344         (general): Delete trailing whitespace from a few patterns.
34345
34346         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
34347         V2DF/V2DI interleave high/low builtins.
34348
34349         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
34350         new VSX builtins.
34351
34352         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
34353         interleave high/low functions.
34354
34355 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
34356
34357         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
34358         #pragma extern_prefix.
34359
34360 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
34361
34362         PR debug/43166
34363         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
34364         BLKmode, assert op0 is a MEM and just adjust its mode.
34365
34366         PR debug/43165
34367         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
34368         if bitpos isn't multiple of mode's bitsize.
34369
34370 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34371
34372         * c.opt (-ftemplate-depth=): New.
34373         (-ftemplate-depth-): Deprecate.
34374         * optc-gen.awk: Handle -ftemplate-depth=.
34375         * opth-gen.awk: Likewise.
34376         * c-opts.c (c_common_handle_option): Likewise.
34377         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
34378
34379 2010-02-24  Jason Merrill  <jason@redhat.com>
34380
34381         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
34382
34383 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34384
34385         * cfg.c (alloc_aux_for_block): Remove inline.
34386         (alloc_aux_for_edge): Likewise.
34387
34388 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34389
34390         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
34391
34392 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34393
34394         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
34395         * config/i386/sol2-gas.h: New file.
34396         * config.gcc (i[34567]86-*-solaris2*): Use it.
34397
34398 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34399
34400         PR c/43128
34401         * c-typeck.c (ep_convert_and_check): New.
34402         (build_conditional_expr): Use it.
34403         (build_binary_op): Likewise.
34404
34405 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
34406
34407         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
34408
34409         PR debug/43150
34410         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
34411         bounds even for -O+.
34412         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
34413         expr needs to have DECL_NAME set.
34414
34415 2010-02-24  Nick Clifton  <nickc@redhat.com>
34416
34417         * config/mep/mep.c: Include gimple.h.
34418         (mep_function_uses_sp): Delete unused function.
34419         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
34420         parameters.  Use unsigned integers to count args.  Return a
34421         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
34422
34423 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
34424
34425         PR target/43107
34426         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
34427         greater or equal to nelt instead of 2 * nelt.
34428         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
34429         with nelt - 1.
34430
34431 2010-02-23  Jason Merrill  <jason@redhat.com>
34432
34433         PR debug/42800
34434         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
34435         in cfun->local_decls even if they have register types.
34436
34437         PR c++/42837
34438         * stor-layout.c (place_field): Don't warn about unnecessary
34439         DECL_PACKED if the type is packed.
34440
34441 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
34442
34443         PR target/43139
34444         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
34445         GOTOFF relocs, even when the base reg isn't pic pointer.
34446
34447 2010-02-23  Michael Matz  <matz@suse.de>
34448
34449         PR debug/43077
34450         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
34451         (expand_gimple_basic_block): Generate and use debug temps if there
34452         are debug uses left after the last real use of TERed ssa names.
34453         Unlink debug immediate uses when they are expanded.
34454
34455 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34456
34457         PR 43123
34458         * config/i386/i386.c (override_options): Reorganise to provide
34459         better error messages.
34460
34461 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34462
34463         PR middle-end/43083
34464         * graphite-scop-detection.c (create_single_exit_edge): Move
34465         the call to find_single_exit_edge to....
34466         (create_sese_edges): ...here.  Don't handle multiple edges
34467         exiting the function.
34468         (build_graphite_scops): Don't handle multiple edges
34469         exiting the function.
34470
34471 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34472
34473         PR middle-end/43097
34474         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
34475         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
34476
34477 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34478
34479         PR middle-end/43026
34480         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
34481
34482 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34483
34484         PR c++/43126
34485         * c-typeck.c (convert_arguments): Print declaration location.
34486         * c-common.c (validate_nargs): Rename as
34487         builtin_function_validate_nargs.
34488         (check_builtin_function_arguments): Update.
34489
34490 2010-02-22  Richard Guenther  <rguenther@suse.de>
34491
34492         PR lto/43045
34493         * tree-inline.c (declare_return_variable): Use the type of
34494         the call stmt lhs if available.
34495
34496 2010-02-22  Duncan Sands  <baldrick@free.fr>
34497
34498         * passes.c (register_pass): Always consider all pass lists when
34499         ref_pass_instance_number is zero.
34500
34501 2010-02-22  Richard Guenther  <rguenther@suse.de>
34502
34503         PR tree-optimization/42749
34504         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
34505         parameter.  Do arithmetic in the original type.
34506         (update_accumulator_with_ops): Likewise.
34507         (adjust_accumulator_values): Adjust.
34508
34509 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34510
34511         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
34512         (QI to BLKmode splitter): New splitter.
34513
34514 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
34515
34516         * config/i386/i386.c (initial_ix86_tune_features): Turn on
34517         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
34518
34519 2010-02-22  Richard Guenther  <rguenther@suse.de>
34520
34521         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
34522
34523 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
34524
34525         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
34526         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
34527         ($(T)crti.o, $(T)crtn.o): Remove rules.
34528
34529 2010-02-21  Tobias Burnus  <burnus@net-b.de>
34530
34531         PR fortran/35259
34532         * doc/invoke.texi (-fassociative-math): Document that this
34533         option is automatically enabled for Fortran.
34534
34535 2010-02-20  David S. Miller  <davem@davemloft.net>
34536
34537         * configure.ac: Test if linker and assembler properly support
34538         GOTDATA_OP relocations.
34539         * configure: Rebuild.
34540         * config.in: Likewise.
34541         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
34542         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
34543         (movsi_high_pic): Likewise.
34544         (movdi_lo_sum_pic): Likewise.
34545         (movdi_high_pic): Likewise.
34546         (movsi_pic_gotdata_op): New pattern.
34547         (movdi_pic_gotdata_op): Likewise.
34548         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
34549         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
34550
34551 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
34552
34553         PR target/43067
34554         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
34555         attribute to ssemul.
34556         (xop_mulv2div2di3_high): Ditto.
34557
34558 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34559
34560         PR c++/35669
34561         * c.opt (Wconversion-null): New option.
34562         * doc/invoke.texi (Wconversion-null): Document.
34563
34564 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34565
34566         * common.opt (Wlarger-than-): Add Undocumented.
34567
34568 2010-02-19  Mike Stump  <mikestump@comcast.net>
34569
34570         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
34571
34572 2010-02-19  Jason Merrill  <jason@redhat.com>
34573
34574         PR target/40332
34575         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
34576         * configure: Likewise.
34577
34578 2010-02-20  Alan Modra  <amodra@gmail.com>
34579
34580         PR middle-end/42344
34581         * cgraph.h (cgraph_make_decl_local): Declare.
34582         * cgraph.c (cgraph_make_decl_local): New function.
34583         (cgraph_make_node_local): Use it.
34584         * cgraphunit.c (cgraph_function_versioning): Likewise.
34585         * ipa.c (function_and_variable_visibility): Likewise.
34586
34587 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34588
34589         PR bootstrap/43121
34590         * except.c (sjlj_emit_function_enter): Don't call
34591         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
34592         directly.
34593         * rtl.h (add_reg_br_prob_note): Remove prototype.
34594
34595 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34596
34597         PR 41779
34598         * c-common.c (conversion_warning): Remove widening conversions
34599         before checking the conversion of integers to reals.
34600
34601 2010-02-19  Mike Stump  <mikestump@comcast.net>
34602
34603         PR middle-end/43125
34604         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
34605
34606         PR objc/43061
34607         * cgraphunit.c (process_function_and_variable_attributes): Check
34608         DECL_PRESERVE_P instead of looking up attribute "used".
34609         * ipa-pure-const.c (check_decl): Likewise.
34610         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
34611         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
34612         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
34613         instead of attribute "used".
34614         * config/sol2-c.c (solaris_pragma_init): Likewise.
34615         (solaris_pragma_fini): Likewise.
34616
34617 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34618
34619         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
34620         Use XCNEW instead of xcalloc.
34621         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
34622         XNEW instead of xmalloc.
34623         (get_fields): Use XNEWVEC instead of xmalloc.
34624
34625         PR debug/43084
34626         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
34627         populate vars array.
34628         (create_new_general_access): For debug stmts just reset value.
34629         (get_stmt_accesses): For accesses within debug stmts just record them
34630         using add_access_to_acc_sites instead of preventing the peeling or
34631         counting them as accesses.
34632
34633         PR middle-end/42233
34634         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
34635
34636 2010-02-19  Richard Guenther  <rguenther@suse.de>
34637
34638         PR tree-optimization/42916
34639         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
34640         instructions.
34641
34642 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
34643
34644         * configure.ac: Replace all uses of changequote in macro arguments
34645         with proper quoting.
34646
34647 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34648
34649         PR middle-end/42233
34650         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
34651
34652 2010-02-19  Richard Guenther  <rguenther@suse.de>
34653
34654         PR tree-optimization/42944
34655         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
34656         test for aliasing with errno.
34657
34658 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34659
34660         PR middle-end/42233
34661         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
34662         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
34663         * dojump.c: Include output.h.
34664         (inv): New inline function.
34665         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
34666         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
34667         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
34668         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
34669         argument, pass it down to other calls.
34670         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
34671         add REG_BR_PROB note to the conditional jump.
34672         * cfgexpand.c (add_reg_br_prob_note): Removed.
34673         (expand_gimple_cond): Don't call it, add the probability
34674         as last argument to jumpif_1/jumpifnot_1.
34675         * Makefile.in (dojump.o): Depend on output.h.
34676         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
34677         callers.
34678         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
34679         * stmt.c (do_jump_if_equal): Likewise.
34680         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
34681         * loop-unswitch.c (compare_and_jump_seq): Likewise.
34682         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
34683         Likewise.
34684         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
34685         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
34686         jumpifnot_1 callers.
34687         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
34688         callers.
34689         (store_expr): Adjust jumpifnot caller.
34690         (store_constructor): Adjust jumpif caller.
34691
34692         PR middle-end/42233
34693         * gimplify.c (gimple_boolify): For __builtin_expect call
34694         gimple_boolify also on its first argument.
34695
34696 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
34697
34698         * configure.ac (gnu-unique-object): Wrap regexps using [] in
34699         changequote block.
34700         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
34701         * configure: Regenerated.
34702
34703 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34704
34705         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
34706         lang_hooks.types_compatible_p instead of comptypes.
34707
34708 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34709
34710         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
34711         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
34712         if __prefer_thumb__ is defined.
34713
34714 2010-02-18  Martin Jambor  <mjambor@suse.cz>
34715
34716         PR tree-optimization/43066
34717         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
34718         array with zero-sized element type.
34719
34720 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
34721
34722         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
34723         rtx, allocate struct var_loc_node here and return it to the
34724         caller, and only if it is actually needed.
34725         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
34726         move it earlier and return immediately if it returns NULL.
34727
34728 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
34729
34730         * config/sparc/gas.h: New file.  Restore
34731         TARGET_ASM_NAMED_SECTION to its ELF default.
34732         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
34733         check !HAVE_GNU_AS.
34734         * config/sparc/sparc.c (sparc_elf_asm_named_section):
34735         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
34736         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
34737         after sparc/sysv4.h.
34738
34739 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
34740
34741         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
34742
34743 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
34744
34745         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
34746         patterns from predicated pattern.
34747
34748 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
34749
34750         PR target/43103
34751         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
34752         for insn mnemonic suffix.
34753
34754 2010-02-17  Richard Guenther  <rguenther@suse.de>
34755
34756         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
34757         to loop PHI nodes.
34758
34759 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
34760
34761         PR debug/42918
34762         * caller-save.c (save_call_clobbered_regs): If BB ends with
34763         a DEBUG_INSN, move any notes in between last real insn and the last
34764         DEBUG_INSN after the last DEBUG_INSN.
34765
34766 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
34767
34768         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
34769         Fix return type.  Fix argument type.  Explain meaning of return value.
34770
34771 2010-02-16  Richard Guenther  <rguenther@suse.de>
34772
34773         PR tree-optimization/41043
34774         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
34775         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
34776         statements ...
34777         (vrp_visit_phi_node): ... but only for loop PHI nodes.
34778
34779 2010-02-16  Ira Rosen  <irar@il.ibm.com>
34780
34781         PR tree-optimization/43074
34782         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
34783         * tree-vect-loop.c (vect_analyze_loop_operations): Add
34784         vectorizable cycles in hybrid SLP check.
34785         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
34786
34787 2010-02-16  Richard Guenther  <rguenther@suse.de>
34788
34789         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
34790         (true_dependence): If memrefs_conflict_p computes must-alias
34791         trust it.  Move TBAA check after offset-based disambiguation.
34792         (canon_true_dependence): Likewise.
34793
34794 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
34795
34796         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
34797         * doc/invoke.texi: Document it.
34798         * var-tracking.c: Include toplev.h and params.h.
34799         (vt_find_locations): Return bool indicating success.  Compute
34800         hash sizes unconditionally.  Check new parameter, report.
34801         (variable_tracking_main_1): Check vt_find_locations results and
34802         retry.  Renamed from...
34803         (variable_tracking_main): ... this.  New wrapper to preserve
34804         flag_var_tracking_assignments.
34805         * Makefile.in (var-tracking.o): Adjust dependencies.
34806
34807 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
34808             Jakub Jelinek  <jakub@redhat.com>
34809
34810         PR target/42854
34811         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
34812         if weak_import attribute is present.
34813         * config/darwin.c (machopic_select_section): Likewise.
34814
34815 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
34816
34817         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
34818         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
34819         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
34820         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
34821
34822         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
34823         types.
34824
34825         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34826         Fix argument types.
34827
34828         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
34829         Rewrite text to refer to the names.
34830
34831 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
34832
34833         * config/i386/i386-builtin-types.def
34834         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
34835         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
34836         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
34837         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
34838         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
34839         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
34840         IX86_BUILTIN_VPERMIL2PS256.
34841         (MULTI_ARG_4_DF2_DI_I): Defined.
34842         (MULTI_ARG_4_DF2_DI_I1): Defined.
34843         (MULTI_ARG_4_SF2_SI_I): Defined.
34844         (MULTI_ARG_4_SF2_SI_I1): Defined.
34845         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
34846         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
34847         __builtin_ia32_vpermil2ps256.
34848         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
34849         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
34850         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
34851         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
34852         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
34853         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
34854         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
34855         CODE_FOR_xop_vpermil2v8sf3.
34856         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
34857         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
34858         * config/i386/xopintrin.h (_mm_permute2_pd): New.
34859         (_mm256_permute2_pd): New.
34860         (_mm_permute2_ps): New.
34861         (_mm256_permute2_ps): New.
34862
34863 2010-02-15  Nick Clifton  <nickc@redhat.com>
34864
34865         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
34866         boolean parameters.  Use emit_jump_insn when emitting a pop
34867         instruction containing a return insn.
34868         (push): Use 'true' rather than '1' as second parameter to F.
34869         (h8300_expand_prologue): Likewise.
34870         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
34871         (h8300_expand_epilogue): Likewise.
34872
34873 2010-02-15  Richard Guenther  <rguenther@suse.de>
34874
34875         PR middle-end/43068
34876         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
34877         if that is zero.
34878
34879 2010-02-15  Nick Clifton  <nickc@redhat.com>
34880
34881         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
34882         delta.
34883
34884 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
34885
34886         * intl.c (fake_ngettext): New function.
34887         * intl.h (fake_ngettext): Declare.
34888         (ngettext): Define macro.
34889         * collect2.c (notice_translated): New function.
34890         (main): Use notice_translated and ngettext.
34891         * collect2.h (notice_translated): Declare.
34892
34893 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
34894
34895         * reorg.c (delete_computation): Comment fixes.
34896         * caller-save.c (setup_save_areas): Idem.
34897         * sel-sched-dump.c (dump_lv_set): Idem.
34898         * rtl.def: Idem.
34899
34900 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34901
34902         * config/s390/s390.c (s390_sched_init): New function.
34903         (TARGET_SCHED_INIT): Target hook defined.
34904
34905 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
34906             Jack Howarth  <howarth@bromo.med.uc.edu>
34907             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
34908
34909         PR target/42982
34910         Partial revert of unintended change in fix for PR41605.
34911         * config/darwin.h: Fix typo.
34912         * config/darwin9.h: Same.
34913
34914 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34915
34916         * c-pch.c (pch_init): Clear v.
34917
34918 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34919
34920         PR middle-end/42930
34921         * graphite-scop-detection.c (graphite_can_represent_scev): Call
34922         graphite_can_represent_init for MULT_EXPR.
34923
34924 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34925
34926         PR middle-end/42914
34927         PR middle-end/42530
34928         * graphite-sese-to-poly.c (remove_phi): New.
34929         (translate_scalar_reduction_to_array): Call remove_phi.
34930
34931 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34932
34933         PR middle-end/42771
34934         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
34935         * graphite-clast-to-gimple.h (gloog): Update declaration.
34936         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
34937         * graphite-poly.h (struct poly_bb): Add missing comments.
34938         (struct scop): Add poly_scop_p field.
34939         (POLY_SCOP_P): New.
34940         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
34941         * graphite.c (graphite_transform_loops): Build the polyhedral
34942         representation for each scop before code generation.
34943         * sese.c (rename_variables_in_operand): Removed.
34944         (rename_variables_in_expr): Return the renamed expression.
34945         (rename_sese_parameters): New.
34946         * sese.h (rename_sese_parameters): Declared.
34947
34948 2010-02-11  Richard Guenther  <rguenther@suse.de>
34949
34950         PR tree-optimization/42998
34951         * tree-ssa-pre.c (create_expression_by_pieces): Treat
34952         POINTER_PLUS_EXPR properly.
34953
34954 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34955             Changpeng Fang  <changpeng.fang@amd.com>
34956
34957         PR middle-end/40886
34958         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
34959         the cost of an IV candidate when the IV is used in a test against zero.
34960
34961         * gcc.dg/tree-ssa/ivopts-3.c: New.
34962
34963 2010-02-11  Richard Guenther  <rguenther@suse.de>
34964
34965         PR lto/41664
34966         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
34967         pointer-vs-decl case by swapping refs.  Handle some cases
34968         of pointer-vs-decl disambiguations more conservatively.
34969         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
34970         to false after expanding.
34971
34972 2010-02-11  Richard Guenther  <rguenther@suse.de>
34973
34974         PR driver/43021
34975         * gcc.c (process_command): Handle LTO file@offset case more
34976         appropriately.
34977
34978 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34979
34980         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
34981         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
34982         of DEBUG_INSNs.
34983         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
34984
34985         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
34986         if MEM's mode size isn't DWARF2_ADDR_SIZE.
34987         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
34988         Optimize eq/ne comparisons when both arguments are known to be
34989         zero-extended.
34990         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
34991         Don't mask operands unnecessarily if they are known to be already
34992         zero-extended.
34993
34994 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
34995
34996         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
34997         instead of loop.
34998
34999 2010-02-10  Richard Guenther  <rguenther@suse.de>
35000
35001         PR tree-optimization/43017
35002         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
35003         for wrapping signed arithmetic.
35004
35005 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35006
35007         PR debug/43010
35008         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
35009         if no debug info should be emitted for it.
35010
35011 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
35012
35013         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
35014         note when flag_exceptions is set.
35015
35016 2010-02-10  Duncan Sands  <baldrick@free.fr>
35017
35018         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35019
35020 2010-02-10  Richard Guenther  <rguenther@suse.de>
35021
35022         PR c/43007
35023         * tree.c (get_unwidened): Handle constants.
35024         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35025
35026 2010-02-10  Martin Jambor  <mjambor@suse.cz>
35027
35028         PR lto/42985
35029         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35030         check for variable argument counts independently.
35031
35032 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35033
35034         PR target/42841
35035         * config/sh/sh.c (find_barrier): Increase length for non delayed
35036         conditional branches.
35037
35038 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35039
35040         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
35041
35042 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35043
35044         * builtins.c (set_builtin_user_assembler_name): Also handle
35045         ffs if int is smaller than word.
35046
35047 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
35048
35049         PR middle-end/42973
35050         * ira-conflicts.c (get_dup): Remove.
35051         (process_reg_shuffles): Add new parameter.  Use it as an
35052         additional guard for copy generation.
35053         (add_insn_allocno_copies): Rewrite.
35054
35055 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
35056
35057         * common.opt (fsched2-use-traces): Preserved for backward
35058         compatibility.
35059         * doc/invoke.texi: Remove the documentation about option
35060         -fsched2-use-traces.
35061         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
35062         flag_sched2_use_traces.
35063         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
35064         the backward compatibility flag section.
35065
35066 2010-02-09  Richard Guenther  <rguenther@suse.de>
35067
35068         PR tree-optimization/43008
35069         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
35070         make HEAP variables initialized from global memory if they
35071         are not known builtin functions.
35072         (find_func_aliases): Adjust.
35073
35074 2010-02-09  Richard Guenther  <rguenther@suse.de>
35075
35076         PR tree-optimization/43000
35077         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
35078         arithmetic manually.
35079
35080 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
35081
35082         PR tree-optimization/42931
35083         * tree-loop-linear.c (try_interchange_loops): Don't call
35084         double_int_mul if estimated_loop_iterations failed.
35085
35086 2010-02-08  Martin Jambor  <mjambor@suse.cz>
35087
35088         PR middle-end/42898
35089         * tree-sra.c (build_accesses_from_assign): Do not mark in
35090         should_scalarize_away_bitmap if stmt has volatile ops.
35091         (sra_modify_assign): Do not process assigns piecemeal if if stmt
35092         has volatile ops.
35093
35094 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
35095
35096         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
35097
35098 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
35099
35100         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
35101         before the pattern.
35102
35103 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
35104
35105         PR middle-end/42946
35106         * df-core.c (df_finish_pass): Change type of saved_flags to int.
35107
35108 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35109
35110         PR middle-end/42988
35111         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
35112         to unknown_dependence.
35113         (graphite_legal_transform_dr): Handle the unknown_dependence.
35114         (graphite_carried_dependence_level_k): Same.
35115
35116 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35117
35118         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
35119
35120 2010-02-07  Richard Guenther  <rguenther@suse.de>
35121
35122         PR middle-end/42991
35123         * expr.c (get_inner_reference): Always initialize *pbitsize.
35124
35125 2010-02-07  Richard Guenther  <rguenther@suse.de>
35126
35127         PR middle-end/42956
35128         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
35129         new ARRAY_REFs on variable size element or minimal index arrays.
35130         Complete.
35131         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
35132         gimple_fold_indirect_ref.
35133
35134 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
35135
35136         PR target/42957
35137         * arm.c (arm_override_options): Just return if the user has specified
35138         an invalid fpu name.
35139
35140 2010-02-03  Jason Merrill  <jason@redhat.com>
35141
35142         PR c++/42870
35143         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
35144         i386_pe_maybe_record_exported_symbol.
35145
35146 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
35147
35148         PR target/42924
35149         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35150         (pa_delegitimize_address): New function.
35151
35152 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
35153
35154         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
35155         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
35156
35157 2010-02-05  Richard Guenther  <rguenther@suse.de>
35158
35159         PR lto/42762
35160         * lto-streamer-in.c (get_resolution): Deal with references
35161         to undefined functions.
35162
35163 2010-02-05  Richard Guenther  <rguenther@suse.de>
35164
35165         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
35166         (fold_const_aggregate_ref): Likewise.
35167         (ccp_fold_stmt): Substitute loads.
35168         (maybe_fold_reference): Verify types before substituting.
35169         Unshare properly.
35170         (fold_gimple_assign): Unshare properly.
35171         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
35172
35173 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
35174
35175         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
35176         for rs6000_gen_cell_microcode.
35177
35178 2010-02-04  Richard Guenther  <rguenther@suse.de>
35179
35180         PR rtl-optimization/42952
35181         * dse.c (const_or_frame_p): Remove MEM handling.
35182
35183 2010-02-04  Nick Clifton  <nickc@redhat.com>
35184
35185         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
35186         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
35187         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
35188         (mn10300_asm_output_mi_thunk): New function.
35189         (mn10300_can_output_mu_thunk): New function.
35190         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
35191         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
35192         (FUNCTION_ARG): Delete incorrect comment.
35193
35194 2010-02-03  Jason Merrill  <jason@redhat.com>
35195
35196         PR c++/40138
35197         * fold-const.c (operand_equal_p): Handle erroneous types.
35198
35199 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
35200
35201         * config/h8300/h8300.md (can_delay): Fix attibute condition.
35202
35203 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
35204
35205         PR rtl-optimization/42941
35206         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
35207         of xmalloc.
35208
35209 2010-02-03  Jason Merrill  <jason@redhat.com>
35210
35211         PR c++/35652
35212         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
35213
35214 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
35215
35216         PR debug/42896
35217         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
35218         (cselib_reset_table): Renamed from...
35219         (cselib_reset_table_with_next_value): ... this.
35220         (cselib_get_next_uid): Renamed from...
35221         (cselib_get_next_unknown_value): ... this.
35222         * cselib.c (next_uid): Renamed from...
35223         (next_unknown_value): ... this.
35224         (cselib_clear_table): Adjust.
35225         (cselib_reset_table): Adjust.  Renamed from...
35226         (cselib_reset_table_with_next_value): ... this.
35227         (cselib_get_next_uid): Adjust.  Renamed from...
35228         (cselib_get_next_unknown_value): ... this.
35229         (get_value_hash): Use hash.
35230         (cselib_hash_rtx): Likewise.
35231         (new_cselib_val): Adjust.  Set and dump uid.
35232         (cselib_lookup_mem): Pass next_uid as hash.
35233         (cselib_subst_to_values): Likewise.
35234         (cselib_log_lookup): Dump uid.
35235         (cselib_lookup): Pass next_uid as hash.  Adjust.
35236         (cselib_process_insn): Adjust.
35237         (cselib_init): Initialize next_uid.
35238         (cselib_finish): Adjust.
35239         (dump_cselib_table): Likewise.
35240         * dse.c (canon_address): Dump value uid.
35241         * print-rtl.c (print_rtx): Print value uid.
35242         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
35243         (dvuid): New type.
35244         (dv_uid): New function, sort of renamed from...
35245         (dv_htab_hash): ... this, reimplemented in terms of it and...
35246         (dv_uid2hash): ... this.  New.
35247         (variable_htab_eq): Drop excess assertions.
35248         (tie_break_pointers): Removed.
35249         (canon_value_cmp): Compare uids.
35250         (variable_post_merge_New_vals): Print uids.
35251         (vt_add_function_parameters): Adjust.
35252         (vt_initialize): Reset table.  Adjust.
35253
35254 2010-02-03  Richard Guenther  <rguenther@suse.de>
35255
35256         PR tree-optimization/42944
35257         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
35258         (call_may_clobber_ref_p_1): Likewise.  Properly handle
35259         malloc and calloc clobbering errno.
35260
35261 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
35262
35263         * doc/invoke.texi: Fix name of sched1 dump.
35264
35265         * opts.c (decode_options): Set flag_tree_switch_conversion
35266         only conditionally on optimize >= 2.
35267
35268         * gcse.c: Assorted comment fixes in pass description.
35269
35270 2010-02-03  Anthony Green  <green@moxielogic.com>
35271
35272         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
35273         nop padding in order to maintain alignment of storage location of
35274         target function address.
35275         (moxie_trampoline_init): Store target function address at newly
35276         aligned location.
35277         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
35278         to 32.
35279         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
35280
35281 2010-02-03  Richard Guenther  <rguenther@suse.de>
35282
35283         PR middle-end/42927
35284         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
35285
35286 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35287
35288         * config.gcc: Reenable check for obsolete targets.
35289         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
35290         mips-sgi-irix6.[0-4]*.
35291
35292 2010-02-02  Nick Clifton  <nickc@redhat.com>
35293
35294         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
35295         constant size of 4 as being the same as 0.
35296         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
35297         can take values in the range 0..4.
35298
35299 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
35300
35301         PR java/41991
35302         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
35303         as _darwin10_Unwind_FindEnclosingFunction().
35304         * libgcc-libsystem.ver: New.
35305
35306 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
35307
35308         PR target/41399
35309         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
35310         implicitly set registers.
35311
35312 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
35313
35314         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
35315         (arm_override_options): Allow automatic selection of the thread
35316         pointer register if thumb2.
35317         (legitimize_pic_address): Improve code sequences for Thumb2.
35318         (arm_call_tls_get_addr): Likewise.
35319         (legitimize_tls_address): Likewise.
35320         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
35321         (pic_load_addr_32bit): ... this.  New named pattern.
35322         * thumb2.md (pic_load_addr_thumb2): Delete.
35323         (pic_load_dot_plus_four): Delete.
35324         (tls_load_dot_plus_four): New named pattern.
35325
35326 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35327
35328         PR libgomp/29986
35329         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
35330         Document fix for TLS bug.
35331
35332 2010-01-31  Richard Guenther  <rguenther@suse.de>
35333
35334         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
35335         conservatively correct.
35336
35337 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35338
35339         PR target/42850
35340         Revert:
35341         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35342
35343         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
35344
35345 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35346
35347         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
35348
35349 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
35350
35351         * config.gcc: Adjust order of makefile fragments for mingw targets.
35352
35353 2010-01-31  Richard Guenther  <rguenther@suse.de>
35354
35355         PR middle-end/42898
35356         * gimplify.c (gimplify_init_constructor): For volatile LHS
35357         initialize a temporary.
35358
35359 2010-01-31  Matthias Klose  <doko@ubuntu.com>
35360
35361         * configure.ac: Fix __stack_chk_fail check for cross builds configured
35362         --with-headers
35363         * configure: Regenerate.
35364
35365 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
35366
35367         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35368         the same alias set and their sizes different constantness.
35369         (aliasing_component_refs_p): Revert 2009-10-24 change.
35370
35371 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35372
35373         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
35374         unused.
35375
35376 2010-01-29  Richard Guenther  <rguenther@suse.de>
35377
35378         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
35379         Assert we successfully updated the call.
35380
35381 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
35382
35383         PR rtl-optimization/42889
35384         * df.h (df_set_bb_dirty_nonlr): New prototype.
35385         * df-core.c (df_set_bb_dirty_nonlr): New function.
35386         * df-scan.c (df_insn_rescan): Call it instead of
35387         df_set_bb_dirty for DEBUG_INSNs.
35388
35389 2010-01-29  Richard Guenther  <rguenther@suse.de>
35390
35391         PR middle-end/37448
35392         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
35393         quadratic behavior in most cases.
35394
35395 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
35396
35397         PR target/42891
35398         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
35399         in the call to gen_x86_movsicc_0_m1.
35400
35401 2010-01-28  Richard Guenther  <rguenther@suse.de>
35402
35403         PR tree-optimization/42871
35404         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
35405
35406 2010-01-28  Richard Guenther  <rguenther@suse.de>
35407
35408         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
35409         into call arguments.
35410
35411 2010-01-28  Richard Guenther  <rguenther@suse.de>
35412
35413         PR middle-end/42883
35414         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
35415         the forwarder if the destination is an EH landing pad.
35416
35417 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
35418
35419         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
35420         block list passed to gimple_duplicate_sese_tail.
35421         (parallelize_loops): Avoid parallelization when the function
35422         has_nonlocal_label.
35423         Avoid parallelization when the preheader is IRREDUCIBLE.
35424         Try to optimize when estimated_loop_iterations_int is unresolved.
35425         Add the loop's location to the dump file.
35426         * tree-cfg.c (add_phi_args_after_redirect): Remove.
35427         (gimple_duplicate_sese_tail): Remove the check for the latch.
35428         Redirect nexits to the exit block.
35429         Remove handling of the incoming edges to the latch.
35430         Redirect the backedge from the copied latch to the exit bb.
35431
35432 2010-01-28  Michael Matz  <matz@suse.de>
35433
35434         PR target/42881
35435         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
35436         Wrap force_reg into a sequence, emit it before user.
35437
35438 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
35439
35440         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
35441         (arm_rev): New.
35442         (arm_legacy_rev): Likewise.
35443         (thumb_legacy_rev): Likewise.
35444
35445 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
35446
35447         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
35448         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
35449         on MEM's address failed, try avoid_constant_pool_reference and
35450         recurse if it returned something different.
35451         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
35452         address, try avoid_constant_pool_reference and recurse if it
35453         returned something different.
35454         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
35455         address and avoid_constant_pool_reference returned something
35456         different, don't set have_address.
35457
35458 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
35459
35460         PR debug/42861
35461         * var-tracking.c (val_store): Add modified argument, obey it.
35462         Adjust callers.
35463         (count_uses): Move down logging of main.
35464         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
35465         don't need resolution.
35466         (emit_notes_in_bb): Likewise.
35467
35468 2010-01-27  Richard Guenther  <rguenther@suse.de>
35469
35470         PR middle-end/42878
35471         * tree-inline.c (remap_decl): Delay remapping of SSA name
35472         default definitions until we need them.
35473
35474 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
35475
35476         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35477         (rs6000_delegitimize_address): New function.
35478
35479         * config/s390/s390.c (s390_delegitimize_address): Call
35480         delegitimize_mem_from_attrs.
35481
35482         PR middle-end/42874
35483         * tree-inline.c (cannot_copy_type_1): Removed.
35484         (copy_forbidden): Don't forbid copying of functions containing
35485         records/unions with variable length fields.
35486
35487 2010-01-27  Christian Bruel  <christian.bruel@st.com>
35488
35489         Revert:
35490         PR target/42841
35491         * config/sh/sh.c (find_barrier): Increase length for non delayed
35492         conditional branches.
35493
35494 2010-01-27  Matthias Klose  <doko@ubuntu.com>
35495
35496         * configure.ac (gnu-unique-object): Fix ldd version check.
35497         * configure: Regenerate.
35498
35499 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35500
35501         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
35502         HAVE_GNU_AS value.
35503         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
35504         Test for HAVE_GNU_AS value.
35505
35506 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35507
35508         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
35509         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
35510         INT64_TYPE): Define.
35511         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
35512         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
35513         INT_LEAST64_TYPE): Define.
35514         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
35515         UINT_LEAST64_TYPE): Define.
35516         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
35517         INT_FAST64_TYPE): Define.
35518         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
35519         UINT_FAST64_TYPE): Define.
35520         (INTMAX_TYPE, UINTMAX_TYPE): Define.
35521         (INTPTR_TYPE, UINTPTR_TYPE): Define.
35522         (SIG_ATOMIC_TYPE): Define.
35523
35524 2010-01-26  Richard Guenther  <rguenther@suse.de>
35525
35526         * df-scan.c (df_scan_set_bb_info): Remove assert.
35527         (df_insn_rescan_debug_internal): Merge asserts.
35528         (df_install_ref): Likewise.
35529         (df_mark_reg): Use bitmap_set_range.
35530         (df_hard_reg_used_p): Remove assert.
35531         (df_hard_reg_used_count): Likewise.
35532
35533 2010-01-26  Richard Guenther  <rguenther@suse.de>
35534
35535         PR rtl-optimization/42685
35536         * web.c (web_main): Ignore DEBUG_INSNs.
35537
35538 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
35539
35540         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
35541
35542         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
35543         Fix types of fndecl and arglist parameters.
35544
35545 2010-01-26  Richard Guenther  <rguenther@suse.de>
35546
35547         PR middle-end/42806
35548         * tree-eh.c (unsplit_eh): Skip debug insns.
35549
35550 2010-01-26  Richard Guenther  <rguenther@suse.de>
35551
35552         PR tree-optimization/42250
35553         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
35554
35555 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
35556
35557         PR fortran/42866
35558         * omp-low.c (expand_omp_sections): Only use single_pred if
35559         l2_bb is single_pred_p.
35560
35561 2010-01-25  Christian Bruel  <christian.bruel@st.com>
35562
35563         PR target/42841
35564         * config/sh/sh.c (find_barrier): Increase length for non delayed
35565         conditional branches.
35566         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
35567
35568 2010-01-24  David S. Miller  <davem@davemloft.net>
35569
35570         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
35571         define if not using GAS.
35572         * config/sparc/sparc.c (sparc_elf_asm_named_section):
35573         Likewise.  Delete SECTION_MERGE code, which is only applicable
35574         when using GAS.
35575
35576 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
35577
35578         PR c++/42748
35579         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
35580         mangling of va_list in system headers.
35581
35582 2010-01-23  Toon Moene  <toon@moene.org>
35583
35584         * tree-predcom.c (combine_chains): Return NULL, not false.
35585
35586 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
35587
35588         * tree-loop-distribution.c (distribute_loop): Fix declaration and
35589         initialization of variable res to agree with return type.
35590
35591 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
35592
35593         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
35594         * tree-sra.c: Add include of expr.h.
35595
35596 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
35597
35598         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
35599         insert the debug stmt on the single non-EH edge from the stmt.
35600
35601 2010-01-22  Richard Henderson  <rth@redhat.com>
35602
35603         PR tree-opt/42833
35604         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
35605         the RHS until after generate_subtree_copies has insertted its
35606         code before the current statement.
35607
35608 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
35609
35610         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
35611
35612         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
35613
35614 2010-01-21  Martin Jambor  <mjambor@suse.cz>
35615
35616         PR tree-optimization/42585
35617         * tree-sra.c (struct access): New field grp_total_scalarization.
35618         (dump_access): Dump the new field.
35619         (should_scalarize_away_bitmap): New variable.
35620         (cannot_scalarize_away_bitmap): Likewise.
35621         (sra_initialize): Allocate new bitmaps.
35622         (sra_deinitialize): Free new bitmaps.
35623         (create_access_1): New function.
35624         (create_access): Parts moved to create_access_1.
35625         (type_consists_of_records_p): New function.
35626         (completely_scalarize_record): Likewise.
35627         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
35628         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
35629         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
35630         access.
35631         (analyze_all_variable_accesses): Completely scalarize small eligible
35632         records.
35633
35634 2010-01-21  Martin Jambor  <mjambor@suse.cz>
35635
35636         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
35637
35638 2010-01-21  Andrew Haley  <aph@redhat.com>
35639
35640         * gcc.c (process_command): Move lang_specific_driver before
35641         setting cc_libexec_prefix.
35642
35643 2010-01-21  Richard Guenther  <rguenther@suse.de>
35644
35645         PR middle-end/19988
35646         * fold-const.c (negate_expr_p): Pretend only negative
35647         real constants are easily negatable.
35648
35649 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
35650             Jason Merrill  <jason@redhat.com>
35651
35652         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
35653         (TYPE_TRANSPARENT_AGGR): this, for union and record.
35654         * calls.c (initialize argument_information): Handle it.
35655         * c-common.c (handle_transparent_union_attribute): Use new name.
35656         * c-decl.c (finish_struct): Ditto.
35657         * c-typeck.c (type_lists_compatible_p): Ditto.
35658         (convert_for_assignment): Use new name and also handle record.
35659         * function.c (aggregate_value_p): Handle it.
35660         (pass_by_reference): Ditto.
35661         (assign_parm_data_types): Ditto.
35662         * print-tree.c (print_node): Ditto.
35663         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
35664         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
35665         * tree.c (first_field): New fn.
35666
35667 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
35668
35669         PR target/42818
35670         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
35671         even when linking statically, for now.
35672
35673 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
35674
35675         PR debug/42715
35676         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
35677         without a cselib val.
35678         (count_uses): Accept MO_VAL_SET with no val on stores.
35679         (add_stores): Likewise.
35680
35681 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35682
35683         * var-tracking.c (check_value_val): Add a compile time assertion.
35684         (dv_is_decl_p): Simplify.
35685         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
35686         gcc_assert if ENABLE_CHECKING.
35687
35688 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
35689
35690         PR debug/42782
35691         * var-tracking.c: Include tree-flow.h.
35692         (mem_dies_at_call): New.
35693         (dataflow_set_preserve_mem_locs): Use it.
35694         (dataflow_set_remove_mem_locs): Likewise.
35695         (dump_var): Renamed from dump_variable.  Adjust all callers.
35696         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
35697         * Makefile.in (var-tracking.o): Adjust deps.
35698
35699 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
35700
35701         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
35702
35703 2010-01-20  Richard Guenther  <rguenther@suse.de>
35704
35705         PR tree-optimization/42717
35706         * tree-ssa-dce.c (get_live_post_dom): Remove.
35707         (forward_edge_to_pdom): Take an arbitrary edge to copy
35708         degenerate PHI args from.
35709         (remove_dead_stmt): Use the first post-dominator even if it
35710         does not contain live statements as redirection destination.
35711
35712 2010-01-20  Richard Guenther  <rguenther@suse.de>
35713
35714         * tree-inline.c (estimate_num_insns): Handle EH builtins.
35715
35716 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35717
35718         * sel-sched.c (create_speculation_check): Remove set but not used
35719         variable twin.
35720         (try_transformation_cache): Remove set but not used variable ds.
35721         (calculate_privileged_insns): Remove set but not used variables
35722         cur_insn and min_spec_insn.
35723         (find_best_expr): Remove set but not used variable avail_n.
35724         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
35725         variable e.
35726         * cgraphunit.c (assemble_thunk): Remove set but not used variable
35727         false_label.
35728         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
35729         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
35730         new_scop_exit_edge.
35731
35732 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
35733
35734         PR bootstrap/42786
35735         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
35736         cpu types.  Add support for *-sse3 cpu types.
35737         (x86_64-*-*): Ditto.
35738
35739 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35740
35741         PR middle-end/42803
35742         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
35743         argument, call initializer_constant_valid_p_1 instead of
35744         initializer_constant_valid_p, pass CACHE to it, return NULL
35745         immediately if first call returns NULL.
35746         (initializer_constant_valid_p_1): New function.
35747         (initializer_constant_valid_p): Use it.
35748
35749 2010-01-20  Thomas Quinot  <quinot@adacore.com>
35750
35751         * tree.def (PLACEHOLDER_EXPR): Fix comment.
35752
35753 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35754
35755         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
35756         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
35757         (loc_list_from_tree): Don't handle unsigned division.  Handle
35758         signed modulo using DW_OP_{over,over,div,mul,minus}.
35759         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
35760         modulo instead of signed.
35761
35762 2010-01-20  DJ Delorie  <dj@redhat.com>
35763
35764         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
35765         (Fpa): Pass it
35766         (h8300_emit_stack_adjustment): Propogate it.
35767         (push): Pass it.
35768         (h8300_expand_prologue): Likewise.
35769         (h8300_expand_epilogue): Likewise.
35770
35771 2010-01-19  Michael Matz  <matz@suse.de>
35772
35773         PR tree-optimization/41783
35774         * tree-data-ref.c (toplevel): Include flags.h.
35775         (dump_data_dependence_relation):  Also dump the inputs if the
35776         result will be unknown.
35777         (split_constant_offset_1): Look through some conversions.
35778         * tree-predcom.c (determine_roots_comp): Restart a new chain if
35779         the offset from last element is too large.
35780         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
35781         (reassociate_to_the_same_stmt): Handle vector registers.
35782         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
35783         (e.g. conversions).
35784         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
35785         wide_prolog_niters argument, emit widening instructions.
35786         (vect_do_peeling_for_alignment): Adjust caller, use widened
35787         variant of the iteration cound.
35788         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
35789
35790 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35791
35792         PR target/38697
35793         * config/arm/neon-testgen.m (emit_automatics): New parameter
35794         features. Adjust for Fixed_return_reg feature.
35795         (test_intrinsic): Call emit_automatics with new feature.
35796         * config/arm/neon.ml: Update copyright years.
35797         (features): New Fixed_return_reg feature.
35798         (ops): Update feature for Vget_low.
35799
35800 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
35801
35802         PR tree-optimization/42719
35803         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
35804         stmt uses.
35805
35806         PR debug/42728
35807         * fwprop.c (all_uses_available_at): Return false if def_set dest
35808         is a REG that is used in def_insn.
35809
35810 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
35811
35812         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
35813
35814         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
35815         Add argument names.
35816
35817         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
35818
35819         * target.h (struct gcc_target) <secondary_reload>: Change type
35820         of last argument to secondary_reload_info *.
35821
35822 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
35823
35824         PR target/42774
35825         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
35826         memory references with unaligned offsets.  Remove CQImode handling.
35827         (unaligned_memory_operand): Return 1 for memory references with
35828         unaligned offsets.  Remove CQImode handling.
35829
35830 2010-01-18  Richard Guenther  <rguenther@suse.de>
35831
35832         PR middle-end/39954
35833         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
35834         builtin calls.
35835
35836 2010-01-18  Richard Guenther  <rguenther@suse.de>
35837
35838         PR tree-optimization/42781
35839         * tree-ssa-structalias.c (find_what_var_points_to): Skip
35840         restrict processing only if the original variable was artificial.
35841
35842 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
35843
35844         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
35845         find number of popped argument bytes.
35846
35847         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
35848         Fix the text that describes the return value for invalid insns.
35849
35850         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
35851
35852         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
35853         Clarify what 'cost of the -dependence' is.  Fix quoting.
35854
35855         * toplev.c (default_get_pch_validity): Rename argument to "sz".
35856         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
35857
35858 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
35859
35860         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35861         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
35862
35863 2010-01-17  Richard Guenther  <rguenther@suse.de>
35864
35865         PR middle-end/42248
35866         * function.c (split_complex_args): Take a VEC to modify.
35867         (assign_parms_augmented_arg_list): Build a VEC instead of
35868         a chain of PARM_DECLs.
35869         (assign_parms_unsplit_complex): Take a VEC of arguments.
35870         Do not fixup unmodified parms.
35871         (assign_parms): Deal with the VEC.
35872         (gimplify_parameters): Likewise.
35873
35874 2010-01-17  Richard Guenther  <rguenther@suse.de>
35875
35876         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
35877         node existence check.
35878         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
35879         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
35880         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
35881         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
35882         (gimple_execute_on_growing_pred): Likewise.
35883
35884 2010-01-17  Richard Guenther  <rguenther@suse.de>
35885
35886         PR tree-optimization/42773
35887         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
35888         (compute_antic_aux): Likewise.
35889         (compute_partial_antic_aux): Likewise.
35890
35891 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
35892
35893         PR debug/42767
35894         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
35895         and US_TRUNCATE.
35896
35897 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
35898
35899         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
35900         appearance.
35901
35902         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
35903         Fix markup for strict argument.
35904
35905         (TARGET_SCHED_REORDER2): Fix argument types.
35906
35907         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
35908         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
35909
35910         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
35911         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
35912
35913         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
35914         Add argument name.
35915
35916         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
35917         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
35918         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
35919         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
35920         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
35921
35922         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
35923
35924         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
35925
35926         (TARGET_ASM_RELOC_RW_MASK): Add return type.
35927         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
35928
35929         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
35930
35931         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
35932         Use prototype.
35933
35934         (TARGET_ASM_NAMED_SECTION): Fix argument list.
35935
35936         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
35937         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
35938
35939         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
35940
35941         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
35942
35943         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
35944         referring to it.  Fix language.
35945
35946         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
35947
35948         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
35949
35950         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
35951
35952         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
35953
35954         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
35955         '@var{stream}.  Remove stray 'and'.
35956
35957         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
35958
35959         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
35960
35961         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
35962
35963         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
35964         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
35965
35966         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
35967         Fix description of return value.
35968         Rename argument "sz" to "len."
35969
35970         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
35971         Clarify meaning of 'true' return value.
35972
35973         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
35974
35975         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
35976         rep_mode versus mode_rep.
35977
35978         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
35979
35980         (TARGET_BUILTIN_DECL): Fix name.
35981
35982         (TARGET_COMMUTATIVE_P): Fix type of first argument.
35983
35984         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
35985
35986         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
35987
35988         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
35989
35990         (TARGET_RELAXED_ORDERING): Use @deftypevr.
35991
35992         (TARGET_GET_DRAP_RTX): Note that this is a hook.
35993         Clarify language.
35994
35995         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
35996         Rename argument tm_fn to md_fn.
35997
35998         (TARGET_OPTION_PRINT): Fix argument list.
35999
36000 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
36001
36002         PR target/42664
36003         * config/i386/i386.c (ix86_fixup_binary_operands):
36004         Revert FMA4 fixup of operands.
36005
36006 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36007
36008         PR other/42525
36009         * Makefile.in (write_entries_to_file, install-plugin):
36010         Use \012 instead of \n with tr.
36011
36012 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
36013
36014         * configure.ac (HAVE_AS_REF): New C macro.
36015         * configure: Regenerate.
36016         * config.in: Likewise.
36017         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
36018         if HAVE_AS_REF.
36019         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36020         if HAVE_AS_REF.
36021
36022 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
36023
36024         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36025
36026         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36027
36028         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36029
36030         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36031
36032         (TARGET_IN_SMALL_DATA_P): Fix argument type.
36033
36034         (TARGET_BINDS_LOCAL_P): Fix argument type.
36035
36036         (TARGET_ASM_FILE_END): Use prototype.
36037
36038         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
36039
36040         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
36041
36042         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
36043
36044         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
36045
36046         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
36047         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
36048
36049         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
36050         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
36051
36052         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
36053         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
36054         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
36055         (TARGET_ADDR_SPACE_CONVERT): Likewise.
36056
36057         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
36058
36059         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
36060
36061         (TARGET_INIT_BUILTINS): Use prototype.
36062
36063         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
36064         Put 'const char *' in braces.  Fix parameter types.
36065         (TARGET_INVALID_CONVERSION): Fix parameter types.
36066         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
36067         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
36068
36069         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
36070         Fix argument type.
36071
36072         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
36073
36074         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
36075
36076 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
36077
36078         * doc/tm.texi (TARGET_HELP): Fix return type.
36079
36080         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
36081         in braces.  Fix argument types.
36082
36083         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
36084
36085         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
36086
36087         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
36088
36089         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
36090         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
36091
36092         (TARGET_MANGLE_TYPE): Fix argument types.
36093
36094         (TARGET_IRA_COVER_CLASSES): Use prototype.
36095
36096         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
36097
36098         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
36099
36100         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
36101
36102         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
36103
36104         (TARGET_CALLEE_COPIES): Fix argument types.
36105
36106         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
36107
36108         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
36109
36110         (TARGET_FUNCTION_VALUE): Fix argument types.
36111
36112         (TARGET_RETURN_IN_MSB): Fix argument type.
36113
36114         (TARGET_RETURN_IN_MEMORY): Fix argument types.
36115
36116         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
36117
36118         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
36119
36120         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
36121         agree with return type.
36122
36123         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
36124
36125 2010-01-15  Jing Yu  <jingyu@google.com>
36126
36127         PR rtl-optimization/42691
36128         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
36129         a pseudo to a constant and are merged, and adjust comments.
36130
36131 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
36132
36133         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
36134
36135 2010-01-15  Richard Guenther  <rguenther@suse.de>
36136
36137         PR middle-end/42739
36138         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
36139         labels of computed or non-local gotos to the destination.
36140         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
36141         landing pad label is the first label.
36142
36143 2010-01-15  Richard Guenther  <rguenther@suse.de>
36144
36145         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
36146
36147 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
36148
36149         PR target/42747
36150         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
36151         to allow generation of the xssqrtdp instruction on power7.
36152         (sqrtdf2_fpr): Ditto.
36153
36154 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36155
36156         PR middle-end/42674
36157         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
36158         functions with noreturn attribute.
36159
36160         PR c++/42608
36161         * varasm.c (declare_weak): Add weak attribute to decl if it
36162         doesn't have one already.
36163         (assemble_external): Only add decls to weak_decls if they also
36164         have weak attribute.
36165
36166 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
36167
36168         * var-tracking.c (var_reg_delete): Don't delete the association
36169         between REGs and values or one-part variables if the register
36170         isn't clobbered.
36171
36172 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36173
36174         PR debug/42657
36175         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
36176         because its first operand is a non-localized variable.
36177
36178 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36179
36180         PR tree-optimization/42706
36181         * tree-sra.c (encountered_recursive_call): New variable.
36182         (encountered_unchangable_recursive_call): Likewise.
36183         (sra_initialize): Initialize both new variables.
36184         (callsite_has_enough_arguments_p): New function.
36185         (scan_function): Call decl and flags check only for IPA-SRA, check
36186         whether there is a recursive call and whether it has enough arguments.
36187         (all_callers_have_enough_arguments_p): New function.
36188         (convert_callers): Look for recursive calls only when
36189         encountered_recursive_call is set.
36190         (ipa_early_sra): Bail out either if
36191         !all_callers_have_enough_arguments_p or
36192         encountered_unchangable_recursive_call.
36193
36194 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36195
36196         * sel-sched.c: Add 2010 to copyright years.
36197         * sel-sched-ir.c: Likewise.
36198         * sel-sched-ir.h: Likewise.
36199
36200 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36201
36202         PR tree-optimization/42714
36203         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
36204         constructors specially.
36205
36206 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36207
36208         * config/i386/drivers-i386.c (detect_caches_intel):
36209         Add l2sizekb parameter and fill in.
36210         (host_detect_local_cpu): Add l2sizekb, fill in.
36211         Add Atom small cache heuristic.
36212
36213 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36214
36215         * config/i386/drivers-i386.c (detect_caches_cpuid4):
36216         Add level3 parameter and fill in.
36217         (detect_caches_intel): Handle level3 cache.
36218
36219 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36220
36221         * config/i386/drivers-i386.c (host_detect_local_cpu):
36222         Fix core duo detection.
36223
36224 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36225
36226         * config/i386/drivers-i386.c (host_detect_local_cpu):
36227         Fix Atom detection.
36228
36229 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36230
36231         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
36232         (rs6000_variable_issue_1): this.  Use...
36233         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
36234
36235 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36236
36237         * sel-sched-ir.c (sel_restore_other_notes): Rename to
36238         sel_restore_notes.  Update all callers.  Call reemit_notes
36239         for all insns.
36240
36241 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36242
36243         PR rtl-optimization/42246
36244         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
36245         loops.
36246
36247 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36248
36249         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
36250         all successors is the same as number of successors in current region.
36251
36252 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36253
36254         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
36255         to rename is not separable.  Otherwise check that its LHS is not NULL.
36256
36257 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36258
36259         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
36260
36261 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36262
36263         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
36264         available registers when failed to discover LHS register class.
36265         Fix indentation.  Update comment.
36266
36267 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36268             Alexander Monakov  <amonakov@ispras.ru>
36269
36270         PR rtl-optimization/42389
36271         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
36272         to can_issue_more.
36273         (advance_state_on_fence): Likewise.
36274         (sel_target_adjust_priority): Print debug output only when
36275         sched_verbose >= 4, not 2.
36276         (get_expr_cost): Do not issue all unique insns on the next cycle.
36277         (fill_insns): Initialize can_issue_more from the value saved
36278         with the fence.
36279         * sel-sched-ir.c (flist_add): New parameter issue_more.
36280         Init FENCE_ISSUE_MORE with it.
36281         (merge_fences): Likewise.
36282         (init_fences): Update call to flist_add.
36283         (add_to_fences, add_clean_fence_to_fences)
36284         (add_dirty_fence_to_fences): Likewise.
36285         (move_fence_to_fences): Update call to merge_fences.
36286         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
36287         sched groups.
36288         * sel-sched-ir.h (struct _fence): New field issue_more.
36289         (FENCE_ISSUE_MORE): New accessor macro.
36290
36291 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36292
36293         PR rtl-optimization/42388
36294         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
36295         that have no predecessors nor successors.  Do not call move_bb_info
36296         for empty blocks outside of current region.
36297
36298 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36299
36300         PR rtl-optimization/42294
36301         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
36302         * sel-sched.c (move_exprs_to_boundary): Transitively add all
36303         originators' originators.
36304
36305 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36306
36307         PR rtl-optimization/39453
36308         PR rtl-optimization/42246
36309         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
36310         for pipelining_p.
36311         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
36312
36313 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36314             Alexander Monakov  <amonakov@ispras.ru>
36315
36316         PR middle-end/42245
36317         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
36318         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
36319         argument.  Update all callers.
36320         (tidy_control_flow): ... and here.  Recompute topological order
36321         of basic blocks in region if necessary.
36322         (sel_redirect_edge_and_branch): Change return type.  Return true
36323         if topological order might have been invalidated.
36324         (purge_empty_blocks): Export and move from...
36325         * sel-sched.c (purge_empty_blocks): ... here.
36326         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
36327         (maybe_tidy_empty_bb): Delete prototype.
36328         (purge_empty_blocks): Declare.
36329
36330 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36331
36332         PR rtl-optimization/42249
36333         * sel-sched.c (try_replace_dest_reg): When chosen register
36334         and original register is the same, do not bail out early, but
36335         still check all original insns for validity of replacing destination
36336         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
36337         in this case.
36338
36339 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36340
36341         PR c/42721
36342         Port from no-undefined-overflow branch:
36343         2009-03-09  Richard Guenther  <rguenther@suse.de>
36344
36345         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
36346
36347 2010-01-14  Richard Guenther  <rguenther@suse.de>
36348
36349         PR lto/42665
36350         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
36351
36352 2010-01-14  Ira Rosen  <irar@il.ibm.com>
36353
36354         PR tree-optimization/42709
36355         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
36356         as scalar type in creation of constant vector operand.
36357
36358 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36359
36360         PR testsuite/42414
36361         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
36362         (check-parallel-%): Match `testsuite' directory component only
36363         at the end.
36364
36365 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
36366
36367         PR translation/39521
36368         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
36369         strings with _().
36370
36371 2010-01-13  Richard Guenther  <rguenther@suse.de>
36372
36373         PR tree-optimization/42730
36374         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
36375         offset zero.
36376
36377 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
36378
36379         PR target/pr42542
36380         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
36381         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
36382         them signed.
36383
36384 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
36385
36386         * config/bfin/libgcc-bfin.ver: Regenerate based on current
36387         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
36388         ___umulsi3_highpart.
36389
36390         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
36391         rather than schedule_insns if the pass is enabled.
36392
36393 2010-01-13  Martin Jambor  <mjambor@suse.cz>
36394
36395         PR tree-optimization/42704
36396         * tree-sra.c (sra_modify_assign): Do not delete assignments to
36397         SSA_NAMEs.
36398
36399 2010-01-13  Martin Jambor  <mjambor@suse.cz>
36400
36401         PR tree-optimization/42703
36402         * tree-sra.c (analyze_access_subtree): Check that we can build a
36403         reference to the original data within the aggregate.
36404
36405 2010-01-13  Richard Guenther  <rguenther@suse.de>
36406
36407         PR tree-optimization/42705
36408         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
36409
36410 2010-01-13  Richard Guenther  <rguenther@suse.de>
36411
36412         PR middle-end/42716
36413         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
36414
36415 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36416
36417         PR debug/41371
36418         * var-tracking.c (values_to_unmark): New variable.
36419         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36420         values_to_unmark vector.  Moved body to...
36421         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36422         instead queue it into values_to_unmark vector.
36423         (vt_find_locations): Free values_to_unmark vector.
36424
36425 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
36426
36427         * config/s390/s390.c (override_options): Set
36428         default of max-pending-list-length to 256
36429
36430 2010-01-13  Richard Guenther  <rguenther@suse.de>
36431
36432         PR lto/42678
36433         * tree-pass.h (PROP_gimple_lcx): New.
36434         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
36435         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
36436         before the final cleanup_eh.
36437         (dump_properties): Dump PROP_gimple_lcx.
36438         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
36439         (tree_lower_complex_O0): Remove.
36440         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
36441         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
36442         tree_lower_complex, schedule TODO_update_ssa.
36443         * lto-streamer-out.c (output_function): Stream the functions
36444         properties.
36445         * lto-streamer-in.c (input_function): Likewise.
36446         (lto_read_body): Do not override them here.
36447
36448 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
36449
36450         PR c/42708
36451         * c-typeck.c (build_c_cast): Fold value cast to union type before
36452         wrapping it in a CONSTRUCTOR.
36453
36454 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
36455
36456         PR rtl-optimization/42699
36457         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
36458         involved.
36459
36460 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36461
36462         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36463         SUBTARGET_WARN_UNUSED_SPEC): Move ...
36464         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36465         SUBTARGET_WARN_UNUSED_SPEC): ... here
36466         * config/mips/iris5.h (LIBGCC_SPEC): Define.
36467
36468 2010-01-12  Julian Brown  <julian@codesourcery.com>
36469
36470         * config/arm/neon-schedgen.ml (Utils): Don't try to
36471         open missing module.
36472         (find_with_result): New.
36473
36474 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
36475
36476         PR debug/42662
36477         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
36478         sharing when canonicalizing ({lt,ge}u (plus a b) b).
36479
36480         PR tree-optimization/42645
36481         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
36482         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
36483         decl_map, set processing_debug_stmt to -1 and return name without
36484         any remapping.
36485
36486 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
36487
36488         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
36489         binutils version, and reword target configuration description.
36490
36491 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
36492
36493         * config/avr/avr.h (LINKER_NAME): Remove.
36494
36495 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
36496
36497         PR target/42416
36498         * config/rs6000/rs6000.c (rs6000_override_options): On targets
36499         that support VSX, warn for -mno-altivec if vsx is not disabled,
36500         and disable vsx.
36501
36502 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
36503             Shujing Zhao  <pearly.zhao@oracle.com>
36504
36505         PR translation/42469
36506         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
36507         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
36508         character between option name and help text.
36509         * c.opt (imultilib): Likewise.
36510
36511 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
36512
36513         * lto-streamer-out.c (output_unreferenced_globals): Output static
36514         variables.
36515
36516 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
36517
36518         PR rtl-optimization/42621
36519         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
36520         optimizing for size.
36521         (duplicate_computed_gotos): Remove now-redundant check.
36522
36523 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
36524
36525         PR target/37454
36526         * configure.ac: Save and restore LDFLAGS and LIBS
36527         * configure: Regenerate.
36528
36529 2010-01-10  Richard Guenther  <rguenther@suse.de>
36530
36531         PR middle-end/42667
36532         * builtins.c (fold_builtin_strlen): Add type argument and
36533         convert the resulting length to it.
36534         (fold_builtin_1): Adjust.
36535
36536 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
36537
36538         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
36539         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
36540         1 insn.
36541         (num_insns_constant_wide): Adjust for that change.
36542
36543 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36544
36545         PR debug/42631
36546         * web.c (union_defs): Add used argument, to combine uses of
36547         uninitialized regs.
36548         (entry_register): Adjust type and tests of used argument.
36549         (web_main): Widen used for new use.  Pass it to union_defs.
36550         * df.h (union_defs): Adjust prototype.
36551
36552 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36553
36554         PR debug/42630
36555         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
36556         uses in new incoming argument.  Free body.
36557         (reset_debug_uses_in_loop): New.
36558         (analyze_insn_to_expand_var): Call the latter if the former found
36559         anything.  Fix whitespace.  Reject invalid dest overlaps before
36560         going through all insns in the loop.
36561
36562 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36563
36564         PR debug/42629
36565         * haifa-sched.c (dying_use_p): Debug insns don't count.
36566
36567 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36568
36569         PR middle-end/42363
36570         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
36571         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
36572         (verify_gimple_call): Reject LHS in noreturn calls.
36573
36574 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36575
36576         PR debug/42604
36577         PR debug/42395
36578         * tree-vect-loop-manip.c (adjust_info): New type.
36579         (adjust_vec): New pointer to vector.
36580         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
36581         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
36582         (slpeel_update_phis_for_duplicate_loop): Use them.
36583         (slpeel_update_phi_nodes_for_guard1): Likewise.
36584         (slpeel_update_phi_nodes_for_guard2): Likewise.
36585         (slpeel_tree_peel_loop_to_edge): Likewise.
36586         (vect_update_ivs_after_vectorizer): Likewise.
36587
36588 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36589
36590         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
36591         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
36592
36593 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36594
36595         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
36596         bogus uninitialized warning.
36597
36598 2010-01-09  Richard Guenther  <rguenther@suse.de>
36599
36600         PR middle-end/42512
36601         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
36602         the evolution is compatible with the initial condition.
36603
36604 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
36605
36606         * gcc.c (process_command): Update copyright notice dates.
36607         * gcov.c (print_version): Likewise.
36608         * gcov-dump.c (print_version): Likewise.
36609         * mips-tfile.c (main): Likewise.
36610         * mips-tdump.c (main): Likewise.
36611
36612 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
36613
36614         PR target/41885
36615         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
36616         (rotlhi3): Delete.
36617         (rotlhi3_8): Delete.
36618         (rotlsi3): Delete.
36619         (rotlsi3_8): Delete.
36620         (rotlsi3_16): Delete.
36621         (rotlsi3_24): Delete.
36622         (rotl<mode>3): New.
36623         (*rotw<mode>3): New.
36624         (*rotb<mode>3): New.
36625         * config/avr/avr.c (avr_rotate_bytes): New function.
36626         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
36627
36628 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
36629
36630         PR target/37454
36631         * configure.ac: Modify -rdynamic check.
36632         * configure: Regenerate.
36633
36634 2010-01-08  DJ Delorie  <dj@redhat.com>
36635
36636         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
36637         register popping order.
36638
36639 2010-01-08  Richard Guenther  <rguenther@suse.de>
36640
36641         PR lto/42528
36642         * c.opt (fsigned-char): Also let LTO handle this option.
36643         (funsigned-char): Likewise.
36644
36645 2010-01-07  Richard Guenther  <rguenther@suse.de>
36646
36647         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
36648         (gimple_op): Likewise.
36649         (gimple_op_ptr): Likewise.
36650         (gimple_assign_set_lhs): Remove gcc_assert.
36651         (gimple_assign_set_rhs1): Likewise.
36652         (gimple_assign_set_rhs2): Likewise.
36653         (gimple_call_set_lhs): Likewise.
36654         (gimple_call_set_fn): Likewise.
36655         (gimple_call_set_fndecl): Likewise.
36656         (gimple_call_fndecl): Likewise.
36657         (gimple_call_return_type): Likewise.
36658         (gimple_call_set_chain): Likewise.
36659         (gimple_call_num_args): Likewise.
36660         (gimple_call_set_arg): Likewise.
36661         (gimple_cond_set_code): Likewise.
36662         (gimple_cond_set_lhs): Likewise.
36663         (gimple_cond_set_rhs): Likewise.
36664         (gimple_cond_set_true_label): Likewise.
36665         (gimple_cond_set_false_label): Likewise.
36666         (gimple_label_set_label): Likewise.
36667         (gimple_goto_set_dest): Likewise.
36668         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
36669         (gimple_debug_bind_get_value): Likewise.
36670         (gimple_debug_bind_get_value_ptr): Likewise.
36671         (gimple_debug_bind_set_var): Likewise.
36672         (gimple_debug_bind_set_value): Likewise.
36673         (gimple_debug_bind_reset_value): Likewise.
36674         (gimple_debug_bind_has_value_p): Likewise.
36675         (gimple_return_retval_ptr): Remove gcc_assert.
36676         (gimple_return_retval): Likewise.
36677         (gimple_return_set_retval): Likewise.
36678         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
36679         (safe_referenced_var_iterator): Remove.
36680         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
36681         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
36682         (fill_referenced_var_vec): Remove.
36683         (first_readonly_imm_use): Remove redundant gcc_assert.
36684         (phi_arg_index_from_use): Combine gcc_asserts.
36685         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
36686         (first_imm_use_stmt): Remove redundant gcc_assert.
36687         * tree-cfg.c (verify_gimple_call): Verify function and chain
36688         operands.  Verify arguments.
36689         (verify_types_in_gimple_stmt): Verify condition code and labels.
36690
36691 2010-01-07  Richard Guenther  <rguenther@suse.de>
36692
36693         PR tree-optimization/42641
36694         * sese.c (rename_map_elt_info): Use the SSA name version, do
36695         not hash pointers.
36696
36697 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
36698
36699         PR tree-optimization/42625
36700         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
36701         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
36702
36703 2010-01-07  Duncan Sands  <baldrick@free.fr>
36704
36705         * Makefile.in (PLUGIN_HEADERS): Add version.h.
36706
36707 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
36708
36709         PR target/42511
36710         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
36711         note itself is not function_invariant_p.
36712
36713 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
36714
36715         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
36716         Do not add the DF_NOTE problem.
36717         * store-motion.c (execute_rtl_store_motion): Likewise.
36718
36719 2010-01-07  Martin Jambor  <mjambor@suse.cz>
36720
36721         PR tree-optimization/42157
36722         * tree-sra.c (compare_access_positions): Stabilize sort if both
36723         accesses have integer types, return zero immediately if they are the
36724         same.
36725
36726 2010-01-06  Richard Henderson  <rth@redhat.com>
36727
36728         PR middle-end/41883
36729         * haifa-sched.c (add_to_note_list): Merge into ...
36730         (concat_note_lists): ... here, and ...
36731         (unlink_other_notes, rm_other_notes): Merge into...
36732         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
36733         NOTE_INSN_EPILOGUE_BEG.
36734
36735 2010-01-06  Richard Guenther  <rguenther@suse.de>
36736
36737         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
36738         not inline regular functions into always-inline functions.
36739
36740 2010-01-06  Nick Clifton  <nickc@redhat.com>
36741
36742         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
36743         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
36744         used together.
36745         (OVERRIDE_OPTIONS): Delete.
36746         (OPTIMIZATION_OPTIONS): Define.
36747         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
36748         * config/rx/rx.c (rx_handle_option): Issue an error message if
36749         -mcpu=rx200 and -fpu are used together.
36750         (rx_set_optimization_options): New function.  Issue an error
36751         message if an optimization attribute attempts to reset the FPU/
36752         math optimization pairing.
36753         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
36754         * config/rx/rx.opt: Set the default to 32-bit doubles.
36755         * config/rx/t-rx: Add multilibs for -nofpu option.
36756         * doc/invoke.texi: Update documentation of RX options.
36757
36758 2010-01-06  Richard Guenther  <rguenther@suse.de>
36759
36760         * tree-ssa-pre.c (name_to_id): New global.
36761         (alloc_expression_id): Simplify SSA name handling.
36762         (lookup_expression_id): Likewise.
36763         (init_pre): Zero name_to_id.
36764         (fini_pre): Free it.
36765
36766 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
36767
36768         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
36769
36770 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
36771
36772         PR target/42542
36773         * config/i386/sse.md (smaxv2di3): New.
36774         (umaxv2di3): Likewise.
36775         (sminv2di3): Likewise.
36776         (uminv2di3): Likewise.
36777
36778 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
36779
36780         PR target/42564
36781         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
36782         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
36783         (legitimize_tls_address): Likewise.
36784         (sparc_tls_referenced_p): Likewise.
36785         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
36786         and adjust calls to legitimize_pic_address.
36787         (legitimate_constant_p) Use sparc_tls_referenced_p.
36788         (legitimate_pic_operand_p): Likewise.
36789         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
36790         (sparc_tls_symbol_ref_1): Delete.
36791         (sparc_tls_referenced_p): Make static, recognize specific patterns.
36792         (legitimize_tls_address): Make static, handle CONST patterns.
36793         (legitimize_pic_address): Make static, remove unused parameter and
36794         adjust recursive calls.
36795         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
36796         and adjust call to legitimize_pic_address.
36797         (sparc_output_mi_thunk): Likewise.
36798
36799 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
36800             H.J. Lu  <hongjiu.lu@intel.com>
36801
36802         PR target/42542
36803         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
36804         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
36805         operands to make them signed.
36806
36807         Revert:
36808         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36809
36810         PR target/42542
36811         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36812         GTU to GT for V4SI and V2DI.
36813
36814         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36815         (umin<mode>3): Removed.
36816         (uminv8hi3): New.
36817         (uminv4si3): Likewise.
36818
36819 2010-01-05  Martin Jambor  <mjambor@suse.cz>
36820
36821         PR tree-optimization/42462
36822         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
36823         current_function_decl to helper functions and macros.
36824
36825 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36826
36827         PR bootstrap/41771
36828         * flags.h: Don't include real.h.
36829         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
36830         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
36831         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
36832         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
36833         * dominance.c: Update copyright.
36834         * gimple.c (walk_gimple_op): Remove inline.
36835         * tree-ssa-reassoc.c: Include real.h.
36836         * Makefile.in (FLAGS_H): Remove $(REAL_H).
36837         (tree-ssa-reassoc.o): Depend on $(REAL_H).
36838
36839 2010-01-05  Nick Clifton  <nickc@redhat.com>
36840
36841         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
36842         register to push into the stack frame when the accumulator has to
36843         be saved during interrupts.
36844
36845 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
36846
36847         * doc/invoke.texi: Remove the documentation about option
36848         -Wunreachable-code.
36849         * common.opt (Wunreachable-code):  Preserved for backward
36850         compatibility.
36851         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
36852         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
36853         the backward compatibility flag section.
36854
36855 2010-01-05  Richard Guenther  <rguenther@suse.de>
36856
36857         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
36858
36859 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
36860
36861         PR other/42611
36862         * cfgexpand.c (expand_one_var): Diagnose too large variables.
36863
36864         PR tree-optimization/42508
36865         * tree-sra.c (convert_callers): Check for recursive call
36866         by comparing cgraph nodes instead of decls.
36867         (modify_function): Call ipa_modify_formal_parameters also
36868         on all same_body aliases.
36869
36870         * cgraphunit.c (cgraph_materialize_all_clones): Compare
36871         cgraph nodes when checking for same_body aliases.
36872
36873 2010-01-05  Richard Guenther  <rguenther@suse.de>
36874
36875         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
36876         allocation and lookup.
36877         (get_or_alloc_expr_for_constant): Likewise.
36878         (phi_translate): Sink allocation.
36879
36880 2010-01-04  Richard Guenther  <rguenther@suse.de>
36881
36882         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
36883         a new entry only if needed.
36884         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
36885         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
36886         hashtable lookup.
36887         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
36888         the result array.
36889         (phi_translate): Handle CONSTANTs early.
36890
36891 2010-01-04  Martin Jambor  <mjambor@suse.cz>
36892
36893         PR tree-optimization/42398
36894         * tree-sra.c (struct access): Removed flag grp_different_types.
36895         (dump_access): Do not dump the removed flag.
36896         (sort_and_splice_var_accesses): Do not set the removed flag.
36897         (sra_modify_expr): Check for type compatibility directly.
36898
36899 2010-01-04  Martin Jambor  <mjambor@suse.cz>
36900
36901         PR tree-optimization/42366
36902         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
36903         edges with variable number of parameters.
36904         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
36905         flag instead of asserting it.
36906         (ipa_read_node_info): Read uses_analysis_done flag.
36907
36908 2010-01-04  Richard Guenther  <rguenther@suse.de>
36909
36910         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
36911         iterative_hash_* as intended.
36912         (vn_reference_compute_hash): Likewise.  Simplify hashing
36913         SSA names.
36914         (vn_reference_lookup_2): Likewise.
36915         (vn_nary_op_compute_hash): Likewise.
36916         (vn_phi_compute_hash): Likewise.
36917         (expressions_equal_p): Remove strange code.
36918         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
36919         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
36920         (bitmap_insert_into_set_1): Take value-id as parameter.
36921         (add_to_value): Pass it.
36922         (bitmap_insert_into_set): Likewise.
36923         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
36924
36925 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
36926
36927         PR driver/42442
36928         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
36929         (do_self_spec): For switches with SWITCH_IGNORE set set also
36930         SWITCH_IGNORE_PERMANENTLY.
36931         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
36932         of SWITCH_IGNORE.
36933
36934 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
36935
36936         * lto-streamer-out.c (output_unreferenced_globals): Output the full
36937         tree of an unreferenced global var.
36938
36939 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36940
36941         PR target/42542
36942         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36943         GTU to GT for V4SI and V2DI.
36944
36945         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36946         (umin<mode>3): Removed.
36947         (uminv8hi3): New.
36948         (uminv4si3): Likewise.
36949
36950 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36951
36952         PR lto/42581
36953         * collect2.c (main): Turn on trace in collect2 if -v is passed
36954         to gcc with LTO.
36955
36956 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
36957
36958         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
36959         description of expression operand.
36960
36961 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
36962
36963         * configure.ac: Add install-html to target_list for Make-hooks.
36964         * configure: Regenerate.
36965         * fortran/Make-lang.in (F95_HTMLFILES): New.
36966         (fortran.html): Use it.
36967         (fortran.install-html): New.
36968         * Makefile.in (install-html): Add lang.install-html.
36969         * java/Make-lang.in (JAVA_HTMLFILES): New.
36970         (java.html): Use it.
36971         (java.install-html): New.
36972         * objc/Make-lang.in (objc.install-html): New.
36973         * objcp/Make-lang.in (obj-c++.install-html): New.
36974         * cp/Make-lang.in (c++.install-html): New.
36975         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
36976         * lto/Make-lang.in (lto.install-html): New.
36977
36978 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36979
36980         PR lto/42520
36981         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
36982
36983 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
36984
36985         PR rtl-optimization/41862
36986         * store-motion.c (store_killed_in_insn, compute_store_table,
36987         remove_reachable_equiv_notes, replace_store_insn,
36988         build_store_vectors): Ignore all DEBUG_INSNs.
36989
36990 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36991
36992         PR lto/41564
36993         * common.opt: Add dumpdir.
36994
36995         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
36996         isn't specified.
36997         (option_map): Add --dumpdir.
36998
36999         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
37000
37001         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
37002
37003         * opts.c (decode_options): Try dump_dir_name first if
37004         dump_base_name isn't an absolute path.
37005         (common_handle_option): Handle OPT_dumpdir.
37006
37007         * toplev.c (dump_dir_name): New.
37008         (print_switch_values): Also ignore -dumpdir.
37009
37010         * toplev.h (dump_dir_name): New.
37011
37012 2010-01-03  Richard Guenther  <rguenther@suse.de>
37013
37014         PR tree-optimization/42589
37015         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
37016         double-word expansion of bswap32.
37017
37018 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37019
37020         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37021         with BLOCK_FOR_INSN.
37022         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37023         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37024         noce_process_if_block): Likewise.
37025         * gcse.c (compute_local_properties, insert_expr_in_table,
37026         insert_set_in_table, canon_list_insert, find_avail_set,
37027         pre_insert_copy_insn): Likewise.
37028
37029         * basic-block.h (BLOCK_NUM): Move from here...
37030         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37031
37032 2010-01-03  Richard Guenther  <rguenther@suse.de>
37033
37034         PR tree-optimization/42438
37035         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37036         contains_may_not_return_call flag.
37037         (BB_MAY_NOTRETURN): New.
37038         (valid_in_sets): Trapping nary operations are not valid
37039         in blocks that may not return.
37040         (insert_into_preds_of_block): Remove check for trapping expressions.
37041         (compute_avail): Compute also BB_MAY_NOTRETURN.
37042
37043 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
37044
37045         * doc/invoke.texi: Add 2010 to copyright years.
37046
37047 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
37048
37049         * config/sparc/sparc.c: Fix formatting nits.
37050
37051 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
37052             Alexander Monakov  <amonakov@ispras.ru>
37053
37054         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
37055
37056 2010-01-02  Richard Guenther  <rguenther@suse.de>
37057
37058         PR middle-end/42577
37059         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
37060         (simplify_switch_using_ranges): Mark to be removed edges
37061         as non-executable.
37062
37063 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37064
37065         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37066
37067         * collect2.c (scan_libraries): Add missing argument in call to
37068         scan_prog_file.
37069
37070 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
37071
37072         PR target/42448
37073         * config/alpha/predicates.md (aligned_memory_operand): Return false
37074         for CQImode.
37075         (unaligned_memory_operand): Return true for CQImode.
37076         * config/alpha/alpha.c (get_aligned_mem): Assert that location
37077         doesn not cross aligned SImode word boundary.
37078
37079 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
37080
37081         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
37082         Remove.
37083         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
37084         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
37085
37086 2010-01-02  Richard Guenther  <rguenther@suse.de>
37087
37088         PR lto/41597
37089         * toplev.c (compile_file): Emit LTO marker properly.  Change
37090         it to __gnu_lto_v1.
37091         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
37092
37093 2010-01-01  Richard Guenther  <rguenther@suse.de>
37094
37095         PR debug/42455
37096         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
37097
37098 2010-01-01  Richard Guenther  <rguenther@suse.de>
37099
37100         PR c/42570
37101         * c-decl.c (grokdeclarator): For zero-size arrays force
37102         structural equality checks as layout_type does.
37103
37104 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37105
37106         * builtins.c: Update copyright to 2010.
37107
37108 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37109
37110         PR lto/42531
37111         * lto-streamer-out.c (produce_asm): Revert the last change.
37112         (copy_function): Likewise.
37113
37114         * lto-streamer.c (lto_get_section_name): Skip any leading
37115         asterisk in name.
37116
37117 2010-01-01  Richard Guenther  <rguenther@suse.de>
37118
37119         PR middle-end/42559
37120         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
37121         for LABEL_DECLs.
37122
37123 \f
37124 Copyright (C) 2010 Free Software Foundation, Inc.
37125
37126 Copying and distribution of this file, with or without modification,
37127 are permitted in any medium without royalty provided the copyright
37128 notice and this notice are preserved.