OSDN Git Service

2010-11-22 Basile Starynkevitch <basile@starynkevitch.net>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
2
3         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
4
5 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
6
7         PR bootstrap/44970
8         * Makefile.in (fwprop.o) Add sparseset.h.
9         * fwprop.c: Include sparseset.h
10         (struct find_occurrence_data, find_occurrence_callback,
11         find_occurrence): Remove.
12         (active_defs, active_defs_check, register_active_defs,
13         update_df_init, update_uses): New.
14         (update_df): Rewrite.
15         (try_fwprop_subst, forward_propagate_asm): Add calls to
16         update_df_init and update_df.
17         (fwprop_init): Allocate active_defs and active_defs_check.
18         (fwprop_done): Free them.
19         (fwprop, fwprop_addr): Adjust comments.
20         * df.h (df_uses_create): Declare.
21         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
22         (df_ref_create): Return result of df_ref_create_structure directly.
23         (df_ref_create_structure): Call df_install_ref_incremental when
24         no collection_rec is passed.
25         (df_ref_record): Do not create multiword hard reg info when no
26         collection_rec is passed.
27         (df_uses_create): New. 
28
29 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
30
31         PR middle-end/43057
32         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
33         setting location.
34
35 2010-11-22  Richard Guenther  <rguenther@suse.de>
36
37         * gimple-fold.c (maybe_fold_reference): When canonicalizing
38         MEM_REFs, preserve volatileness.
39         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
40         addresses.
41
42 2010-11-22  Richard Guenther  <rguenther@suse.de>
43
44         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
45
46 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
47
48         PR rtl-optimization/45652
49         * alias.c (get_reg_base_value): New.
50         * rtl.h (get_reg_base_value): Add prototype.
51         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
52         non-null REG_BASE_VALUE for renaming.
53
54 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
55             Basile Starynkevitch  <basile@starynkevitch.net>
56
57         * gengtype.c: Include xregex.h and obstack.h
58         Added comments about role of get_output_file_with_visibility and
59         our regexpr machinery.
60         (frul_actionrout_t, struct file_rule_st): New.
61         (hader_dot_h_frul, source_dot_c_frul): New functions.
62         (NULL_REGEX,  NULL_FRULACT): New.
63         (files_rules): New.
64         (matching_file_name_substitute): New function.
65         (get_output_file_with_visibility): Updated comments and rewritten
66         to use the new files_rules machinery.
67
68         * Makefile.in (XREGEX_H): Added variable.
69         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
70
71 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
72
73         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
74
75 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
76
77         * target.def (conditional_register_usage): Define.
78         * reginfo.c (init_reg_sets_1): Call
79         targetm.conditional_register_usage.
80         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
81         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
82         for making it a hook.
83         * doc/tm.texi: Regenerate.
84         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
85         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
86         New function.
87         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
88         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
89         * config/arc/arc.c (arc_conditional_register_usage): ...here.
90         New function.
91         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
92         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
93         * config/arm/arm.c (arm_conditional_register_usage): ...here.
94         New function.
95         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
96         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
97         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
98         * config/bfin/bfin.c (conditional_register_usage): Move code into...
99         (bfin_conditional_register_usage): ...here.  New function.
100         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
101         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
102         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
103         * config/cris/cris.c (cris_conditional_register_usage): Make static.
104         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
105         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
106         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
107         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
108         * config/frv/frv.c (frv_conditional_register_usage): Make static.
109         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
110         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
111         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
112         New function.
113         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
114         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
115         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
116         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
117         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
118         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
119         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
120         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
121         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
122         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
123         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
124         New function.
125         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
126         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
127         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
128         Delete.
129         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
130         static.
131         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
132         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
133         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
134         * config/mep/mep.c (mep_conditional_register_usage): Make static.
135         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
136         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
137         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
138         * config/mips/mips.c (mips_conditional_register_usage): Make static.
139         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
140         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
141         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
142         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
143         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
144         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
145         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
146         ...here.  New function.
147         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
148         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
149         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
150         * config/pa/pa.c (pa_conditional_register_usage): ...here.
151         New function.
152         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
153         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
154         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
155         New function.
156         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
157         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
158         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
159         Delete.
160         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
161         static.
162         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
163         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
164         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
165         * config/rx/rx.c (rx_conditional_register_usage): Make static.
166         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
167         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
168         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
169         * config/s390/s390.c (s390_conditional_register_usage): Make static.
170         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
171         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
172         * config/score/score.c (score_conditional_register_usage): ...here.
173         New function.
174         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
175         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
176         * config/sh/sh.c (sh_conditional_register_usage): ...here.
177         New function.
178         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
179         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
180         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
181         New function.
182         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
183         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
184         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
185         * config/spu/spu.c (spu_conditional_register_usage): Make static.
186         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
187         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
188         * config/v850/v850.c (v850_conditional_register_usage): ...here.
189         New function.
190         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
191
192 2010-11-21  Jan Hubicka  <jh@suse.cz>
193             Dominique d'Humieres <dominiq@lps.ens.ft>
194
195         PR target/46510
196         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
197         finalize external decls.
198
199 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
200
201         * system.h (strerror): Poison.
202
203 2010-11-21  Richard Henderson  <rth@redhat.com>
204
205         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
206         for infq/huge_valq.
207
208 2010-11-21  Richard Henderson  <rth@redhat.com>
209
210         PR rtl-optimization/46571
211         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
212         (compute_hash_table_work): Use NONDEBUG_INSN_P.
213
214 2010-11-21  Paul Koning  <ni1d@arrl.net>
215
216         * config/mips/pdp11.md (negsi2): Fix wrong code.
217
218 2010-11-21  Paul Koning  <ni1d@arrl.net>
219
220         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
221         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
222
223 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
224
225         * config/mips/mips.c (machine_function): Rename load_label_length to
226         load_label_num_insns.
227         (mips_load_label_length): Rename to...
228         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
229         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
230
231 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
232
233         PR target/46533
234         * config/alpha/predicates.md (direct_call_operand): Return false
235         for !TARGET_SMALL_TEXT targets.
236
237 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
238
239         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
240         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
241         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
242         * doc/tm.texi: Regenerate.
243         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
244         HANDLE_PRAGMA_WEAK): Poison.
245         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
246         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
247         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
248         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
249         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
250         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
251         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
252         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
253         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
254         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
255         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
256         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
257         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
258         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
259         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
260         (HANDLE_PRAGMA_WEAK): Don't undefine.
261         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
262         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
263         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
264         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
265         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
266         (HANDLE_PRAGMA_WEAK): Don't undefine.
267         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
268         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
269         (HANDLE_PRAGMA_PACK): Don't undefine.
270         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
271         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
272         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
273         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
274         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
275         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
276         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
277         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
278         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
279         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
280         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
281         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
282         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
283         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
284         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
285         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
286         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
287
288 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
289
290         PR target/31100
291         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
292         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
293         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
294
295 2010-11-20  Jan Hubicka  <jh@suse.cz>
296
297         * cgraph.c (ld_plugin_symbol_resolution_names): New.
298         (dump_cgraph_node): Dump resolution.
299         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
300         (cgraph_comdat_can_be_unshared_p): Dclare.
301         * lto-streamer-out.c (produce_symtab): Use
302         cgraph_comdat_can_be_unshared_p.
303         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
304         (cgraph_comdat_can_be_unshared_p): New function based on logic
305         in cgraph_externally_visible_p.
306         (cgraph_externally_visible_p): Use it.
307         (varpool_externally_visible_p): Virtual tables can be unshared.
308         * varpool.c (dump_varpool_node): Dump resolution.
309
310 2010-11-20  Jan Hubicka  <jh@suse.cz>
311
312         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
313
314 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
315
316         PR other/46202
317         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
318         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
319         shell quoting.
320         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
321         (install-strip): New target.
322         (STRIPPROG): New variable, exported if STRIP is set.
323         * doc/install.texi (Final install): Minor markup and code style
324         fixes.  Document install-strip target.
325
326 2010-11-20  Paul Koning  <ni1d@arrl.net>
327
328         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
329         pdp11_regno_reg_class): New functions.
330         * config/pdp11/pdp11.md (define_constants): Add register numbers.
331         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
332         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
333         functions.
334         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
335         frame pointer and argument pointer pseudo-registers.
336         (ARG_POINTER_REGNUM): Define.
337         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
338         argument pointer.
339         (FIRST_PARM_OFFSET): Update for argument pointer.
340         (INITIAL_FRAME_POINTER_OFFSET): Delete.
341         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
342         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
343         frame pointer and argument pointer.
344
345 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
346
347         PR debug/46561
348         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
349         when looking for immediate uses.
350
351         PR tree-optimization/45830
352         * stmt.c (expand_switch_using_bit_tests_p): New function.
353         (expand_case): Use it.
354         * tree.h (expand_switch_using_bit_tests_p): New prototype.
355         * tree-switch-conversion.c (struct switch_conv_info): Add
356         bit_test_uniq, bit_test_count and bit_test_bb fields.
357         (check_range): Fix a comment.
358         (check_process_case): Compute bit_test_uniq and bit_test_count.
359         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
360         allocation.
361         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
362         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
363         (array_value_type): New function.
364         (build_one_array): Use it, if it returned different type,
365         fold_convert all constructor fields and convert back to the
366         wider type in the generated code.
367         (process_switch): Initialize bit_test_uniq, bit_test_count and
368         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
369         returned true.
370
371 2010-11-19  Michael Matz  <matz@suse.de>
372
373         PR tree-optimization/46077
374         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
375
376 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
377
378         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
379         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
380         function.
381         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
382
383 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
384
385         * mode-switching.c (optimize_mode_switching): Use
386         FOR_BB_INSNS instead of open-coded loop.
387         * cfgrtl.c (redirect_branch_edge): Ditto.
388
389 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
390
391         PR target/46436
392         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
393         to accomodate 32 bit HOST_WIDE_INT.
394         (m68hc11_emit_logical): Remove unused variable insn.
395         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
396         this_insn_uses_iy before use.
397
398         PR target/46434
399         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
400
401 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
402
403         PR c/46547
404         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
405         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
406
407 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
408
409         * doc/extend.texi (Function attributes): Document PowerPC target
410         attributes that are supported.
411         (Pragmas): Document that PowerPC now supports target pragmas.
412
413         * doc/options.texi (TargetVariable): Document TargetVariable,
414         HeaderInclude, and SourceInclude.
415
416         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
417         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
418         -ffp-contract=off.
419
420         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
421         SourceInclude directives.  Fix a cut+paste error with target save
422         enum variables.  Sort enums in the structures after ints and
423         before shorts.
424         * opth-gen.awk: Ditto.
425
426         * configure.ac: Add support for HeaderInclude and SourceInclude option
427         directives to add the appropriate files to the dependency lists.
428         * configure: Regenerate.
429         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
430         (OPTIONS_C_EXTRA): New variable for SourceInclude.
431         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
432         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
433         (gcc-options.o): Ditto.
434         * opt-include.awk: New awk script to handle HeaderInclude and
435         TargetInclude.
436
437         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
438         gets saved in the target options.
439         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
440         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
441         (-mprototype): Ditto.
442         (-mbit-word): ditto.
443         (-mregnames): Ditto.
444         (-msecure-plt): Ditto.
445         (-mbss-plt): Ditto.
446         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
447         (-mpowerpc-gfxopt): Ditto.
448         (-mmfcrf): Ditto.
449         (-mpopcntb): Ditto.
450         (-mfprnd): Ditto.
451         (-mcmpb): Ditto.
452         (-mmmfpgpr): Ditto.
453         (-maltivec): Ditto.
454         (-mhard-dfp): Ditto.
455         (-mmulhw): Ditto.
456         (-mdlmzb): Ditto.
457         (-mmultiple): Ditto.
458         (-mstring): Ditto.
459         (-mpopcntd): Ditto.
460         (-mfriz): Ditto.
461         (-mvsx): Ditto.
462         (-mno-update): Ditto.
463         (-mavoid-indexed-addresses): Ditto.
464         (-mtls-markers): Ditto.
465         (-msched-epilog): Ditto.
466         (-msched-prolog): Ditto.
467         (-maix-struct-return): Ditto.
468         (-msvr4-struct-return): Ditto.
469         (-mxl-compat): Ditto.
470         (-mrecip-precision): Ditto.
471         (-mfp-in-toc): Ditto.
472         (-msum-in-toc): Ditto.
473         (-mvrsave): Ditto.
474         (-mblock-move-inline-limit=): Ditto.
475         (-misel): Ditto.
476         (-mpaired): Ditto.
477         (-mlongcall): Ditto.
478         (-mgen-cell-microcode): Ditto.
479         (-mwarn-cell-microcode): Ditto.
480         (-mwarn-altivec-long): Ditto.
481         (-mprioritize-restricted-insns=): Ditto.
482         (-msingle-float): Ditto.
483         (-mdouble-float): Ditto.
484         (-msimple-fpu): Ditto.
485         (-mxilinx-fpu): Ditto.
486         * config/rs6000/aix64.opt (-mpe): Ditto.
487
488         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
489         (rs6000_cpu): Move variable to be a target variable.  Rename
490         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
491         -mdebug=<xxx> variables into a single int.
492         (rs6000_always_hint): Ditto.
493         (rs6000_sched_groups): Ditto.
494         (rs6000_align_branch_targets): Ditto.
495         (rs6000_sched_costly_dep): Ditto.
496         (rs6000_sched_insert_nops): Ditto.
497         (rs6000_long_double_type_size): Ditto.
498         (rs6000_ieeequad): Ditto.
499         (rs6000_altivec_abi): Ditto.
500         (rs6000_spe): Ditto.
501         (rs6000_spe_abi): Ditto.
502         (rs6000_float_gprs): Ditto.
503         (rs6000_darwin64_abi): Ditto.
504         (can_override_loop_align): Ditto.
505         (rs6000_sdata): Ditto.
506         (rs6000_tls_size): Ditto.
507         (rs6000_current_abi): Ditto.
508         (rs6000_traceback): Ditto.
509         (rs6000_alignment_flags): Ditto.
510         (rs6000_current_cmodel): Ditto.
511         (rs6000_recip_control): Ditto.
512         (rs6000_cpu_index): Ditto.
513         (rs6000_tune_index): Ditto.
514         (rs6000_debug): Ditto.
515         (rs6000_target_flags_explict): Ditto.
516
517         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
518         declaration.
519
520         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
521         cmodel.  Change all uses.
522
523         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
524         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
525         Rename cmodel to rs6000_current_cmodel.
526         (rs6000_sched_groups): Ditto.
527         (rs6000_align_branch_targets): Ditto.
528         (rs6000_sched_costly_dep): Ditto.
529         (rs6000_sched_insert_nops): Ditto.
530         (rs6000_long_double_type_size): Ditto.
531         (rs6000_ieeequad): Ditto.
532         (rs6000_altivec_abi): Ditto.
533         (rs6000_spe): Ditto.
534         (rs6000_spe_abi): Ditto.
535         (rs6000_float_gprs): Ditto.
536         (rs6000_darwin64_abi): Ditto.
537         (can_override_loop_align): Ditto.
538         (rs6000_sdata): Ditto.
539         (rs6000_tls_size): Ditto.
540         (rs6000_current_abi): Ditto.
541         (rs6000_traceback): Ditto.
542         (rs6000_alignment_flags): Ditto.
543         (rs6000_current_cmodel): Ditto.
544         (rs6000_recip_control): Ditto.
545         (rs6000_cpu_index): Ditto.
546         (rs6000_tune_index): Ditto.
547         (rs6000_debug): Ditto.
548         (rs6000_target_flags_explict): Ditto.
549         (rs6000_sched_insert_nops_str): Make static.
550         (rs6000_sched_costly_dep_str): Ditto.
551         (rs6000_recip_name): Ditto.
552         (rs6000_abi_name): Ditto.
553         (rs6000_sdata_name): Ditto.
554         (enum rs6000_traceback_name): Move to rs6000-opts.h.
555         (rs6000_parse_tls_size_option): Delete.
556         (rs6000_valid_attribute_p): New function for target attributes and
557         pragmas.
558         (rs6000_function_specific_save): Ditto.
559         (rs6000_function_specific_restore): Ditto.
560         (rs6000_function_specific_print): Ditto.
561         (rs6000_can_inline_p): Ditto.
562         (rs6000_set_current_function): Ditto.
563         (rs6000_inner_target_options): Ditto.
564         (rs6000_debug_target_options): Ditto.
565         (rs6000_pragma_target_parse): Ditto.
566         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
567         attributes and pragmas.
568         (TARGET_OPTION_SAVE): Ditto.
569         (TARGET_OPTION_RESTORE): Ditto.
570         (TARGET_OPTION_PRINT): Ditto.
571         (TARGET_CAN_INLINE_P): Ditto.
572         (TARGET_SET_CURRENT_FUNCTION): Ditto.
573         (POWER_MASKS): Move to file level scope from the
574         rs6000_option_override_internal function.
575         (POWERPC_MASKS): Ditto.
576         (ISA_*_MASKS): Ditto.
577         (struct rs6000_ptt): Ditto.
578         (processor_target_table): Ditto.
579         (rs6000_cpu_name_lookup): Map cpu name to an index in
580         processor_target_table.
581         (rs6000_debug_reg_global): Print more information on processor
582         options for -mdebug=reg.
583         (rs6000_init_hard_regno_mode_ok): Add support for target
584         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
585         Allow -mdebug=val1,val2.  Rename cmodel variable.
586         (rs6000_option_override_internal): Ditto.
587         (rs6000_option_override): Ditto.
588         (rs6000_handle_option): Ditto.
589         (rs6000_conditional_register_usage): Add debug trace message.
590         (struct rs6000_opt_mask): New for target attribute/pragma support.
591         (rs6000_opt_masks): Ditto.
592         (struct rs6000_opt_var): Ditto.
593         (rs6000_opt_vars): Ditto.
594         (rs6000_previous_function): Ditto.
595
596         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
597         wasn't already included.
598         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
599         (enum processor_type): Ditto.
600         (rs6000_cpu): Ditto.
601         (enum fpu_type_t): Ditto.
602         (fpu_type): Ditto.
603         (enum rs6000_dependence_cost): Ditto.
604         (enum rs6000_nop_insertion): Ditto.
605         (enum group_termination): Ditto.
606         (rs6000_long_double_type_size): Ditto.
607         (rs6000_ieeequad): Ditto.
608         (rs6000_altivec_abi): Ditto.
609         (rs6000_spe_abi): Ditto.
610         (rs6000_spe): Ditto.
611         (rs6000_float_gprs): Ditto.
612         (rs6000_alignment_flags): Ditto.
613         (rs6000_sched_insert_nops): Ditto.
614         (enum rs6000_vector): Ditto.
615         (enum rs6000_abi): Ditto.
616         (rs6000_current_opt): Ditto.
617         (rs6000_debug_*): Delete.
618         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
619         (TARGET_DEBUG*): Ditto.
620
621         * config/rs6000/rs6000-opts.h: New header file to define the enums
622         that are used in target variables that are now defined in rs6000.opt.
623
624         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
625         rs6000-opts.h.
626         (rs6000_sdata): Ditto.
627         (rs6000_abi_name): Delete.
628         (rs6000_sdata_name): Ditto.
629         (rs6000_tls_size_string): Ditto.
630
631 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
632
633         * common.opt (debug_struct_ordinary, debug_struct_generic): New
634         Variable entries.
635         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
636         should_emit_struct_debug): Move from opts.c.
637         * flag-types.h (enum debug_struct_file): Move from opts.c.
638         * flags.h (should_emit_struct_debug): Remove.
639         (base_of_path): Declare.
640         (set_struct_debug_option): Add gcc_options parameter.
641         * optc-gen.awk, opth-gen.awk: Handle array variables.
642         * opts.c (enum debug_struct_file, debug_struct_ordinary,
643         debug_struct_generic): Remove.
644         (set_struct_debug_option): Add gcc_options parameter.
645         (base_of_path): Remove static.
646         (main_input_basename, main_input_baselength, matches_main_base,
647         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
648         Remove.
649         * toplev.c (main_input_basename, main_input_baselength): Define
650         here.
651         * toplev.h (main_input_basename, main_input_baselength): Declare
652         here.
653
654 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
655
656         * common.opt (flag_instrument_functions_exclude_functions,
657         flag_instrument_functions_exclude_files): New Variable definitions.
658         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
659         * gimplify.c (char_p): Declare type and vectors.
660         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
661         * opts.c (flag_instrument_functions_exclude_functions,
662         flag_instrument_functions_exclude_files): Remove.
663         (add_comma_separated_to_vector): Take void **.
664         (flag_instrument_functions_exclude_p): Move to gimplify.c.
665         (common_handle_option): Use options structure for
666         -finstrument-functions-exclude- options.
667
668 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
669
670         * doc/options.texi (Var): Document effects of Defer.
671         (Defer): Document.
672         * opt-functions.awk (var_type, var_set): Handle deferred options.
673         * opts-common.c (set_option): Handle CLVC_DEFER.
674         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
675         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
676         fstack-limit-symbol=): Mark as deferred.
677         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
678         plugin.h.
679         (print_filtered_help): Don't report state of CLVC_DEFER options.
680         (common_handle_option): Move code for OPT_fcall_used_,
681         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
682         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
683         OPT_fstack_limit_symbol_ to opts-global.c.
684         (option_enabled, get_option_state): Handle CLVC_DEFER.
685         * opts.h: Include vec.h.
686         (enum cl_var_type): Add CLVC_DEFER.
687         (cl_deferred_option): Define type and vectors.
688         (handle_common_deferred_options): Declare.
689         * opts-global.c: New.
690         * toplev.c (toplev_main): Call handle_common_deferred_options
691         * Makefile.in (OPTS_H): Include $(VEC_H).
692         (OBJS-common): Include opts-global.o.
693         (opts.o): Update dependencies.
694         (opts-global.o): Add dependencies.
695
696 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
697
698         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
699         to objc_declare_protocols.
700
701 2010-11-19  Richard Guenther  <rguenther@suse.de>
702
703         PR lto/45789
704         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
705         IDENTIFIERs do not stream TREE_TYPE.
706         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
707
708 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
709
710         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
711
712 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
713
714         PR target/45870
715         * dwarf2out.c (const_ok_for_output_1): Don't complain about
716         non-delegitimized TLS UNSPECs.
717
718 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
719             Ian Lance Taylor  <iant@google.com>
720
721         * config/darwin-c.c (darwin_additional_format_types): Export.
722
723 2010-11-18  Paul Koning  <ni1d@arrl.net>
724
725         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
726         pointer.
727
728 2010-11-18  Paul Koning  <ni1d@arrl.net>
729
730         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
731         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
732         * config/pdp11/pdp11.opt (-mabshi): Delete.
733
734 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
735
736         * resource.h (struct resources): Fix typo in the comment.
737
738 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
739
740         PR target/46546
741         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
742
743 2010-11-18  Richard Henderson  <rth@redhat.com>
744
745         PR middle-end/46515
746         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
747         maybe_copy_epilogue_insn; handle prologue insns as well.
748         * rtl.h, cfglayout.c: Update for rename.
749         * recog.c (peep2_attempt): Copy prologue/epilogue data for
750         RTX_FRAME_RELATED_P insns.
751
752 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
753
754         PR middle-end/46534
755         * builtins.c (fold_builtin_printf): Don't copy and modify string
756         before build_string_literal, instead modify what
757         build_string_literal returned.
758
759 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
760
761         PR c/33193
762         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
763         REALPART_EXPR and IMAGPART_EXPR.
764
765 2010-11-18  Richard Guenther  <rguenther@suse.de>
766
767         PR tree-optimization/46172
768         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
769         function.
770         (slpeel_tree_peel_loop_to_edge): Call it.
771
772 2010-11-18  Jeff Law  <law@redhat.com>
773
774         PR middle-end-optimization/46297
775         * postreload.c (reload_combine_note_store): Deal with embedded
776         side effects in MEM expressions.
777
778 2010-11-18  Richard Guenther  <rguenther@suse.de>
779
780         PR lto/45089
781         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
782         when checking is not enabled.
783
784 2010-11-18  Richard Guenther  <rguenther@suse.de>
785
786         PR lto/46525
787         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
788         type leaders.
789         (gimple_register_canonical_type): Also cache the canoncial type
790         for non type leaders.
791
792 2010-11-18  Richard Guenther  <rguenther@suse.de>
793
794         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
795
796 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
797
798         PR middle-end/46518
799         * sel-sched-ir.c (init_expr): Use the correct type for
800         target_available.
801         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
802
803 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
804
805         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
806         as well as -mrelocatable at the same time.
807
808 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
809
810         PR target/46422
811         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
812         Call the clz builtin.
813
814 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
815             Steve Ellcey  <sje@cup.hp.com>
816
817         PR middle-end/31490
818         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
819         if section attribute used.
820
821 2010-11-17  Jan Hubicka  <jh@suse.cz>
822
823         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
824         expand errno setting variant when optimizing for size.
825
826 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
827
828         * postreload.c (reload_combine): Call control_flow_insn_p only once.
829         Reverse backward loop.  Fix formatting issues.
830
831 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
832
833         * c-parser.c (c_token_is_qualifier,
834         c_parser_next_token_is_qualifier): New.
835         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
836         Improve error message on specs->tagdef_seen_p.
837         (c_parser_struct_or_union_specifier): Improve error recovery.
838         (c_parser_declspecs): Move exit condition on C_ID_ID early.
839         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
840         using c_parser_next_token_is_qualifier; extend it to cover
841         a ctsk_tagdef typespec and !typespec_ok in general.
842
843 2010-11-17  Richard Guenther  <rguenther@suse.de>
844
845         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
846         (gimple_mod_pow2_value_transform): Likewise.
847         (gimple_mod_subtract_transform): Likewise.
848
849 2010-11-17  Richard Guenther  <rguenther@suse.de>
850
851         PR lto/46504
852         * gimple.c (gimple_register_canonical_type): Make sure to only
853         make type leaders canonical types.
854
855 2010-11-17  Michael Matz  <matz@suse.de>
856
857         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
858         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
859         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
860         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
861         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
862         (pass_build_ssa): ... but here.
863         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
864         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
865         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
866         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
867         * predict.c (rebuild_frequencies): Ditto.
868         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
869         * emit-rtl.c (verify_rtl_sharing): Ditto.
870         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
871         * tree-ssa-live.c (remove_unused_locals): Ditto.
872         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
873         * tree-ssa.c (pass_early_warn_uninitialized,
874         execute_update_addresses_taken, pass_update_address_taken): Ditto.
875         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
876         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
877         * passes.c (pass_postreload, execute_todo): Ditto.
878         * tree-ssanames.c (pass_release_ssa_names): Ditto.
879
880 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
881
882         * doc/invoke.texi (-dy): Remove.
883         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
884         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
885         * langhooks.c (lhd_do_nothing_i): Remove.
886         * langhooks.h (lang_hooks.parse_file): Take no arguments.
887         * toplev.c (set_yydebug): Remove.
888         (compile_file): Update call to lang_hooks.parse_file.
889         (decode_d_option): Don't handle -dy.
890
891 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
892
893         PR rtl-optimization/46440
894         * combine.c (update_cfg_for_uncondjump): When changing
895         an indirect jump into unconditional jump, remove BARRIERs
896         from bb's footer.
897
898 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
899
900         * opts.c (target_handle_option): Do not assert that loc ==
901         UNKNOWN_LOCATION.
902
903 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
904             Richard Guenther  <rguenther@suse.de>
905
906         PR middle-end/45838
907         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
908         call_may_clobber_ref_p_1): Return true for __sync_* and some
909         OpenMP builtins that act as threading barriers.
910
911 2010-11-17  Richard Guenther  <rguenther@suse.de>
912
913         PR tree-optimization/46498
914         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
915
916 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
917
918         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
919         (xtensa_function_arg_boundary): ...this.
920         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
921         thinko in declaration.
922         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
923         number of parameters to picochip_function_arg_boundary.
924         (picochip_arg_advance): Likewise.
925
926 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
927
928         PR target/46512
929         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
930         under check for type.
931
932 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
933
934         * ifcvt.c (dead_or_predicable): Fix typo.
935
936 2010-11-16  Richard Henderson  <rth@redhat.com>
937
938         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
939         * config/s390/s390.opt (mfused-madd): Remove.
940         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
941         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
942         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
943         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
944
945 2010-11-16  Richard Henderson  <rth@redhat.com>
946
947         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
948         * config/rs6000/rs6000.opt (mfused-madd): Remove.
949         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
950         (*altivec_vmaddfp_1): Remove.
951         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
952         (altivec_mulv4sf3): Expand to FMA directly.
953         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
954         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
955         * config/rs6000/paired.md (paired_madds0): Use FMA.
956         (paired_madds1): Likewise.
957         (*paired_madd): Rename from paired_madd; use FMA.
958         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
959         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
960         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
961         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
962         (rs6000_emit_madd): Use fma_optab.
963         (rs6000_emit_msub): Use fms_optab.
964         (rs6000_emit_nmsub): Expand the FMA pattern directly.
965         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
966         (*fmasf4_fpr): Rename from fmasf4_fpr.
967         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
968         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
969         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
970         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
971         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
972         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
973         (*fmadf4_fpr): Rename from fmadf4_fpr.
974         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
975         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
976         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
977         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
978         (fmasf4, fmadf4): Macroize into...
979         (fma<FMA_F>4): ... here.
980         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
981         (nfma<FMA_F>4, nfms<FMA_F>4): New.
982         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
983         TARGET_FUSED_MADD.
984         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
985         (*vsx_fmadd<mode>4_1): Remove.
986         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
987         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
988         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
989         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
990         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
991         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
992         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
993
994 2010-11-16  Richard Henderson  <rth@redhat.com>
995
996         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
997         (fmasf4, fnmadf4, fnmasf4): Likewise.
998         (unnamed plus+mult insns and splitters): Delete.
999
1000 2010-11-16  Richard Henderson  <rth@redhat.com>
1001
1002         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1003         (fnma<VSF>4): Rename from fnms_<VSF>.
1004         (fms<VSF>4): Rename from fms_<VSF>.
1005         (fma<VDF>4): Rename from fma_<VDF>.
1006         (fms<VDF>4): Rename from fms_<VDF>.
1007         (nfma<VDF>4): Rename from fnma_<VDF>.
1008         (nfms<VDF>4): Rename from fnms_<VDF>.
1009         (fnma<VDF>4, fnms<VDF>4): New expanders.
1010         (floatunsdisf2): Update for the renames.
1011         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1012         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1013
1014 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1015
1016         PR rtl-optimization/46490
1017         * combine.c (expand_compound_operation): Fix thinko.
1018
1019 2010-11-16  Richard Henderson  <rth@redhat.com>
1020
1021         PR target/46470
1022         * recog.c (peep2_attempt): Convert frame-related info when possible.
1023         (peep2_fill_buffer): Allow frame-related insns into the buffer.
1024         (peephole2_optimize): Allow peep2_attempt to fail.
1025
1026 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1027
1028         PR rtl-optimization/46315
1029         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1030         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1031         extracted from...
1032         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
1033         (remove_reg_equal_equiv_notes_for_defs): ...this.
1034         (delete_unmarked_insns): Adjust to above renaming.
1035         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1036         referring to registers set in the insns being moved, if any.
1037
1038         * df-core.c (df_ref_dump): New function extracted from...
1039         (df_refs_chain_dump): ...here.  Call it.
1040         (df_regs_chain_dump): Likewise.
1041         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1042         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
1043
1044 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
1045
1046         PR rtl-optimization/46395
1047         * postreload.c (reload_combine): Invalidate register use
1048         information on all control flow insns.
1049
1050         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1051         LABEL_REF in UNSPEC operand.
1052
1053 2010-11-16  Jan Hubicka  <jh@suse.cz>
1054
1055         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1056         when !flag_toplevel_reorder do not remove unless variable is
1057         COMDAT or ARTIFICIAL.
1058         * ipa.c (varpool_can_remove_if_no_refs): ... here.
1059         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1060         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1061         * varpool.c (decide_is_variable_needed): Do not handle visibility
1062         issues.
1063         (varpool_finalize_decl): Likewise.
1064         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1065         update outdated comment on DECL_RTL_SET_P check.
1066
1067 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1068
1069         * config/sol2.h (NM_FLAGS): Define.
1070         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1071         * doc/tm.texi: Update.
1072
1073 2010-11-16  Nick Clifton  <nickc@redhat.com>
1074
1075         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1076         (msubsf4): Rename to fmssf4, and use fma.
1077         (nmaddsf4): Rename to fnmasf4 and use fma.
1078         (nmsubsf4): Rename to fnmssf4 and use fma.
1079
1080 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
1081
1082         PR target/44762
1083         * config/score/score3.c (score3_return_in_memory): Constify arguments.
1084         (score3_in_small_data_p, score3_function_value): Likewise.
1085         (score3_trampoline_init): Use LCT_NORMAL.
1086         (score3_print_operand): Initialize code as UNKNOWN.
1087         * config/score/predicates.md (score_load_multiple_operation):
1088         Remove unused variable.
1089         (score_store_multiple_operation): Likewise.
1090         * config/score/score7.c (score7_return_in_memory): Constify arguments.
1091         (score7_in_small_data_p, score7_function_value): Likewise.
1092         (score7_trampoline_init): Use LCT_NORMAL.
1093         (score7_print_operand): Initialize code as UNKNOWN.
1094         * config/score/score3.h (score3_return_in_memory): Update prototype.
1095         (score3_in_small_data_p, score3_function_value): Likewise.
1096         * config/score/score-protos.h (score_function_value): Likewise.
1097         * config/score/score7.h (score7_return_in_memory): Update prototype.
1098         (score7_in_small_data_p, score7_function_value): Likewise.
1099         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1100         (score_return_in_memory, score_pass_by_reference): Constify arguments.
1101         (score_output_mi_thunk, score_function_prologue): Don't return a value.
1102         (score_function_epilogue, score_in_small_data_p): Likewise.
1103         (score_option_override, score_asm_trampoline_template): Likewise.
1104         (score_trampoline_init, score_print_operand): Likewise.
1105         (score_print_operand_address, score_prologue): Likewise.
1106         (score_epilogue, score_call, score_call_value): Likewise.
1107         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1108         (score_function_arg_advance): Likewise. Make static.
1109         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1110         (score_function_arg, score_legitimate_address_p): Make static.
1111         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1112         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1113         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1114         Allow (W) == HOST_BITS_PER_WIDE_INT.
1115
1116         PR java/46386
1117         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1118         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1119
1120 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1121
1122         * config/arc/arc.c: Delete pasto.
1123         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1124
1125 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
1126
1127         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1128         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1129         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1130         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1131         (mn10300_preferred_reload_class,
1132         mn10300_preferred_output_reload_class): New functions.
1133
1134 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1135
1136         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1137         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1138         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1139         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1140
1141 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1142
1143         * builtins.c (std_gimplify_va_arg_expr): Use
1144         targetm.calls.function_arg_boundary.
1145         * function.c (assign_parms, locate_and_pad_parm): Likewise.
1146         * calls.c (struct arg_data): Update comment.
1147         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1148         * target.def (function_arg_boundary): Define.
1149         * targhooks.h (default_function_arg_boundary): Declare.
1150         * targhooks.c (default_function_arg_boundary): Define.
1151         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1152         TARGET_FUNCTION_ARG_BOUNDARY.
1153         (FUNCTION_ARG_BOUNDARY): Delete.
1154         (TARGET_FUNCTION_ARG_BOUNDARY): New.
1155         * doc/tm.texi: Regenerate.
1156         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1157         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1158         * config/arc/arc.c (arc_function_arg_boundary): Define.
1159         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1160         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1161         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1162         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1163         (arm_function_arg_boundary): Define.
1164         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1165         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1166         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1167         * config/frv/frv.c (frv_function_arg_boundary): Make static.
1168         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1169         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1170         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1171         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1172         (ix86_compat_function_arg_boundary): Take and return unsigned int.
1173         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1174         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1175         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1176         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1177         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1178         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1179         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1180         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1181         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1182         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1183         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1184         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1185         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1186         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1187         * config/mips/mips.c (mips_function_arg_boundary): Make static.
1188         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1189         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1190         * config/pa/pa.c (pa_function_arg_boundary): Define.
1191         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1192         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1193         * config/picochip/picochip-protos.h
1194         (picochip_get_function_arg_boundary): Delete.
1195         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1196         Rename to...
1197         (picochip_function_arg_boundary): ...this.  Make static.
1198         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1199         (picochip_arg_advance): Adjust.
1200         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1201         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1202         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1203         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1204         (rs6000_function_arg_boundary): ...this.  Make static.
1205         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1206         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1207         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1208         * config/rx/rx.c (rx_function_arg_boundary): Define.
1209         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1210         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1211         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1212         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1213         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1214         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1215         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1216         (xtensa_function_arg_boundary): ...this.  Make static.
1217         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1218
1219 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1220
1221         * expr.c (alignment_for_piecewise_move): New function.
1222         (widest_int_mode_for_size): New function.
1223         (move_by_pieces, move_by_pieces_ninsns): Call them.
1224         (can_store_by_pieces, store_by_pieces_1): Likewise.
1225
1226 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1227
1228         * gcc.c (char_p): Define.  Define a VEC of it.
1229         (n_linker_options, n_assembler_options, n_preprocessor_options):
1230         Delete.
1231         (linker_options, assembler_options, preprocessor_options): Convert
1232         to a VEC.
1233         (add_preprocessor_option): Adjust.
1234         (add_assembler_option): Adjust.
1235         (add_linker_option): Adjust.
1236         (do_specs_vec): New function.
1237         (do_spec_1): Call it.  Adjust for new types.
1238
1239 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1240
1241         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1242         (sreal.o, statistics.o, stringpool.o): Likewise.
1243
1244 2010-11-16  Richard Guenther  <rguenther@suse.de>
1245
1246         PR tree-optimization/44545
1247         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1248         statements are not reassociatable.
1249         (reassociate_bb): Likewise.
1250
1251 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1252
1253         * bitmap.c: Delete unnecessary includes.
1254         * ebitmap.c: Likewise.
1255         * et-forest.c: Likewise.
1256         * sreal.c: Likewise.
1257         * statistics.c: Likewise.
1258         * stringpool.c: Likewise.
1259         * double-int.c: Add comment for inclusion of tm.h.
1260
1261 2010-11-16  Richard Guenther  <rguenther@suse.de>
1262
1263         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1264         (visit_nary_op): ... this.
1265         (visit_binary_op): Remove.
1266         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1267
1268 2010-11-16  Richard Guenther  <rguenther@suse.de>
1269
1270         PR middle-end/45172
1271         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1272
1273 2010-11-16  Nick Clifton  <nickc@redhat.com>
1274
1275         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1276         record is packed.
1277
1278 2010-11-15  Richard Henderson  <rth@redhat.com>
1279
1280         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1281         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1282         DOT_PROD_EXPR.
1283
1284 2010-11-15  Richard Henderson  <rth@redhat.com>
1285
1286         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1287         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
1288         fma rtx_code.
1289
1290 2010-11-15  Richard Henderson  <rth@redhat.com>
1291
1292         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1293         and *mulsubsf4 respectively.  Use fma rtx_code.
1294
1295 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
1296
1297         * gcc.c: Include "vec.h".
1298         (argbuf): Make into a VEC.
1299         (argbuf_length, argbuf_index): Remove.
1300         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1301         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1302         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1303         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1304         (gcc.o): Depend on $(VEC_H).
1305
1306 2010-11-15  Richard Henderson  <rth@redhat.com>
1307
1308         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1309         via FMA if unsafe math.
1310         (insert_var_expansion_initialization): Handle FMA.
1311         (combine_var_copies_in_loop_exit): Likewise.
1312
1313 2010-11-15  Richard Henderson  <rth@redhat.com>
1314
1315         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1316         * config/ia64/ia64.opt: Remove mfused-madd.
1317         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1318         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1319         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1320         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1321         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1322         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1323         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1324         (fmav2sf4): Rename from fpma; use FMA code.
1325         (fmsv2sf4): Rename from fpms; use FMA code.
1326         (fnmav2sf4): Rename from *fpnma; use FMA code.
1327         * config/ia64/ia64.md (MODE_SDF): New iterator.
1328         (suffix): New mode attribute.
1329         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1330         (fmssf4): Rename from *fmssf4.
1331         (fnmasf4): Rename from *nfmasf4.
1332         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1333         (*nmadddf4, *nmadddf4_truncsf): Remove.
1334         (fmsdf4): Rename from *fmsdf4.
1335         (fnmadf4): Rename from *nfmadf4.
1336         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1337         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1338         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1339         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1340         (fmsxf4): Rename from *fmsxf4.
1341         (fnmaxf4): Rename from *nfmaxf4.
1342         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1343         (*fnmaxf_trunc_<MODE_SDF>): New.
1344
1345 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1346
1347         PR tree-optimization/46461
1348         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1349         a gimple val.
1350
1351 2010-11-15  Ian Lance Taylor  <iant@google.com>
1352
1353         * godump.c: New file.
1354         * common.opt (fdump-go-spec=): New option.
1355         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1356         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1357         (TYPE_SYMTAB_IS_DIE): Define.
1358         (struct tree_type): Change GTY for symtab field to use
1359         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1360         to pick the union field.
1361         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1362         (dump_go_spec_init): Declare.
1363         * toplev.c (process_options): Handle flag_dump_go_spec.
1364         * debug.c: Include "tree.h".
1365         (do_nothing_debug_hooks): Set tree_type_symtab_field.
1366         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1367         * dbxout.c (dbx_debug_hooks): Likewise.
1368         (xcoff_debug_hooks): Likewise.
1369         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1370         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
1371         SDB_DEBUGGING_INFO is not defined.
1372         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1373         (Overall Options): Document -fdump-go-spec.
1374         * Makefile.in (OBJS-common): Add godump.o.
1375         (debug.o): Add dependency on $(TREE_H).
1376         (godump.o): New target.
1377         (GTFILES): Add $(srcdir)/godump.c.
1378
1379 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
1380
1381         PR debug/46095
1382         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1383         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1384         style < 0, add REG_FRAME_RELATED_EXPR.
1385
1386         PR debug/46387
1387         * rtl.h (vt_equate_reg_base_value): New prototype.
1388         * alias.c (vt_equate_reg_base_value): New function.
1389         * var-tracking.c (vt_init_cfa_base): Use it.
1390
1391 2010-11-15  Jan Hubicka  <jh@suse.cz>
1392             Diego Novillo  <dnovillo@google.com>
1393
1394         PR lto/41528
1395         * doc/lto.texi: Add.
1396         * doc/gccint.texi: Add reference to lto.texi.
1397         * doc/invoke.texi: Update user documentation for LTO.
1398         Move internal flags to lto.texi
1399
1400 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1401
1402         * c-typeck.c (build_unary_op): Use
1403         objc_build_incr_expr_for_property_ref to build the pre/post
1404         increment/decrement of an Objective-C property ref, and skip the
1405         lvalue_or_else check in that case.
1406
1407 2010-11-15  Martin Jambor  <mjambor@suse.cz>
1408
1409         PR tree-optimization/46349
1410         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1411         (contains_vce_or_bfcref_p): Likewise.
1412         (sra_modify_assign): Use them.
1413
1414 2010-11-15  Richard Guenther  <rguenther@suse.de>
1415
1416         PR tree-optimization/46467
1417         * tree-ssa-structalias.c (do_structure_copy): Properly treat
1418         variables without subvars.
1419
1420 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
1421
1422         * config/picochip/picochip.c (file header): Picochip name change.
1423         * config/picochip/picochip.md (file header): Likewise.
1424         * config/picochip/predicates.md (file header): Likewise.
1425         * config/picochip/dfa_space.md (file header): Likewise.
1426         * config/picochip/dfa_speed.md (file header): Likewise.
1427         * config/picochip/picochip.h(file header): Likewise.
1428         * config/picochip/constraints.md (file header): Likewise.
1429         * config/picochip/picochip-protos.h (file header): Likewise.
1430         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1431         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1432         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1433         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1434         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1435         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1436         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1437         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1438         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1439         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1440         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1441         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1442         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1443         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1444
1445 2010-11-15  Richard Guenther  <rguenther@suse.de>
1446
1447         PR bootstrap/46474
1448         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1449
1450 2010-11-15  Nick Clifton  <nickc@redhat.com>
1451
1452         * config/stormy16/stormy16.c (direct_return): Do not generate a
1453         direct return for interrupt handlers.
1454
1455 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
1456
1457         * Makefile.in (tm.texi): Replace with rule for:
1458         ($(srcdir)/doc/tm.texi).
1459         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1460         $(srcdir)/doc/tm.texi .
1461         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1462         tm.texi .
1463
1464         PR target/46427
1465         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1466
1467         PR bootstrap/45444
1468         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1469         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1470
1471         PR target/46432
1472         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1473
1474 2010-11-15  Richard Guenther  <rguenther@suse.de>
1475
1476         PR lto/44150
1477         * lto-opts.c (lto_write_options): Write -fexceptions even if
1478         not set by the user.
1479
1480 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1481
1482         PR c/46462
1483         * c-decl.c (declspecs_add_type): Make variables with error types
1484         integers.
1485         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1486         do not start a declaration before an Objective-C foreach.
1487         (c_parser_declaration_or_fndef): Improve recovery after unknown
1488         type name.
1489         (c_parser_for_statement): Hoist entrance of "foreach context"
1490         before ifs, add corresponding reset where it was missing.  Do
1491         not set objc_could_be_foreach_context for C.
1492
1493 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1494
1495         PR tree-optimization/45722
1496         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1497         this is a reference to a component.
1498         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1499         (ipa_note_param_call): Adjust comment.
1500
1501 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
1502
1503         * config/mips/mips.c (machine_function): Remove
1504         initialized_mips16_gp_pseudo_p.
1505         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1506         detect whether a pseudo has already been created.  Unconditionally
1507         create a new one if not.
1508         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1509         expanding to rtl.  Create a new pseudo otherwise, if allowed.
1510
1511 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
1512
1513         PR target/43440
1514         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1515         * tm.texi: Regenerated.
1516         * output.h (decode_reg_name_and_count): Declare.
1517         * varasm.c (decode_reg_name_and_count): New function.
1518         (decode_reg_name): Reimplement using decode_reg_name_and_count.
1519         * reginfo.c (fix_register): Use decode_reg_name_and_count and
1520         iterate over all regs used.
1521         * stmt.c (expand_asm_operands): Likewise.
1522         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1523         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1524         multiple machine registers.
1525
1526 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1527
1528         * stor-layout.c (place_union_field): Do not put location information
1529         on offset expressions.
1530         (place_field): Likewise.
1531         (finalize_record_size): Likewise on size expressions.
1532         (finalize_type_size): Likewise.
1533         (layout_type): Likewise.
1534
1535 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
1536
1537         PR debug/42889
1538         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1539         * df-core.c (df_set_bb_dirty_nonrl): Remove.
1540         * df.h (df_set_bb_dirty_nonlr): Likewise.
1541
1542 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
1543
1544         * config/mips/mips.md (call_internal): Pass curr_insn to
1545         mips_split_call.
1546         (call_internal_direct): Ditto.
1547         (call_value_internal): Ditto.
1548         (call_value_internal_direct): Ditto.
1549         (call_value_multiple_internal): Ditto.
1550         * config/mips/mips.c (mips_split_call): Do not copy
1551         CALL_INSN_FUNCTION_USAGE here.
1552
1553 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
1554
1555         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1556         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1557         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1558         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1559         (TUNE_LOONGSON_3A): Define.
1560         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1561         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1562         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1563         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1564         (mips_rtx_cost_data): Add Loongson-3A.
1565
1566 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1567
1568         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1569         switches.
1570
1571 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1572
1573         * dwarf2out.c (macinfo_entry): New struct.
1574         (output_comp_unit): Emit the section start label here and flag that we
1575         will emit an info section.
1576         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1577         emitting directly.
1578         (dwarf2out_end_source_file): Likewise.
1579         (dwarf2out_define): Likewise.
1580         (dwarf2out_undef): Likewise.
1581         (output_macinfo): New.
1582         (dwarf2out_init): Do not emit debug section switches here, allocate a
1583         vec for macinfo, when required.
1584         (dwarf2out_finish): First switch to debug_abbrev_section here.
1585         debug_line_section,  debug_macinfo_section, Likewise.
1586         Check that the pubtypes table has at least one unpruned entry before
1587         trying to emit it.
1588
1589 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1590
1591         PR c/20385
1592         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1593         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
1594         token lookahead.
1595         (c_parser_compound_statement_nostart, c_parser_label,
1596         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1597         (c_parser_declaration_or_fndef): Detect the case now matched by
1598         c_parser_next_tokens_start_declaration, give error and correct it.
1599
1600 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1601
1602         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1603         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1604         with typespec_kind.
1605         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1606         (shadow_tag_warned, check_compound_literal_type): Adjust
1607         uses of tag_defined_p.
1608         (declspecs_add_type): Set typespec_kind.
1609         * c-parser.c (c_parser_declaration_or_fndef,
1610         c_parser_declspecs, c_parser_struct_declaration,
1611         c_parser_parameter_declaration, c_parser_type_name,
1612         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1613         of type_seen_p.
1614         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1615         tag_defined_p, pass ctsk_firstref through.
1616
1617 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1618
1619         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1620         (struct format_wanted_type): Replace field "name" with "kind", add
1621         "format_start" and "format_length".
1622         (check_format_info_main): Fill in new fields.  Fill in
1623         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
1624         after the final NUL outside the while loop.  Do not include
1625         width and precision modifiers in the format_start/format_length
1626         of the main format.
1627         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1628         arguments.  Compute WANTED_TYPE first so that format_type_warning
1629         can be called for missing arguments.  Adjust calls to
1630         format_type_warning.
1631         (format_type_warning): Fetch as much information as possible
1632         from format_wanted_type.  Adjust printing now that every
1633         warning has a "descr", as well as for missing argument warnings
1634         and to include % sign for format specifiers.
1635
1636 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
1637
1638         PR rtl-optimization/46204
1639         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1640         Update all callers.  Do not recompute topological order.  Adjust
1641         fallthrough edges following a degenerate conditional jump.
1642
1643 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1644
1645         * opts-common.c (control_warning_option): New.
1646         * opts.c (set_default_handlers): New.
1647         (decode_options): Use set_default_handlers and
1648         control_warning_option.
1649         (common_handle_option): Update call to enable_warning_as_error.
1650         (enable_warning_as_error): Take gcc_options parameters.  Use
1651         control_warning_option.
1652         * opts.h (set_default_handlers, control_warning_option): Declare.
1653
1654 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1655
1656         * Makefile.in (OPTS_H): Define.
1657         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1658         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1659         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1660         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1661         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1662         * gcc.c (driver_handle_option): Take location_t parameter.
1663         (process_command, do_self_spec): Update calls to
1664         read_cmdline_option.
1665         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1666         * langhooks.c (lhd_handle_option): Take location_t parameter.
1667         * langhooks.h (handle_option): Take location_t parameter.
1668         * lto-opts.c (lto_reissue_options): Update call to set_option.
1669         * opts-common.c (handle_option): Make static.  Take location_t
1670         parameter and pass it to other functions.
1671         (handle_generated_option): Take location_t parameter and pass it
1672         to other functions.
1673         (read_cmdline_option): Take location_t parameter and pass it to
1674         other functions.  Use warning_at and error_at.
1675         (set_option): Take location_t parameter and pass it to other
1676         functions.
1677         * opts.c (common_handle_option): Take location_t parameter and
1678         pass it to other functions.
1679         (enable_warning_as_error): Make static.  Take location_t parameter
1680         and pass it to other functions.
1681         (lang_handle_option): Take location_t parameter and pass it to
1682         other functions.
1683         (target_handle_option): Take location_t parameter.
1684         (read_cmdline_options, maybe_default_option,
1685         maybe_default_options, default_options_optimization,
1686         decode_options): Take location_t parameter and pass it to other
1687         functions.
1688         * opts.h: Include input.h.
1689         (struct cl_option_handler_func, decode_options, set_option,
1690         handle_generated_option, read_cmdline_option): Take location_t
1691         parameters.
1692         (handle_option, enable_warning_as_error): Remove.
1693         * toplev.c (toplev_main): Update call to decode_options.
1694
1695 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
1696
1697         * graphite-cloog-util.c (oppose_constraint,
1698         cloog_matrix_to_ppl_constraint,
1699         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1700         CLooG isl uses unsigned integers.  This triggered a warning.
1701
1702 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1703
1704         PR target/46438
1705         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1706         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1707         (xtensa_function_arg_1): De-constify cum.
1708         (xtensa_expand_prologue): Use add_reg_note.
1709
1710         PR target/46435
1711         * config/cris/cris.c (saved_regs_mentioned): Delete.
1712         (cris_reload_address_legitimized): Cast itype to enum reload_type.
1713         Remove unused variable op0p.
1714         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1715         (cris_emit_movem_store): Use add_reg_note.
1716
1717         PR bootstrap/46456
1718         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1719
1720 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1721
1722         * function.c (expand_function_end): Set the locator of the prologue on
1723         the stack checking insns.
1724
1725 2010-11-12  Richard Henderson  <rth@redhat.com>
1726
1727         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1728         * config/xtensa/xtensa.opt (mfused-madd): Remove.
1729         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1730         MASK_FUSED_MADD.
1731         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1732         (fnmasf4): Rename from mulsubsf3; use fma.
1733
1734 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1735             Richard Henderson  <rth@redhat.com>
1736
1737         PR target/46428
1738         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1739         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1740         comparison.
1741
1742 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
1743
1744         * opts-common.c (decode_cmdline_option): Initialize separate_args.
1745
1746 2010-11-12  Jan Hubicka  <jh@suse.cz>
1747
1748         * doc/invoke.texi (early-inlining-insns): Update default.
1749         * params.def (early-inlining-insns): Default to 10.
1750
1751 2010-11-12  Olivier Hainque  <hainque@adacore.com>
1752
1753         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1754
1755 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1756
1757         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1758         (SUPPORTS_INIT_PRIORITY): Define.
1759
1760 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1761
1762         PR target/46430
1763         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1764         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1765         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1766         (avr_device_to_devicelib): Likewise.
1767         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1768         into block.
1769         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1770         (zero_extendhidi2, zero_extendsidi2): Likewise.
1771         * config/avr/avr.c (avr_num_arg_regs): Constify type.
1772         (avr_return_addr_rtx): De-constify tem.
1773         (avr_rotate_bytes): Move declarations to start of block.
1774         Don't use variable length array.  Put nested if/else into block.
1775
1776         PR rtl-optimization/46433
1777         * var-tracking.c: Include tm_p.h .
1778
1779         PR bootstrap/44756
1780         PR build/44767
1781         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1782         should be unsigned.
1783         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1784         * doc/tm.texi: Regenerate.
1785
1786         PR target/46412
1787         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1788         * config/bfin/bfin.c: Include sel-sched.h .
1789         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1790         (expand_interrupt_handler_prologue): Remove unused variable insn.
1791         (bfin_load_pic_reg): Likewise.
1792         (bfin_rtx_costs): Make code / outer_code variables of type
1793         enum rtx_code, copied from re-named parameters.
1794         (bfin_local_alignment): Change align argument and return type
1795         to unsigned.
1796         (bfin_adjust_cost): Remove unused variable insn_type.
1797         Declare variables at start of block.
1798         (struct loop_info): Rename to...
1799         (struct loop_info_d).
1800         (workaround_rts_anomaly): Change type of icode to int.
1801         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1802         with int-typed variable.
1803         (note_np_check_stores): Likewise.
1804         (trapping_loads_p): Remove unused variable pat.
1805         (bfin_expand_binop_builtin): Use expand_normal.
1806         (bfin_expand_unop_builtin): Likewise.
1807         (bfin_expand_builtin): Likewise.  Set tmode before use.
1808
1809         PR middle-end/44769
1810         * final.c (split_double): Don't use BITS_PER_WORD directly in
1811         shift count.
1812
1813         PR target/46431
1814         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1815         assignment.
1816
1817         PR target/46450
1818         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1819         Use add_reg_note.
1820         (xstormy16_function_arg): Dereference cum.
1821         (xstormy16_expand_builtin): Use expand_normal.
1822         Change type of omode to enum machine_mode.
1823         (combine_bnp): Rename and to and_insn.
1824
1825         PR target/46437
1826         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1827         localreg.
1828
1829 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1830
1831         PR debug/46375
1832         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1833
1834 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1835
1836         PR lto/46376
1837         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1838
1839 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
1840
1841         PR c/44782
1842         * common.opt (fmax-errors=): New option.
1843         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1844         * diagnostic.h (struct diagnostic_context): Add max_errors field.
1845         * diagnostic.c (diagnostic_initialize): Initialize it.
1846         (diagnostic_action_after_output): Exit if more than max_errors
1847         have been output.
1848         * doc/invoke.texi (Warning Options): Add -fmax-errors.
1849         (-fmax-errors): Document.
1850
1851 2010-11-11  Richard Henderson  <rth@redhat.com>
1852
1853         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1854
1855 2010-11-11  Richard Henderson  <rth@redhat.com>
1856
1857         * config/fused-madd.opt: New file.
1858         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1859         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1860         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1861         * config/i386/i386.opt (mfused-madd): Remove.
1862         * config/i386/sse.md (split_fma): Remove.
1863         (split_fms, split_fnma, split_fnms): Remove.
1864
1865 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
1866
1867         PR target/46088
1868         * config/i386/i386.md (*ashl<mode>3_cconly,
1869         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1870         change nonimmediate_operand predicate to register_operand.
1871
1872 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
1873
1874         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1875
1876 2010-11-11  Jan Hubicka  <jh@suse.cz>
1877
1878         * opts.c (finish_options): Do not error on -flto-partition alone.
1879
1880         * doc/invoke.texi (-fwhopr): Merge into -flto section.
1881         (-flto-partition): Document none.
1882         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1883         * lto-wrapper.c: Update comment.
1884         (run_gcc): Update LTO option parsing.
1885         * opts.c (finish_options): add support -flto-partition=none
1886         (common_handle_option): Remove fwhopr.
1887         * common.opt: Turn fwhopr into flto.
1888         * collect2.c (main): Update option handling.
1889         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1890         * ipa-split.c (execute_split_functions): Remove flag_whopr.
1891         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1892         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1893         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1894
1895 2010-11-11  Jan Hubicka  <jh@suse.cz>
1896
1897         PR tree-optimize/40436
1898         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1899         (eliminated_by_inlining_prob): ... this one; return 50% probability
1900         for SRA.
1901         (estimate_function_body_sizes): Update use of
1902         eliminated_by_inlining_prob; estimate static function size
1903         for 2 instructions.
1904
1905 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
1906
1907         PR target/44749
1908         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1909         declare.  Change type of argument four to type int.
1910         (mep_secondary_input_reload_class): Returns enum reg_class.
1911         (mep_secondary_output_reload_class): Likewise.
1912         (mep_function_value): Change types of arguments to cont_tree.
1913         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1914         argument four to type int.
1915         (mep_secondary_input_reload_class): Returns enum reg_class.
1916         (mep_secondary_output_reload_class): Likewise.
1917         (mep_function_value): Change types of arguments to cont_tree.
1918         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1919         mep_regno_reg_class to enum reg_class.
1920
1921 2010-11-11  Richard Henderson  <rth@redhat.com>
1922
1923         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1924         that the target has the exact fma operation that we matched.
1925
1926 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1927
1928         * reginfo.c (fix_register): Avoid inserting English word in
1929         diagnostic sentence.  Use %qs for quoting and %'.
1930
1931 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
1932
1933         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1934         Intel processor family 6, model 0x2c.
1935
1936 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1937
1938         * opts.c (warning_as_error_callback,
1939         register_warning_as_error_callback): Remove.
1940         (enable_warning_as_error): Don't use warning_as_error_callback.
1941         * opts.h (register_warning_as_error_callback): Remove.
1942
1943 2010-11-11  Richard Henderson  <rth@redhat.com>
1944
1945         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1946         in between the MULT and the PLUS/MINUS.
1947
1948 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1949
1950         PR middle-end/46388
1951         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1952         BLKmode mode for it.
1953         (expand_expr_real_1): Similarly for op0.
1954
1955 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1956
1957         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1958         Document optional target selector.
1959
1960 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1961
1962         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1963         assembling high and low parts of size if not using 32-bit HWINT; else
1964         use DECL_SIZE_UNITS, not DECL_SIZE.
1965
1966 2010-11-11  Martin Jambor  <mjambor@suse.cz>
1967
1968         PR tree-optimization/46383
1969         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1970         offsets.
1971         (compute_complex_ancestor_jump_func): Likewise.
1972         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1973
1974 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1975
1976         PR debug/46150
1977         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1978         true if expr1->hash != expr2->hash.
1979
1980 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1981
1982         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
1983         diagnostics with lowercase letters.
1984         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
1985         lowercase letters.
1986         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
1987         diagnostic.
1988         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1989         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
1990         lowercase letters.
1991         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1992         Remove trailing ' ' from diagnostic.
1993         * config/avr/avr.c (print_operand_address): Start diagnostic with
1994         a lowercase letter and remove trailing '.'.
1995         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
1996         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
1997         with lowercase letters.  Use %' in diagnostics.  Remove trailing
1998         '.' from diagnostics.
1999         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2000         * config/cris/cris.c (cris_split_movdx,
2001         cris_expand_pic_call_address): Start diagnostics with lowercase
2002         letters.
2003         (cris_asm_output_label_ref): Use %' in diagnostic.
2004         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2005         letter.
2006         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2007         lowercase letter.
2008         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2009         lowercase letter.
2010         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2011         diagnostic.
2012         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2013         diagnostic.
2014         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2015         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2016         diagnostics.
2017         * config/i386/i386.c (ix86_option_override_internal): Write
2018         diagnostic as a single sentence without trailing '.'.  Use %' in
2019         diagnostics.
2020         (ix86_function_sseregparm, classify_argument): Start diagnostics
2021         with lowercase letters.
2022         (ix86_expand_prologue): Use %' in diagnostic.
2023         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2024         diagnostic.
2025         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2026         lowercase letter.
2027         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2028         diagnostic.
2029         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2030         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2031         '`' in help text.
2032         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2033         lowercase letter.
2034         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2035         lowercase letters.
2036         * config/microblaze/microblaze.c (microblaze_handle_option):
2037         Remove trailing '.' from diagnostic.
2038         (print_operand): Start diagnostic with a lowercase letter.
2039         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2040         lowercase letters.  Avoid '`' in diagnostics.
2041         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2042         lowercase letters.  Avoid '`' in diagnostics.
2043         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2044         lowercase letters.  Avoid '`' in diagnostics.
2045         * config/picochip/picochip.c (picochip_option_override,
2046         picochip_emit_save_register, picochip_function_arg,
2047         picochip_output_label, picochip_output_internal_label,
2048         picochip_asm_output_opcode, picochip_output_cbranch,
2049         picochip_output_compare, picochip_output_branch,
2050         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2051         diagnostics. Start diagnostics with lowercase letters.  Use %' in
2052         diagnostics.
2053         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2054         "SPE" capitalization.  Start diagnostic with a lowercase letter.
2055         (rs6000_handle_option): Start diagnostics with lowercase letters.
2056         (def_builtin): Remove trailing '.' from diagnostic.
2057         (rs6000_savres_routine_name): Start diagnostic with a lowercase
2058         letter.
2059         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2060         diagnostic.
2061         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2062         lowercase letter.
2063         * config/s390/s390.c (s390_option_override) Start diagnostics with
2064         lowercase letters.  Use %' in diagnostic.
2065         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2066         lowercase letters.
2067         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2068         diagnostic.
2069         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2070         diagnostic.
2071         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2072         diagnostic.
2073         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2074         * config/spu/spu.c (spu_option_override): Start diagnostics with
2075         lowercase letters.  Use %qs for quoting in diagnostics.
2076         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2077         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2078         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2079         from diagnostic.
2080         * convert.c (convert_to_integer, convert_to_vector): Use %' in
2081         diagnostics.
2082         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2083         letter and use "cannot" spelling.
2084         * expmed.c (extract_fixed_bit_field): Start diagnostic with
2085         lowercase letter and format as a single sentence without '.'.
2086         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2087         Use %' in diagnostics.
2088         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2089         Use %' in diagnostics.
2090         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2091         Use %' in diagnostics.
2092         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2093         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2094         with lowercase letters and remove tailing '.' and '\n'.
2095         * lto-cgraph.c (input_profile_summary): Start diagnostic with
2096         lowercase letter and remove trailing '.'.
2097         (input_cgraph): Start diagnostics with lowercase letters and
2098         remove trailing '\n'.
2099         * opts.c (finish_options, common_handle_option): Start diagnostics
2100         with lowercase letters and remove trailing '.'.  Fix typo in
2101         diagnostic.
2102         * passes.c (position_pass): Start diagnostic with lowercase letter.
2103         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2104         register_callback, try_init_one_plugin): Start diagnostics with
2105         lowercase letters.
2106         * reload1.c (spill_failure): Use %' in diagnostic.
2107         (gen_reload): Start diagnostic with a lowercase letter.
2108         * stor-layout.c (place_field): Start diagnostic with a lowercase
2109         letter.
2110         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2111         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2112         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2113         Start diagnostics with lowercase letters, remove trailing '.' and
2114         use %' in diagnostics.
2115         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2116         (verify_ssa): Don't split diagnostic across two error calls.
2117         Spell out "number" and use %' in diagnostic.
2118         * value-prof.c (visit_hist, check_counter): Start diagnostics with
2119         lowercase letters.
2120
2121 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
2122
2123         PR middle-end/46419
2124         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2125         (_mm_cvtpu16_ps): Ditto.
2126
2127 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2128
2129         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2130         warn_larger_than, larger_than_size, warn_frame_larger_than,
2131         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2132         default_visibility, flag_tls_default): New Variable declarations.
2133         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2134         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2135         (v): Declare as Common and document here.
2136         * flags.h (default_visibility, flag_generate_lto,
2137         warn_larger_than, larger_than_size, warn_frame_larger_than,
2138         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2139         flag_shlib, flag_excess_precision_cmdline): Remove.
2140         (set_Wstrict_aliasing): Update prototype.
2141         * gcc.c (verbose_flag): Remove.
2142         (driver_handle_option): Add diagnostic_context parameter.  Don't
2143         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
2144         incrementing it.
2145         * opts-common.c (handle_option): Pass dc to handler.
2146         * opts.c (warn_larger_than, larger_than_size,
2147         warn_frame_larger_than, frame_larger_than_size,
2148         default_visibility): Remove.
2149         (common_handle_option): Add diagnostic_context parameter.
2150         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2151         gcc_options parameters.
2152         (lang_handle_option, target_handle_option, read_cmdline_options,
2153         decode_options): Add diagnostic_context parameters.
2154         (finish_options): Access option state through opts pointer where
2155         possible.
2156         (common_handle_option): Access option state through opts pointer
2157         where possible.  Do not set local static variable verbose.  Do not
2158         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2159         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2160         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2161         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2162         OPT_fwhopr_.  Do not explicitly set .opt file variables for
2163         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
2164         (set_Wstrict_aliasing): Add gcc_options parameter.
2165         * opts.h (struct cl_option_handler_func): Add diagnostic_context
2166         parameter to handler.
2167         (decode_options): Add diagnostic_context parameter.
2168         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2169         asm_file_name, flag_generate_lto, flag_gen_aux_info,
2170         aux_info_file_name, flag_shlib, flag_tls_default,
2171         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2172         (toplev_main): Pass global_dc to decode_options.
2173         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2174         aux_info_file_name, asm_file_name): Remove.
2175         * tree.h (flag_tls_default): Remove.
2176
2177 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2178
2179         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2180         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2181
2182 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2183
2184         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2185         (x86_64-*-*): Likewise.
2186         * config/i386/cpuid.h: Define TBM bit.
2187         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2188         and set has_tbm.
2189         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2190         isa_flag for TBM.
2191         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2192         (OPTION_MASK_ISA_TBM_UNSET): New.
2193         (ix86_handle_option): Handle -mtbm.
2194         (isa_opts): Add -mtbm.
2195         (enum pta_flags): Add PTA_TBM.
2196         (ix86_option_override_internal): Add TBM support.
2197         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2198         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2199         (IX86_BUILTIN_BEXTRI64): Likewise.
2200         (bdesc_args): Add TBM intrinsics.
2201         (ix86_expand_builtin): Add TBM specific case.
2202         * config/i386/i386.h (TARGET_TBM): New for TBM.
2203         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2204         (tbm_bextri_<mode>): Likewise.
2205         (*tbm_blcfill_<mode>): Likewise.
2206         (*tbm_blci_<mode>): Likewise.
2207         (*tbm_blcic_<mode>): Likewise.
2208         (*tbm_blcmsk_<mode>): Likewise.
2209         (*tbm_blcs_<mode>): Likewise.
2210         (*tbm_blsfill_<mode>): Likewise.
2211         (*tbm_blsic_<mode>): Likewise.
2212         (*tbm_t1mskc_<mode>): Likewise.
2213         (*tbm_tzmsk_<mode>): Likewise.
2214         * config/i386/i386.opt: Add -mtbm.
2215         * config/i386/tbmintrin.h (__bextri_u32): New.
2216         (__blcfill_u32): Likewise.
2217         (__blci_u32): Likewise.
2218         (__blcic_u32): Likewise.
2219         (__blcmsk_u32): Likewise.
2220         (__blcs_u32): Likewise.
2221         (__blsfill_u32): Likewise.
2222         (__blsic_u32): Likewise.
2223         (__t1mskc_u32): Likewise.
2224         (__tzmsk_u32): Likewise.
2225         (__bextri_u64): Likewise.
2226         (__blcfill_u64): Likewise.
2227         (__blci_u64): Likewise.
2228         (__blcic_u64): Likewise.
2229         (__blcmsk_u64): Likewise.
2230         (__blcs_u64): Likewise.
2231         (__blsfill_u64): Likewise.
2232         (__blsic_u64): Likewise.
2233         (__t1mskc_u64): Likewise.
2234         (__tzmsk_u64): Likewise.
2235         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2236         * doc/invoke.texi: Document -mtbm.
2237         * doc/extend.texi: Document TBM built-in functions.
2238
2239 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2240
2241         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2242         (x86_64-*-*): Likewise.
2243         * config/i386/cpuid.h: Define BMI bit.
2244         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2245         and set has_bmi.
2246         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2247         isa_flag for BMI.
2248         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2249         (OPTION_MASK_ISA_BMI_UNSET): New.
2250         (ix86_handle_option): Handle -mbmi.
2251         (isa_opts): Add -mbmi.
2252         (enum pta_flags): Add PTA_BMI.
2253         (ix86_option_override_internal): Add BMI support.
2254         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2255         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2256         (IX86_BUILTIN_BEXTR64): Likewise.
2257         (IX86_BUILTIN_CTZS): Likewise.
2258         (bdesc_args): Add BMI intrinsics.
2259         (ix86_expand_args_builtin): Add BMI specific cases.
2260         * config/i386/i386.h (TARGET_BMI): New for BMI.
2261         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2262         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2263         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2264         (UNSPEC_TZCNT): Likewise.
2265         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2266         (bmi_andn_<mode>): New for BMI.
2267         (bmi_bextr_<mode>): Likewise.
2268         (bmi_blsi_<mode>): Likewise.
2269         (bmi_blsmsk_<mode>): Likewise.
2270         (bmi_blsr_<mode>): Likewise.
2271         * config/i386/i386.opt: Add -mbmi.
2272         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2273         * config/i386/bmiintrin.h (__lzcnt_u16): New.
2274         (__tzcnt_u16): Likewise.
2275         (__andn_u32): Likewise.
2276         (__bextr_u32): Likewise.
2277         (__blsi_u32): Likewise.
2278         (__blsmsk_u32): Likewise.
2279         (__blsr_u32): Likewise.
2280         (__lzcnt_u32): Likewise.
2281         (__tzcnt_u32): Likewise.
2282         (__andn_u64): Likewise.
2283         (__bextr_u64): Likewise.
2284         (__blsi_u64): Likewise.
2285         (__blsmsk_u64): Likewise.
2286         (__blsr_u64): Likewise.
2287         (__lzcnt_u64): Likewise.
2288         (__tzcnt_u64): Likewise.
2289         * doc/invoke.texi: Document -mbmi and -mno-bmi.
2290         * doc/extend.texi: Document BMI built-in functions.
2291
2292 2010-11-10  Jan Hubicka  <jh@suse.cz>
2293
2294         PR tree-optimize/46228
2295         * doc/invoke.texi (comdat-sharing-probability): Document.
2296         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2297         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2298
2299 2010-11-10  Jan Hubicka  <jh@suse.cz>
2300
2301         PR tree-optimize/46228
2302         * cgraph.c (cgraph_propagate_frequency): Fix typo.
2303
2304 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
2305
2306         PR tree-optimization/46414
2307         * tree-inline.c (estimate_move_cost): Check preferred vector
2308         mode for vector type.
2309
2310 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2311
2312         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2313
2314 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
2315
2316         PR tree-optimization/45971
2317         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2318         for phi nodes analyzable by scev.
2319
2320 2010-11-10  Richard Guenther  <rguenther@suse.de>
2321
2322         PR tree-optimization/44964
2323         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2324
2325 2010-11-10  Martin Jambor  <mjambor@suse.cz>
2326
2327         PR tree-optimization/46351
2328         PR tree-optimization/46377
2329         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2330         aggregate bit-fields.
2331
2332 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2333
2334         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2335         * doc/tm.texi: Regenerate.
2336         * opts-common.c (tm.h): Don't include.
2337         (target_option_translations): Remove.
2338         (decode_cmdline_options_to_array): Don't handle translating options.
2339         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2340         * config/darwin-driver.c: Don't condition includes on
2341         CROSS_DIRECTORY_STRUCTURE.
2342         (darwin_default_min_version): Make static.
2343         (darwin_driver_init): New.  Call darwin_default_min_version if not
2344         CROSS_DIRECTORY_STRUCTURE.
2345         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2346         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2347         (ASM_SPEC): Add %{static}.
2348         (darwin_default_min_version): Don't declare.
2349         (darwin_driver_init): Declare.
2350         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2351         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2352         * config/darwin.opt (all_load, allowable_client,
2353         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2354         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2355         exported_symbols_list, filelist, findirect-virtual-calls,
2356         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2357         framework, fterminated-vtables, gfull, gused, image_base, init,
2358         install_name, multi_module, multiply_defined,
2359         multiply_defined_unused, no_dead_strip_inits_and_terms,
2360         seg_addr_table, seg_addr_table_filename, segaddr,
2361         segs_read_only_addr, segs_read_write_addr, single_module,
2362         umbrella, unexported_symbols_list, weak_reference_mismatches,
2363         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2364         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2365         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2366         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2367         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2368         (ASM_SPEC): Add %{static}.
2369         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2370         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2371         (DRIVER_SELF_SPECS): Handle options formerly in
2372         TARGET_OPTION_TRANSLATE_TABLE.
2373         * config/mep/mep.opt (mfar): New.
2374         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2375         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
2376         TARGET_OPTION_TRANSLATE_TABLE.
2377         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2378         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2379         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2380         ffix-and-continue, findirect-data): New.
2381         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2382         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2383         (mnofpu): Define mask and use Report here.
2384
2385 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2386
2387         * config/s390/s390.c (s390_emit_prologue): Report the stack
2388         size if -fstack-usage is used.
2389
2390 2010-11-10  Richard Guenther  <rguenther@suse.de>
2391
2392         PR tree-optimization/46398
2393         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2394
2395 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
2396
2397         PR target/44760
2398         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2399         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2400         GP_REG_OR_PSEUDO_STRICT_P.
2401         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2402         unexpected alternative.
2403         (*movsf_internal): Likewise.
2404         (indirect_jump): Replace call to non-existant function with call to
2405         internal_error.
2406         (tablejump): Likewise.
2407         * config/iq2000/iq2000.c: Include df.h .
2408         (iq2000_function_arg_advance): Use CONST_CAST2.
2409         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2410         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2411         a non-zero function address.
2412         (iq2000_initial_elimination_offset): Add gcc_unreachable for
2413         unexpected value of FROM.
2414         (symbolic_expression_p): Delete.
2415         (iq2000_function_value): Constify func.
2416         (expand_one_builtin): Use expand_normal.
2417         (iq2000_print_operand): Don't print VALUE if calculating it failed.
2418
2419         PR rtl-optimization/44764
2420         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2421
2422         PR target/46407
2423         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2424         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2425         with ATTRIBUTE_UNUSED.
2426         (valid_psw_flag): Constify parameter which.
2427         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2428
2429         PR target/46415
2430         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2431         (mmix_dbx_register_number): Likewise.
2432         * config/mmix/mmix.c: Include df.h .
2433         (mmix_local_alignment): Change argument basic_align and return type
2434         to unsigned.
2435         (mmix_dbx_register_number): Change argument and return type to
2436         unsigned.
2437         (mmix_expand_prologue): Use add_reg_note.
2438
2439         PR target/46417
2440         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2441         (spu_split_store): Use aform.
2442         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2443
2444 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2445
2446         PR/46268
2447         * doc/gty.texi (GTY Options): Clarify that variable_size produces
2448         allocators taking size in bytes, compare with length option.  Add
2449         size calculation example.
2450         (Invoking the garbage collector): Ensure that sentences are
2451         followed by two spaces.  Describe that pointer fields must be
2452         initialized at ggc_collect call.
2453         (Troubleshooting): New section.
2454
2455 2010-11-09  Jan Hubicka  <jh@suse.cz>
2456
2457         PR tree-optimization/40436
2458         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2459         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2460         normal instructions; be sure bultin is not implemented in this file;
2461         compute non-zero return cost.
2462         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2463         * tree-inline.h (eni_weights_d): Add return cost.
2464
2465 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
2466
2467         * c-parser.c (c_parser_struct_declaration): Handle declaration
2468         specifiers followed by CPP_CLOSE_BRACE.
2469
2470 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2471
2472         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2473         split occurs before reload, and we allocate memory at the time of
2474         the split, not during expansion.  Add attributes.
2475         (floatsi<mode>2_lfiwax_mem): Ditto.
2476         (floatunssi<mode>2_lfiwzx): Ditto.
2477         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2478         (floatsidf2): Ditto.
2479         (floatunssisf2): Ditto.
2480         (floatunssidf2): Ditto.
2481         (fix_trunc<mode>si2): Ditto.
2482         (fix_trunc<mode>si2_stfiwx): Ditto.
2483         (fix_trunc<mode>si2_internal): Ditto.
2484         (fix_trunc<mode>si2): Ditto.
2485         (fix_trunc<mode>di2): Ditto.
2486         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2487         (floatsisf2): Ditto.
2488         (floatdidf2_mem): Ditto.
2489         (floatunsdidf2_mem): Ditto.
2490         (floatunsdidf2): Ditto.
2491         (floatdisf2_internal1): Ditto.
2492         (floatdisf2_mem): Ditto.
2493         (floatunsdisf2_mem): Ditto.
2494         (floatsi<mode>2_lfiwax_mem2): Delete.
2495         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2496         (fix_trunc<mode>si2_mem): Ditto.
2497         (fixuns_trunc<mode>si2_mem): Ditto.
2498         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2499         type operations to reduce copying the values to multiple memory slots.
2500         (roundu32<mode>2_fprs): Ditto.
2501
2502         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2503         PRE_INC, PRE_DEC, PRE_MODIFY.
2504         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2505
2506         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2507         Delete prototype.
2508
2509 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2510
2511         PR target/43808
2512         * cfgexpand.c (partition_stack_vars): Call
2513         update_alias_info_with_stack_vars unconditionally.
2514         (update_alias_info_with_stack_vars): Allow unused
2515         unreferenced vars when not optimizing.
2516
2517 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
2518
2519         PR tree-optimization/46036
2520         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2521         add_to_dst_predicate_list.
2522
2523 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2524
2525         PR debug/46171
2526         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2527         earlier.
2528         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2529         argument, call dead_debug_reset when adding REG_UNUSED note.
2530         (dead_debug_reset): New function.
2531         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2532         df_create_unused_note callers.
2533
2534 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
2535
2536         * config/fr30/fr30.c: Include "df.h".
2537
2538 2010-11-09  Richard Guenther  <rguenther@suse.de>
2539
2540         PR tree-optimization/46355
2541         * tree-loop-distribution.c (tree_loop_distribution): Do not
2542         distribute loops without a single exit.
2543
2544 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2545
2546         PR rtl-optimization/46237
2547         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2548         saved hard regs if they might get partially clobbered.
2549
2550 2010-11-09  Paul Koning  <ni1d@arrl.net>
2551
2552         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2553
2554 2010-11-09  Richard Guenther  <rguenther@suse.de>
2555
2556         PR tree-optimization/46177
2557         * tree-loop-distribution.c (prop_phis): Remove.
2558         (generate_builtin): Re-use the old loop exit edge to avoid
2559         needing to update PHI nodes.
2560
2561 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
2562
2563         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2564         type of args_size to unsigned HOST_WIDE_INT.
2565
2566         PR target/44755
2567         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2568         * config/t-pnt16-warn: New file.
2569         * config/picochip/picochip.c (picochip_emit_stack_allocate):
2570         Use add_reg_note.
2571         (picochip_emit_save_register): Likewise.
2572         (picochip_emit_restore_register): Remove variable insn.
2573         (picochip_legitimize_address): Don't use C++ style comments.
2574         (picochip_legitimize_reload_address): Likewise.
2575         (reorder_var_tracking_notes): Remove variable vliw_start.
2576         (picochip_reorg): Cast first arguemnt to emit_note_after to
2577         enum insn_note.
2578         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2579         (picochip_expand_builtin_3op): Likewise.
2580         (picochip_expand_builtin_2opvoid): Likewise.
2581         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2582         (picochip_expand_array_testport): Likewise.
2583         (picochip_init_builtins): Remove unused variables.
2584         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2585         to unsigned long, and output it as such.
2586         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2587         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2588         (schedType): Cast result of picochip_schedule_type to
2589         enum attr_schedType.
2590
2591         PR target/44759
2592         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2593         conditional to type of S.
2594         (mn10300_function_arg): Remove unused variable align.
2595         (mn10300_arg_partial_bytes): Likewise.
2596         * config/mn10300/mn10300.md (attribute cpu): Cast value to
2597         enum attr_cpu.
2598
2599 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
2600
2601         PR bootstrap/46392
2602         * gengtype-parse.c (type): Call get_input_file_name to get file name.
2603
2604 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2605
2606         * tree.h (contains_placeholder_p): Fix comment.
2607         (type_contains_placeholder_p): Adjust comment.
2608         * tree.c (contains_placeholder_p): Fix comment.
2609         (type_contains_placeholder_1): Do not recurse on pointed-to types and
2610         adjust comment.
2611         (type_contains_placeholder_p): Add comment.
2612
2613 2010-11-09  Paul Koning  <ni1d@arrl.net>
2614
2615         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2616         output of byte values.
2617
2618 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2619
2620         PR middle-end/46360
2621         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2622         not in SSA mode.
2623
2624 2010-11-09  Richard Guenther  <rguenther@suse.de>
2625
2626         PR middle-end/46221
2627         * varasm.c (compute_visible_aliases): New function.
2628         (remove_unreachable_alias_pairs): Aliases make a target available
2629         even though we reclaimed the cgraph node.
2630         (finish_aliases_1): Likewise.
2631         * Makefile.in (varasm.o): Add pointer-set.h dependency.
2632
2633 2010-11-09  Nick Clifton  <nickc@redhat.com>
2634
2635         * config/mn10300/mn10300-modes.def: New file.
2636
2637 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
2638             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2639
2640         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2641         (plugin_files, get_file_basename, get_file_realbasename)
2642         (get_file_langdir, error_at_line, gt_files, this_file)
2643         (system_h_file, read_input_list, create_field_all)
2644         (get_file_srcdir_relative_path, get_file_basename)
2645         (get_file_langdir, get_file_gtfilename)
2646         (get_output_file_with_visibility, get_output_file_name)
2647         (struct flist, put_mangled_filename, walk_type)
2648         (put_mangled_filename, finish_root_table, write_roots): Use
2649         input_file-s.
2650         (lang_dir_names, num_lang_dirs): Remove static.
2651         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2652         (main): Use input_file-s.
2653
2654         * gengtype.h: (struct input_file_st, input_file): New type.
2655         (struct fileloc): Use it.
2656         (gt_files, num_gt_files, this_file, system_h_file)
2657         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2658         (get_input_file_name): New function.
2659         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2660         use input_file.
2661         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2662         (get_output_file_name): Ditto.
2663
2664         * gengtype-lex.l (yybegin): Use input_file.
2665
2666         * gengtype-parse.c (parse_error): Use input_file.
2667
2668 2010-11-08  Xinliang David Li  <davidxl@google.com>
2669
2670         PR tree-optimization/46316
2671         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2672         * double-int.h (double_int_mul_with_sign): New function.
2673         * double-int.c (double_int_mul_with_sign): New function.
2674
2675 2010-11-08  Paul Koning  <ni1d@arrl.net>
2676
2677         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2678
2679 2010-11-08  Paul Koning  <ni1d@arrl.net>
2680
2681         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2682
2683 2010-11-08  Paul Koning  <ni1d@arrl.net>
2684
2685         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2686         to 8 bits.
2687
2688 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2689
2690         PR target/46378
2691         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2692         turn on ISA 2.04 rounding instructions for power5.
2693
2694         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2695         not ISA 2.02.
2696
2697         PR target/45585
2698         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2699         in FPR registers.
2700         (movdi_low_st): Ditto.
2701
2702 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2703             Richard Henderson  <rth@redhat.com>
2704
2705         PR target/44758
2706         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2707         (attribute acc_group): Cast value to enum attr_acc_group.
2708         (*movdi_nodouble+6): Use gen_int_mode.
2709         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2710         if RTX_CODE is defined or not.
2711         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2712         struct frv_io.
2713         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2714         (frv_frame_access, frv_expand_prologue): Remove unused variables.
2715         (frv_expand_block_clear): Likewise.
2716         (frv_trampoline_init): Use LCT_NORMAL.
2717         (struct frv_packet_group): New struct, broken out of type of
2718         frv_packet.
2719         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2720         use cast in loop counter increment.
2721         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2722         assigning to io->type.
2723         (bdesc_set): Use rtx_code UNKNOWN in initializer.
2724         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2725         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2726         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2727         (frv_read_argument): Use expand_normal.
2728
2729         PR target/44757
2730         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2731         lm32_legitimate_constant_p.
2732         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2733         * config/lm32/lm32.c (gen_int_relational): Make new block for
2734         LE / LT / LEU / LTU case.  Declare variables at start of block.
2735         (lm32_block_move_inline): Use XALLOCAVEC.
2736
2737 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2738
2739         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2740
2741 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2742
2743         * gengtype (get_output_file_for_structure): Ensure type is union
2744         or struct.
2745         (write_splay_tree_allocator_def): Use
2746         get_output_file_with_visibility.
2747
2748 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2749
2750         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2751         to defined values in case of an error.
2752         (s390_option_override): Skip further processing if the -march
2753         parameter wasn't recognized.
2754
2755 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2756
2757         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2758         assert that REG is a hard register number before using it as an index.
2759
2760         PR bootstrap/46358
2761         * config/i386/i386.c (ix86_expand_split_stack_prologue):
2762         Avoid warnings when HOST_WIDE_INT is 32 bit.
2763
2764 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766         PR target/46208
2767         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2768         (sparc_promote_prototypes): Likewise.
2769         (sparc_promote_function_mode): Promote in 32-bit mode as well.
2770         (sparc_return_in_memory): Remove superfluous parentheses.
2771         (sparc_struct_value_rtx): Fix long lines.
2772         (sparc_function_value_1): Promote in 32-bit mode as well.
2773
2774 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
2775
2776         PR rtl-optimization/45352
2777         * sel-sched.c (find_best_expr): Do not set pneed_stall when
2778         the variable_issue hook is not implemented.
2779         (fill_insns): Remove dead variable stall_iterations.
2780         (init_seqno_1): Force EBB start for resetting sched cycles on any
2781         successor blocks of the rescheduled region.
2782         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2783         (reset_sched_cycles_in_current_ebb): Add debug printing.
2784         New variable issued_insns.  Advance state when we have issued
2785         issue_rate insns.
2786
2787 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2788
2789         * gengtype (main): Get here's position using POS_HERE macro for
2790         do*typedef calls.
2791
2792 2010-11-07  Ian Lance Taylor  <iant@google.com>
2793
2794         PR target/46089
2795         * config/i386/i386.c (split_stack_fn_large): New static variable.
2796         (ix86_expand_split_stack_prologue): Handle large model.
2797
2798 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
2799
2800         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2801         all possible addressing modes.
2802
2803 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
2804
2805         PR tree-optimization/46346
2806         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2807
2808 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2809
2810         * config/mips/mips.c: Revert previous patch.
2811         * config/mips/mips.md: Likewise.
2812
2813 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2814
2815         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2816         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2817         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2818         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2819         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2820         to use FMA.
2821         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2822         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2823         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2824         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2825
2826 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
2827
2828         PR c/43384
2829         * c-decl.c (lookup_label): Labels can only be referenced in a
2830         function's scope.
2831         (store_parm_decls_oldstyle): Skip erroneous parameters.
2832
2833 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
2834
2835         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2836         LIBCALL_VALUE): Remove macros.
2837         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2838         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2839         (fr30_function_value_regno_p, fr30_function_value,
2840         fr30_libcall_value): New functions.
2841
2842 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
2843
2844         PR middle-end/46314
2845         * target.def (generate_internal_label): New asm_out hook.
2846         * output.h (default_generate_internal_label): Declare.
2847         * varasm.c (default_generate_internal_label): Define.
2848
2849 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
2850
2851         PR target/44981
2852         * doc/extend.tex (format): Document NSString extension.
2853         (format_arg): Likewise.
2854         (Darwin Format Checks): New section.
2855         * doc/tm.texi: Document string object hooks (generated).
2856         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2857         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2858         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2859         * target.def (objc_construct_string_object): Rename, amend
2860         documentation.
2861         (string_object_ref_type_p): New hook.
2862         (check_string_object_format_arg): New hook.
2863         * c-parser.c (c_parser_attributes): Allow objective-c class names as
2864         attribute identifiers.
2865         * config/darwin-c.c (darwin_cfstring_ref_p): New.
2866         (darwin_check_cfstring_format_arg): New.
2867         (darwin_additional_format_types): New.
2868         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2869         (darwin_check_cfstring_format_arg): New.
2870         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2871         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2872         (TARGET_N_FORMAT_TYPES): New.
2873         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2874
2875 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
2876             Pascal Obry  <obry@adacore.com>
2877
2878         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
2879         in 64-bit mode and 17 otherwise.
2880
2881 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2882
2883         PR debug/45939
2884         * var-tracking.c (emit_note_insn_var_location): Make sure that
2885         call related var location notes come before the normal ones.
2886
2887 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2888
2889         PR target/46326
2890         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2891         in the last change.
2892
2893 2010-11-05  Ian Lance Taylor  <iant@google.com>
2894
2895         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2896
2897 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2898
2899         PR c/44772
2900         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2901         pointer_set_contains if DECL_NAME is NULL.
2902
2903 2010-11-05  Ian Lance Taylor  <iant@google.com>
2904
2905         PR target/46084
2906         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2907         request enough additional space for alignment, and force alignment.
2908
2909 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
2910
2911         * config/i386/i386.c (legitimate_pic_address_disp_p):
2912         Handle UNSPEC_PCREL.
2913         (ix86_legitimate_address_p): Likewise.
2914         (legitimize_pic_address): Likewise.
2915         (output_pic_addr_const): Likewise.
2916         (ix86_delegitimize_address): Likewise.
2917         (ix86_find_base_term): Likewise.
2918         (memory_address_length): Likewise.
2919         (x86_output_mi_thunk): Handle special case x64
2920         for non local binding.
2921         * config/i386/i386.md (UNSPEC_PCREL): New.
2922         * config/i386/winnt.c (i386_pe_binds_local_p):
2923         Allow weak symbol for x64 windows with non-local binding.
2924
2925 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2926
2927         PR target/45670
2928         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2929         instead of EXPAND_NORMAL for base expansion.
2930
2931 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
2932
2933         * config.gcc: Support --with-fpmath=avx for x86.
2934         * config/i386/avxmath.h: New.
2935         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2936
2937 2010-11-05  Ian Lance Taylor  <iant@google.com>
2938
2939         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2940         * gengtype.c (walk_type): Don't recognize descbits option.
2941
2942 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
2943
2944         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2945         WORD_SWITCH_TAKES_ARG): Remove.
2946         * doc/options.texi (Args): Document.
2947         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2948         * doc/tm.texi: Regenerate.
2949         * opt-functions.awk (switch_flags): Handle Args.
2950         * opts-common.c: Update comment on tm.h include.
2951         (decode_cmdline_option): Handle options with multiple arguments.
2952         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2953         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2954         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2955         CL_COMMON): Update values.
2956         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2957         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2958         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2959         sectobjectsymbols, sectorder, segcreate, segprot): New.
2960
2961 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2962             Uros Bizjak  <ubizjak@gmail.com>
2963
2964         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2965         256bit AVX register is used.
2966         (ix86_expand_vector_move_misalign): Likewise.
2967         (ix86_expand_vector_move): Replace use_avx256_p with
2968         VALID_AVX256_REG_MODE.
2969
2970 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
2971
2972          PR target/44750
2973         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2974         change.  Set $@-warn.o to -Wno-error.
2975
2976         PR bootstrap/44756
2977         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2978         comparing it to a signed value.
2979
2980         PR middle-end/44766
2981         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
2982         PR bootstrap/44770
2983         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
2984         to i.
2985
2986         PR target/44754
2987         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
2988         (m32c_function_arg).  Add comma between arguments two and three.
2989         (m32c_promote_prototypes): Remove declaration.
2990         (current_function_special_page_vector): Likewise.
2991         (m32c_regno_reg_class): Change return type to enum reg_class.
2992         (m32c_pushm_popm): Use add_reg_note.
2993         (m32c_push_rounding): Change return type to unsigned int.
2994         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
2995         enum reload_type.
2996         (m32c_insert_attributes): Constify variable name.
2997         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
2998         (m32c_prepare_shift): Remove variable lref.
2999         (m32c_expand_movcc): Remove variable cmp.
3000         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3001         (m32c_compare_redundant): Remove variable op2.
3002         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3003         (m32c_pragma_memregs): Assign the number to target_memregs.
3004         (m32c_pragma_address): Remove variable var_str.
3005         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3006         enum reg_class.
3007         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3008         * config/m32c/bitops.md (andsi3): Add default case to switch.
3009         (iorsi3, xorsi3): Likewise.
3010         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3011         * config/m32c/jump.md (call, call_value): Likewise.
3012         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3013         (m32c_regno_reg_class): Likewise.
3014         (current_function_special_page_vector): Declare.
3015
3016 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3017
3018         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3019
3020         PR tree-optimization/46099
3021         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
3022         if it is NULL and uid wasn't found in the hash table.  Just fold the
3023         result if it is NULL otherwise.  Insert other potentially needed
3024         stmts right before current stmt instead of on the entry edge.
3025         (struct elv_data): Add gsi and reset fields.
3026         (eliminate_local_variables_1): Adjust caller.  If take_address_of
3027         failed for debug stmt, set dta->reset and return.
3028         (eliminate_local_variables_stmt): Change STMT argument for GSI,
3029         pass GSI through to the callback, handle resetting of debug stmts.
3030         (eliminate_local_variables): Adjust caller.  Process debug stmts
3031         in second phase.
3032
3033         PR middle-end/43690
3034         * gimplify.c (gimplify_asm_expr): If a "m" input is a
3035         {pre,post}{in,de}crement, fail.
3036
3037         PR debug/46307
3038         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3039         * tree-pretty-print.c (dump_generic_node): Likewise.
3040         (op_code_prio): Likewise.
3041         * cfgexpand.c (expand_debug_expr): Likewise.
3042
3043 2010-11-04  Paul Koning  <ni1d@arrl.net>
3044
3045         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3046         constraints.
3047
3048 2010-11-04  Chao-ying Fu  <fu@mips.com>
3049
3050         * configure.ac: Test assembler support for DSP Rev1 mult.
3051         * configure: Regenerate.
3052         * config.in: Regenerate.
3053         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3054         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3055         (CODE_FOR_mips_multu): New define.
3056         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3057         dspr2_32 to dsp_32.
3058         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3059         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3060         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3061         New define_expand patterns.
3062         * config/mips/constraints.md (ka): Update the constraint to test
3063         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3064         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3065         mips_multu): Delete.
3066         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3067         Change target constraint to "ka".
3068         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3069         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3070         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3071         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
3072         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3073         (<u>maddsidi4): Likewise.
3074         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3075         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3076
3077 2010-11-04  Paul Koning  <ni1d@arrl.net>
3078
3079         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3080
3081 2010-11-04  Paul Koning  <ni1d@arrl.net>
3082
3083         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3084
3085 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
3086
3087         Fixed using the Objective-C 2.0 dot-syntax with class names.
3088         * c-parser.c (c_parser_next_token_starts_declspecs): In
3089         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3090         (c_parser_next_token_starts_declaration): Same.
3091         (c_parser_postfix_expression): Parse the Objective-C 2.0
3092         dot-syntax with a class name.
3093
3094 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
3095
3096         * final.c (compute_alignments): Compute/free loop info all the time.
3097         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3098         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3099         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3100         * config/rs6000/rs6000.c (cfgloop.h): Include.
3101         (can_override_loop_align): New.
3102         (rs6000_option_override_internal): Set it.
3103         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3104         (rs6000_loop_align): New function.
3105         (rs6000_loop_align_max_skip): Likewise.
3106
3107 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3108
3109         PR driver/45703
3110         * collect2.c (main): Print --help output to stdout.  Do not
3111         exit right away, so ld --help is appended.  Add empty lines
3112         to separate output suitably.
3113
3114 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
3115
3116         PR tree-optimization/46233
3117         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3118         after calling analyze_function, not before.
3119
3120         PR target/46234
3121         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3122         instead of build_va_arg_indirect_ref.
3123         * config/spu/spu.c (spu_va_start): Likewise.
3124         * config/s390/s390.c (s390_va_start): Likewise.
3125
3126 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
3127
3128         PR middle-end/46292
3129         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3130         if the innermode is not vector mode, determine the mode of a subreg
3131         by using mode_for_size of inner_size.
3132
3133 2010-11-04  Richard Guenther  <rguenther@suse.de>
3134
3135         PR rtl-optimization/46183
3136         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3137         (execute_rtl_pre): Likewise.
3138         (execute_rtl_hoist): Likewise.
3139
3140 2010-11-04  Richard Guenther  <rguenther@suse.de>
3141
3142         PR tree-optimization/46068
3143         * ipa-split.c (consider_split): Remove gcc_unreachable.
3144
3145 2010-11-04  Richard Guenther  <rguenther@suse.de>
3146
3147         * tree-nested.c (build_addr): Use build_fold_addr_expr.
3148
3149 2010-11-04  Richard Guenther  <rguenther@suse.de>
3150
3151         PR tree-optimization/45991
3152         * gimplify.c (force_gimple_operand_1): Use the provded test
3153         function in the initial test.
3154
3155 2010-11-04  Jeff Law  <law@redhat.com>
3156
3157         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3158         of readonly memory equivalances for const/pure calls.
3159
3160 2010-11-04  Richard Guenther  <rguenther@suse.de>
3161
3162         PR tree-optimization/45733
3163         * tree-vect-stmts.c (reverse_vec_elements): Honor the
3164         permute builtins function return type.
3165
3166 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
3167
3168         PR middle-end/44765
3169         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3170         as an index, check it is not INVALID_REGNUM.
3171
3172         PR bootstrap/44756
3173         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3174         unsignedp.
3175         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3176
3177         PR bootstrap/44756
3178         * function.c (thread_prologue_and_epilogue_insns): Add
3179         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3180
3181         PR bootstrap/44756
3182         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3183
3184         PR target/44750
3185         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3186         (pdp11_preferred_reload_class): Rename class to rclass.
3187         (pdp11_preferred_output_reload_class): Likewise.
3188         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3189         ALL_COMPILERFLAGS .
3190         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3191
3192         PR bootstrap/44756
3193         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3194         iteration variables to enum machine_mode.
3195
3196         PR target/44751
3197         * config/h8300/h8300.c: Include df.h.
3198         (push, pop): Use add_reg_note.
3199         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3200         (compute_a_shift_cc): Likewise.
3201         (expand_a_shift): Argument code has type enum rtx_code.
3202         (struct shift_insn): Member cc_valid has type enum attr_cc.
3203         (struct shift_info) <cc_inline, cc_special>: Likewise.
3204         enum attr_cc.
3205         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3206         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3207
3208 2010-11-04  Ira Rosen  <irar@il.ibm.com>
3209
3210         PR tree-optimization/46213
3211         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3212         MINUS_EXPR only if the first operand is reduction operand.
3213
3214 2010-11-04  Richard Guenther  <rguenther@suse.de>
3215             Richard Henderson  <rth@redhat.com>
3216
3217         * tree.def (FMA_EXPR): New tree code.
3218         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3219         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3220         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3221         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3222         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3223         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3224         (execute_optimize_widening_mul): Call it.  Reorganize to allow
3225         dead stmt removal.  Move TODO flags ...
3226         (pass_optimize_widening_mul): ... here.
3227         * flag-types.h (enum fp_contract_mode): New enum.
3228         * common.opt (flag_fp_contract_mode): New variable.
3229         (-ffp-contract): New option.
3230         * opts.c (common_handle_option): Handle it.
3231         * doc/invoke.texi (-ffp-contract): Document.
3232         * tree.h (fold_fma): Declare.
3233         * builtins.c (fold_fma): New function.
3234         (fold_builtin_fma): Likewise.
3235         (fold_builtin_3): Call it for fma.
3236         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3237         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3238         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3239         New expanders.
3240         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3241         named patterns.
3242         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3243         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3244         (fms_optab, fnma_optab, fnms_optab): New defines.
3245         * gimplify.c (gimplify_expr): Handle binary truth expressions
3246         explicitly.  Handle FMA_EXPR.
3247         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3248         operations.
3249
3250 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3251             Richard Guenther  <rguenther@suse.de>
3252
3253         * passes.c (init_optimization_passes): Move veclower after SSA.
3254         * tree-vect-generic.c (uniform_vector_p): New function.
3255         (expand_vector_operations_1): Handle conversion.
3256         (pass_lower_vector): Update SSA form.
3257
3258 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
3259
3260         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3261         plugin capabilities.
3262         * configure: Regenerate.
3263
3264 2010-11-03  Xinliang David Li  <davidxl@google.com>
3265
3266         PR target/46200
3267         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3268         Adjust cbase if the use stmt is after iv update.
3269
3270 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3271
3272         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3273
3274 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3275
3276         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3277         comment.  Pass true to the last argument of output_stack_adjust.
3278
3279 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3280
3281         PR target/46295
3282         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3283         if 256bit AVX register is used.
3284
3285 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3286
3287         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3288         xsmindp/xsmaxdp on VSX for single precision min/max.
3289         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3290         (vsx_sminsf3): Ditto.
3291
3292 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3293
3294         * combine.c (try_combine): Fix formatting issues, improve comments and
3295         fix a pasto.
3296
3297 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3298
3299         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3300         of the result before building binary expressions.
3301
3302 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3303
3304         PR rtl-optimization/45865
3305         * Makefile.in (df-problems.o): Revert revision 164552.
3306         * basic-block.h (enum bb_flags): Likewise.
3307         * cfgcleanup.c (block_was_dirty): Likewise.
3308         (try_forward_edges): Likewise.
3309         (try_crossjump_bb): Likewise.
3310         (try_head_merge_bb): Likewise.
3311         (try_optimize_cfg): Likewise.
3312         (cleanup_cfg): Likewise.
3313         * df-core.c (df_set_bb_dirty): Likewise.
3314         * df-problems.c: Likewise.
3315         (df_simulate_find_uses): Likewise.
3316         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3317         (find_memory, find_memory_store): Likewise.
3318         (can_move_insns_across): Likewise.
3319         * df.h (can_move_insns_across): Likewise.
3320         * ifcvt.c (find_memory): Likewise.
3321         (dead_or_predicable): Likewise.
3322
3323 2010-11-03  Richard Guenther  <rguenther@suse.de>
3324
3325         PR middle-end/46288
3326         * predict.c (strip_predict_hints): Simply DCE builtin expect if
3327         the result is unused.
3328
3329 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3330
3331         PR tree-optimization/46009
3332         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3333         cond_if_else_store_replacement if bb1 and bb2 have the same
3334         single successor.
3335         (cond_store_replacement): Use gimple_assign_single_p, don't
3336         check if rhs is SSA_NAME or invariant.  Call release_defs for
3337         assign.
3338         (cond_if_else_store_replacement): New function.
3339
3340 2010-11-03  Richard Guenther  <rguenther@suse.de>
3341
3342         * opts.c (finish_options): Properly check for all WHOPR
3343         flags before complaining about -flto-partition.
3344
3345 2010-11-04  Alan Modra  <amodra@gmail.com>
3346
3347         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3348         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3349         TARGET_SECURE_PLT.
3350         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3351         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3352         on input, "r" on output.
3353
3354 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
3355
3356         Implemented -fobjc-std=objc1 flag.
3357         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3358         option.
3359         * doc/standards.texi (Standards): Updated the section on
3360         Objective-C; mention support for Objective-C 2.0 features and the
3361         new -fstd-objc=objc1 flag to disable them.
3362
3363 2010-11-03  Richard Guenther  <rguenther@suse.de>
3364
3365         PR middle-end/46241
3366         * dwarf2out.c (scope_die_for): Properly detect global scope.
3367
3368 2010-11-03  Richard Guenther  <rguenther@suse.de>
3369
3370         PR tree-optimization/46190
3371         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3372         Properly compute peel iterations.
3373
3374 2010-11-03  Richard Guenther  <rguenther@suse.de>
3375
3376         PR tree-optimization/46286
3377         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3378         re-allocated vector data.
3379
3380 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
3381
3382         PR target/46285
3383         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3384         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3385         is completed.
3386
3387 2010-11-03  Richard Guenther  <rguenther@suse.de>
3388
3389         PR tree-optimization/46217
3390         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
3391         flag matches.
3392         (execute_update_addresses_taken): Likewise.
3393
3394 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3395
3396         PR bootstrap/44335
3397         * targhooks.c (targhook_words_big_endian): New function.
3398         (targhook_float_words_big_endian): Likewise.
3399         * targhooks.h (targhook_words_big_endian): Declare.
3400         (targhook_float_words_big_endian): Likewise.
3401         * target.def (words_big_endian, float_words_big_endian): New hooks.
3402
3403 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3404
3405         PR tree-optimization/46165
3406         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3407         a normal call into noreturn call.
3408
3409 2010-11-03  Richard Guenther  <rguenther@suse.de>
3410
3411         PR middle-end/46251
3412         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3413         not INDIRECT_REFs.
3414
3415 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3416
3417         PR tree-optimization/46107
3418         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3419         if cfg_hook_duplicate_loop_to_header_edge failed.
3420
3421 2010-11-03  Ian Lance Taylor  <iant@google.com>
3422
3423         PR lto/46273
3424         * config.gcc: Don't set lto_binary_reader.
3425         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3426         (Configuration): Mention --disable-lto.  Remove --with-libelf
3427         paragraph.
3428
3429 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3430
3431         PR debug/46252
3432         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3433         prev_real_insn.
3434         * gcse.c (insert_insn_end_basic_block): Likewise.
3435
3436         PR rtl-optimization/46034
3437         PR rtl-optimization/46212
3438         PR rtl-optimization/46248
3439         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3440         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3441         before i0dest -> i0src substitution and pass 1 instead of 0 as last
3442         argument to subst on i2pat.
3443
3444 2010-11-02  Ian Lance Taylor  <iant@google.com>
3445
3446         * configure.ac: Use AC_SYS_LARGEFILE.
3447         * configure: Rebuild.
3448         * config.in: Rebuild.
3449
3450 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3451
3452         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3453         fold_convert.
3454         * c-typeck.c (build_function_call_vec): Likewise.
3455         * cfgexpand.c (expand_debug_expr): Likewise.
3456         * cgraphunit.c (assemble_thunk): Likewise.
3457         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3458         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3459         (fold_binary_loc, fold_ternary_loc): Likewise.
3460         * gimple-fold.c (get_symbol_constant_value): Likewise.
3461         * gimple-low.c (lower_builtin_setjmp): Likewise.
3462         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3463         * gimplify.c (gimplify_init_constructor): Likewise.
3464         * lambda.h (build_linear_expr): Likewise.
3465         * omp-low.c (omp_reduction_init): Likewise.
3466         * tree-inline.c (remap_ssa_name): Likewise.
3467         * tree-object-size.c (compute_object_sizes): Likewise.
3468         * tree-sra.c (init_subtree_with_zero): Likewise.
3469         (sra_ipa_modify_assign): Likewise.
3470         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3471         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3472         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3473         (undistribute_ops_list): Likewise.
3474         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3475         * tree-vect-stmts.c (vectorizable_call): Likewise.
3476         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3477         (build_zero_cst): Handle more cases directly.  Update comment.
3478
3479 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3480
3481         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3482         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3483
3484         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3485         and call ix86_split_call_vzeroupper instead of
3486         ix86_split_call_pop_vzeroupper.
3487         (*call_pop_1_vzeroupper): Likewise.
3488         (*sibcall_pop_1_vzeroupper): Likewise.
3489         (*call_value_pop_0_vzeroupper): Likewise.
3490         (*call_value_pop_1_vzeroupper): Likewise.
3491         (*sibcall_value_pop_1_vzeroupper): Likewise.
3492
3493 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3494
3495         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3496
3497 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
3498
3499         * basic-block.h (insert_insn_end_bb_new): Delete.
3500         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3501
3502 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
3503             H.J. Lu  <hongjiu.lu@intel.com>
3504
3505         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3506         (ix86_split_call_pop_vzeroupper): Likewise.
3507
3508         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3509         (ix86_expand_call): Conditionally decorate calls with
3510         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3511         (ix86_split_call_vzeroupper): New.
3512         (ix86_split_call_pop_vzeroupper): Likewise.
3513
3514         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3515         (*call_pop_0_vzeroupper): New insn_and_split pattern.
3516         (*call_pop_1_vzeroupper): Likewise.
3517         (*sibcall_pop_1_vzeroupper): Likewise.
3518         (*call_0_vzeroupper): Likewise.
3519         (*call_1_vzeroupper): Likewise.
3520         (*sibcall_1_vzeroupper): Likewise.
3521         (*call_1_rex64_vzeroupper): Likewise.
3522         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3523         (*call_1_rex64_large_vzeroupper): Likewise.
3524         (*sibcall_1_rex64_vzeroupper): Likewise.
3525         (*call_value_pop_0_vzeroupper): Likewise.
3526         (*call_value_pop_1_vzeroupper): Likewise.
3527         (*sibcall_value_pop_1_vzeroupper): Likewise.
3528         (*call_value_0_vzeroupper): Likewise.
3529         (*call_value_0_rex64_vzeroupper): Likewise.
3530         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3531         (*call_value_1_vzeroupper): Likewise.
3532         (*sibcall_value_1_vzeroupper): Likewise.
3533         (*call_value_1_rex64_vzeroupper): Likewise.
3534         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3535         (*call_value_1_rex64_large_vzeroupper): Likewise.
3536         (*sibcall_value_1_rex64_vzeroupper): Likewise.
3537
3538 2010-11-02  Ian Lance Taylor  <iant@google.com>
3539
3540         PR lto/46273
3541         * config.gcc: Revert last patch: set lto_binary_reader.
3542
3543 2010-11-02  Richard Guenther  <rguenther@suse.de>
3544
3545         PR tree-optimization/46149
3546         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3547         non-indirect MEM_REF variants.
3548
3549 2010-11-02  Richard Guenther  <rguenther@suse.de>
3550
3551         PR tree-optimization/46216
3552         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3553         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3554
3555 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3556
3557         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3558         (*-*-osf*): Likewise.
3559         * configure: Regenerate.
3560
3561 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3562
3563         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3564         for Intel Core 2 and Core i7.
3565
3566 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
3567
3568         Model decoder of Core 2/i7 for multipass scheduling.
3569
3570         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3571         New type to hold target-specific data for multipass scheduling.
3572         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3573         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3574         Core 2/i7.
3575         (core2i7_secondary_decoder_max_insn_size,)
3576         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3577         New static variables.
3578         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3579         ([_]ix86_first_cycle_multipass_data): New static variable.
3580         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3581         Implement targetm.sched hooks.
3582         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3583         of ...
3584         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3585         Implement new targetm.sched hooks.
3586         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3587         targetm.sched hook to install multipass scheduling hooks on demand.
3588
3589         * doc/tm.texi.in: Document new targetm.sched hooks.
3590         * doc/tm.texi: Regenerate.
3591
3592         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3593         (first_cycle_multipass_data_t): New typedef.
3594         (struct choice_entry: target_data): New field.
3595         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
3596         to allow target model restrictions not represented in DFA.
3597         (choose_ready, schedule_block): Update.
3598         (sched_extend_ready_list, sched_finish_ready_list): Call new target
3599         hooks to initialize target-specific data for multipass scheduling.
3600         * sched-int.h (max_issue): Update declaration.
3601         * sel-sched.c (choose_best_insn): Update.
3602         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3603         (first_cycle_multipass_{init, fini}): Define and document new
3604         targetm.sched hooks.
3605
3606 2010-11-02  Richard Guenther  <rguenther@suse.de>
3607
3608         PR tree-optimization/46184
3609         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3610         input vector type from the reduction operand as well.
3611
3612 2010-11-02  Richard Guenther  <rguenther@suse.de>
3613
3614         PR tree-optimization/46177
3615         * tree-loop-distribution.c (prop_phis): Use
3616         mark_virtual_phi_result_for_renaming.
3617
3618 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3619
3620         PR middle-end/46120
3621         * tree.c (get_binfo_at_offset): Bail out on artificial
3622         fields.  Identify primary bases according to their offsets.
3623
3624 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3625
3626         PR tree-optimization/45875
3627         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3628         (gimple_get_relevant_ref_binfo): Detect primary bases according to
3629         their field offset.
3630
3631 2010-11-02  Ian Lance Taylor  <iant@google.com>
3632
3633         * doc/install.texi (Configuration): Note in two places that Java
3634         is not enabled by default.
3635
3636 2010-11-02  Ian Lance Taylor  <iant@google.com>
3637
3638         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3639         (Configuration): Mention --disable-lto.  Remove --with-libelf
3640         paragraph.
3641
3642 2010-11-02  Ian Lance Taylor  <iant@google.com>
3643
3644         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
3645         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
3646         LIBELFINC.  Remove HAVE_libelf.
3647         * config.gcc: Don't set lto_binary_reader.
3648         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3649         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3650         (LIBS): Remove $(LIBELFLIBS).
3651         (INCLUDES): Remove $(LIBELFINC).
3652         * configure: Rebuild.
3653         * config.in: Rebuild.
3654
3655 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3656
3657         * config/microblaze/microblaze-protos.h (function_arg): Delete.
3658         (function_arg_advance): Delete.
3659         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3660         (FUNCTION_ARG): Delete.
3661         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
3662         (microblaze_function_arg_advance): ...this.  Make static.  Take a
3663         const_tree and a bool.
3664         (function-arg): Rename to...
3665         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
3666         and a bool.
3667         (microblaze_expand_prologue): Call targetm.calls.function_arg and
3668         targetm.calls.function_arg_advance.
3669         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3670
3671 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3672
3673         Merge from FSF "apple/trunk" branch.
3674
3675         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
3676         * config/darwin.opt: .. to here.
3677         (matt-stubs): New option.
3678         * config/i386/darwin.opt: Delete.
3679         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
3680         (MACHO_DYNAMIC_NO_PIC_P): New.
3681         (MACHOPIC_INDIRECT): New.
3682         (MACHOPIC_PURE): New.
3683         * config/i386/darwin.h (DARWIN_X86) Define to 1.
3684         (MACHOPIC_ATT_STUB): New.
3685         (CC1_SPEC): Do not remove mdynamic-no-pic.
3686         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3687         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3688         (FUNCTION_PROFILER): Correct over-length line.
3689         (SUBTARGET_OVERRIDE_OPTIONS): New.
3690         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3691         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
3692         (legitimate_constant_p): Handle mdynamic-no-pic.
3693         (ix86_legitimate_address_p): Likewise.
3694         (ix86_legitimize_address): Likewise.
3695         (ix86_expand_move): Likewise.
3696         (machopic_output_stub): Update for ATT-style stubs and
3697         mdynamic-no-pic.
3698         * config/darwin-protos.h (machopic_symbol_defined_p): New.
3699         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
3700         TARGET_DYNAMIC_NO_PIC: Remove.
3701         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3702         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3703         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
3704         Remove handling of mdynamic-no-pic.
3705         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
3706         Define if required.
3707         (machopic_symbol_defined_p): Do not try to use current_function_decl
3708         when generating _get_pc thunks within stubs.
3709         (machopic_indirect_data_reference): Rework for direct conditionals
3710         rather than #ifdefs, add x86 mdynamic-no-pic
3711         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
3712         defined value.
3713         (darwin_override_options): Handle mdynamic-no-pic here.
3714         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
3715         (machopic_lazy_symbol_ptr3_section): New.
3716         (machopic_picsymbol_stub2_section): New.
3717         (machopic_picsymbol_stub3_section): New.
3718         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
3719         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3720         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3721         Moved common definition from x86 and rs6000.
3722         (MACHO_DYNAMIC_NO_PIC_P): Override value.
3723         (MACHOPIC_INDIRECT): Likewise.
3724         (MACHOPIC_PURE): Likewise.
3725         * config.gcc (x86-darwin-*): Remove darwin.opt.
3726
3727 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
3728
3729         PR debug/46255
3730         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
3731         instead of gsi_last_bb.
3732
3733 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3734             Maxim Kuvyrkov  <maxim@codesourcery.com>
3735
3736         * config/i386/i386.c (cpu_names): Add "corei7".
3737         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3738
3739 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3740             Maxim Kuvyrkov  <maxim@codesourcery.com>
3741
3742         Tune alignment for Intel Core i7
3743
3744         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3745         (enum processor_type): Update comment.  Add entries for Core i7.
3746         * config/i386-c.c (ix86_target_macros_internal): Update.
3747         * config/i386.c (m_COREI7{_32,_64}): New macros.
3748         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3749         (processor_target_table): Tune alignment for Core i7.
3750         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3751
3752         * doc/invoke.texi: Document "corei7" option value.
3753
3754 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3755             Maxim Kuvyrkov  <maxim@codesourcery.com>
3756             H.J. Lu  <hjl.tools@gmail.com>
3757
3758         Basic support for Intel Core i7
3759
3760         * i386.c (ix86_option_override_internal): Add entry for corei7, use
3761         generic tuning.  Use generic32 when compiling for 32-bit ABI.
3762
3763 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3764
3765         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
3766         sections and call darwin_asm_dwarf_section() to handle them.
3767         (darwin_asm_dwarf_section): New.
3768         (darwin_file_start): Remove code emitting dwarf section symbols.
3769
3770 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
3771
3772         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
3773         explicitly disable stack protection when building libgcc.
3774         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
3775
3776 2010-11-01  Jason Merrill  <jason@redhat.com>
3777
3778         * fold-const.c (fold_indirect_ref_1): Handle folding
3779         POINTER_PLUS_EXPR to ARRAY_REF.
3780
3781 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3782
3783         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
3784         (sh_delegitimize_address): New function.
3785
3786 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3787
3788         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
3789         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
3790         (CC1_SPEC): Don't handle -target.
3791         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
3792         options.
3793         * config/darwin.opt (Zallowable_client, Zbundle_loader,
3794         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
3795         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
3796         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
3797         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
3798         Zweak_reference_mismatches, client_name, compatibility_version,
3799         current_version, dylinker_install_name, pagezero_size,
3800         read_only_relocs, seg1addr, segs_read_only_addr,
3801         segs_read_write_addr, sub_library, sub_umbrella): New.
3802         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
3803         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
3804         * config/freebsd.opt: New.
3805         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
3806         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
3807         * config/rpath.opt: New.
3808         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
3809         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
3810         Use rpath.opt.
3811
3812 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3813
3814         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
3815         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
3816         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
3817         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
3818         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
3819         Document that options in .opt files do not need to be included.
3820         * doc/tm.texi: Regenerate.
3821         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
3822         * opts-common.c: Update comment on tm.h include.
3823         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
3824         * system.h (SWITCH_TAKES_ARG): Poison.
3825         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
3826         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
3827         in darwin.opt.
3828         (LINK_COMMAND_SPEC_A): Don't include %{x}.
3829         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3830         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
3831         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
3832         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3833         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
3834         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
3835         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
3836         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
3837         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3838         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
3839         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
3840         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
3841         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
3842         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
3843         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
3844         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
3845         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
3846         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
3847         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
3848         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
3849         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
3850         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
3851         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3852
3853 2010-11-01  Paul Koning  <ni1d@arrl.net>
3854
3855         * config/pdp11/pdp11.md: Use iterators.
3856         (addqi3, subqi3, iorsi3, xorsi3): Delete.
3857
3858 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
3859
3860         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
3861         GCC_INSN_FLAGS_H.
3862         * libgcov.c (__gcov_indirect_call_profiler): Set
3863         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
3864         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
3865
3866 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3867
3868         PR tree-optimization/46259
3869
3870         Revert:
3871         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3872         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
3873         build_vector_from_val.
3874
3875 2010-11-01  DJ Delorie  <dj@redhat.com>
3876
3877         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
3878         as well as an assertion.
3879
3880 2010-11-01  Paul Koning  <ni1d@arrl.net>
3881
3882         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
3883         complex modes in memory.
3884
3885 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3886
3887         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
3888
3889 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
3890
3891         PR target/45250
3892         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
3893         (cfa_base_offset): New variable.
3894         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
3895         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
3896         is NULL.
3897         (vt_init_cfa_base): Initialize cfa_base_offset.
3898
3899 2010-11-01  Alan Modra  <amodra@gmail.com>
3900
3901         PR target/46030
3902         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
3903         and savres_strategy.
3904         (stack_info): New file scope var.
3905         (rs6000_init_machine_status): Init stack_info.
3906         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
3907         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
3908         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
3909         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
3910         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
3911         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
3912         (rs6000_savres_strategy): Rewrite.
3913         (rs6000_stack_info): Use "stack_info" in place of local "info".
3914         Return cached stack info when reload_completed unless ENABLE_CHECKING
3915         in which case confirm newly calculated stack info matches old info.
3916         Delay calculation of lr_save_p, set it for out of line gp save/restore
3917         as well as fp.  Call rs6000_savres_strategy from here..
3918         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
3919         (rs6000_output_function_prologue): Use info->savres_strategy to
3920         determine whether fp save/restore externs need to be emitted.
3921
3922 2010-10-31  Jason Merrill  <jason@redhat.com>
3923
3924         * tree.h (EXPR_LOC_OR_HERE): New macro.
3925         * builtins.c (c_strlen): Use it.
3926         * c-decl.c (build_enumerator): Likewise.
3927         * gimplify.c (internal_get_tmp_var): Likewise.
3928         (shortcut_cond_expr): Likewise.
3929         (gimplify_one_sizepos): Likewise.
3930
3931 2010-10-31  Richard Henderson  <rth@redhat.com>
3932
3933         * config/i386/cygming.h (TARGET_SEH): New.
3934         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
3935         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
3936         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
3937         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
3938         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
3939         (ASM_DECLARE_FUNCTION_SIZE): New.
3940         * config/i386/i386-protos.h: Update.
3941         * config/i386/i386.c (ix86_option_override_internal): Enable
3942         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
3943         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
3944         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
3945         (ix86_compute_frame_layout): For SEH, disable
3946         use_fast_prologue_epilogue, move frame pointer to the end of
3947         the frame.  Initialize hfp_save_offset.
3948         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
3949         at end of prologue for SEH.
3950         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
3951         emit blockage at beginning of epilogue.
3952         (ix86_expand_binary_operator): After reload, emit LEA if needed.
3953         (ix86_output_call_insn): New.
3954         * config/i386/i386.h (TARGET_SEH): New.
3955         (struct machine_function): Add member seh.
3956         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
3957         * config/i386/winnt.c (struct seh_frame_state): New.
3958         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
3959         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
3960         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
3961         i386_pe_start_function, i386_pe_end_function): New.
3962
3963         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
3964         as CFA_STORE in rules 12 and 13.
3965
3966 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
3967
3968         PR tree-optimization/46142
3969         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
3970         accommodate third function argument.
3971
3972 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3973
3974         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
3975
3976 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3977
3978         * fold-const.c (build_zero_vector): Use build_vector_from_val.
3979         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3980         (get_initial_def_for_reduction): Likewise.
3981         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3982         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
3983         * tree.c (build_one_cst): Likewise.
3984         (build_vector_from_val): Use types_compatible_p for assert.
3985
3986 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3987
3988         * emit-rtl.c (mark_used_flags): New function.
3989         (set_used_flags, reset_used_flags): Call it.
3990
3991 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
3992
3993         PR middle-end/44569
3994         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
3995         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
3996
3997 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
3998
3999         PR target/46195
4000         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4001         (ix86_compat_aligned_value_p): This.
4002         (ix86_old_function_arg_boundary): Renamed to ...
4003         (ix86_compat_function_arg_boundary): This.  Updated.
4004         (ix86_contains_aligned_value_p): New.
4005         (ix86_function_arg_boundary): Align long double parameters on
4006         stack to 4byte in 32bit.
4007
4008 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4009
4010         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4011         * c-parser.c (c_parser_objc_at_property_declaration): Removed
4012         parsing of RID_COPIES and RID_IVAR.  Updated call to
4013         objc_add_property_declaration.
4014         * c-typecheck.c (build_component_ref): Call
4015         objc_maybe_build_component_ref instead of objc_build_setter_call.
4016         Use objc_is_property_ref to improve Objective-C checks.
4017         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4018         of objc_build_getter_call.
4019
4020 2010-10-29  Paul Koning  <ni1d@arrl.net>
4021
4022         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4023         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
4024         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
4025         (REG_OK_STRICT): Move description.
4026
4027 2010-10-29  Paul Koning  <ni1d@arrl.net>
4028
4029         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
4030
4031 2010-10-29  Paul Koning  <ni1d@arrl.net>
4032
4033         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
4034
4035 2010-10-29  Paul Koning  <ni1d@arrl.net>
4036
4037         PR/41822
4038         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
4039
4040 2010-10-29  Richard Henderson  <rth@redhat.com>
4041
4042         PR rtl-opt/46226
4043         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
4044         for asm goto.
4045
4046 2010-10-29  Paul Koning  <ni1d@arrl.net>
4047
4048         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
4049         register to register move.
4050
4051 2010-10-29  Paul Koning  <ni1d@arrl.net>
4052
4053         * config/pdp11/pdp11.c (print_operand_address): Correct handling
4054         of integer constant addresses, delete vax-only logic.
4055
4056 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
4057
4058         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
4059         a conditional expression.
4060
4061 2010-10-29  Paul Koning  <ni1d@arrl.net>
4062
4063         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
4064         instruction encoding.
4065
4066 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4067             Andrew Pinski  <pinskia@gmail.com>
4068
4069         * tree.h (build_vector_from_val): Declare.
4070         * tree.c (build_vector_from_val): New function.
4071         * c-typeck.c (build_binary_op): Handle vector shifting.
4072         * doc/extend.texi: Description of the vector shifting operation.
4073
4074 2010-10-29  Paul Koning  <pkoning@equallogic.com>
4075
4076         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
4077         pdp11_secondary_memory_needed): Declare.
4078         * config/pdp11/predicates.md (float_operand): New predicate.
4079         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
4080         (cbranchdf4, movdf): Change predicate.
4081         (movsf): Handle FPU register case.
4082         (truncdfsf2, extendsfdf2): Add FPU register case.
4083         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
4084         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
4085         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4086         (pdp11_register_move_cost): Update cost matrix.
4087         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
4088         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
4089         pdp11_secondary_memory_needed): New function.
4090         (pdp11_return_in_memory): Add other float types.
4091         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
4092         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
4093         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
4094         REGISTER_MOVE_COST): Delete.
4095         (BASE_RETURN_VALUE_REG): Add other float types.
4096
4097 2010-10-29  Nick Clifton  <nickc@redhat.com>
4098
4099         * doc/invoke.texi: Document -mam34 and -mtune options.
4100         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
4101         (mn10300_tune_cpu): New variable.
4102         (mn10300_handle_option): Handle -mam34 and -mtune options.
4103         (mn10300_option_override): Convert tune string into tune cpu variable.
4104         (mn10300_legitimate_constant_p): Delete unused local variable.
4105         (is_load_insn): New function.
4106         (is_store_insn): New function.
4107         (mn10300_adjust_schedule_cost): New function.
4108         (TARGET_SCHED_ADJUST_COST): Define.
4109         * config/mn10300/mn10300.opt (mam34): New option.
4110         (mtune): New option.
4111         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
4112         (enum processor_type): Add AM34.
4113         (TARGET_AM34): Define.
4114         * config/mn10300/mn10300.md (attr cpu): Add am34.
4115         Add pipeline description.
4116         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
4117         Remove unneeded alternatives.  Add timing attribute.
4118         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
4119         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
4120         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
4121         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
4122         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
4123         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
4124         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
4125         float_conditional_branch, jump, indirect_jump, tablejump,
4126         call_internal, call_value_internal, zero_extendqisi2_am33,
4127         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
4128         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
4129         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
4130         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
4131         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
4132         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
4133         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
4134         return_internal_regs, store_movm, return, call_next_insn):
4135         Add timing attribute.
4136         (am33_subsi3): Add missing clobber of CC_REG.
4137         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
4138         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
4139         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
4140         extendqisi2): Fix predicates.
4141         (call_internal, call_internal_value): Separate alternatives.
4142         * config/mn10300/t-mn10300: Add AM34 multilib.
4143
4144 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
4145
4146         * config/sh/sh.c (sh_promote_function_mode): Use
4147         default_promote_function_mode if !sh_promote_prototypes.
4148
4149 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
4150
4151         * recog.c (split_all_insns): Remove dead code.
4152
4153 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4154
4155         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4156
4157 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4158
4159         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4160         (FUNCTION_ARG_ADVANCE): Delete.
4161         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
4162         functions.
4163         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
4164         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4165         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4166
4167 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4168
4169         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
4170         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4171         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4172         Take a const_tree and a bool.
4173         (mcore_function_arg_advance): New function.
4174         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4175
4176 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4177
4178         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
4179         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4180         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4181         Take a const_tree and a bool.
4182         (mcore_function_arg_advance): New function.
4183         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4184
4185 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4186
4187         * config/h8300/h8300-protos.h (function_arg): Delete.
4188         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4189         * config/h8300/h8300.c (function_arg): Rename to...
4190         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
4191         a bool.
4192         (h8300_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/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
4198         to...
4199         * config/arc/arc.c (arc_function_arg): ...here and...
4200         (arc_function_arg_advance): ...here.  New functions.
4201         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4202
4203 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4204
4205         * config/crx/crx-protos.h (crx_function_arg): Delete.
4206         (crx_function_arg_advance): Delete.
4207         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4208         * config/crx/crx.c (crx_function_arg): Make static.  Take a
4209         const_tree and a bool.
4210         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
4211         (enough_regs_for_param): Take a const_tree.
4212         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4213
4214 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4215
4216         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
4217         (m68hc11_function_arg_advance): Delete.
4218         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
4219         (FUNCTION_ARG_ADVANCE): Delete.
4220         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
4221         Take a const_tree and a bool.
4222         (m68hc11_function_arg_advance): Likewise.
4223         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4224
4225 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4226
4227         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
4228         (xstormy16_function_arg_advance): Delete.
4229         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
4230         (FUNCTION_ARG_ADVANCE): Delete.
4231         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
4232         Take a const_tree and a bool.
4233         (xstormy16_function_arg_advance): Likewise.  Return void, updating
4234         the CUM parameter instead.
4235         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4236
4237 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4238
4239         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
4240         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4241         (MOXIE_FUNCTION_ARG_SIZE): Move to...
4242         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
4243         (moxie_function_arg): Make static.  Take a const_tree and a bool.
4244         (moxie_function_arg_advance): New function.
4245         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4246
4247 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4248
4249         * config/mn10300/mn10300-protos.h (function_arg): Delete.
4250         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
4251         (FUNCTION_ARG_ADVANCE): Delete.
4252         * config/mn10300/mn10300.c (function_arg): Rename to...
4253         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
4254         and a bool.
4255         (mn10300_function_arg_advance): New function.
4256         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4257
4258 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4259
4260         * config/iq2000/iq2000-protos.h (function_arg): Delete.
4261         (function_arg_advance): Delete.
4262         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4263         * config/iq2000/iq2000.c (function_arg): Rename to...
4264         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
4265         a bool.
4266         (function_arg_advance): Rename to...
4267         (iq2000_function_arg_advance): ...this.  Make static.  Take a
4268         const_tree and a bool.
4269         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
4270         iq2000_function_arg.
4271         (iq2000_pass_by_reference): Call iq2000_function_arg).
4272         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4273
4274 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4275
4276         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
4277         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4278         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
4279         const_tree.
4280         (fr30_function_arg): New function.
4281         (fr30_function_arg_advance): New function.
4282         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4283
4284 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4285
4286         * config/frv/frv-protos.h (frv_function_arg): Delete.
4287         (frv_function_arg_advance): Delete.
4288         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4289         * config/frv/frv.c (frv_function_arg): Rename to...
4290         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
4291         (frv_function_arg, frv_function_incoming_arg): New functions.
4292         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
4293         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4294         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4295
4296 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
4297
4298         PR target/46153
4299         * config/i386/sse.md (sse_movhlps_exp): Use destination
4300         returned from ix86_fixup_binary_operands to expand insn.
4301         (sse_movlhps_exp): Ditto.
4302         (sse_loadhps_exp): Ditto.
4303         (sse_loadlps_exp): Ditto.
4304         (sse2_loadhpd_exp): Ditto.
4305         (sse2_loadlpd_exp): Ditto.
4306
4307 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
4308
4309         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
4310         constants in thumb2.
4311
4312 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
4313
4314         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
4315         arithmetics in masking operations.
4316         (contains_muldiv): Likewise.
4317         (try_combine): Likewise.
4318         (find_split_point): Likewise.
4319         (combine_simplify_rtx): Likewise.
4320         (simplify_if_then_else): Likewise.
4321         (simplify_set): Likewise.
4322         (expand_compound_operation): Likewise.
4323         (expand_field_assignment): Likewise.
4324         (make_extraction): Likewise.
4325         (extract_left_shift): Likewise.
4326         (make_compound_operation): Likewise.
4327         (force_to_mode): Likewise.
4328         (make_field_assignment): Likewise.
4329         (reg_nonzero_bits_for_combine): Likewise.
4330         (simplify_shift_const_1): Likewise.
4331         (simplify_comparison): Likewise.
4332
4333 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
4334
4335         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
4336         (ia64_function_arg_advance): Delete.
4337         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4338         (FUNCTION_ARG_ADVANCE): Delete.
4339         * config/ia64/ia64.c (ia64_function_arg): Rename to...
4340         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
4341         bool arguments.
4342         (ia64_function_arg, ia64_function_incoming_arg): New functions.
4343         (ia64_function_arg_advance): Make static.  Take a const_tree and
4344         a bool.
4345         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4346         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4347
4348 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
4349
4350         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
4351         (TARGET_GET_RAW_ARG_MODE): New.
4352         * doc/tm.texi: Regenerate.
4353         * target.def (get_raw_result_mode): New.
4354         (get_raw_arg_mode): New.
4355         * targhooks.c (default_get_reg_raw_mode): New.
4356         * targhooks.h (default_get_reg_raw_mode): New.
4357         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
4358         (apply_result_size): Ditto.
4359         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
4360         (TARGET_GET_RAW_RESULT_MODE): Define.
4361         (TARGET_GET_RAW_ARG_MODE): Ditto.
4362
4363 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4364
4365         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
4366         for newer Solaris 10 release.
4367         (sparc_fallback_frame_state): Likewise.
4368
4369 2010-10-27  Jason Merrill  <jason@redhat.com>
4370
4371         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
4372         variables sooner.
4373
4374 2010-10-27  Jie Zhang  <jie@codesourcery.com>
4375             Maxim Kuvyrkov  <maxim@codesourcery.com>
4376
4377         * haifa-sched.c (ISSUE_POINTS): Remove.
4378         (max_issue): Don't issue more than issue_rate instructions.
4379
4380 2010-10-27  Ian Lance Taylor  <iant@google.com>
4381
4382         PR target/46197
4383         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
4384         (split_stack_return): Replace UNSPEC_STACK_CHECK with
4385         UNSPECV_SPLIT_STACK_RETURN.
4386
4387 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
4388
4389         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
4390
4391         * config/i386/i386.c (block_info): New.
4392         (BLOCK_INFO): Likewise.
4393         (call_avx256_state): Likewise.
4394         (check_avx256_stores): Likewise.
4395         (move_or_delete_vzeroupper_2): Likewise.
4396         (move_or_delete_vzeroupper_1): Likewise.
4397         (move_or_delete_vzeroupper): Likewise.
4398         (use_avx256_p): Likewise.
4399         (function_pass_avx256_p): Likewise.
4400         (flag_opts): Add -mvzeroupper.
4401         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
4402         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
4403         is disabled.
4404         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
4405         generate vzeroupper.
4406         (init_cumulative_args): Add an int to indicate caller.  Set
4407         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
4408         based on return type.
4409         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
4410         caller_pass_avx256_p based on argument type.
4411         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
4412         is used, but not returned by caller.
4413         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
4414         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
4415         is used.
4416         (ix86_minimum_alignment): Likewise.
4417         (ix86_expand_special_args_builtin): Set target to
4418         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
4419         (ix86_reorg): Run the vzeroupper optimization if needed.
4420
4421         * config/i386/i386.h (ix86_args): Add caller.
4422         (INIT_CUMULATIVE_ARGS): Updated.
4423         (machine_function): Add use_vzeroupper_p, use_avx256_p,
4424         caller_pass_avx256_p, caller_return_avx256_p,
4425         callee_pass_avx256_p and callee_return_avx256_p.
4426
4427         * config/i386/i386.opt (-mvzeroupper): New.
4428
4429         * config/i386/predicates.md (vzeroupper_operation): Removed.
4430
4431         * config/i386/sse.md (avx_vzeroupper): Removed.
4432         (*avx_vzeroupper): Removed.
4433         (avx_vzeroupper): New.
4434
4435         * doc/invoke.texi: Document -mvzeroupper.
4436
4437 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4438
4439         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
4440         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
4441         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
4442
4443 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
4444             Olivier Hainque  <hainque@adacore.com>
4445
4446         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
4447         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
4448         fs->signal_frame instead.
4449
4450 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4451
4452         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
4453         parsing of RID_COPIES and RID_IVAR.
4454
4455 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4456
4457         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
4458         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
4459         Do not use objc_set_property_attr, but use local variables
4460         instead.  Detect repeated usage of setter, getter and ivar
4461         attributes.  Improved error processing when a setter name does not
4462         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
4463         that the token is a keyword.  Updated call to
4464         objc_add_property_declaration.
4465
4466 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4467
4468         * c-parser.c (c_parser_objc_at_property): Renamed to
4469         c_parser_objc_at_property_declaration.  Updated calls to
4470         objc_add_property_variable, now objc_add_property_declaration.
4471         Code rewritten to be much more robust in recovering from syntax
4472         errors.  Added comments.
4473         (c_parser_objc_property_attrlist): Removed.
4474         (c_parser_external_declaration): Updated calls to
4475         c_parser_objc_at_property, now
4476         c_parser_objc_at_property_declaration.
4477         (c_parser_objc_methodprotolist): Same change.
4478
4479 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4480
4481         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
4482
4483 2010-10-26  Jan Hubicka  <jh@suse.cz>
4484
4485         * ipa.c (process_references): Enqueue all referenced nodes;
4486         mark as reachable only non-external nodes.
4487         (cgraph_remove_unreachable_nodes): All referenced nodes should
4488         be enqueued; remove bogues node->needed check.
4489
4490 2010-10-26  Jan Hubicka  <jh@suse.cz>
4491
4492         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
4493         to represent OMP.
4494
4495 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4496
4497         * config/i386/i386.md (split_stack_return): Replace
4498         unspec_volatile with unspec.
4499
4500 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
4501
4502         * doc/install.texi: Fix typo in --with-sysroot description.
4503
4504 2010-10-26  Jan Hubicka  <jh@suse.cz>
4505
4506         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
4507         Use info provided by linker plugin.
4508
4509 2010-10-26  Jason Merrill  <jason@redhat.com>
4510
4511         * varasm.c (constructor_static_from_elts_p): Don't require a
4512         CONSTRUCTOR to have elements to be suitable for static
4513         initialization.  Allow ARRAY_TYPE as well.
4514
4515 2010-10-26  Jan Hubicka  <jh@suse.cz>
4516
4517         PR middle-end/45736
4518         * cgraph.c (cgraph_set_readonly_flag): Rename to...
4519         (cgraph_set_const_flags) ... this one; get also looping argument;
4520         clear constructor/destructor flags.
4521         (cgraph_set_pure_flag): Likewise.
4522         (cgraph_set_looping_const_or_pure_flag): Remove.
4523         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
4524         to optimize away static ctors/dtors; it does not work on inline clones;
4525         external functions can always be rmeoved.
4526         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
4527         inline clones; in LTO external functions always can go.
4528         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
4529         (cgraph_mark_address_taken_node): Assert that we are not taking
4530         address of inline clone.
4531         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
4532         external functions.
4533         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
4534         address taken.
4535         (ipcp_initialize_node_lattices): Only local functions can be
4536         handled without cloning.
4537         * cgraph.h (cgraph_set_readonly_flag,
4538         cgraph_set_looping_const_or_pure_flag): Remove.
4539         (cgraph_set_const_flag): Declare.
4540         (cgraph_set_pure_flag): Update.
4541         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
4542         flags setting code.
4543         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
4544         look at inline clones; fix handling of external definitions.
4545         (cgraph_postorder): Do not look at inline clones in the first pass.
4546         (function_and_variable_visibility): Drop constructors/destructor
4547         flags at pure and const functions.
4548         * tree-profile.c (tree_profiling): Update.
4549         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
4550         address taken; external functions do not account to whole program size.
4551         (cgraph_decide_inlining): Likewise; do not try to inline
4552         functions already inlined.
4553
4554 2010-10-26  Jie Zhang  <jie@codesourcery.com>
4555
4556         * doc/invoke.texi: Improve documentation of
4557         -fstrict-volatile-bitfields.
4558
4559 2010-10-26  Ira Rosen  <irar@il.ibm.com>
4560
4561         PR tree-optimization/46167
4562         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
4563         is basic block for the statement.
4564
4565 2010-10-26  Paul Koning  <ni1d@arrl.net>
4566
4567         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
4568         current definition of struct_real_format.
4569
4570 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
4571
4572         PR target/44948
4573         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
4574         (ix86_function_arg_boundary): Always align parameters on stack
4575         in 64bit and align parameters with alignment >= 16byte on stack
4576         in 32bit.  Warn alignment change.
4577
4578 2010-10-26  Ian Lance Taylor  <iant@google.com>
4579
4580         PR middle-end/45687
4581         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
4582         offset.
4583
4584 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4585
4586         Implement opaque-enum-specifiesr for C++0x
4587         * tree.h (ENUM_IS_OPAQUE): New.
4588         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
4589
4590 2010-10-26  Jie Zhang  <jie@codesourcery.com>
4591
4592         * stor-layout.c (layout_decl): Use the field's type to
4593         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
4594         * config/arm/arm.c (arm_override_options): Default to
4595         -fstrict-volatile-bitfields.
4596
4597 2010-10-25  Paul Koning  <ni1d@arrl.net>
4598
4599         * config/pdp11/pdp11.md: Add define_constants for register
4600         numbers, branch offset limits.
4601         * config/pdp11/pdp11.c: Use named constants instead of numbers.
4602         * config/pdp11.pdp11.h: Ditto.
4603
4604 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
4605
4606         * configure.ac: Use $cpu_type instead of $target to define the nop.
4607         * configure: Regenerate.
4608
4609 2010-10-25  Jie Zhang  <jie@codesourcery.com>
4610
4611         * combine.c (try_combine): If insns need to be kept around, check that
4612         they can be copied in the merged instruction.
4613
4614 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4615
4616         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
4617         has been modified.
4618         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
4619         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
4620         it has been modified.
4621
4622 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4623
4624         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
4625
4626 2010-10-24  Paul Koning  <ni1d@arrl.net>
4627
4628         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
4629         * config/pdp11/pdp11.c (output_jump): Ditto.
4630
4631 2010-10-24  Ian Lance Taylor  <iant@google.com>
4632
4633         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
4634
4635 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4636
4637         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
4638         least one insn with a locus corresponding to an edge's goto_locus,
4639         disregard non-fallthru edges to the exit block and merge the blocks
4640         created for the same goto_locus.
4641
4642 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
4643
4644         * gcc.c (n_switches_alloc_debug_check): New.
4645         (set_option_handlers): New.
4646         (process_command): Use set_option_handlers.
4647         (do_self_spec): Pass spec-generated options through option handlers.
4648         (main): Also save and restore n_switches_alloc when swapping
4649         switch arrays.
4650
4651 2010-10-23  Richard Henderson  <rth@redhat.com>
4652
4653         PR target/46144
4654         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
4655         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
4656         Honor matching operands when splitting to XOR.
4657
4658 2010-10-23  Ian Lance Taylor  <iant@google.com>
4659
4660         * tree-vrp.c (extract_range_from_binary_expr): If
4661         flag_non_call_exceptions don't eliminate division by zero.
4662         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4663
4664 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
4665
4666         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
4667         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
4668         __ORDER_PDP_ENDIAN__.
4669         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4670         (struct DWstruct): Define based on __BYTE_ORDER__.
4671         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4672         (struct INTstruct): Define based on __BYTE_ORDER__.
4673         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4674         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
4675         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
4676         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4677         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4678         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4679         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4680         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4681         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4682         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4683         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4684         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4685         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4686         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4687         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4688         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4689         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4690         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4691         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
4692         * doc/tm.texi: Regenerate.
4693         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
4694         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
4695
4696 2010-10-23  Jie Zhang  <jie@codesourcery.com>
4697
4698         PR rtl-optimization/37360
4699         * config/mips/mips.c (cached_can_issue_more): New local variable.
4700         (mips_sched_reorder_1): New.
4701         (mips_sched_reorder): Use mips_sched_reorder_1.
4702         (mips_sched_reorder2): New.
4703         (mips_variable_issue): Set cached_can_issue_more.
4704         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
4705         instead of mips_sched_reorder.
4706
4707         Revert:
4708         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
4709         PR rtl-optimization/37360
4710         * haifa-sched.c (max_issue): Do not assert that we never issue more
4711         insns than issue_rate.  Add comment.
4712
4713 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
4714
4715         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
4716         location info of the expression.
4717
4718 2010-10-22  DJ Delorie  <dj@redhat.com>
4719
4720         * doc/extend.texi (Named Address Spaces): Document the M32C named
4721         address space.
4722
4723         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
4724         __far address space.
4725         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
4726         "__far" address space for R8C and M16C processor variants.
4727         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
4728         (far_addr_space_p): New.
4729         (encode_pattern_1): Add sign and zero extend support.
4730         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
4731         (m32c_extra_constraint_p2): Add SF constraint.
4732         (m32c_legitimate_address_p): Support __far addresses.
4733         (m32c_addr_space_pointer_mode): New.
4734         (m32c_addr_space_address_mode): New.
4735         (m32c_addr_space_legitimate_address_p): New.
4736         (m32c_addr_space_legitimize_address): New.
4737         (m32c_addr_space_subset_p): New.
4738         (m32c_addr_space_convert): New.
4739         (conversions): Add __far operand patterns.
4740         (m32c_prepare_move): Force constants into registers for __far moves.
4741         (m32c_split_move): __far moves are always split.
4742         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
4743         * config/m32c/mov.md (mov<mode>_far_op1): New.
4744         (mov<mode>_far_op2): New.
4745         (movqi_op): Add __far (SF) support.
4746         (movhi_op): Likewise.
4747         (movsi_splittable): Split A1A0 also.
4748
4749 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4750             Andrew Pinski  <pinskia@gmail.com>
4751
4752         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
4753         * doc/extend.texi: New paragraph
4754
4755 2010-10-22  Paul Koning  <ni1d@arrl.net>
4756
4757         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
4758
4759 2010-10-22  DJ Delorie  <dj@redhat.com>
4760
4761         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
4762
4763 2010-10-22  Paul Koning  <ni1d@arrl.net>
4764
4765         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
4766
4767 2010-10-22  Richard Henderson  <rth@redhat.com>
4768
4769         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
4770         cases for __builtin_fma and __builtin_fmaf.
4771
4772 2010-10-22  Richard Henderson  <rth@redhat.com>
4773
4774         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
4775         NEG+USE for vectors as well.
4776         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
4777         and splitter.
4778
4779 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4780
4781         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
4782         SWITCH_CURTAILS_COMPILATION): Remove.
4783         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
4784         * doc/tm.texi: Regenerate.
4785         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
4786
4787 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
4788
4789         * config/i386/bdver1.md: New file.
4790         * config/i386/i386.md (include "bdver1.md"): Invoke the
4791         pipeline description for bdver1.
4792         (x86_sahf_1): Add "bdver1_decode" attribute.
4793         (*cmpfp_i_mixed): Likewise.
4794         (*cmpfp_i_sse): Likewise.
4795         (*cmpfp_i_i387): Likewise.
4796         (*cmpfp_iu_mixed): Likewise.
4797         (*cmpfp_iu_sse): Likewise.
4798         (*cmpfp_iu_387): Likewise.
4799         (*swap<mode>,*swap<mode>_1): Likewise.
4800         (fixuns_trunc<mode>hi2): Likewise.
4801         (fix_trunc<mode>si_sse): Likewise.
4802         (x86_fnstcw_1): Likewise.
4803         (x86_fldcw_1): Likewise.
4804         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
4805         (*floatsi<mode>2_vector_mixed): Likewise.
4806         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
4807         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
4808         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
4809         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
4810         (*floatsi<mode>2_vector_sse): Likewise.
4811         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
4812         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
4813         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
4814         (*mul<mode>3_1): Likewise.
4815         (*mulsi3_1_zext): Likewise.
4816         (*mulhi3_1): Likewise.
4817         (*mulqi3_1): Likewise.
4818         (*<u>mul<mode><dwi>3_1): Likewise.
4819         (*<u>mulqihi3_1): Likewise.
4820         (*<s>muldi3_highpart_1): Likewise.
4821         (*<s>mulsi3_highpart_1): Likewise.
4822         (*<s>mulsi3_highpart_zext): Likewise.
4823         (x86_64_shld): Likewise.
4824         (x86_shld): Likewise.
4825         (x86_64_shrd): Likewise.
4826         (x86_shrd): Likewise.
4827         (sqrtxf2): Likewise.
4828         (sqrt_extend<mode>xf2_i387): Likewise.
4829         (*sqrt<mode>2_sse): Likewise.
4830         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
4831         (sse_cvtsi2ssq): Likewise.
4832         (sse_cvtss2si): Likewise.
4833         (sse_cvtss2si_2): Likewise.
4834         (sse_cvtss2siq): Likewise.
4835         (sse_cvtss2siq_2): Likewise.
4836         (sse_cvttss2si): Likewise.
4837         (sse_cvttss2siq): Likewise.
4838         (sse2_cvtpi2pd): Likewise.
4839         (sse2_cvttpd2pi): Likewise.
4840         (sse2_cvtsi2sd): Likewise.
4841         (sse2_cvtsi2sdq): Likewise.
4842         (sse2_cvtsd2si): Likewise.
4843         (sse2_cvtsd2si_2): Likewise.
4844         (sse2_cvtsd2siq): Likewise.
4845         (sse2_cvtsd2siq_2): Likewise.
4846         (sse2_cvttsd2si): Likewise.
4847         (sse2_cvttsd2siq): Likewise.
4848         (*sse2_cvtpd2dq): Likewise.
4849         (*sse2_cvttpd2dq): Likewise.
4850         (sse2_cvtsd2ss): Likewise.
4851         (sse2_cvtss2sd): Likewise.
4852         (*sse2_cvtpd2ps): Likewise.
4853         (sse2_cvtps2pd): Likewise.
4854
4855 2010-10-22  Richard Guenther  <rguenther@suse.de>
4856
4857         PR middle-end/46137
4858         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
4859         remove the virtual operands if they are not needed.
4860
4861 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
4862
4863         * config/i386/i386.c (processor_costs bdver1_cost): Update
4864         insn costs and architectural parameters for bdver1.
4865
4866 2010-10-22  Richard Guenther  <rguenther@suse.de>
4867
4868         * gimple.h (gimple_register_canonical_type): Declare.
4869         * gimple.c (gimple_canonical_types): New global hashtable.
4870         (struct gimple_type_leader_entry_s): New type.
4871         (gimple_type_leader): New global cache.
4872         (gimple_lookup_type_leader): New function.
4873         (gtc_visit): Query the proper cache.
4874         (gimple_types_compatible_p): Likewise.
4875         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
4876         (gimple_canonical_type_eq): New function.
4877         (gimple_register_canonical_type): Likewise.
4878         (print_gimple_types_stats): Adjust for gimple_canonical_types.
4879         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
4880         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
4881         gimple_types_compatible_p for LTO.
4882
4883 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
4884
4885         PR target/46098
4886         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
4887         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
4888         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
4889         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
4890         (<sse>_movu<ssemodesuffix>): New expander.
4891         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
4892         (avx_movdqu<avxmodesuffix>): New expander.
4893         (*sse2_movdqu): Rename from sse2_movdqu.
4894         (sse2_movdqu): New expander.
4895
4896 2010-10-22  Richard Guenther  <rguenther@suse.de>
4897
4898         PR tree-optimization/45720
4899         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
4900         Handle negative step.
4901         (vect_enhance_data_refs_alignment): Likewise.
4902         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
4903         (vect_create_cond_for_align_checks): Likewise.
4904         (vect_create_cond_for_alias_checks): Likewise.
4905
4906 2010-10-22  Ira Rosen  <irar@il.ibm.com>
4907
4908         PR tree-optimization/46126
4909         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
4910         vectorizable_shift in case of basic block vectorization.
4911
4912 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4913
4914         * target.h (enum opt_levels, struct default_options): New.
4915         * target.def (handle_ofast): Remove hook.
4916         (target_option.optimization): Change to
4917         target_option.optimization_table.
4918         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
4919         TARGET_OPTION_OPTIMIZATION_TABLE.
4920         (CAN_DEBUG_WITHOUT_FP): Remove.
4921         * doc/tm.texi: Regenerate.
4922         * opts.c (maybe_default_option, maybe_default_options,
4923         default_options_table): New.
4924         (default_options_optimization): Take extra parameters.  Don't
4925         assert that global_options and global_options_set are in use.  Use
4926         maybe_default_options.
4927         (decode_options): Pass extra parameters to
4928         default_options_optimization.
4929         * common.opt (falign-loops): Use value 0 with Var.
4930         (frerun-cse-after-loop, ftree-ter): Remove Init.
4931         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
4932         TARGET_OPTION_OPTIMIZATION): Remove.
4933         * targhooks.c (empty_optimization_table): New.
4934         * targhooks.h (empty_optimization_table): Declare.
4935         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
4936         * config/alpha/alpha.c (alpha_option_optimization_table,
4937         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4938         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
4939         * config/arm/arm.c (arm_option_optimization: Change to
4940         arm_option_optimization_table.
4941         (TARGET_OPTION_OPTIMIZATION): Change to
4942         TARGET_OPTION_OPTIMIZATION_TABLE.
4943         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
4944         * config/avr/avr.c (avr_option_optimization_table,
4945         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4946         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
4947         * config/cris/cris.c (cris_option_optimization): Change to
4948         cris_option_optimization_table.
4949         (TARGET_OPTION_OPTIMIZATION): Change to
4950         TARGET_OPTION_OPTIMIZATION_TABLE.
4951         * config/crx/crx.c (crx_option_optimization): Change to
4952         crx_option_optimization_table.
4953         (TARGET_OPTION_OPTIMIZATION): Change to
4954         TARGET_OPTION_OPTIMIZATION_TABLE.
4955         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
4956         * config/fr30/fr30.c (fr30_option_optimization_table,
4957         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4958         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
4959         * config/frv/frv.c (frv_option_optimization_table,
4960         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4961         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
4962         * config/h8300/h8300.c (h8300_option_optimization): Change to
4963         h8300_option_optimization_table.
4964         (TARGET_OPTION_OPTIMIZATION): Change to
4965         TARGET_OPTION_OPTIMIZATION_TABLE.
4966         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
4967         * config/i386/i386.c (ix86_option_optimization): Change to
4968         ix86_option_optimization_table.
4969         (TARGET_OPTION_OPTIMIZATION): Change to
4970         TARGET_OPTION_OPTIMIZATION_TABLE.
4971         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
4972         as initializer.
4973         * config/ia64/ia64.c (ia64_option_optimization): Change to
4974         ia64_option_optimization_table.
4975         (TARGET_OPTION_OPTIMIZATION): Change to
4976         TARGET_OPTION_OPTIMIZATION_TABLE.
4977         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
4978         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
4979         initializer.
4980         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4981         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4982         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
4983         * config/lm32/lm32.c (lm32_option_optimization_table,
4984         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4985         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
4986         * config/m32r/m32r.c (m32r_option_optimization): Change to
4987         m32r_option_optimization_table.
4988         (TARGET_OPTION_OPTIMIZATION): Change to
4989         TARGET_OPTION_OPTIMIZATION_TABLE.
4990         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
4991         CAN_DEBUG_WITHOUT_FP): Remove.
4992         * config/mcore/mcore.c (mcore_option_optimization): Change to
4993         mcore_option_optimization_table.
4994         (TARGET_OPTION_OPTIMIZATION): Change to
4995         TARGET_OPTION_OPTIMIZATION_TABLE.
4996         * config/mep/mep.c (mep_option_optimization): Change to
4997         mep_option_optimization_table.
4998         (TARGET_OPTION_OPTIMIZATION): Change to
4999         TARGET_OPTION_OPTIMIZATION_TABLE.
5000         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5001         * config/microblaze/microblaze.c
5002         (microblaze_option_optimization_table,
5003         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5004         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5005         * config/mips/mips.c (mips_option_optimization_table,
5006         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5007         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5008         * config/mmix/mmix.c (mmix_option_optimization): Change to
5009         mmix_option_optimization_table.
5010         (TARGET_OPTION_OPTIMIZATION): Change to
5011         TARGET_OPTION_OPTIMIZATION_TABLE.
5012         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5013         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5014         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5015         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5016         * config/pa/pa.c (pa_option_optimization_table,
5017         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5018         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5019         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
5020         pdp11_option_optimization_table.
5021         (TARGET_OPTION_OPTIMIZATION): Change to
5022         TARGET_OPTION_OPTIMIZATION_TABLE.
5023         * config/picochip/picochip.c (picochip_option_optimization_table,
5024         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5025         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
5026         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
5027         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5028         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5029         * config/rx/rx.c (rx_option_optimization_table,
5030         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5031         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5032         * config/s390/s390.c (s390_option_optimization): Change to
5033         s390_option_optimization_table.
5034         (s390_option_override): Update comment.
5035         (TARGET_OPTION_OPTIMIZATION): Change to
5036         TARGET_OPTION_OPTIMIZATION_TABLE.
5037         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
5038         * config/score/score.c (score_option_optimization_table,
5039         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5040         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
5041         * config/sh/sh.c (sh_option_optimization): Change to
5042         sh_option_optimization_table.
5043         (TARGET_OPTION_OPTIMIZATION): Change to
5044         TARGET_OPTION_OPTIMIZATION_TABLE.
5045         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
5046         (sh_option_override, expand_block_move, multcosts, find_barrier,
5047         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
5048         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
5049         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
5050         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
5051         instead of TARGET_SMALLCODE.
5052         * config/sh/sh.opt (mspace): Make into an alias for -Os.
5053         * config/sparc/sparc.c (sparc_option_optimization_table,
5054         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5055         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
5056         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5057         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5058         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
5059         * config/v850/v850.c (v850_option_optimization): Change to
5060         v850_option_optimization_table.
5061         (TARGET_OPTION_OPTIMIZATION): Change to
5062         TARGET_OPTION_OPTIMIZATION_TABLE.
5063         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
5064         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
5065         xtensa_option_optimization_table.
5066         (TARGET_OPTION_OPTIMIZATION): Change to
5067         TARGET_OPTION_OPTIMIZATION_TABLE.
5068         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5069
5070 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
5071
5072         Based on the CFString implementation in FSF apple/trunk branch.
5073
5074         * target.def (objc_construct_string): New Hook.
5075         * doc/tm.texi (objc_construct_string): Document.
5076         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
5077         * config/t-darwin: Amend build rules for darwin.o.
5078         * config/darwin.opt: Add cfstrings flags.
5079         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
5080         (darwin_objc_construct_string): New.
5081         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
5082         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
5083         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
5084         (darwin_fold_builtin): Likewise.
5085         (darwin_build_constant_cfstring): Likewise.
5086         (darwin_objc_construct_string): Likewise.
5087         (darwin_cfstring_p): Likewise.
5088         (darwin_enter_string_into_cfstring_table): Likewise.
5089         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
5090         * config/darwin.c (darwin_running_cxx): New var.
5091         (machopic_select_section): Return cfstring_constant_object_section.
5092         (darwin_override_options): Set darwin_running_cxx.
5093         (add_builtin_field_decl): New.
5094         (darwin_init_cfstring_builtins): New.
5095         (darwin_build_constant_cfstring): New.
5096         (darwin_fold_builtin): New.
5097         (cfstring_hash): New.
5098         (cfstring_eq): New.
5099         (darwin_enter_string_into_cfstring_table): New.
5100         * config/darwin-sections.def (cfstring_constant_object_section): New.
5101         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
5102         (TARGET_OBJC_CONSTRUCT_STRING): Define.
5103
5104 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5105
5106         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
5107         TYPE_STUB_DECL instead of TREE_CHAIN.
5108         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
5109         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
5110         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
5111         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
5112         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
5113         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
5114         Likewise.
5115         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
5116
5117 2010-10-22  Jie Zhang  <jie@codesourcery.com>
5118
5119         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
5120         (copy_blkmode_from_reg): Likewise.
5121         (read_complex_part): Likewise.
5122         (expand_expr_real_1): Calculate packedp and pass it to
5123         extract_bit_field.
5124         * expr.h (extract_bit_field): Update declaration.
5125         * calls.c (store_unaligned_arguments_into_pseudos): Update call
5126         to extract_bit_field.
5127         * expmed.c (extract_fixed_bit_field): Update calls to
5128         extract_fixed_bit_field.
5129         (store_split_bit_field): Likewise.
5130         (extract_bit_field_1): Add new argument packedp.
5131         (extract_bit_field): Add new argument packedp.
5132         (extract_fixed_bit_field): Add new argument packedp and let
5133         packed attribute override volatile.
5134         * stmt.c (expand_return): Update call to extract_bit_field.
5135
5136 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5137
5138         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
5139
5140 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5141
5142         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
5143         of gcc_checking_assert.
5144         * sel-sched.c (code_motion_process_successors): Likewise.
5145
5146 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
5147
5148         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
5149         when stopping because of a different locus on edge or insn.
5150         (try_optimize_cfg): Add comment.
5151         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
5152         block is a forwarder block, propagate locus on the edge.
5153         (cfg_layout_merge_blocks): Likewise.
5154
5155 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
5156
5157         PR target/45946
5158         * config/i386/i386.md (*pushti2): New insn pattern.
5159         (pushti2 splitter): New insn splitter.
5160         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
5161         DWI mode iterator.
5162
5163 2010-10-21  Paul Koning  <ni1d@arrl.net>
5164
5165         * config/pdp11/pdp11-protos.md (arith_operand,
5166         const_immediate_operand, expand_shift_operand,
5167         immediate15_operand): Delete
5168         * config/pdp11/pdp11.c: Ditto.
5169         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
5170         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5171         EXTRA_CONSTRAINT): Delete.
5172         * config/pdp11/pdp11.md (various): Use standard constraints
5173         instead of removed ones.
5174         * config/pdp11/constraints.md: New file.
5175         * config/pdp11/predicates.md: New file.
5176
5177 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
5178
5179         PR c/45834
5180         * alias.c (true_dependence_1): Remove obsolete check for QImode.
5181         (may_alias_p): Ditto.
5182
5183 2010-10-21  Martin Jambor  <mjambor@suse.cz>
5184
5185         PR tree-optimization/45875
5186         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
5187
5188 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5189
5190         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
5191         variables.
5192         (create_new_def_for): Likewise.
5193
5194 2010-10-21  Nick Clifton  <nickc@redhat.com>
5195
5196         * config/mn10300/mn10300.c: Fold code to 80-character width.
5197         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5198         MEM, CONST_INT and CONST_DOUBLE.
5199         (targetm): Move initialization to end of file.
5200         (print_operand): Rename to mn10300_print_operand.
5201         (print_operand_address): Rename to mn10300_print_operand_address.
5202         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
5203         (expand_prologue): Rename to mn10300_expand_prologue.
5204         (expand_epilogue): Rename to mn10300_expand_epilogue.
5205         (initial_offset): Rename to mn10300_initial_offset.
5206         (function_arg): Rename to mn10300_function_arg.
5207         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
5208         (symbolic_operand): Rename to mn10300_symbolic_operand.
5209         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
5210         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
5211         * config/mn10300/mn10300-protos.h: Update prototypes.
5212         * config/mn10300/mn10300.h: Fold code to 80-character width.
5213         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5214         MEM, CONST_INT and CONST_DOUBLE.
5215         (CPP_SPEC): Move to...
5216         (TARGET_CPU_CPP_BUILTINS): ... here.
5217         * config/mn10300/mn10300.md: Fold code to 80-character width.
5218         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5219         MEM, CONST_INT and CONST_DOUBLE.
5220
5221 2010-10-21  Ira Rosen  <irar@il.ibm.com>
5222
5223         PR tree-optimization/46049
5224         PR tree-optimization/46052
5225         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
5226         (vect_get_slp_defs): Add arguments.
5227         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
5228         operands to vect_get_slp_defs.
5229         (vectorizable_reduction): Fix comment, pass scalar operands to
5230         vect_get_slp_defs.
5231         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
5232         type to determine number of units in the created vector.
5233         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
5234         (vectorizable_conversion): Fix comment.
5235         (vectorizable_shift): New function.
5236         (vectorizable_operation): Move code that handles shifts to
5237         vectorizable_shift.
5238         (vectorizable_type_demotion): Fix comment, pass scalar operands to
5239         vect_get_slp_defs.
5240         (vectorizable_type_promotion, vectorizable_store): Likewise.
5241         (vectorizable_condition): Fix comment.
5242         (vect_analyze_stmt): Call vectorizable_shift.
5243         (vect_transform_stmt): Likewise.
5244         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
5245         Use it as the operand to create vectors for, except reduction
5246         initial definition and store.  Use operands type.
5247         (vect_get_slp_defs): Add new arguments.  Pass them to
5248          vect_get_constant_vectors.
5249
5250 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5251
5252         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
5253         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
5254         * cfghooks.c (fixup_reorder_chain): Likewise.
5255         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
5256         * cgraph.c (cgraph_add_thunk): Likewise.
5257         (cgraph_create_edge_1): Likewise.
5258         (cgraph_create_virtual_clone): Likewise.
5259         * ddg.c (add_cross_iteration_register_deps): Likewise.
5260         * dwarf2out.c (modified_type_die): Likewise.
5261         * emit-rtl.c (set_mem_alias_set): Likewise.
5262         * ggc-zone.c (zone_allocate_marks): Likewise.
5263         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
5264         * gimple.c (iterative_hash_gimple_type): Likewise.
5265         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
5266         (create_single_exit_edge): Likewise.
5267         * haifa-sched.c (choose_ready): Likewise.
5268         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5269         * passes.c (execute_todo): Likewise.
5270         * sched-ebb.c (begin_schedule_ready): Likewise.
5271         * sel-sched.c (code_motion_process_successors): Likewise.
5272         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
5273         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
5274         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
5275         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
5276         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
5277         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
5278         (ssa_conflicts_add): Likewise.
5279         * tree-ssa-copy.c (replace_exp): Likewise.
5280         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
5281         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
5282         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
5283         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
5284         (compute_antic): Likewise.
5285         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
5286         (add_dependence): Likewise.
5287         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
5288         * tree-vrp.c (supports_overflow_infinity): Likewise.
5289         (make_overflow_infinity, negative_overflow_infinity): Likewise.
5290         (avoid_overflow_infinity, register_new_assert_for): Likewise.
5291         (process_assert_insertions_for): Likewise.
5292         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
5293         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
5294         (intersect_loc_chains, variable_merge_over_cur): Likewise.
5295
5296 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5297
5298         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
5299         * reload1.c (has_nonexceptional_receiver): Likewise.
5300         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
5301         (create_new_def_for): Likewise.
5302         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
5303         (merge_phi_nodes): Likewise.
5304         (has_abnormal_incoming_edge_p): Delete.
5305
5306 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
5307
5308         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
5309
5310 2010-10-21  Richard Guenther  <rguenther@suse.de>
5311             Michael Matz  <matz@suse.de>
5312
5313         PR tree-optimization/45764
5314         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5315         Adjust initial misalignment for negative DR_STEP.
5316         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
5317         do not have the same alignment over the whole iteration domain.
5318
5319 2010-10-21  Richard Guenther  <rguenther@suse.de>
5320
5321         PR tree-optimization/46111
5322         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
5323
5324 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5325
5326         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
5327
5328 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5329
5330         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
5331         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
5332
5333 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5334
5335         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
5336         signal_frame.
5337         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
5338
5339 2010-10-21  Tristan Gingold  <gingold@adacore.com>
5340
5341         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
5342         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
5343
5344 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
5345
5346         * basic-block.h (find_fallthru_edge): Define.
5347         * cfgcleanup.c (merge_blocks_move): Use it.
5348         (try_crossjump_bb): Likewise.
5349         * cfglayout.c (fixup_reorder_chains): Likewise.
5350         (fixup_fallthru_exit_predecessor): Likewise.
5351         * cfgrtl.c (rtl_split_edge): Likewise.
5352         (rtl_verify_flow_info): Likewise.
5353         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5354         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
5355         * ifcvt.c (block_fallthru): Likewise.
5356         * reload1.c (fixup_abnormal_edges): Likewise.
5357         * sched-ebb.c (being_schedule_ready): Likewise.
5358         (schedule_ebb): Likwise.
5359         * sched-rgn.c (find_single_block_region): Likewise.
5360         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
5361         * tree-complex.c (expand_complex_move): Likewise.
5362         * sched-int.h (find_fallthru_edge): Rename to...
5363         (find_fallthru_edge_from): ...this.
5364         * haifa-sched.c (find_fallthru_edge): Rename to...
5365         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
5366         (init_before_recovery): Call find_fallthru_edge_from.
5367         * sel-sched-ir.c (merge_fences): Likewise.
5368         * sel-sched.c (in_fallthru_bb_p): Likewise.
5369         (move_cond_jump): Likewise.
5370
5371 2010-10-20  Paul Koning  <ni1d@arrl.net>
5372
5373         * config/pdp11/pdp11.md (various): Fix conditions on a number of
5374         insn to check for target 11/40 or higher.
5375
5376 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5377
5378         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
5379         bool instead of a tree.
5380         (c_parser_objc_method_decl): Added bool argument.  Updated call to
5381         objc_build_method_signature.
5382         (c_parser_objc_method_definition): Do not call
5383         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
5384         c_parser_objc_method_decl and objc_start_method_definition.
5385         (c_parser_objc_methodproto): Do not call objc_set_method_type.
5386         Updated calls to c_parser_objc_method_type,
5387         c_parser_objc_method_decl and objc_add_method_declaration.
5388
5389 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
5390
5391         PR tree-optimization/45919
5392         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
5393         array members.
5394
5395         PR tree-optimization/46066
5396         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
5397         instead of gsi_last_bb.
5398
5399 2010-10-20  DJ Delorie  <dj@redhat.com>
5400
5401         * config/m32c/m32c.c (m32c_option_override): Always disable
5402         function-cse in 16-bit mode.  Indirect calls are always worse than
5403         direct calls as there is no 16-bit indirect call opcode.
5404         (m32c_override_options_after_change): New, likewise.
5405
5406 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
5407
5408         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
5409         emitting the conditional move in the inner mode of the SUBREG.
5410
5411 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
5412
5413         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
5414         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
5415         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5416         (ia64_preferred_reload_class): Make static.  Change rclass argument
5417         and result types from enum reg_class to reg_class_t.
5418
5419 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
5420
5421         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
5422         call for single operand expression.
5423
5424 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5425
5426         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
5427         if there is a call statement to pure or const function in the block.
5428
5429 2010-10-20  Paul Koning  <pkoning@equallogic.com>
5430
5431         Fix several build errors for pdp11 target.
5432         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
5433         (cbranchdf4): Conditional on TARGET_FPU.
5434         (movdf): Ditto; correct alternatives check.
5435         (movmemhi): Fix predicate and constraint.
5436         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
5437
5438 2010-10-20  Richard Guenther  <rguenther@suse.de>
5439
5440         PR lto/45667
5441         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
5442         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
5443         (verify_gimple_assign_single): Disable ADDR_EXPR type check
5444         when in LTO.
5445
5446 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
5447
5448         PR fortran/42169
5449         * ira-emit.c (store_can_be_removed_p): Return false instead of
5450         gcc_unreachable.
5451
5452 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
5453
5454         * fold-const.c (fold_binary_loc): New transformation.
5455
5456 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
5457
5458         PR target/46085
5459         * config/i386/sse.md (reduc_splus_v8sf): Updated.
5460         (reduc_splus_v4df): Likewise.
5461
5462 2010-10-20  Richard Guenther  <rguenther@suse.de>
5463
5464         PR tree-optimization/45860
5465         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
5466         conditional store replacement for non-register type stores.
5467
5468 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5469
5470         * stor-layout.c (skip_simple_constant_arithmetic): New function.
5471         (self_referential_size): Use it instead of skip_simple_arithmetic.
5472
5473 2010-10-20  Olivier Hainque  <hainque@adacore.com>
5474
5475         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
5476         If the current function calls eh_return, claim live all registers
5477         that we need to check for liveness otherwise.
5478
5479 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5480
5481         * c-decl.c (c_write_global_declarations): Call
5482         objc_write_global_declarations when compiling Objective-C.
5483         * c-lang.c (finish_file): Removed.
5484
5485 2010-10-19  DJ Delorie  <dj@redhat.com>
5486
5487         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
5488         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
5489         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5490         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5491         * doc/tm.texi: Regenerate.
5492         * targhooks.h (default_label_align_after_barrier_max_skip,
5493         default_loop_align_max_skip, default_label_align_max_skip,
5494         default_jump_align_max_skip): Declare.
5495         * target.def (label_align_after_barrier_max_skip): New.
5496         (loop_align_max_skip): New.
5497         (label_align_max_skip): New.
5498         (jump_align_max_skip): New.
5499         * system.h (poison): Add those macros to the list.
5500         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
5501         (LOOP_ALIGN_MAX_SKIP): Remove.
5502         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
5503         (JUMP_ALIGN_MAX_SKIP): Remove.
5504         (default_label_align_after_barrier_max_skip): New.
5505         (default_loop_align_max_skip): New.
5506         (default_label_align_max_skip): New.
5507         (default_jump_align_max_skip): New.
5508         (compute_alignments): Use the new hooks.
5509         (shorten_branches): Likewise.
5510
5511 2010-10-19  Richard Henderson  <rth@redhat.com>
5512
5513         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
5514         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
5515         (fma4i_fmadd_<mode>): New.
5516         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
5517         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
5518         standard fma patterns.
5519         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
5520         enable for FMA.
5521         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5522         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5523         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
5524
5525 2010-10-19  Paul Koning  <pkoning@equallogic.com>
5526
5527         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
5528         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
5529
5530 2010-10-19  Richard Henderson  <rth@redhat.com>
5531
5532         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
5533         (fmadf4, *fmsdf4, *nfmadf4): New.
5534         (fmaxf4, *fmsxf4, *nfmaxf4): New.
5535
5536 2010-10-19  Michael Eager  <eager@eagercon.com>
5537
5538         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
5539         Use sjlj unwind info for exceptions.
5540
5541 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
5542
5543         PR fortran/43414
5544         * dwarf2out.c (add_calling_convention_attribute): Flag main
5545         Fortran subroutine with DW_AT_main_subprogram.
5546
5547 2010-10-19  Nick Clifton  <nickc@redhat.com>
5548
5549         * config/rx/rx.c (rx_function_value): Small integer types are
5550         promoted to SImode.
5551         (rx_promote_function_mode): New function.
5552         (TARGET_PROMOTE_FUNCTION_MODE): Define.
5553
5554 2010-10-19  Nick Clifton  <nickc@redhat.com>
5555
5556         * config/mep/mep.c (mep_print_operand): Use
5557         targetm.strip_name_encoding.
5558         (mep_output_aligned_common): Likewise.
5559
5560 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
5561
5562         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
5563
5564 2010-10-18  Richard Henderson  <rth@redhat.com>
5565
5566         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
5567         (fma (neg a) (neg b) c) and (fma a (neg b) c).
5568
5569 2010-10-18  Richard Henderson  <rth@redhat.com>
5570
5571         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
5572         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
5573         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
5574         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
5575         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
5576         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
5577         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
5578         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
5579         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
5580         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
5581         (bdesc_multi_arg): Remove the corresponding builtins.
5582         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
5583         (UNSPEC_FMA4_FMSUBADD): Remove.
5584         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
5585         * config/i386/sse.md (FMA4MODEF4): Remove.
5586         (FMAMODE): Add.
5587         (fma<mode>4): New expander.
5588         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
5589         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
5590         (*fma4i_fmsub_<mode>): Similarly.
5591         (*fma4i_fnmadd_<mode>): Similarly.
5592         (*fma4i_fnmsub_<mode>): Similarly.
5593         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
5594         with the first operand.
5595         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
5596         of explicit arithmetic.  Macroize with AVXMODEF2P.
5597         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
5598         (xop_frcz<mode>2): Macroize with FMAMODE.
5599         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
5600         the first operand.
5601         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
5602         extra negations.
5603         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
5604         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
5605         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
5606         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
5607         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
5608         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
5609         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
5610         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
5611
5612 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
5613
5614         PR rtl-optimization/45966
5615         * combine.c (try_combine): If added_sets_2, deal with the case
5616         where i0 feeds i1 and i1 feeds i2.
5617
5618 2010-10-18  Jan Hubicka  <jh@suse.cz>
5619
5620         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
5621         preserve flags before trying to guess on visibility.
5622         (varpool_externally_visible_p): New function.
5623         (function_and_variable_visibility): Use it.
5624
5625 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5626
5627         Implemented parsing @synthesize and @dynamic for Objective-C.
5628         * c-parser.c (c_parser_external_declaration): Recognize
5629         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
5630         (c_parser_objc_at_synthesize_declaration): New.
5631         (c_parser_objc_at_dynamic_declaration): New.
5632
5633 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5634
5635         * c-parser.c (c_parser_objc_class_declaration): After finding an
5636         error, parse the whole declaration then reset parser->error.
5637
5638 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5639
5640         PR target/46041
5641         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
5642         * builtins.c (mode_has_fma): Ditto.
5643
5644 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
5645
5646         PR target/36898
5647         PR middle-end/43760
5648         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
5649
5650 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
5651
5652         * config/i386/i386.c (ix86_option_override_internal): Define and
5653         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
5654         default.
5655         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5656         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
5657
5658 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5659
5660         Merge from 'apple/trunk' branch on FSF servers.
5661         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
5662         following Objective-C change:
5663
5664         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
5665
5666         Radar 4301047
5667         * c-parse.in (objc_quals): Build objc qualifier list same way
5668         as gcc-3.3
5669
5670 2010-10-18  Jan Hubicka  <jh@suse.cz>
5671
5672         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
5673         function_and_variable_visibility): Revert accidental commit.
5674
5675 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
5676
5677         Merge from 'apple/trunk' branch on FSF servers.
5678         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
5679         the following Objective-C change:
5680
5681         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
5682
5683         Radar 4204796
5684         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
5685         'volatilized' type used in a typeof operator.
5686
5687 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
5688
5689         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
5690         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
5691         rewrite modelled on gimple_purge_dead_eh_edges.
5692         (gimple_purge_all_dead_abnormal_call_edges): New function.
5693         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
5694         directly instead of through gimple_purge_dead_abnormal_call_edges.
5695         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
5696         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
5697         removed AB side-effects from one of its statements.
5698         (init_pre): Initialize need_ab_cleanup.
5699         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
5700         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
5701
5702 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR c/46015
5705         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
5706         on computed goto argument.
5707
5708 2010-10-18  Richard Guenther  <rguenther@suse.de>
5709
5710         PR tree-optimization/45967
5711         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
5712         (could_have_pointers): Likewise.
5713         (handle_rhs_call, handle_const_call, handle_pure_call,
5714         find_func_aliases, intra_create_variable_infos): Remove calls to them.
5715         (struct fieldoff): Add must_have_pointers field.
5716         (type_must_have_pointers): New function.
5717         (field_must_have_pointers): Likewise.
5718         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
5719         Adjust field merging.
5720         (create_function_info_for): May-have-pointers of varinfo is
5721         almost always true.
5722         (create_variable_info_for_1): Likewise.
5723
5724 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
5725
5726         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
5727         of operands to vec_concat.
5728
5729 2010-10-18  Richard Guenther  <rguenther@suse.de>
5730
5731         PR lto/44950
5732         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
5733         also clear references to entries of it.
5734
5735 2010-10-18  Andi Kleen  <ak@linux.intel.com>
5736
5737         PR other/43448
5738         * gccbug.in: Remove.
5739         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
5740         (doc, distclean, install-common): Remove reference to gccbug.
5741         * configure: Regenerate.
5742         * configure.ac (all_outputs): Remove gccbug.
5743         * doc/configfiles.texi: Remove references to gccbug.
5744         * doc/sourcebuild.texi: Dito.
5745
5746 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5747
5748         PR middle-end/46019
5749         * fold-const.c (fold_binary_loc): If integer_pow2p has
5750         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
5751
5752 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5753             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5754
5755         * gengtype.c (verbosity_level): Add variable.
5756         (set_gc_used): Count variables for verbosity.
5757         (close_output_files): Backing up files, counting written ones
5758         verbosily.
5759         (write_types): Count emitted functions for verbosity. Added
5760         debug messages.
5761         (write_enum_defn): Count structures for verbosity. Added debug
5762         messages.
5763         (gengtype_long_options): Add "verbose" & "backupdir".
5764         (print_usage): Ditto.
5765         (main): Verbose display of parsed files.
5766
5767         * gengtype.h (verbosity_level): Add declaration.
5768
5769 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5770
5771         * gengtype.c (parse_program_options): Add allocation of
5772         plugin_files, and correct test on nb_plugin_files.
5773
5774 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5775
5776         Merge from 'apple/trunk' branch on FSF servers.
5777
5778         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
5779
5780         Radar 4133425
5781         * c-decl.c (undeclared_variable): Issue diagnostic on
5782         private 'ivar' access.
5783
5784 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
5785
5786         PR target/46051
5787         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
5788         generated sequence to match *avx_vperm2f128<mode>_nozero.
5789         (vec_interleave_lowv4df): Ditto.
5790         (vec_interleave_highv8sf): Ditto.
5791         (vec_interleave_lowv8sf): Ditto.
5792
5793 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
5794
5795         * libgcov.c (create_file_directory): Enable it for win32 case.
5796         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
5797         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
5798         (GCOV_PREFIX_SKIP): Likewise.
5799
5800 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5801
5802         * doc/objc.texi (GNU Objective-C runtime API): New section.
5803         (Modern GNU Objective-C runtime API): New section.
5804         (Traditional GNU Objective-C runtime API): New section.
5805         (Executing code before main): Mention that this section is
5806         specific to the GNU Objective-C runtime.
5807         (Garbage Collection): Same.
5808
5809 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
5810
5811         * c-parser.c (c_parser_for_statement): Move initialization of
5812         cond and incr before if.
5813
5814 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
5815
5816         * target.def (preferred_output_reload_class): New hook.
5817         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
5818         * doc/tm.texi: Regenerate.
5819         * targhooks.c (default_preferred_output_reload_class): New function.
5820         * targhooks.h (default_preferred_output_reload_class): Declare.
5821         * reload.c (find_dummy_reload): Change rclass argument type from
5822         enum reg_class to reg_class_t. Change this_alternative array type
5823         from enum reg_class to reg_class_t.
5824         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
5825         (push_reload): Change preferred_class variable type to reg_class_t.
5826         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
5827         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
5828         argument type from enum reg_class to reg_class_t. Use
5829         HARD_REGISTER_NUM_P predicate.
5830         * recog.h (reg_fits_class_p): Update prototype.
5831
5832         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5833         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
5834         Remove.
5835         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
5836         static. Change regclass argument and result types from enum reg_class
5837         to reg_class_t.
5838         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5839
5840 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
5841
5842         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
5843         visibility enum, and handle @package.
5844
5845 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5846
5847         * doc/objc.texi (What you can and what you cannot do in +load):
5848         Document that sending messages to constant string objects in +load
5849         is not guaranteed to work.
5850
5851 2010-10-16  Jan Hubicka  <jh@suse.cz>
5852
5853         PR middle-end/44206
5854         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
5855         existence of refrences before removing the function.
5856
5857 2010-10-16  Jan Hubicka  <jh@suse.cz>
5858
5859         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
5860         only_called_at_startup and only_called_at_exit.
5861         (cgraph_propagate_frequency): Compute only_called_at_startup and
5862         only_called_at_exit.
5863         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
5864         only_called_at_exit.
5865         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
5866         flags.
5867         * predict.c (compute_function_frequency): Initialize the new flags.
5868
5869 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
5870
5871         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
5872         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
5873         on the bounds of its domain.
5874         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
5875
5876 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
5877
5878         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
5879         * config/avr/avr-protos.h (preferred_reload_class): Remove.
5880         * config/avr/avr.c (preferred_reload_class): Remove.
5881         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
5882         * config/pa/pa.c (emit_move_sequence): Update comment
5883         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
5884         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
5885         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
5886         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
5887         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
5888         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
5889         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
5890         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
5891         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
5892         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
5893         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
5894         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
5895         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
5896
5897 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5898
5899         * opts.c (set_fast_math_flags,
5900         set_unsafe_math_optimizations_flags): Make static.
5901         * toplev.h (set_fast_math_flags,
5902         set_unsafe_math_optimizations_flags): Remove prototypes.
5903
5904 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5905
5906         * config/arm/arm.c (arm_option_optimization): Set
5907         flag_section_anchors to 1 not 2.
5908         * config/i386/i386.c (ix86_option_override_internal): Check
5909         global_options_set.x_flag_zee and
5910         global_options_set.x_flag_omit_frame_pointer.
5911         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
5912         flag_zee to 2.
5913         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
5914         global_options_set.x_flag_omit_frame_pointer.
5915         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
5916         opts->x_flag_section_anchors to 1 not 2.
5917         * config/sh/sh.c (sh_option_optimization): Don't set
5918         flag_schedule_insns to 2.
5919         (sh_option_override): Check
5920         global_options_set.x_flag_schedule_insns.
5921         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
5922
5923 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
5924
5925         * configure.ac: Make sure inhibit_libc remains false for mingw targets
5926         as cross.
5927         * configure: Regenerated.
5928
5929 2010-10-15  Xinliang David Li  <davidxl@google.com>
5930
5931         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
5932         function.
5933         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
5934         into a recursive function.
5935
5936 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
5937
5938         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
5939         (*movdfcc_1): ditto.
5940
5941 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5942
5943         * target.def (target_option.init_struct): New hook.
5944         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
5945         * doc/tm.texi: Regenerate.
5946         * hooks.c (hook_void_gcc_optionsp): New.
5947         * hooks.h (hook_void_gcc_optionsp): Declare.
5948         * langhooks-def.h (lhd_init_options_struct): Remove.
5949         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
5950         * langhooks.c (lhd_init_options_struct): Remove.
5951         * opts.c (init_options_struct): Also call
5952         targetm.target_option.init_struct.
5953         * config/i386/i386.c (ix86_option_init_struct,
5954         TARGET_OPTION_INIT_STRUCT): New.
5955         (ix86_option_optimization): Move some settings to
5956         ix86_option_init_struct.
5957         * config/pdp11/pdp11.c (pdp11_option_init_struct,
5958         TARGET_OPTION_INIT_STRUCT): New.
5959         (pdp11_option_optimization): Move some settings to
5960         pdp11_option_init_struct.
5961         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
5962         rs6000_option_init_struct.  Use options structure pointer.
5963         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5964         * config/s390/s390.c (s390_option_init_struct,
5965         TARGET_OPTION_INIT_STRUCT): New.
5966         (s390_option_optimization): Don't set
5967         flag_asynchronous_unwind_tables here.
5968         * config/sh/sh.c (sh_option_init_struct,
5969         TARGET_OPTION_INIT_STRUCT): New.
5970         (sh_option_optimization): Don't set flag_finite_math_only here.
5971         * config/spu/spu.c (spu_option_optimization): Replace by
5972         spu_option_optimization.  Use options structure pointer.
5973         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5974
5975 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5976
5977         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
5978
5979         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
5980         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
5981         (Standard names): Document fma.
5982
5983         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
5984         __FP_FAST_FMAF, __FP_FAST_FMAL.
5985
5986         * builitns.c (expand_builtin_mathfn_ternary): New function for
5987         expanding ternary math functions, like fma.
5988         (expand_builtin): Call it for the fma builtins.
5989
5990         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
5991         ops at present.
5992
5993         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
5994         vectorizable functions to support vectorizing fma.
5995
5996         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
5997         Handle fma builtins.
5998
5999         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6000         (UNSPEC_VSX_MSUB): Ditto.
6001         (UNSPEC_VSX_NMADD): Ditto.
6002         (UNSPEC_VSX_NMSUB): Ditto.
6003         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6004         of UNSPEC. Renumber combiner patterns.
6005         (vsx_fmsub<mode>4*): Ditto.
6006         (vsx_fnmadd<mode>4*): Ditto.
6007         (vsx_fnmsub<mode>4*): Ditto.
6008
6009         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6010         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6011         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
6012         (altivec_vmaddfp_1): Ditto.
6013         (altivec_vmaddfp_2): Ditto.
6014         (atlivec_mulv4sf3): Ditto.
6015         (altivec_vnmsubfp): Ditto.
6016         (altivec_vnmsubfp_1): Ditto.
6017         (altivec_vnmsubfp_2): Ditto.
6018         (altivec_vnmsubfp_3): Delete.
6019
6020         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
6021         (fmasf4_fpr): Ditto.
6022         (fmssf4_fpr): Ditto.
6023         (fnmasf4_fpr): Ditto.
6024         (fnmssf4_fpr): Ditto.
6025         (fmadf4): Ditto.
6026         (fmadf4_fpr): Ditto.
6027         (fmsdf4_fpr): Ditto.
6028         (fnmadf4_fpr): Ditto.
6029         (fnmsdf4_fpr): Ditto.
6030
6031         * optabs.h (OTI_fma): Add fma optab.
6032         (fma_optab): Ditto.
6033
6034         * genopinit.c (optabs): Set fma optab.
6035
6036         * rtl.def (FMA): Add FMA rtl.
6037
6038         * tree.h (mode_has_fma): New function to return if MODE supports a
6039         fast multiply and add instruction.
6040         * builtins.c (mode_has_fma): Ditto.
6041
6042 2010-10-15  Jan Hubicka  <jh@suse.cz>
6043
6044         * lto-streamer-out.c (write_symbol): Use pointer set of seen
6045         objects instead of bitmap.
6046         (produce_symtab): Likewise; output defined symbols first.
6047
6048 2010-10-15  Jie Zhang  <jie@codesourcery.com>
6049
6050         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
6051         Option Summary and Index.
6052
6053 2010-10-15  Richard Guenther  <rguenther@suse.de>
6054
6055         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
6056         for automatic variables again.
6057
6058 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6059
6060         * doc/extend.texi (Variable Length): Don't refer to VLAs not
6061         conforming to C99.
6062
6063 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6064
6065         * config/rx/rx.c (rx_option_optimization): Change to
6066         rx_override_options_after_change.  Don't change
6067         flag_lto_compression_level.  Don't check for changes to whether
6068         FPU instructions can be used.  Check and set only
6069         flag_finite_math_only, not other fast-math flags.
6070         (rx_option_override): Call rx_override_options_after_change.
6071         (TARGET_OPTION_OPTIMIZATION): Remove.
6072         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6073
6074 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6075
6076         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
6077         disable section anchors for lang_hooks.name[4] != 'O'.
6078
6079 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6080
6081         * config/frv/frv.c (frv_option_optimization,
6082         TARGET_OPTION_OPTIMIZATION): Remove.
6083         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
6084
6085 2010-10-15  Michael Matz  <matz@suse.de>
6086
6087         * cgraphunit.c (clone_of_p): Define unconditionally.
6088
6089 2010-10-15  Richard Guenther  <rguenther@suse.de>
6090
6091         PR lto/45957
6092         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
6093
6094 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
6095
6096         * ifcvt.c (find_active_insn_before): New function.
6097         (find_active_insn_after): New function.
6098         (cond_exec_process_if_block): Use new functions to replace
6099         prev_active_insn() and next_active_insn().
6100
6101 2010-10-14  Yao Qi  <yao@codesourcery.com>
6102
6103         PR target/45447
6104         * config/arm/arm.c (arm_build_builtin_va_list): Assign
6105         va_list_name to TYPE_STUB_DECL (va_list_type).
6106
6107 2010-10-14  Jan Hubicka  <jh@suse.cz>
6108
6109         PR middle-end/45621
6110         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
6111         redirected to clone, be happy.
6112         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
6113         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
6114         former_clone_of unconditionally.
6115
6116 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6117
6118         Merge from FSF apple 'trunk' branch.
6119         2006 Fariborz Jahanian  <fjahanian@apple.com>
6120
6121         Radars 4436866, 4505126, 4506903, 4517826
6122         * c-parser.c (c_parser, objc_property_attr_context) New flag.
6123         (c_lex_one_token): Handle property attributes.
6124         (c_parser_external_declaration): Handle @property.
6125         (c_parser_declaration_or_fndef): Warn on invalid attributes before
6126         @alias, @class, @end and @property objc keywords.
6127         (c_parser_objc_methodprotolist): Handle @property.
6128         (c_parser_objc_property_attrlist): New.
6129         (c_parser_objc_at_property): New.
6130         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
6131         (build_modify_expr): Likewise.
6132
6133 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6134
6135         PR tree-optimization/46008
6136         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
6137
6138 2010-10-14  Richard Guenther  <rguenther@suse.de>
6139
6140         PR tree-optimization/44913
6141         * tree-data-ref.c (disjoint_objects_p): Remove.
6142         (dr_may_alias_p): Simplify.  Only hand the base object to
6143         the alias-oracle.
6144         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6145         some more trees, bail out instead of asserting.
6146         (ptr_derefs_may_alias_p): Likewise.  Export.
6147         (refs_may_alias_p_1): Handle STRING_CSTs.
6148         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
6149
6150 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6151
6152         PR c/45969
6153         * c-typeck.c (build_binary_op): Don't try to compute a semantic
6154         type with excess precision for boolean operations.
6155
6156 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
6157             Basile Starynkevitch  <basile@starynkevitch.net>
6158
6159         * gengtype.c:  Include getopt.h and version.h.
6160
6161         (lang_bitmap, struct outf, outf_p)
6162         (get_output_file_with_visibility, oprintf): Definitions moved to
6163         gengtype.h
6164         (output_files, header_file, srcdir, srcdir_len, this_file)
6165         (do_dump): No more static variables.
6166         (do_debug): New.
6167         (dbgprint_count_type_at): Added new function.
6168         (gengtype_long_options): New.
6169         (print_usage, print_version, parse_program_options): New.
6170         (main): Call parse_program_options, and removed old option
6171         handling code.  Added some debug output.
6172
6173         * gengtype.h:  Updated copyright year.
6174         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
6175         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
6176         Moved from gengtype.c to here.
6177         (do_debug, read_state_filename, write_state_filename): New variables.
6178         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
6179
6180         * Makefile.in:
6181         (REVISION): Always defined.
6182         (version.o): Removed ifdef REVISION_c.
6183         (s-gtype): Pass arguments to build/gengtype program.
6184         (build/version.o): Added building rule.
6185         (build/gengtype$(build_exeext)): Added build/version.o.
6186
6187 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6188
6189         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
6190         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
6191         __strong macros.
6192
6193 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
6194
6195         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
6196         may_trap_or_fault_p instead of may_trap_p predicate.
6197         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
6198         (substitute_placeholder_in_expr): Likewise.
6199         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
6200         flag on MEM_REF nodes.
6201         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
6202         flags on INDIRECT_REF nodes.
6203
6204 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
6205
6206         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
6207         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
6208         (arm*-*-eabi*) <tm_file>: Likewise.
6209         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
6210         (frv-*-*linux*) <tm_file>: Likewise.
6211         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
6212         and associated helper macros.
6213         * config/frv/frv-abi.h: Delete.
6214
6215 2010-10-14  Richard Guenther  <rguenther@suse.de>
6216
6217         PR lto/44561
6218         * tree.def (NULLPTR_TYPE): New tree code.
6219         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
6220         * dwarf2out.c (is_base_type): Likewise.
6221         (gen_type_die_with_usage): Likewise.
6222         * sdbout.c (plain_type_1): Likewise.
6223         * tree.c (build_int_cst_wide): Likewise.
6224         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
6225
6226 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6227
6228         * params.c (params_finished): New.
6229         (add_params): Assert !params_finished.
6230         (finish_params): New.
6231         (set_param_value_internal): Take params and params_set
6232         parameters.  Assert params_finished.
6233         (set_param_value, maybe_set_param_value): Take params and
6234         params_set parameters.  Update calls to set_param_value_internal.
6235         (set_default_param_value): Assert !params_finished.  Don't use
6236         set_param_value_internal.
6237         (default_param_value, init_param_values): New.
6238         * params.h (struct param_info): Change value to default_value.
6239         Remove set.
6240         (set_param_value, maybe_set_param_value): Add params and
6241         params_set parameters.
6242         (PARAM_VALUE): Get parameters from global_options.
6243         (PARAM_SET_P): Remove.
6244         (finish_params, default_param_value, init_param_values): New.
6245         * common.opt (param_values): New Variable.
6246         * config/arm/arm.c (arm_option_override): Pass extra arguments to
6247         maybe_set_param_value.
6248         * config/i386/i386.c (ix86_option_override_internal): Pass extra
6249         arguments to maybe_set_param_value.
6250         * config/picochip/picochip.c (picochip_option_override): Pass
6251         extra arguments to maybe_set_param_value.
6252         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
6253         extra arguments to maybe_set_param_value.
6254         * config/s390/s390.c (s390_option_override): Use
6255         maybe_set_param_value instead of set_param_value.  Pass extra
6256         arguments to maybe_set_param_value.
6257         * config/sparc/sparc.c (sparc_option_override): Pass extra
6258         arguments to maybe_set_param_value.
6259         * config/spu/spu.c (spu_option_override): Pass extra arguments to
6260         maybe_set_param_value.
6261         * opts.c (handle_param): Take opts and opts_set parameters.
6262         Update call to set_param_value.
6263         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
6264         initial_loop_invariant_max_bbs_in_loop): Remove.
6265         (init_options_once): Don't set them.
6266         (init_options_struct): Initialize parameters structures.
6267         (default_options_optimization): Use default_param_value when
6268         restoring defaults.  Update calls to maybe_set_param_value.
6269         (finish_options): Update calls to maybe_set_param_value.
6270         (common_handle_option): Update calls to handle_param and
6271         set_param_value.
6272         * toplev.c (DEFPARAM): Update definition for changes to param_info.
6273         (general_init): Call finish_params.
6274
6275 2010-10-14  Nick Clifton  <nickc@redhat.com>
6276
6277         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
6278         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
6279         (FIRST_PSEUDO_REGISTER): Increase by one.
6280         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
6281         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
6282         (MODES_TIEABLE): Call mn10300_modes_tieable.
6283         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
6284         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
6285         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
6286         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
6287         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
6288         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
6289         (mn10300_cc_status_mdep): Delete.
6290         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
6291         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
6292         the combine-stack-adjust pass.
6293         (print_operand): Use the mode of the comparison operation to
6294         select the comparison suffix.
6295         (notice_update_cc): Delete.
6296         (mn10300_secondary_reload_class): Remove test for stack pointer
6297         based arithmetic.
6298         (output_tst): Rename to mn10300_output_cmp.
6299         (impossible_plus_operand): Move into predicates.md.
6300         (mn10300_legitimize_address): Make static.
6301         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
6302         constant pic operands.
6303         (mn10300_legitimate_constant_p): New function.
6304         (mn10300_case_values_threshold): Make static.
6305         (mn10300_hard_regno_mode_ok): New function.
6306         (mn10300_modes_tieable): New function.
6307         (mn10300_select_cc_mode): New function.
6308         * config/mn10300/predicates.md (impossible_plus_operand): Define.
6309         * config/mn10300/mn10300-protos.h: Tidy.
6310         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
6311         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
6312         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
6313         with clobbers or sets of CC_REG.
6314         (CC_REG): Define.
6315         (mov*): Remove use of CLR instruction.
6316         (cbranch_si4_<code>): New pattern/split.
6317         (integer_conditional_branch): New pattern.
6318         (cbranch_sf4_<code>): New pattern/split.
6319         (float_conditional_branch): New pattern.
6320         (casesi): Use addsi3 pattern instead of movsi pattern to add and
6321         move a value at the same time.
6322         (cc0 peepholes): Remove.
6323
6324 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6325
6326         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
6327         on RTX_FRAME_RELATED_P insns and the insn to which
6328         NOTE_INSN_EPILOGUE_BEG is attached.
6329         * sched-vis.c (print_value): Allow NULL value.
6330
6331 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6332
6333         PR rtl-optimization/45570
6334         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
6335         assert that we are pipelining outer loops.  Allow returning
6336         zero predecessors.
6337
6338 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
6339
6340         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
6341         (tidy_control_flow): Tidy vertical space.
6342         (sel_remove_bb): New variable idx.  Use it to remember the basic
6343         block index before deleting the block.
6344         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
6345         (sel_merge_blocks): ... here.
6346         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
6347
6348 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6349
6350         * cse.c (is_dead_reg): Change into inline function that is not
6351         called through for_each_rtx.
6352         (set_live_p): Adjust caller.
6353         (insn_live_p): Don't reset DEBUG_INSNs here.
6354         (struct dead_debug_insn_data): New data.
6355         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
6356         (delete_trivially_dead_insns): If there is just one setter for the
6357         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
6358         and add DEBUG_INSN for it right before the removed setter and
6359         use the DEBUG_EXPR instead of the dead pseudo.
6360
6361 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
6362
6363         * et-forest.c (et_nca): Return NULL immediately when
6364         the dominance forest has disjoint components.
6365
6366 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
6367
6368         * ira.c (setup_class_hard_regs): Fix typo in indexing
6369         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
6370
6371 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
6372
6373         * graph.c (inbb): New variable.
6374         (start_bb): Set inbb to 1 if output is inside of a building block.
6375         (end_bb): Check if output is inside of a building block.
6376
6377 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
6378
6379         PR rtl-optimization/45912
6380         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
6381         regno of registers instead of their index to compute the alignment.
6382
6383 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
6384
6385         * config/i386/i386.c (ix86_build_const_vector): Check vector
6386         mode instead of scalar mode.
6387         (ix86_build_signbit_mask): Likewise.
6388         (ix86_expand_fp_absneg_operator): Updated.
6389         (ix86_expand_copysign): Likewise.
6390         (ix86_expand_int_vcond): Likewise.
6391         (ix86_emit_swdivsf): Likewise.
6392         (ix86_sse_copysign_to_positive): Likewise.
6393         (ix86_expand_sse_fabs): Likewise.
6394         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
6395         * config/i386/sse.md (copysign<mode>3): Likewise.
6396         (sse2_cvtudq2ps): Likewise.
6397         (vec_unpacku_float_hi_v4si): Likewise.
6398         (vec_unpacku_float_lo_v4si): Likewise.
6399
6400         * config/i386/i386.c (ix86_builtins): Add
6401         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
6402         (bdesc_args): Likewise.
6403         (ix86_builtin_vectorized_function): Support
6404         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
6405         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
6406         and IX86_BUILTIN_CVTPS2DQ256.
6407         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
6408
6409         * config/i386/sse.md (STORENT_MODE): New.
6410         (VEC_FLOAT_MODE): Likewise.
6411         (VEC_EXTRACT_MODE): Likewise.
6412         (*avx_cvtdq2pd256_2): Likewise.
6413         (vec_pack_trunc_v4df): Likewise.
6414         (vec_interleave_highv8sf): Likewise.
6415         (vec_interleave_lowv8sf): Likewise.
6416         (storent<mode>): Macroized.
6417         (<code><mode>2: absneg): Likewise.
6418         (copysign<mode>3): Likewise.
6419         (vec_extract<mode>): Likewise.
6420
6421         PR target/44180
6422         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
6423         for V8SFmode.
6424
6425 2010-10-13  Richard Guenther  <rguenther@suse.de>
6426             H.J. Lu  <hongjiu.lu@intel.com>
6427
6428         * config/i386/sse.md (reduc_splus_v8sf): Add.
6429         (reduc_splus_v4df): Likewise.
6430         (vec_unpacks_hi_v8sf): Likewise.
6431         (vec_unpacks_lo_v8sf): Likewise.
6432         (*avx_cvtps2pd256_2): Likewise.
6433         (vec_unpacks_float_hi_v8si): Likewise.
6434         (vec_unpacks_float_lo_v8si): Likewise.
6435         (vec_interleave_highv4df): Likewise.
6436         (vec_interleave_lowv4df): Likewise.
6437
6438 2010-10-13  Richard Guenther  <rguenther@suse.de>
6439
6440         PR objc/45878
6441         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
6442         alone if there are no virtual methods.
6443
6444 2010-10-13  Richard Henderson  <rth@redhat.com>
6445
6446         * expr.c (build_personality_function): Take parameter LANG instead
6447         of parameter NAME.  Build the name based on the lang prefix and the
6448         unwind method in use.
6449         * tree.c (lhd_gcc_personality): Update call to
6450         build_personality_function.
6451
6452 2010-10-13  Richard Guenther  <rguenther@suse.de>
6453
6454         PR objc/45878
6455         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
6456
6457 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
6458
6459         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
6460         Canonicalize input operands of ASM_OPERANDS insns.
6461
6462 2010-10-13  Richard Guenther  <rguenther@suse.de>
6463
6464         PR tree-optimization/45788
6465         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
6466         EH update until fixup-cfg.
6467
6468 2010-10-13  Julian Brown  <julian@codesourcery.com>
6469
6470         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
6471         from CORE_REGS and GENERAL_REGS classes.
6472         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
6473         final constraint for register preferencing.
6474
6475 2010-10-13  Richard Guenther  <rguenther@suse.de>
6476
6477         PR tree-optimization/45970
6478         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
6479         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
6480         (stmt_kills_ref_p): Likewise.
6481         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
6482
6483 2010-10-13  Richard Guenther  <rguenther@suse.de>
6484
6485         PR tree-optimization/45982
6486         * tree-ssa-structalias.c (make_constraints_to): New function.
6487         (make_constraint_to): Implement in terms of make_constraints_to.
6488         (find_func_aliases): Properly make return values of pure/const
6489         functions escape if they assign to sth that is not a pointer.
6490
6491 2010-10-13  Richard Guenther  <rguenther@suse.de>
6492
6493         PR middle-end/45874
6494         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
6495         Fixup the CFG when EH was fixed up.
6496
6497 2010-10-13  Ira Rosen  <irar@il.ibm.com>
6498
6499         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
6500         Use operand's type for POINTER_PLUS_EXPR.
6501
6502 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
6503
6504         * c-parser.c (c_parser_for_statement): Initialize incr.
6505
6506 2010-10-12  Xinliang David Li  <davidxl@google.com>
6507
6508         PR tree-optimization/45972
6509         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
6510         with too many arguments.
6511
6512 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
6513
6514         PR fortran/45636
6515         * tree-ssa-forwprop.c: Include expr.h.
6516         (constant_pointer_difference, simplify_builtin_call): New functions.
6517         (tree_ssa_forward_propagate_single_use_vars): Call
6518         simplify_builtin_call on builtin calls.
6519
6520 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
6521
6522         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
6523         (*adddi3_extend_sp32): Likewise.
6524         (*subdi3_insn_sp32): Likewise.
6525         (*subdi3_extend_sp32): Likewise.
6526         (*negdi2_sp32): Use negative test for consistency.
6527
6528 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
6529
6530         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
6531         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6532         * config/fixed-bit.h: Likewise.
6533         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6534         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6535         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
6536         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
6537         (DF_SIZE): Likewise.
6538         * doc/tm.texi: Regenerate.
6539
6540 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
6541
6542         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
6543         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
6544         (*isel_reversed_unsigned_<mode>): New.
6545         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
6546         as valid comparisons and adjust operands and output appropriately.
6547         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
6548
6549 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
6550
6551         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
6552         DATA_ALIGNMENT and add COND parameter. Update comments above.
6553         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
6554         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
6555
6556 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
6557
6558         PR bootstrap/45958
6559         * exec-tool.in: Support '-plugin' as the second option to the linker.
6560
6561 2010-10-12  Richard Henderson  <rth@redhat.com>
6562
6563         PR middle-end/45962
6564         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
6565         (expand_stack_vars): Assert large base allocated when used.
6566
6567 2010-10-12  Richard Guenther  <rguenther@suse.de>
6568
6569         * tree-ssa-structalias.c (get_constraint_for_1): Constants
6570         only point to nonlocal, not anything.
6571
6572 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6573
6574         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
6575         unwind info for exceptions.
6576
6577 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6578
6579         PR testsuite/45851
6580         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
6581         Document optional target selector.
6582
6583 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
6584
6585         * flag-types.h: New.
6586         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
6587         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
6588         options.h.
6589         (OPTIONS_H): Define.
6590         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
6591         of options.h.
6592         * configure.ac (tm_include_list): Include options.h not flags.h.
6593         * configure: Regenerate.
6594         * flags.h: Include flag-types.h.  Include options.h at top of file
6595         again.
6596         (enum debug_info_type, enum debug_info_level, enum
6597         debug_info_usage, enum symbol_visibility, struct visibility_flags,
6598         enum ira_algorithm, enum ira_region, enum excess_precision, enum
6599         graph_dump_types, enum stack_check_type,
6600         enum warn_strict_overflow_code): Move to flag-types.h
6601         * opth-gen.awk: Include flag-types.h in options.h.
6602
6603 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
6604
6605         * expr.c (store_expr): Share code for STRING_CST and
6606         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
6607         check if target is a MEM.
6608
6609         * rtl.h: Include hashtab.h.
6610         (iterative_hash_rtx): New prototype.
6611         * rtl.c (iterative_hash_rtx): New function.
6612         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
6613         (output_loc_list): Return immediately if emitted is set, set it.
6614         (hash_loc_operands, hash_locs, hash_loc_list,
6615         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
6616         optimize_location_lists_1, optimize_location_lists): New function.
6617         (dwarf2out_finish): Call optimize_location_lists.
6618         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
6619
6620 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6621
6622         PR testsuite/45974
6623         Revert:
6624         * Makefile.in ($(lang_checks_parallel))
6625         ($(lang_checks_parallelized)): Use single quotes for
6626         $(RUNTESTFLAGS), to allow passing quoted content.
6627
6628 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6629
6630         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
6631         actual_oldval.  Use __builtin_expect.
6632         (SUBWORD_VAL_CAS): Likewise.
6633
6634 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6635
6636         * recog.c (nonmemory_operand): Call immediate_operand for
6637         CONSTANT_P operands.
6638
6639 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
6640
6641         * config/i386/i386.md (movmem<mode>): Macroize expander from
6642         movmem{si,di} using SWI48 mode iterator.
6643         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
6644         *strmovsi_rex_1 using P mode iterator.
6645         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
6646         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
6647         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
6648         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
6649         (setmem<mode>): Macroize expander from setmem{si,di} using
6650         SWI48 mode iterator.
6651         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
6652         *strsetsi_rex_1 using P mode iterator.
6653         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
6654         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
6655         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
6656         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
6657         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
6658         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
6659         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
6660         mode iterator.
6661         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
6662         *strlenqi_rex_1 using P mode iterator.
6663
6664 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
6665
6666         PR bootstrap/45445
6667         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
6668         static functions.
6669         (mark_ref_live, mark_ref_dead): Use them.
6670         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
6671         Save the original reg, and use the new functions.
6672         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
6673         changed.
6674         (check_and_make_def_conflict): Save the original reg.
6675
6676 2010-10-11  Martin Jambor  <mjambor@suse.cz>
6677
6678         PR middle-end/45699
6679         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
6680         thunks.
6681
6682 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6683
6684         * Makefile.in ($(lang_checks_parallel))
6685         ($(lang_checks_parallelized)): Use single quotes for
6686         $(RUNTESTFLAGS), to allow passing quoted content.
6687
6688         PR bootstrap/35855
6689         * opt-functions.awk (BEGIN): New section.
6690         (lower, upper, digit, alnum): New variables.
6691         (static_var, opt_sanitized_name): Use alnum instead of character
6692         classes, for non-C locale.
6693         * optc-gen.awk: Likewise.
6694         * opth-gen.awk: Likewise.
6695
6696 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
6697
6698         * target.def (preferred_reload_class): New hook.
6699         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
6700         * doc/tm.texi: Regenerate.
6701         * targhooks.c (default_preferred_reload_class): New function.
6702         * targhooks.h (default_preferred_reload_class): Declare.
6703         * reload.c (find_dummy_reload): Change preferred_class variable type
6704         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
6705         target hook.
6706         (find_reloads): Change goal_alternative array type from int to
6707         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
6708         (push_reload, find_reloads_address_part): Use
6709         TARGET_PREFERRED_RELOAD_CLASS target hook.
6710         * reload1.c (emit_input_reload_insns): Ditto.
6711         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
6712         hook. Change rclass argument and secondary_class variable types from
6713         'enum reg_class' to reg_class_t.
6714
6715         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
6716         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
6717         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
6718         Change regclass argument and result types from enum reg_class to
6719         reg_class_t.
6720         (TARGET_PREFERRED_RELOAD_CLASS): Define.
6721
6722 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
6723
6724         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
6725         in masking operations.
6726         (simplify_const_unary_operation): Likewise.
6727         (simplify_binary_operation_1): Likewise.
6728         (simplify_const_binary_operation): Likewise.
6729         (simplify_const_relational_operation): Likewise.
6730         (simplify_ternary_operation): Likewise.
6731         (simplify_immed_subreg): Likewise.
6732
6733 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6734
6735         PR middle-end/45862
6736         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
6737         (TARGET_SUPPORTS_WEAK): New.
6738         * doc/tm.texi: Regenerate.
6739         * defaults.h (SUPPORTS_WEAK): Update comment.
6740         (TARGET_SUPPORTS_WEAK): New.
6741         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
6742         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
6743         SUPPORTS_WEAK.
6744         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
6745         make_decl_one_only): Likewise.
6746         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
6747         TARGET_SUPPORTS_WEAK.
6748         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
6749         instead of SUPPORTS_WEAK.
6750
6751 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6752
6753         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
6754
6755 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6756
6757         * vec.h (VEC_qsort): Define.
6758         * dbxout.c (output_used_types): Use it.
6759         * df-scan.c (df_sort_and_compress_refs): Likewise.
6760         (df_sort_and_compress_mws): Likewise.
6761         * genautomata.c (uniq_sort_alt_states): Likewise.
6762         (evaluate_equiv_classes): Likewise.
6763         (output_trans_table): Likewise.
6764         (output_state): Likewise.
6765         * gimplify.c (compare_case_labels): Likewise.
6766         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
6767         * ipa.c (build_cdtor_fns): Likewise.
6768         * lto.c (lto_wpa_write_files): Likewise.
6769         * sel-sched.c (fill_vec_av_set): Likewise.
6770         * tree-predcom.c (determine_roots_comp): Likewise.
6771         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
6772         (splice_param_accesses): Likewise.
6773         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
6774         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6775         (reassociate_bb): Likewise.
6776         * tree-ssa-sccvn.c (sort_scc): Likewise.
6777         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
6778
6779 2010-10-11  Ian Lance Taylor  <iant@google.com>
6780
6781         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
6782         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
6783         TREE_THIS_NOTRAP when appropriate.
6784         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
6785         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
6786         newly created MEM_REF.
6787
6788 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6789
6790         Nathan Froyds patch to hooks FUNCTION_ARG etc.
6791         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
6792         (picochip_incoming_function_arg): Delete.
6793         (picochip_arg_advance): Delete.
6794         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
6795         (FUNCTION_INCOMING_ARG): Delete.
6796         (FUNCTION_ARG_ADVANCE): Delete.
6797         * config/picochip/picochip.c (picochip_function_arg): Take a
6798         const_tree and a bool.
6799         (picochip_incoming_function_arg): Likewise.
6800         (picochip_arg_advance): Likewise.
6801         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6802         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6803
6804 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6805
6806         PR middle-end/45955
6807         * ipa.c (build_cdtor): Delete endless loop.
6808
6809 2010-10-07  Andi Kleen  <ak@linux.intel.com>
6810
6811         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
6812         checksum-options.
6813         (checksum-options): Add.
6814         (cc1-dummy): Remove.
6815         (cc1-checksum): Change to run checksum over object files
6816         and options only.
6817         * dummy-checksum.c: Remove.
6818         * genchecksum.c: Update copyright.
6819         (usage): Allow multiple arguments.
6820         (BLOCKSIZE): Add.
6821         (dosum): Change for incremental checksum. Remove C output.
6822         (main): Iterate over all argument files. Add C output.
6823
6824 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
6825
6826         * params.c (set_param_value_internal): New.
6827         (set_param_value): Use set_param_value_internal.
6828         (maybe_set_param_value, set_default_param_value): New.
6829         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
6830         (maybe_set_param_value, set_default_param_value): Declare.
6831         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
6832         * config/i386/i386.c (ix86_option_override_internal): Use
6833         maybe_set_param_value.
6834         * config/ia64/ia64.c (ia64_option_default_params,
6835         TARGET_OPTION_DEFAULT_PARAMS): New.
6836         (ia64_option_optimization): Move some code to
6837         ia64_option_default_params.
6838         * config/picochip/picochip.c (picochip_option_override): Use
6839         maybe_set_param_value.
6840         * config/rs6000/rs6000.c (rs6000_option_default_params,
6841         TARGET_OPTION_DEFAULT_PARAMS): New.
6842         (rs6000_option_override_internal): Use maybe_set_param_value.
6843         (rs6000_option_optimization): Move some code to
6844         rs6000_option_default_params.
6845         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
6846         * config/sh/sh.c (sh_option_default_params,
6847         TARGET_OPTION_DEFAULT_PARAMS): New.
6848         (sh_option_optimization): Move some code to sh_option_default_params.
6849         * config/sparc/sparc.c (sparc_option_override): Use
6850         maybe_set_param_value.
6851         * config/spu/spu.c (spu_option_default_params,
6852         TARGET_OPTION_DEFAULT_PARAMS): New.
6853         (spu_option_optimization): Move some code to spu_option_default_params.
6854         (spu_option_override): Use maybe_set_param_value.
6855         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
6856         * doc/tm.texi: Regenerate.
6857         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
6858         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
6859         compiler_params.
6860         (default_options_optimization): Use maybe_set_param_value.
6861         (finish_options): Use maybe_set_param_value.
6862         * target.def (target_option.default_params): New hook.
6863         * toplev.c (general_init): Call targetm.target_option.default_params.
6864
6865 2010-10-11  Ira Rosen  <irar@il.ibm.com>
6866
6867         PR tree-optimization/45902
6868         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
6869         vector type for constants, unless it's a pointer.
6870
6871 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6872
6873         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
6874
6875 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
6876
6877         PR target/45870
6878         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
6879         (ix86_delegitimize_address): Use it.
6880
6881 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
6882
6883         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
6884
6885 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
6886
6887         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
6888         to cum struct in the call to function_arg_advance.
6889         (alpha_function_arg_advance): Mark named as unused.
6890
6891 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
6892
6893         * config/mips/mips.c (mips_handle_option): Make "value" with
6894         ATTRIBUTE_UNUSED.
6895
6896 2010-10-09  Richard Henderson  <rth@redhat.com>
6897
6898         PR rtl-opt/33721
6899         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
6900         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
6901         required_align, tidy the code a bit.  Emit split_stack code in the
6902         right place.  Mark the return value with the alignment properly.
6903         * expr.h (allocate_dynamic_stack_space): Update decl.
6904         * builtins.c (expand_builtin_apply): Update call to
6905         allocate_dynamic_stack_space.
6906         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
6907         * calls.c (initialize_argument_information): Update call to
6908         allocate_dynamic_stack_space.
6909         (expand_call): Likewise.
6910
6911         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
6912         Don't update_stack_alignment here.
6913         (alloc_stack_frame_space): Make ALIGN unsigned.
6914         (stack_var_cmp): Sort by alignment too.
6915         (partition_stack_vars): Don't merge large and small alignment vars.
6916         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
6917         Take care when BASE is not virtual_stack_vars_rtx.
6918         (expand_stack_vars): Allocate dynamic stack space for large
6919         alignment variables.
6920         (expand_one_stack_var): Update all to expand_one_stack_var_at.
6921         (defer_stack_allocation): True for large alignment vars.
6922         (update_stack_alignment): Merge into ...
6923         (expand_one_var): ... here.
6924         (gimple_expand_cfg): Place code from expand_stack_vars.
6925
6926 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6927
6928         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6929         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
6930         (pdp11_function_arg_advance): New function.
6931         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6932
6933 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6934
6935         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
6936         * libgcc2.c: Likewise.
6937
6938 2010-10-09  Richard Guenther  <rguenther@suse.de>
6939
6940         PR lto/45956
6941         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
6942         Properly check if a decl is an automatic var.
6943
6944 2010-10-09  Richard Guenther  <rguenther@suse.de>
6945
6946         PR lto/45947
6947         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
6948
6949 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6950
6951         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
6952         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6953         * config/mmix/mmix.c (mmix_function_arg): Rename to...
6954         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
6955         bool arguments.
6956         (mmix_function_arg): New function.
6957         (mmix_function_incoming_arg): New function.
6958         (mmix_function_arg_advance): New function.
6959         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6960         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6961
6962 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6963
6964         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6965         * config/vax/vax.c (vax_function_arg): New function.
6966         (vax_function_arg_advance): New function.
6967         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6968
6969 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6970
6971         * config/pa/pa-protos.h (function_arg): Delete.
6972         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6973         * config/pa/pa.c (function_arg): Rename to...
6974         (pa_function_arg): ...this.  Make static.  Take a const_tree and
6975         a bool.
6976         (pa_function_arg_advance): New function.
6977         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6978
6979 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6980
6981         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6982         * config/m68k/m68k.c (m68k_function_arg): New function.
6983         (m68k_function_arg_advance): New function.
6984         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6985
6986 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6987
6988         * config/avr/avr-protos.h (function_arg): Delete.
6989         (function_arg_advance): Delete.
6990         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6991         * config/avr/avr.c (function_arg): Rename to...
6992         (avr_function_arg): ...this.  Make static.  Take a const_tree and
6993         a bool.
6994         (function_arg_advance): Rename to...
6995         (avr_function_arg_advance): ...this.  Make static.  Take a
6996         const_tree and a bool.
6997         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6998
6999 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7000
7001         * config/alpha/alpha-protos.h (function_arg): Delete.
7002         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7003         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7004         * config/alpha/alpha.c (function_arg): Rename to...
7005         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
7006         a bool.  Delete TARGET_ABI_UNICOSMK code.
7007         (alpha_function_arg_advance): New function.
7008         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7009
7010 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7011
7012         * config/mep/mep-protos.h (mep_function_arg): Delete.
7013         (mep_function_arg_advance): Delete.
7014         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7015         * config/mep/mep.c (mep_function_arg): Make static.  Take a
7016         const_tree and a bool.
7017         (mep_function_arg_advance): Likewise.
7018         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7019
7020 2010-10-09  Richard Guenther  <rguenther@suse.de>
7021
7022         PR tree-optimization/45945
7023         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
7024
7025 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
7026
7027         PR tree-optimization/45612
7028         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
7029         Test LABEL_DECLs as well.  Fix formatting issues.
7030         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
7031         whose label is present in NON_SSA_VARS.
7032         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
7033         as well.  Fix formatting issues.
7034         (visit_bb): Fix typos and formatting issue.
7035
7036 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7037
7038         PR tree-optimization/45950
7039         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
7040         before initializing vno->op.
7041
7042 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
7043
7044         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
7045         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
7046
7047 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
7048
7049         PR target/45913
7050         * config/i386/i386.c (ix86_binary_operator_ok): Support
7051         "andhi/andsi/anddi" as a zero-extending move.
7052
7053 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7054
7055         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
7056         into a temporary array.
7057
7058 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
7059
7060         PR tree-optimization/45903
7061         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
7062         of {A,L}SHIFTRT of MEM.
7063
7064 2010-10-08  Richard Guenther  <rguenther@suse.de>
7065
7066         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7067         Re-construct BLOCK_VARS.
7068         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
7069         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7070         * tree.c (free_lang_data_in_block): Remove.
7071         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
7072         Do not touch the BLOCK tree.
7073         * expr.c (expand_expr_real_1): Allow externals.
7074
7075 2010-10-08  Richard Guenther  <rguenther@suse.de>
7076
7077         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
7078         Do not output BLOCK_SUBBLOCKS.
7079         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
7080         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
7081         Re-construct BLOCK_SUBBLOCKS of parent block.
7082         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
7083         for BINFO_BASE_ACCESSES.
7084
7085 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
7086
7087         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
7088         (TREE_H): Include $(FLAGS_H) instead of options.h.
7089         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
7090         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7091         * common.opt (flag_complex_method, flag_evaluation_order,
7092         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
7093         Variable declarations.
7094         * configure.ac (tm_include_list): Include flags.h instead of options.h.
7095         * configure: Regenerate.
7096         * flags.h: Condition out contents for target libraries.  Include
7097         options.h at end of file.
7098         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
7099         flag_evaluation_order, flag_warn_unused_result): Remove.
7100         * gcc.c (main): Intialize global_options with global_options_init.
7101         * langhooks-def.h (lhd_init_options_struct): Declare.
7102         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7103         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
7104         * langhooks.c (lhd_init_options_struct): New.
7105         * langhooks.h (struct lang_hooks): Add init_options_struct.
7106         Update comment on init_options.
7107         * optc-gen.awk: Generate initializer for global_options_init, not
7108         global_options.
7109         * opth-gen.awk: Condition out structure declarations for target
7110         libraries.  Declare global_options_init.
7111         * opts-common.c: Include flags.h instead of options.h.
7112         * opts.c (flag_warn_unused_result): Remove.
7113         (read_cmdline_options): Take gcc_options parameters.  Pass them to
7114         read_cmdline_option.
7115         (initial_lang_mask, initial_min_crossjump_insns,
7116         initial_max_fields_for_field_sensitive,
7117         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
7118         (init_options_once): New.  Split out of decode_options.
7119         (init_options_struct): New.  Split out of decode_options.
7120         (decode_cmdline_options_to_array_default_mask): New.
7121         (default_options_optimization): New.  Split out of decode_options.
7122         (decode_options): Move most code to other functions.  Update call
7123         to read_cmdline_options.
7124         (finish_options): New.  Split out of decode_options.
7125         * opts.h (decode_options): Add gcc_options parameters.
7126         (init_options_once, init_options_struct,
7127         decode_cmdline_options_to_array_default_mask): New.
7128         * toplev.c (flag_complex_method, flag_ira_algorithm,
7129         flag_ira_region, flag_evaluation_order): Remove.
7130         (general_init): Use global_options_init for initial flag values
7131         for global_dc.
7132         (toplev_main): Call init_options_once, init_options_struct,
7133         lang_hooks.init_options_struct,
7134         decode_cmdline_options_to_array_default_mask and
7135         lang_hooks.init_option before decode_options.  Update arguments to
7136         decode_options.
7137         * tree.h: Include flags.h instead of options.h.
7138
7139 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7140
7141         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7142
7143 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7144
7145         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
7146         Delete.
7147         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
7148         (FUNCTION_INCOMING_ARG): Delete.
7149         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
7150         (function_arg_slotno): Likewise.  Take bool arguments.
7151         (sparc_arg_partial_bytes): Update call to it.
7152         (function_arg): Rename to...
7153         (sparc_function_arg_1): ...this.  Take bool arguments.
7154         (sparc_function_arg, sparc_function_incoming_arg): New functions.
7155         (function_arg_advance): Rename to...
7156         (sparc_function_arg_advance): ...this.  Take bool argument.
7157         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
7158         (TARGET_FUNCTION_INCOMING_ARG): Define.
7159
7160 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7161
7162         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
7163         Delete.
7164         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7165         * config/bfin/bfin.c (function_arg_advance): Rename to...
7166         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
7167         and bool arguments.
7168         (function_arg): Rename to...
7169         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
7170         arguments.
7171         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7172
7173 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7174
7175         * config/score/score-protos.h (score_function_arg): Delete.
7176         (score_function_arg_advance): Delete.
7177         * config/score/score3.h (score3_function_arg_advance): Take a
7178         const_tree and a bool.
7179         (score3_function_arg): Likewise.
7180         * config/score/score7.h (score7_function_arg_advance): Likewise.
7181         (score7_function_arg): Likewise.
7182         * config/score/score3.c (score3_classify_arg): Likewise.
7183         (score3_function_arg_advance, score3_function_arg): Likewise.
7184         * config/score/score7.c (score7_classify_arg): Likewise.
7185         (score7_function_arg_advance, score7_function_arg): Likewise.
7186         * config/score/score.c (score_function_arg_advance): Likewise.
7187         (score_function_arg): Likewise.  De-const-ify `cum' argument.
7188         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7189
7190 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7191
7192         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
7193         (s390_function_arg): Delete.
7194         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7195         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
7196         (s390_function_arg_integer): Likewise.
7197         (s390_function_arg_advance): Make static.  Take a const_tree and
7198         a bool.
7199         (s390_function_arg): Likewise.
7200         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7201
7202 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7203
7204         * config/spu/spu-protos.h (spu_function_arg): Delete.
7205         * config/spu/spu.h (FUNCTION_ARG): Delete.
7206         (FUNCTION_ARG_ADVANCE): Move code to ...
7207         * config/spu/spu.c (spu_function_arg_advance): New function.
7208         (spu_function_arg): Make static.  Take a const_tree and a bool.
7209         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
7210         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7211
7212 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7213
7214         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7215
7216 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7217
7218         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
7219         (init_vn_nary_op_from_op): New function.
7220         (init_vn_nary_op_from_stmt): New function.
7221         (vn_nary_op_lookup_1): New function.
7222         (sizeof_vn_nary_op): New function.
7223         (alloc_vn_nary_op_noinit): New function.
7224         (alloc_vn_nary_op): New function.
7225         (vn_nary_op_insert_into): New function.
7226         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
7227         (vn_nary_op_lookup): Likewise.
7228         (vn_nary_op_lookup_stmt): Likewise.
7229         (vn_nary_op_insert_pieces): Likewise.
7230         (vn_nary_op_insert): Likewise.
7231         (vn_nary_op_insert_stmt): Likewise.
7232         (copy_nary): Likewise.
7233         (set_value_id_for_result): New function.
7234         (set_hashtable_value_ids): Call it.
7235
7236 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7237
7238         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7239         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
7240
7241 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7242
7243         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
7244         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7245
7246 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
7247
7248         PR debug/45656
7249         * cse.c (cse_extended_basic_block): Preserve cc0 info across
7250         debug isnsn.  Skip them when searching for cc0 setter.
7251         (set_live_p): Skip debug insns when searching for cc0 user.
7252
7253 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
7254
7255         PR debug/45673
7256         PR debug/45604
7257         PR debug/45419
7258         PR debug/45408
7259         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
7260         type of MEM_REFs to INTEGER_CSTs.
7261
7262 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
7263
7264         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
7265         m68hc11_print_operand_address.
7266
7267 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
7268
7269         * builtins.c (rewrite_call_expr): Move code to...
7270         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
7271         (rewrite_call_expr_array): New function.
7272         (fold_builtin_sprintf_chk_1): New function.
7273         (fold_builtin_sprintf_chk): Call it.
7274         (gimple_fold_builtin_sprintf_chk): Likewise.
7275         (fold_builtin_snprintf_chk_1): New function.
7276         (fold_builtin_snprintf_chk): Call it.
7277         (gimple_fold_builtin_snprintf_chk): Likewise.
7278         (gimple_rewrite_call_expr): Delete.
7279
7280 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7281
7282         * config.host: Update copyright year.
7283
7284 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7285
7286         * config.host (host_lto_plugin_soname): New shell variable.
7287         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
7288         * config.in: Regenerate.
7289         * configure: Regenerate.
7290         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
7291         LTO plugin shared library.
7292
7293 2010-10-07  Richard Henderson  <rth@redhat.com>
7294
7295         * target.h (enum unwind_info_type): Move ...
7296         * coretypes.h: ... here.
7297
7298 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
7299
7300         * doc/objc.texi (Fast enumeration protocol): Mention that
7301         'unsigned int' can also be used instead of 'unsigned long' in
7302         countByEnumeratingWithState:objects:count:.
7303
7304 2010-10-07  Martin Jambor  <mjambor@suse.cz>
7305
7306         * tree-sra.c (struct access): New field grp_assignment_write.
7307         (dump_access): Dump grp_assignment_write.
7308         (build_accesses_from_assign): Set grp_assignment_write.
7309         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
7310         (mark_read_status): Renamed to mark_rw_status, individual values
7311         renamed too.
7312         (analyze_access_subtree): Changed type of mark_write to
7313         mark_read_status.  Fixed propagating of mark_read and
7314         mark_write.  Changed benefit estimate.  Updated comment.
7315
7316 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
7317
7318         PR Tree-Vect/45847
7319         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
7320         check for vectype_out returned by get_vectype_for_scalar_type().
7321
7322 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
7323
7324         PR target/45805
7325         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
7326         constraint, add register specifier in instruction template.
7327         (neon_vec_pack_trunc_<mode>): Likewise.
7328         (neon_vec_<US>mult_<mode>): Add register specifier to
7329         instruction template.
7330
7331 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
7332
7333         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
7334         cygwin2.o.
7335         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
7336         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
7337         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
7338         (cygwin2.o): Likewise.
7339         * config/i386/cygwin1.c: Delete file.
7340         * config/i386/cygwin2.c: Likewise.
7341         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
7342         make all {%!mno-cygwin} ones unconditional.
7343         (STARTFILE_SPEC): Likewise.
7344         (REAL_LIBGCC_SPEC): Likewise.
7345         (LIB_SPEC): Likewise.
7346         (CXX_WRAP_SPEC): Likewise.
7347         (LINK_SPEC): Likewise.
7348         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
7349         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
7350         (cygwin_gplusplus_include_dir): Delete now-unused array.
7351         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
7352         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
7353         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
7354         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
7355         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
7356         (cygwin_local_include_dir): Delete now-unused array.
7357         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
7358         (cygwin_cross_include_dir): Delete now-unused array.
7359         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
7360         (cygwin_tool_include_dir): Delete now-unused array.
7361         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
7362         (cygwin_standard_include_dir): Delete now-unused array.
7363         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
7364         (GEN_CVT_ARRAY): Delete now-unused macro definition.
7365         (cvt_to_mingw): Delete now-unused array.
7366         (mingw_scan): Remove prototype of deleted function.
7367         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
7368         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
7369         * doc/invoke.texi (-mcygwin): Don't document removed option.
7370         (-mno-cygwin): Likewise.
7371
7372 2010-10-07  Richard Guenther  <rguenther@suse.de>
7373
7374         * machmode.h (mode_for_vector): Declare.
7375         * stor-layout.c (mode_for_vector): New function, split out from ...
7376         (layout_type): ... here.
7377         * tree-vectorizer.h (current_vector_size): Declare.
7378         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
7379         mask vector type is available.
7380         (get_vectype_for_scalar_type): Rename to ...
7381         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
7382         size argument.
7383         (get_vectype_for_scalar_type): New wrapper around
7384         get_vectype_for_scalar_type_and_size using current_vector_size.
7385         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
7386         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
7387         of vect_analyze_loop here.
7388         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
7389         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
7390         to autodetect.
7391         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
7392         V8SF to V8SI conversion builtin.
7393
7394 2010-10-07  Richard Guenther  <rguenther@suse.de>
7395
7396         * target.def (autovectorize_vector_sizes): New target hook.
7397         * targhooks.c (default_autovectorize_vector_sizes): New function.
7398         * targhooks.h (default_autovectorize_vector_sizes): Declare.
7399         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
7400         Document.
7401         * doc/tm.texi: Update.
7402         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
7403         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7404
7405 2010-10-07  Richard Guenther  <rguenther@suse.de>
7406
7407         * target.def (units_per_simd_word): Rename to ...
7408         (preferred_simd_mode): ... this.  Return mode instead of size.
7409         * targhooks.c (default_units_per_simd_word): Rename to ...
7410         (default_preferred_simd_mode): ... this.  Return word_mode.
7411         * targhooks.h (default_preferred_simd_mode): Declare.
7412         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
7413         (arm_preferred_simd_mode): ... this.  Re-implement.
7414         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
7415         (ix86_preferred_simd_mode): ... this.  Re-implement.
7416         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
7417         (sparc_preferred_simd_mode): ... this.  Re-implement.
7418         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
7419         (mips_preferred_simd_mode): ... this.  Re-implement.
7420         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
7421         (rs6000_preferred_simd_mode): ... this.  Re-implement.
7422         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
7423         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
7424         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
7425         * doc/tm.texi: Update.
7426
7427 2010-10-07  Richard Guenther  <rguenther@suse.de>
7428
7429         PR middle-end/45869
7430         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
7431         of pointers.
7432
7433 2010-10-07  Alan Modra  <amodra@gmail.com>
7434
7435         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
7436         rather than sign extension by hand.
7437
7438 2010-10-07  Jan Hubicka  <jh@suse.cz>
7439
7440         PR middle-end/45926
7441         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
7442
7443 2010-10-07  Richard Guenther  <rguenther@suse.de>
7444
7445         PR bootstrap/45914
7446         * configure.ac: Fix typo.
7447         * configure: Regenerated.
7448
7449 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7450
7451         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
7452         define_builtin_std where it's unnecessary.
7453         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
7454
7455 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
7456
7457         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
7458         * doc/tm.texi.in: Regenerate.
7459         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
7460         * targhooks.c (default_class_likely_spilled_p): Don't use the
7461         CLASS_LIKELY_SPILLED_P macro.
7462
7463         * config/arm/arm.md: Update comment.
7464
7465 2010-10-06  Jan Hubicka  <jh@suse.cz>
7466
7467         * ipa.c (cgraph_remove_unreachable_nodes): External references can
7468         always be removed.
7469         (cgraph_externally_visible_p): We can not bring local comdats that
7470         are known to linker; fix handling of internal visibility.
7471         (function_and_variable_visibility): Likewise.
7472
7473 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
7474
7475         PR rtl-optimization/45394
7476         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
7477         (struct rtx_subst_pair): Remove AFTER field.
7478         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
7479         (propagate_for_debug): Remove MOVE parameter and adjust.
7480         (try_combine): In the special case where I2 is a PARALLEL, combine only
7481         destinations of SETs and set I2SRC to the I2 source.
7482         Adjust calls to propagate_for_debug throughout.
7483         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
7484         insns.
7485
7486 2010-10-06  Olivier Hainque  <hainque@adacore.com>
7487
7488         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
7489         switch on insn codes as sequence of ifs.
7490
7491 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
7492
7493         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
7494         be UI_NONE for picochip.
7495         (picochip_option_override): Do not disable exception flags.
7496         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
7497         Declare.
7498
7499 2010-10-06  Richard Guenther  <rguenther@suse.de>
7500
7501         * Makefile.in (regmove.o): Depend on $(TARGET_H).
7502
7503 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7504
7505         Implemented fast enumeration for Objective-C.
7506         * c-parser.c (objc_could_be_foreach_context): New.
7507         (c_lex_one_token): Recognize RID_IN keyword in a potential
7508         Objective-C foreach context.
7509         (c_parser_declaration_or_fndef): Added parameter.  Accept
7510         Objective-C RID_IN keyword as terminating a declaration; in that
7511         case, return the declaration in the new parameter.
7512         (c_parser_extenral_declaration): Updated calls to
7513         c_parser_declaration_or_fndef.
7514         (c_parser_declaration_or_fndef): Same change.
7515         (c_parser_compound_statement_nostart): Same change.
7516         (c_parser_label): Same change.
7517         (c_parser_objc_methodprotolist): Same change.
7518         (c_parser_omp_for_loop): Same change.
7519         (c_parser_for_statement): Detect and parse Objective-C foreach
7520         statements.
7521         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
7522         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
7523         fast enumeration parsing code to turn off the c99 error but still
7524         perform checks on the loop declarations.
7525         * c-tree.h (check_for_loop_decls): Updated declaration.
7526         * doc/objc.texi: Document fast enumeration.
7527
7528 2010-10-06  Nick Clifton  <nickc@redhat.com>
7529
7530         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
7531         (MDR_REGNUM): Define.
7532         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
7533         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
7534         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
7535         (REGISTER_NAMES): Add MDR.
7536         (DWARF2_DEBUGGING_INFO): Define to 1.
7537         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7538         (F): New function.  Sets RTX_FRAME_RELATED_P.
7539         (mn10300_gen_multiple_store): Use F.
7540         (expand_prologue): Use F.  Use gen_movsf() to push floating
7541         point registers.
7542         (expand_epilogue): Use gen_movsf() to pop floating point registers.
7543         (mn10300_option_override): Disable combine stack adjust pass.
7544
7545 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
7546
7547         PR target/45901
7548         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
7549         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
7550
7551 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
7552
7553         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
7554         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
7555         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
7556         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
7557         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
7558         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
7559         BUILT_IN_TOUPPER): Mark as leaf.
7560
7561         PR middle-end/45838
7562         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
7563         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
7564         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
7565         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
7566         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
7567         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
7568         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
7569
7570 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
7571
7572         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
7573         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7574         (m68hc11_class_likely_spilled_p): New function.
7575
7576 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
7577
7578         * c-parser.c (c_parser_objc_method_definition): Updated comment.
7579
7580 2010-10-05  Jan Hubicka  <jh@suse.cz>
7581
7582         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
7583         Document.
7584         * opts.c (decode_options): Handle lto partitions.
7585         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
7586         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
7587
7588 2010-10-05  Jan Hubicka  <jh@suse.cz>
7589
7590         * cgraphunit.c (assemble_function): Output thunks and aliases before
7591         the function itself.
7592
7593 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7594
7595         * config/picochip/picochip.c (picochip_option_override): Disable
7596         exception flags for picochip.
7597
7598 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
7599
7600         * opts-common.c (handle_option, handle_generated_option,
7601         read_cmdline_option, set_option): Add diagnostic_context
7602         parameter.  Update calls among these functions.
7603         (set_option): Don't use global_dc.
7604         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
7605         (decode_options): Pass global_dc to enable_warning_as_error.
7606         (common_handle_option): Pass global_dc to enable_warning_as_error.
7607         (enable_warning_as_error): Add diagnostic_context parameter.
7608         Document parameters.  Don't use global_dc.  Pass
7609         diagnostic_context parameter to handle_generated_option.
7610         * opts.h (set_option, handle_option, handle_generated_option,
7611         read_cmdline_option, enable_warning_as_error): Add
7612         diagnostic_context parameter.
7613         * Makefile.in (lto-opts.o): Update dependencies.
7614         * coretypes.h (struct diagnostic_context, diagnostic_context):
7615         Declare here.
7616         * diagnostic.h (diagnostic_context): Don't declare typedef here.
7617         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
7618         * langhooks-def.h (struct diagnostic_context): Don't declare here.
7619         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
7620         using diagnostic_context typedef.
7621         * langhooks.c (lhd_initialize_diagnostics): Declare using
7622         diagnostic_context typedef.
7623         * langhooks.h (struct diagnostic_context): Don't declare here.
7624         (initialize_diagnostics, print_error_function): Declare using
7625         diagnostic_context typedef.
7626         * lto-opts.c: Include diagnostic.h.
7627         (lto_reissue_options): Pass global_dc to set_option.  Pass
7628         DK_UNSPECIFIED not 0.
7629         * plugin.c (plugins_internal_error_function): Declare using
7630         diagnostic_context typedef.
7631         * plugin.h (struct diagnostic_context): Don't declare here.
7632         (plugins_internal_error_function): Declare using
7633         diagnostic_context typedef.
7634
7635 2010-10-05  Olivier Hainque  <hainque@adacore.com>
7636             Nicolas Roche  <roche@adacore.com>
7637
7638         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
7639         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
7640
7641 2010-10-05  Ira Rosen  <irar@il.ibm.com>
7642
7643         PR tree-optimization/45752
7644         * tree-vect-slp.c (vect_get_mask_element): Remove static
7645         variables, make them function arguments.
7646         (vect_transform_slp_perm_load): Pass new arguments to
7647         vect_get_mask_element.
7648
7649 2010-10-05  Richard Guenther  <rguenther@suse.de>
7650
7651         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
7652         (gimple_mod_pow2): Likewise.
7653         (gimple_mod_subtract): Likewise.
7654         (gimple_ic): Likewise.
7655         (gimple_stringop_fixed_value): Likewise.
7656         * tree-profile.c (tree_init_edge_profiler): Mark profile
7657         functions nothrow and leaf.
7658         (add_abnormal_goto_call_edges): Remove.
7659         (tree_gen_edge_profiler): Work on SSA form.
7660         (tree_gen_ic_profiler): Likewise.  Simplify.
7661         (do_tree_profiling): Update SSA form.
7662         (pass_tree_profile): Remove.
7663         (do_tree_profiling): Likewise.
7664         (gate_tree_profile_ipa): New function.
7665         (pass_ipa_tree_profile): New.
7666         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
7667         state of instrumented functions.
7668         * passes.c (init_optimization_passes): Remove early non-SSA
7669         inlining.  Move profiling after early optimizations.
7670         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
7671         (pass_ipa_early_inline): Likewise.
7672         * tree-pass.h (pass_ipa_early_inline): Remove.
7673         (pass_tree_profile): Likewise.
7674         (pass_ipa_tree_profile): Declare.
7675
7676 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7677             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
7678
7679         * config/s390/s390.c (z196_cost): New.
7680         (s390_handle_arch_option): Add -march=z196.
7681         (s390_option_override): Use the new cost function and use the z10
7682         defaults also for z196.
7683         (legitimate_reload_constant_p): Adjust comment.
7684         (legitimate_reload_fp_constant_p): New function.
7685         (s390_preferred_reload_class): Distingiush between FP and Int constants.
7686         (preferred_la_operand_p): Avoid la with index on z196.
7687         (s390_adjust_priority): Trigger also for z196.
7688         (s390_issue_rate): Issue rate for z196 is 3.
7689         (s390_z10_fix_long_loop_prediction): Rename to ...
7690         (s390_fix_long_loop_prediction): ... this.
7691         (s390_reorg): Apply the z10 adjustments also for z196.
7692         (s390_loop_unroll_adjust): Do this also for z196.
7693         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
7694         (enum processor_flags): Add PF_Z196.
7695         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
7696         (TARGET_CPU_Z196, TARGET_Z196): New macros.
7697         * config.gcc: Enable z196 for --with-arch.
7698         * config/s390/2817.md: New file.
7699         * config/s390/2084.md: New type for multiply and add.
7700         * config/s390/2097.md: Likewise.
7701         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
7702         (UNSPECV_ATOMIC_OP): New constants.
7703         (fmadddf, fmaddsf): New values for type attribute.
7704         (z196prop): New insn attribute.
7705         (cpu, cpu_facility): Add z196.
7706         (ATOMIC_Z196): New code iterator.
7707         (noxa): New code attribute.
7708         (gk): New mode attribute.
7709         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
7710         Support load zero for fp constants.
7711         (fixuns_truncdddi2, fixuns_trunctddi2)
7712         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
7713         for z196.
7714         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
7715         (popcounthi2, popcountqi2): New expander.
7716         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
7717         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
7718         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
7719         insn definition.
7720         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
7721         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
7722         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
7723         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
7724         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
7725         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
7726         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
7727         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
7728         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
7729         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
7730         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
7731         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
7732         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
7733         Support new z196 instructions.
7734
7735 2010-10-05  Richard Guenther  <rguenther@suse.de>
7736
7737         PR middle-end/45877
7738         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
7739         case where gimplification optimizes away the stmt.
7740
7741 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7742
7743         PR debug/45849
7744         * var-tracking.c (strip_pointer_flags): New function.
7745         (emit_note_insn_var_location): If rtx_equal_p check failed,
7746         retry on locations simplified with simplify_replace_fn_rtx
7747         and strip_pointer_flags as its callback.
7748
7749 2010-10-04  Jan Hubicka  <jh@suse.cz>
7750
7751         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
7752         (can_refer_decl_in_current_unit_p): ... this one; reverse return
7753         value; handle comdats too.
7754         (canonicalize_constructor_val): Use it; handle function_decls
7755         correctly.
7756         (gimple_fold_obj_type_ref_known_binfo): Likewise.
7757         * gimple.c (get_base_address): Accept all kinds of decls.
7758
7759 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7760
7761         * flags.h (g_switch_value, g_switch_set): Remove.
7762         * opts.c (g_switch_value, g_switch_set): Remove.
7763         * config/g.opt (G): Add Var(g_switch_value).
7764         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
7765         (alpha_option_override): Check global_options_set.x_g_switch_value
7766         instead of g_switch_set.
7767         (alpha_in_small_data_p): Remove cast in comparison with
7768         g_switch_value.
7769         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
7770         g_switch_value to unsigned HOST_WIDE_INT.
7771         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
7772         with g_switch_value.
7773         (frv_handle_option): Don't handle -G here.
7774         (frv_option_override): Check global_options_set.x_g_switch_value
7775         instead of g_switch_set.  Don't modify g_switch_set.
7776         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
7777         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
7778         g_switch_value to unsigned HOST_WIDE_INT.
7779         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
7780         (ia64_option_override): Check global_options_set.x_g_switch_value
7781         instead of g_switch_set.
7782         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
7783         Remove.
7784         (lm32_in_small_data_p): Remove cast in comparison with
7785         g_switch_value.
7786         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
7787         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
7788         HOST_WIDE_INT.
7789         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
7790         (m32r_init): Check global_options_set.x_g_switch_value instead of
7791         g_switch_set.
7792         (m32r_in_small_data_p): Remove cast in comparison with
7793         g_switch_value.
7794         (m32r_file_start): Format g_switch_value with %d.
7795         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
7796         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
7797         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
7798         handle -G here.
7799         (microblaze_option_override): Check
7800         global_options_set.x_g_switch_value instead of g_switch_set.
7801         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
7802         (mips_option_override): Check global_options_set.x_g_switch_value
7803         instead of g_switch_set.
7804         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
7805         (rs6000_file_start): Format g_switch_value with %d.
7806         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
7807         comparisons with g_switch_value.
7808         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7809         global_options_set.x_g_switch_value instead of g_switch_set.
7810         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7811         global_options_set.x_g_switch_value instead of g_switch_set.
7812         * config/score/score.c (score_handle_option): Don't handle -G here.
7813         * config/score/score3.c (score3_option_override): Check
7814         global_options_set.x_g_switch_value instead of g_switch_set.
7815         * config/score/score7.c (score7_option_override): Check
7816         global_options_set.x_g_switch_value instead of g_switch_set.
7817
7818 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7819
7820         * common.opt (fira-coalesce): Remove.
7821
7822         * doc/invoke.texi (flag_ira_coalesce): Remove.
7823
7824         * ira-color.c (allocno_coalesced_p): Move before
7825         copy_freq_compare_func.
7826         processed_coalesced_allocno_bitmap): Ditto.
7827         (update_conflict_hard_regno_costs): Don't use
7828         ALLOCNO_FIRST_COALESCED_ALLOCNO.
7829         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
7830         (assign_hard_reg): Assume no coalesced allocnos.
7831         (get_coalesced_allocnos_attributes): Remove.
7832         (bucket_allocno_compare_func): Assume no coalesced allocnos.
7833         (push_allocno_to_stack): Ditto.
7834         (remove_allocno_from_bucket_and_push): Use
7835         ira_print_expanded_allocno instead of print_coalesced_allocno.
7836         (push_allocnos_to_stack): Assume uncoalesced allocnos.
7837         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
7838         all_conflicting_hard_regs.
7839         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
7840         (setup_allocno_left_conflicts_size): Ditto.
7841         (put_allocno_into_bucket): Ditto.
7842         (copy_freq_compare_func): Remove.
7843         (copy_freq_compare_func, merge_allocnos): Move before
7844         coalesced_pseudo_reg_freq_compare.
7845         coalesced_allocno_conflict_p): Ditto.
7846         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
7847         parameter.  Assume it true.
7848         (color_allocnos): Assume uncoalesced allocnos.  Use
7849         ira_print_expanded_allocno instead of print_coalesced_allocno.
7850         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
7851         parameter.
7852
7853         * ira.c: Remove comment about coalescing.
7854
7855 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7856
7857         * config/mips/mips.h (target_flags_explicit): Declare for
7858         GENERATOR_FILE.
7859
7860 2010-10-04  Andi Kleen  <ak@linux.intel.com>
7861
7862         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
7863         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
7864
7865 2010-10-04  Matthias Klose  <doko@ubuntu.com>
7866
7867         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
7868         multilib osdirname if it exists.
7869         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
7870
7871 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7872
7873         PR middle-end/45876
7874         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
7875         arg0's type or its unsigned counterpart as utype.  Convert
7876         arg1 to utype unconditionally.
7877
7878 2010-10-04  Julian Brown  <julian@codesourcery.com>
7879
7880         * expr.c (expand_assignment): Add assertion to prevent emitting
7881         null rtx for movmisalign pattern.
7882         (expand_expr_real_1): Likewise.
7883         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
7884         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
7885         (arm_vector_alignment_reachable): New.
7886         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
7887         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
7888         (arm_print_operand): Include alignment qualifier in %A.
7889         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
7890         (movmisalign<mode>): New expander.
7891         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
7892         insn patterns.
7893
7894 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7895
7896         * optc-gen.awk: Define global_options_set.  Don't define
7897         target_flags_explicit.
7898         * opth-gen.awk: Declare global_options_set.  Define
7899         target_flags_explicit as macro.
7900         * opts-common.c (handle_option): Take opts_set and generated_p
7901         parameters.
7902         (handle_generated_option, read_cmdline_option, set_option): Take
7903         opts_set parameter.
7904         (set_option): Use opts_set instead of hardcoding target_flags and
7905         target_flags_explicit.
7906         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
7907         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
7908         flag_value_profile_transformations_set, flag_peel_loops_set,
7909         flag_branch_probabilities_set, flag_inline_functions_set,
7910         flag_ipa_cp_set, flag_ipa_cp_clone_set,
7911         flag_predictive_commoning_set, flag_unswitch_loops_set,
7912         flag_gcse_after_reload_set): Remove.
7913         (common_handle_option, lang_handle_option, target_handle_option):
7914         Take opts_set parameter.  Assert that it is &global_options_set.
7915         (common_handle_option): Don't set _set variables.  Check opts_set
7916         instead of such variables.
7917         (enable_warning_as_error): Pass &global_options_set to
7918         handle_generated_option.
7919         * opts.h (cl_option_handler_func.handler, set_option,
7920         handle_option, handle_generated_option, read_cmdline_option): Add
7921         opts_set parameters.
7922         (handle_option): Add generated_p parameter.
7923         * config/i386/i386.c (ix86_function_specific_save,
7924         ix86_function_specific_restore): Updat for renaming of
7925         target_flags_explicit field.
7926         * config/i386/i386.opt (target_flags_explicit): Rename to
7927         ix86_target_flags_explicit.
7928         * config/ia64/ia64.c (ia64_override_options_after_change): Check
7929         global_options_set.x_flag_selective_scheduling and
7930         global_options_set.x_flag_selective_scheduling2, not
7931         sel_sched_switch_set.
7932         * flags.h (sel_sched_switch_set,
7933         flag_speculative_prefetching_set): Remove.
7934         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
7935         that it is &global_options_set.
7936         (process_command): Pass &global_options_set to read_cmdline_option.
7937         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
7938         set_option.
7939         * toplev.c (target_flags_explicit): Remove.
7940
7941 2010-10-04  Jan Hubicka  <jh@suse.cz>
7942
7943         PR middle-end/45871
7944         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
7945         use get_ref_base_and_offset to handle references.
7946         (fold_const_aggregate_ref): Update.
7947
7948 2010-10-04  Martin Jambor  <mjambor@suse.cz>
7949
7950         PR tree-optimization/45572
7951         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
7952         ipa_check_create_node_params.
7953         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
7954
7955 2010-10-04  Yao Qi  <yao@codesourcery.com>
7956
7957         * doc/passes.texi: Clean up.
7958
7959 2010-10-03  Ian Lance Taylor  <iant@google.com>
7960
7961         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
7962         referring to a field using a typedef name.
7963         (find_anonymous_field_with_type): New static function.
7964         (convert_to_anonymous_field): New static function.
7965         (convert_for_assignment): If -fplan9-extensions, permit converting
7966         pointer to struct to pointer to anonymous field.
7967         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
7968         (is_duplicate_field): New static function.
7969         (detect_field_duplicates_hash): If -fplan9-extensions, check for
7970         typedef names duplicating field names.
7971         (detect_field_duplicates): Likewise.
7972         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
7973         (C Dialect Options): Document -fplan9-extensions.
7974         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
7975
7976 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
7977
7978         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
7979         revision 164914.
7980         (vect_create_data_ref_ptr): Likewise.
7981         * tree-vect-stmts.c (vectorizable_store): Likewise.
7982         (perm_mask_for_reverse): Likewise.
7983         (reverse_vec_elements): Likewise.
7984         (vectorizable_load): Likewise.
7985
7986 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7987
7988         * cppbuiltin.c: New file.
7989         * cppbuiltin.h: New file.
7990         * Makefile.in: Take into account cppbuiltin.{h,c}.
7991
7992 2010-10-03  Andi Kleen  <ak@linux.intel.com>
7993
7994         * lto-cgraph.c (input_cgraph): Check for missing sections.
7995
7996 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
7997
7998         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
7999         to nonimmediate_operand.  Force operand 2 to register when allowed.
8000         (*<shiftrt_insn><mode>3_mask): Ditto.
8001         (*<rotate_insn><mode>3_mask): Ditto.
8002
8003 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
8004
8005         PR tree-optimization/45720
8006         PR tree-optimization/45764
8007         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8008         Don't accept backwards consecutive accesses.
8009         (vect_create_data_ref_ptr): Disallow negative steps.
8010
8011         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8012         (perm_mask_for_reverse): Removed.
8013         (reverse_vec_elements): Likewise.
8014         (vectorizable_load): Don't handle negative steps.
8015
8016 2010-10-02  Jan Hubicka  <jh@suse.cz>
8017
8018         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8019         call destination is known.
8020
8021 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8022
8023         PR target/45820
8024         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
8025         earlier.
8026
8027 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8028
8029         * doc/install.texi (Configuration): Document build_configargs,
8030         host_configargs, target_configargs.
8031
8032 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
8033
8034         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
8035         (*<shiftrt_insn><mode>3_mask): Ditto.
8036         (*<rotate_insn><mode>3_mask): Ditto.
8037
8038 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
8039
8040         PR tree-optimization/44716
8041         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
8042         (HOT_TEXT_SECTION_NAME): Define.
8043
8044 2010-10-01  Nick Clifton  <nickc@redhat.com>
8045
8046         * common.opt: Add -fcombine-stack-adjustments.
8047         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
8048         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
8049         flag_combine_stack_adjustments.
8050         * doc/invoke.texi: Document the new option.
8051
8052 2010-10-01  Richard Guenther  <rguenther@suse.de>
8053
8054         PR tree-optimization/45854
8055         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
8056
8057 2010-10-01  Anthony Green  <green@moxielogic.com>
8058
8059         * config.gcc: Fix moxie-*-rtems* configuration.
8060
8061 2010-10-01  Richard Guenther  <rguenther@suse.de>
8062
8063         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
8064         (gen_decl_die): Likewise.
8065
8066 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8067
8068         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
8069         to the function code for SPU MD builtins.
8070         (spu_expand_builtin): Update.
8071         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
8072
8073 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8074
8075         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
8076         sjlj_except_unwind_info.
8077
8078 2010-10-01  Tristan Gingold  <gingold@adacore.com>
8079
8080         * configure.ac: Define the nop insn for avr*-*-*
8081         * configure: Regenerate.
8082
8083 2010-10-01  Alan Modra  <amodra@gmail.com>
8084
8085         PR target/45807
8086         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
8087         extend toc_restore_insn.
8088
8089 2010-09-30  Richard Guenther  <rguenther@suse.de>
8090
8091         PR tree-optimization/43959
8092         * function.c (gimplify_parameters): Use create_tmp_reg instead of
8093         create_tmp_var.
8094
8095 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8096
8097         * config/sh/sh.c (sh_expand_prologue): Set
8098         current_function_static_stack_size.
8099
8100 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8101
8102         * configure.ac: Check for Solaris 8 ld with .hidden support.
8103         * configure: Regenerate.
8104
8105 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8106
8107         PR middle-end/45758
8108         * graphite.c (graphite_initialize): Call scev_reset.
8109
8110 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8111
8112         * sese.h (scev_analyzable_p): Return false for real or floating
8113         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
8114
8115 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8116
8117         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
8118         and ps.
8119         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
8120         domain.
8121         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
8122         Do not allocate ub_expr, it is passed in initialized.
8123
8124 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8125
8126         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
8127         (build_cloog_prog): Dump CLooG input file when
8128         flag_graphite_dump_cloog is set.  This is disabled on trunk.
8129         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
8130
8131 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8132
8133         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
8134         verify_dominators for CDI_POST_DOMINATORS.
8135         * sese.h: Remove comment about CDI_POST_DOMINATORS.
8136         (recompute_all_dominators): Remove call to free_dominance_info
8137         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
8138         for CDI_POST_DOMINATORS.
8139
8140 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8141
8142         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
8143         over pbb_dim_iter_domain.
8144
8145 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8146
8147         * graphite-flattening.c: Fix comments.
8148
8149 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8150
8151         * Makefile.in (OBJS-common): Add graphite-flattening.o.
8152         (graphite-flattening.o): New rule.
8153         * common.opt (floop-flatten): New flag.
8154         * doc/invoke.texi (-floop-flatten): Documented.
8155         * graphite-flattening.c: New.
8156         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
8157         * graphite-poly.h (flatten_all_loops): Declared.
8158         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
8159         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
8160         is set, also set flag_graphite.
8161
8162 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8163
8164         * graphite-poly.c (cloog_checksum): New.
8165         * graphite-poly.h (cloog_checksum): Declared.
8166
8167 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8168
8169         * graphite-poly.c (pbb_number_of_iterations): Removed.
8170         (pbb_number_of_iterations_at_time): Correctly compute the number
8171         of iterations in the transformed loop.
8172         * graphite-poly.h (pbb_number_of_iterations): Removed.
8173
8174 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8175
8176         * graphite-poly.h (lst_update_scattering_seq): Removed.
8177         (lst_update_scattering): Correctly handle outermost loop dewey
8178         renumbering.
8179
8180 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8181
8182         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
8183         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
8184         * graphite-poly.h (lst_niter_for_loop): New.
8185
8186 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8187
8188         * graphite-poly.c (apply_poly_transforms): Do not abort when the
8189         transform read from disk is not legal.  Call fatal_error instead.
8190
8191 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8192
8193         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
8194         (print_scop_header): Removed.  Inlined in the only call place...
8195         (print_scop): ... here.
8196
8197 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8198
8199         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
8200
8201 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8202
8203         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
8204
8205 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8206
8207         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
8208         (dot_deps_stmt): Same.
8209         * graphite-poly.c (dot_lst): Same.
8210
8211 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8212
8213         * graphite-blocking.c (scop_do_strip_mine): Do not call
8214         graphite_legal_transform.
8215         (scop_do_block): Same.
8216
8217 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
8218
8219         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
8220         description.
8221
8222 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8223
8224         * tree-scalar-evolution.c (instantiate_array_ref): New.
8225         (instantiate_scev_r): Also handle ARRAY_REFs.
8226
8227 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8228
8229         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8230         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
8231         RESULT_DECL, and FIELD_DECL.  Return false for an
8232         SSA_NAME_IS_DEFAULT_DEF.
8233         (compute_scalar_evolution_in_loop): Do not further analyze the
8234         scalar evolution when no_evolution_in_loop_p returns true.
8235
8236 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8237
8238         * tree-chrec.h (evolution_function_is_affine_p): Do not check
8239         whether CHREC_LEFT is invariant.  A function is affine when
8240         CHREC_RIGHT is invariant.
8241
8242 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8243
8244         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
8245         is_gimple_reg.
8246         (rewrite_degenerate_phi): Same.
8247         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
8248
8249 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
8250
8251         * graphite-scop-detection.c (graphite_can_represent_scev,
8252         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
8253         graphite_can_represent_loop): Remove outermost_loop.
8254
8255 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8256
8257         PR middle-end/45229
8258         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
8259         handle GIMPLE_CALLs with no LHS.
8260
8261 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8262
8263         * graphite-poly.c (init_graphite_out_file): New.
8264         (init_graphite_in_file): New.
8265         (apply_poly_transforms): Updated to enable reading and writing of
8266         multiple scop files.
8267
8268 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
8269
8270         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
8271         redundant checks.
8272
8273 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8274
8275         * graphite-clast-to-gimple.c (precision_for_value): Adjust
8276         computation of precision by 1.
8277
8278 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8279
8280         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
8281         (openscop_read_polyhedron_matrix): New.
8282         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
8283         (openscop_read_N_int): Same.
8284         * graphite-poly.c (openscop_read_N_int): New.
8285         (openscop_read_one_int): New.
8286         (openscop_read_N_string): New.
8287         (openscop_read_one_string): New.
8288         (openscop_read_powerset_matrix): New.
8289         (graphite_read_transforms): Remove.
8290         (graphite_read_scatt): New.
8291         (graphite_read_scop_file): New.
8292         (apply_poly_transforms): Updated to call graphite_read_scop_file.
8293
8294 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8295
8296         * graphite-poly.c: Change include order.
8297
8298 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8299
8300         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
8301         (cloog_matrix_nrows): New.
8302
8303 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8304
8305         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
8306         from matrix lines.
8307         * graphite-poly.c (openscop_print_scattering_function_1): Same.
8308         (print_scattering_function_1): Same.
8309         (openscop_print_pbb_domain): Same.
8310         (openscop_print_scop_context): Same.
8311         (print_scop_context): Same.
8312
8313 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
8314
8315         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
8316         (openscop_print_pdr_polyhedron): Print pph.
8317
8318 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8319
8320         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
8321         priority signed types.
8322
8323 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8324
8325         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
8326         the call to lang_hooks.types.type_for_size.  Call
8327         build_nonstandard_integer_type.
8328
8329 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
8330
8331         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
8332         (openscop_print_polyhedron_matrix): New.
8333         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
8334         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
8335         (openscop_print_pdr_powerset): New.
8336         (openscop_print_powerset_matrix): New.
8337         (openscop_print_scattering_function_1): New.
8338         (print_scattering_function): Add support for scattering names and
8339         OpenScop format.
8340         (graphite_write_transforms): Remove.
8341         (print_pdr_access_layout): Updated to support OpenScop format.
8342         (print_pdr): Same.
8343         (openscop_print_pbb_domain): New.
8344         (print_pbb_body): Added a parameter to allow indicating that pbb_body
8345         is not provided.
8346         (print_pbb): Updated to call the new print_pbb_body.
8347         (openscop_print_scop_context): New.
8348         (print_scop_header): New.
8349         (print_scop): Updated to call print_scop_header.
8350         * graphite-poly.h: Document OpenScop format.
8351
8352 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
8353
8354         * config/cris/m32c.c (cris_memory_move_cost): New.
8355         (cris_register_move_cost): Make static. Change arguments type from
8356         enum reg_class to reg_class_t.
8357         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8358         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8359         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
8360
8361 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
8362
8363         PR target/45843
8364         * config/i386/i386.c (ix86_gimplify_va_arg): Use
8365         INTVAL (XEXP (slot, 1)) as prev_size.
8366
8367 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
8368
8369         PR target/45837
8370         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
8371         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
8372         defined.
8373         * config/rs6000/option-defaults.h (toplevel): Change #if
8374         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
8375         global option changes.
8376
8377 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
8378
8379         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
8380
8381         PR tree-optimization/31261
8382         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
8383         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
8384
8385 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8386
8387         PR bootstrap/45796
8388         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
8389         special-casing for generators and turn into ...
8390         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
8391         rule, for better error messages in case of toplevel dependency errors.
8392         (genprog): Add hooks, rename to ...
8393         (genprogerr): ... this, and let genprog also contain check,
8394         checksum, condmd.
8395         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
8396         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
8397         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
8398
8399 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
8400             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8401
8402         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
8403         for GMP, MPFR and MPC.
8404
8405 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8406
8407         * config/sparc/sparc.opt (mimpure-text): Move ...
8408         * config/sol2.opt: ... here.  Correct description.
8409         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
8410         * doc/invoke.texi (Option Summary, SPARC Options): Move
8411         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
8412         (Option Summary, Solaris 2 Options): ... here.
8413         (Submodel Options, Solaris 2 Options): New menu entry.
8414         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
8415         (Solaris 2 Options): ... here.
8416
8417 2010-09-30  Michael Eager  <eager@eagercon.com>
8418
8419         * extend.texi (interrupt_handler): Add MicroBlaze to list.
8420         (save_volatiles): Describe option for MicroBlaze.
8421         * invoke.texi: Add MicroBlaze Options.
8422         * contrib.texi: Add acknowledgment.
8423         * md.texi: Add MicroBlaze d and z constraints.
8424         * install.texi: Add microblaze-*-elf.
8425         * configure.ac: Add microblaze-*-* to target list.
8426         * configure: Regenerate.
8427         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
8428         * config/microblaze/microblaze-protos.h: New.
8429         * config/microblaze/crti.s: New.
8430         * config/microblaze/predicates.md: New.
8431         * config/microblaze/linux.h: New.
8432         * config/microblaze/microblaze.md: New.
8433         * config/microblaze/constraints.md: New.
8434         * config/microblaze/crtn.s: New.
8435         * config/microblaze/microblaze.opt: New.
8436         * config/microblaze/microblaze-c.c: New.
8437         * config/microblaze/t-microblaze: New.
8438         * config/microblaze/microblaze.c: New.
8439         * config/microblaze/microblaze.h: New.
8440
8441 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
8442
8443         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
8444         parse @optional/@required and set the flags as appropriate.
8445
8446 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
8447
8448         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
8449
8450 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
8451
8452         * opt-functions.awk (static_var): Update comment.
8453         (var_ref): Return offsetof expression or -1, not variable address.
8454         * optc-gen.awk: Generate structure field initializers instead of
8455         static variables.  Expect -1 for missing variables instead of null
8456         pointer.  Add gcc_options parameters to generated functions.
8457         * opth-gen.awk: Generate structure fields for static variables.
8458         Add gcc_options parameters to generated functions.
8459         * common.opt (optimize, optimize_size): Add variables.
8460         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
8461         &global_options to cl_target_option_restore.
8462         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
8463         &global_options to cl_optimization_restore, cl_target_option_save
8464         and cl_target_option_restore.
8465         (ix86_set_current_function): Pass &global_options to
8466         cl_target_option_restore.
8467         * config/pdp11/pdp11.h (optimize): Remove.
8468         * config/rs6000/rs6000.h (optimize): Remove.
8469         * config/sh/sh.h (optimize): Remove.
8470         * config/xtensa/xtensa.h (optimize): Remove.
8471         * coretypes.h (struct gcc_options): Declare.
8472         * diagnostic.c (diagnostic_initialize): Initialize
8473         context->option_state.
8474         (diagnostic_report_diagnostic): Pass option_state to
8475         option_enabled hook.
8476         * diagnostic.h (diagnostic_context.option_enabled): Add void *
8477         parameter.
8478         (diagnostic_context.option_state): New field.
8479         * final.c (final_start_function, final, final_scan_insn): Rename
8480         optimize parameter to optimize_p.
8481         * flags.h (optimize, optimize_size): Remove.
8482         * function.c (invoke_set_current_function_hook): Pass
8483         &global_options to cl_optimization_restore.
8484         * gcc.c (driver_handle_option): Take gcc_options parameter.
8485         Assert that it is &global_options.
8486         (process_command): Pass &global_options to read_cmdline_option.
8487         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
8488         option_enabled.
8489         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
8490         &global_options to set_option.
8491         * opts-common.c (handle_option, handle_generated_option,
8492         read_cmdline_option, set_option): Take explicit gcc_options
8493         parameters.  Use option_flag_var.
8494         (option_flag_var): New.
8495         * opts.c (common_handle_option, lang_handle_option,
8496         target_handle_option): Take gcc_options parameter.  Assert that it
8497         is &global_options.
8498         (read_cmdline_options): Pass &global_options to read_cmdline_option.
8499         (print_filtered_help): Use option_flag_var.  Pass &global_options
8500         to option_enabled.
8501         (common_handle_option): Use option_flag_var.
8502         (option_enabled): Take opts parameter.  Use option_flag_var.
8503         (get_option_state): Take gcc_options parameter.  Use
8504         option_flag_var.  Pass gcc_options parameter to option_enabled.
8505         (enable_warning_as_error): Pass &global_options to
8506         handle_generated_option.
8507         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
8508         (cl_option_handler_func.handler): Take gcc_options parameter.
8509         (option_enabled, get_option_state, set_option, handle_option,
8510         handle_generated_option, read_cmdline_option): Take gcc_options
8511         parameters.
8512         * toplev.c (optimize, optimize_size): Remove.
8513         (print_switch_values): Pass &global_options to option_enabled.
8514         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
8515         to get_option_state.
8516         (general_init): Initialize global_dc->option_state.
8517         * tree.c (build_optimization_node): Pass &global_options to
8518         cl_optimization_save.
8519         (build_target_option_node): Pass &global_options to
8520         cl_target_option_save.
8521
8522 2010-09-30  Martin Jambor  <mjambor@suse.cz>
8523
8524         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
8525         zero sized bit-fields.
8526
8527 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
8528
8529         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
8530         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
8531         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
8532         (c_parser_objc_class_declaration): Same change.
8533         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
8534         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8535         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
8536         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
8537         and RID_AT_PUBLIC instead of RID_PUBLIC.
8538         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
8539         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8540
8541 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
8542
8543         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
8544         Add links to current providers of packages for Solaris and IRIX.
8545
8546 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8547
8548         Merge from 'apple/trunk' branch on FSF servers.
8549         * c-parser.c: Applied change originally in c-parse.in.
8550
8551         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
8552
8553         Radar 4281748
8554         * c-decl.c (start_decl): Check for redeclaration of class name.
8555         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
8556
8557 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
8558
8559         * config/ia64/ia64.c (ia64_builtin_decl): New.
8560         (TARGET_BUILTIN_DECL): Define.
8561         (ia64_builtins): New.
8562         (ia64_init_builtins): Save decls in ia64_builtins.
8563
8564 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
8565
8566         PR target/40457
8567         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
8568         (move2add_use_add3_insn): Likewise.
8569         (reload_cse_move2add): Likewise.
8570         * rtlanal.c (get_full_rtx_cost): New function.
8571         * rtl.h (struct full_rtx_costs): New.
8572         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
8573         costs_add_n_insns): New inline functions.
8574         (get_full_rtx_cost): Declare.
8575
8576         PR c/45054
8577         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
8578         invariants.  Check for reg_equiv_invariant.
8579         (reload): Assert that spilled_pseudos is empty when returning.
8580
8581 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
8582
8583         * config/i386/mingw32.h (TARGET_64BIT): replaced by
8584         TARGET_64BIT_DEFAULT in #if check.
8585
8586 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
8587
8588         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
8589
8590 2010-09-29  Mike Stump  <mikestump@comcast.net>
8591
8592         * config/darwin.h (flag_mkernel): Remove.
8593         (flag_apple_kext): Likewise.
8594
8595 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8596             Jack Howarth  <howarth@bromo.med.uc.edu>
8597
8598         * config/darwin.opt (undefined): Add.
8599
8600 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
8601
8602         PR testsuite/45664
8603         * configure.ac: Add --enable-indirect-function option.
8604         * config.gcc: Add default_gnu_indirect_function.
8605         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
8606         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
8607         * varasm.c (do_assemble_alias): Adjust for macro name change.
8608         * configure: Rebuilt.
8609         * doc/install.texi: Document --enable-indirect-function.
8610
8611 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8612
8613         * doc/options.texi (Variable, Var, Init): Update documentation
8614         without reference to VarExists.
8615         (VarExists): Remove.
8616         * common.opt, config/i386/i386.opt, config/linux.opt,
8617         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
8618         Don't use VarExists.
8619
8620 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
8621
8622         * optc-gen.awk: Generate global_options initializer instead of
8623         individual variables.  Add x_ prefix to names of structure members.
8624         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
8625         names of structure members.
8626         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8627         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
8628         * doc/tm.texi: Regenerate.
8629         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8630         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8631         * c-parser.c (disable_extension_diagnostics,
8632         restore_extension_diagnostics): Update names of cpp_options members.
8633         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8634         * common.opt (fcompare-debug-second): Don't use Var.
8635         * config/alpha/alpha.h (target_flags): Remove.
8636         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8637         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8638         * config/bfin/bfin.h (target_flags): Remove.
8639         * config/cris/cris.h (target_flags): Remove.
8640         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
8641         cl_target_option members.
8642         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
8643         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
8644         ix86_can_inline_p): Update names of cl_target_option members.
8645         * config/i386/i386.h (ix86_isa_flags): Remove.
8646         * config/lm32/lm32.h (target_flags): Remove.
8647         * config/mcore/mcore.h (mcore_stack_increment): Remove.
8648         * config/mcore/mcore.md (addsi3): Remove extern declaration of
8649         flag_omit_frame_pointer.
8650         * config/mep/mep.h (target_flags): Remove.
8651         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8652         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8653         * config/mmix/mmix.h (target_flags): Remove.
8654         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
8655         flag_expensive_optimizations): Remove.
8656         * config/s390/s390.h (flag_pic): Remove.
8657         * config/score/score-conv.h (target_flags): Remove.
8658         * config/sh/sh.h (sh_fixed_range_str): Remove.
8659         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
8660         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8661         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8662         * diagnostic.c (diagnostic_initialize): Update names of
8663         diagnostic_context members.
8664         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
8665         warn_system_headers.
8666         (diagnostic_report_warnings_p): Update for new names.
8667         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8668         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
8669         HARD_FRAME_POINTER_IS_ARG_POINTER.
8670         * flags.h (flag_compare_debug): Declare.
8671         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8672         * opts.c (flag_compare_debug): Define.
8673         (common_handle_option): Update names of diagnostic_context
8674         members.  Handle -fcompare-debug-second.
8675         (fast_math_flags_struct_set_p): Update names of cl_optimization
8676         members.
8677         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8678         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8679         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8680         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8681         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
8682         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8683         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
8684         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8685         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8686
8687 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8688
8689         * config/picochip/picochip.c (picochip_output_internal_label):
8690         This function can now be called for debug CFI labels, which can come
8691         in the middle of a vliw instruction.  Postpone until end of vliw.
8692
8693 2010-09-29  Richard Guenther  <rguenther@suse.de>
8694
8695         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
8696         (DECL_FILE_SCOPE_P): Use it.
8697         (TYPE_FILE_SCOPE_P): New macro.
8698
8699 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8700
8701         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
8702         a CPP_NAME which is a reserved word, clearly separate cases for
8703         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
8704
8705 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8706
8707         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
8708         token->value with the canonical spelling.  Do exactly like C and
8709         C++ and leave it as it is.
8710
8711 2010-09-28  Richard Henderson  <rth@redhat.com>
8712
8713         * config/alpha/alpha.c (alpha_builtins): New.
8714         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
8715         (alpha_builtin_function): New.
8716         (alpha_add_builtins, alpha_init_builtins): Use it.
8717
8718 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
8719
8720         * doc/standards.texi (Standards): Expanded the section on
8721         Objective-C and Objective-C++.
8722
8723 2010-09-28  DJ Delorie  <dj@redhat.com>
8724
8725         PR target/45800
8726         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
8727         volatile MEMs.
8728
8729 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
8730
8731         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
8732         attributes on methods.
8733          (c_parser_objc_method_definition): Handle attributes.
8734         (c_parser_objc_methodproto): Likewise.
8735         (c_parser_objc_maybe_method_attributes): New.
8736         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
8737         missing definition, similar to that in ObjC++.
8738
8739 2010-09-28  Richard Henderson  <rth@redhat.com>
8740
8741         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
8742         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8743         (CONFIG_SJLJ_EXCEPTIONS): Remove.
8744         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
8745         (STACK_CHECK_PROTECT): Likewise.
8746         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
8747         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
8748         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
8749         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
8750         (dwarf2out_assembly_start): Likewise.
8751         * except.c (init_eh): Use targetm.except_unwind_info.
8752         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
8753         (output_one_function_exception_table): Likewise.
8754         * final.c: Unconditionally include dwarf2out.h.
8755         (final_start_function): Unconditionally call dwarf2out routines.
8756         (final_end_function, final_scan_insn): Likewise.
8757         * function.c (expand_function_end): Use targetm.except_unwind_info.
8758         * opts.c (decode_options): Use targetm.except_unwind_info.
8759         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
8760         * target.def (debug_unwind_info, except_unwind_info): New.
8761         * target.h (enum unwind_info_type): New.
8762         * targhooks.c (default_debug_unwind_info): New.
8763         (default_except_unwind_info): New.
8764         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
8765         * targhooks.h: Declare them.
8766         * tree-tailcall.c: Include "target.h"
8767         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
8768         * Makefile.in (tree-tailcall.o): Update.
8769         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
8770         (lhd_gcc_personality): Likewise.
8771
8772         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
8773         (TARGET_EXCEPT_UNWIND_INFO): New.
8774         (DWARF2_UNWIND_INFO): Update.
8775         (TARGET_DEBUG_UNWIND_INFO): New.
8776         * doc/tm.texi: Rebuild.
8777
8778         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
8779         targetm.except_unwind_info.
8780
8781         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
8782         (arm_except_unwind_info): New.
8783         (arm_compute_func_type): Use it.
8784         (arm_expand_prologue, thumb_pushpop): Likewise.
8785         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
8786         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
8787         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
8788         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
8789         (DWARF2_UNWIND_INFO): Remove.
8790         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8791         (ARM_EABI_UNWIND_TABLES): Remove.
8792
8793         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
8794         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
8795         (ia64_except_unwind_info): New.
8796         (ia64_output_function_prologue): Use it.
8797         (ia64_add_bundle_selector_before): Likewise.
8798         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
8799         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
8800         (TARGET_UNWIND_INFO): Remove.
8801
8802         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
8803
8804 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
8805
8806         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
8807         (c_parser_objc_protocol_definition): Likewise.
8808         (c_parser_external_declaration): Provide dummy attribute arguments.
8809         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
8810         (c_parser_objc_class_definition): Handle attributes.
8811         (c_parser_objc_protocol_definition): Likewise.
8812
8813 2010-09-28  Tobias Burnus  <burnus@net-b.de>
8814
8815         PR fortran/40569
8816         PR fortran/40568
8817         * toplev.h (save_decoded_options, save_decoded_options_count):
8818         New global variables.
8819         * toplev.c (save_decoded_options, save_decoded_options_count):
8820         Export variables.
8821
8822 2010-09-28  Ian Lance Taylor  <iant@google.com>
8823
8824         * config/i386/i386.c (ix86_supports_split_stack): Test
8825         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
8826
8827 2010-09-28  Ian Lance Taylor  <iant@google.com>
8828
8829         PR target/45815
8830         * opts.c (decode_options): Don't test whether the target supports
8831         split stack if flag_split_stack == 0.
8832
8833 2010-09-28  Jan Hubicka  <jh@suse.cz>
8834
8835         * builtin-attrs.def (ATTR_LEAF): New attribute.
8836         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
8837         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
8838         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
8839         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
8840         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
8841         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
8842         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
8843         * sync-builtins.def: Annotate all builtins by leaf.
8844         * omp-builtins.def: Annotate all builtins by leaf.
8845         * builtins.def: Annotate relevant builtins with leaf attribute.
8846         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
8847         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
8848         leaf.
8849
8850 2010-09-28  Jan Hubicka  <jh@suse.cz>
8851
8852         * tree-ssa-ccp.c (fold_ctor_reference): New function.
8853         (fold_const_aggregate_ref): Use it.
8854         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
8855         into external static.
8856
8857 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8858
8859         PR target/44452
8860         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
8861         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
8862         (ix86_solaris_return_in_memory): Remove.
8863         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
8864         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
8865         (TARGET_SUBTARGET_DEFAULT): Redefine.
8866         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
8867         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
8868         (TARGET_SUBTARGET_DEFAULT): Redefine.
8869         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
8870         -mvect8-ret-in-mem.
8871         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
8872
8873 2010-09-29  Alan Modra  <amodra@gmail.com>
8874
8875         PR target/45807
8876         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
8877         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
8878         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
8879         Delete.
8880         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
8881         (rs6000_emit_prologue): Don't just create frame save info for r2,
8882         actually save r2.
8883
8884 2010-09-28  Richard Henderson  <rth@redhat.com>
8885
8886         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
8887         when 8 bytes are requested.
8888
8889 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8890
8891         * config/avr/avr.c (expand_prologue): Set
8892         current_function_static_stack_size.
8893
8894 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8895
8896         * config/alpha/alpha.md: Change the initial condition of the
8897         probing loop.
8898
8899 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
8900
8901         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
8902         Split from *avx_<maxmin:code><mode>3.
8903         (*avx_<smaxmin:code><mode>3): Ditto.
8904         * config/i386/i386.md (maxmin): Remove code iterator.
8905
8906 2010-09-27  Ian Lance Taylor  <iant@google.com>
8907
8908         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
8909         requires assembler support for CFI directives.
8910
8911 2010-09-27  Richard Henderson  <rth@redhat.com>
8912
8913         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
8914
8915 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8916
8917         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
8918         that AFTER is not in the range FROM..TO, inclusive.
8919
8920 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8921             Bernd Schmidt  <bernds@codesourcery.com>
8922
8923         PR rtl-optimization/45792
8924         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
8925         If not all insns are to be merged, for each edge, stash the
8926         next candidate after the to-be-merged insns before doing the
8927         merge, and use them for the retry at the new insertion point.
8928         Handle CC0 targets when retrying.
8929
8930 2010-09-27  Ian Lance Taylor  <iant@google.com>
8931
8932         * common.opt (fsplit-stack): New option.
8933         * opts.c (decode_options): Set flag_split_stack to final value.
8934         * target.def (supports_split_stack): New hook.
8935         * gcc.c (STACK_SPLIT_SPEC): Define.
8936         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
8937         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
8938         (Code Gen Options): Document -fsplit-stack.
8939         * doc/extend.texi (Function Attributes): Mention no_split_stack.
8940         (Function Attributes): Document no_split_stack.
8941         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
8942         TARGET_SUPPORTS_SPLIT_STACK.
8943         * doc/tm.texi: Rebuild.
8944         * function.c (thread_prologue_and_epilogue_insns): If
8945         flag_split_stack, add split stack prologue.
8946         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
8947         * varasm.c (saw_no_split_stack): New static variable.
8948         (assemble_start_function): Set saw_no_split_stack if the function
8949         has the no_split_stack attribute.
8950         (file_end_indicate_split_stack): New function.
8951         * output.h (file_end_indicate_split_stack): Declare.
8952         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
8953         and function.
8954         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
8955         routines.
8956         * config/i386/i386.c (ix86_option_override_internal): Don't set
8957         expand_builtin_va_start to NULL if -fsplit-stack.
8958         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
8959         -fsplit-stack.
8960         (ix86_va_start): If -fsplit-stack, get overflow pointer from
8961         scratch register set by prologue.
8962         (ix86_code_end): If -fsplit-stack, call
8963         file_end_indicate_split_stack.
8964         (ix86_supports_split_stack): New static function.
8965         (SPLIT_STACK_AVAILABLE): Define.
8966         (split_stack_prologue_scratch_regno): New static function.
8967         (split_stack_fn): New static variable.
8968         (ix86_expand_split_stack_prologue): New function.
8969         (ix86_live_on_entry): New static function.
8970         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
8971         (output_pic_addr_const): Likewise.
8972         (i386_asm_output_addr_const_extra): Likewise.
8973         (ix86_expand_call): Change return type to rtx.  Return the new
8974         call instruction.
8975         (TARGET_SUPPORTS_SPLIT_STACK): Define.
8976         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8977         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
8978         (split_stack_prologue, split_stack_return): New insns.
8979         (split_stack_space_check): New insn.
8980         * config/i386/i386.h (struct machine_function): Add
8981         split_stack_varargs_pointer field.
8982         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
8983         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
8984         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8985         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
8986         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
8987         Declare.
8988         (ix86_expand_call): Update declaration.
8989
8990 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8991
8992         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
8993         code.  Added byref, which was missing in the list of codes.
8994         Explain that enumeration values are encoded as the integer type
8995         that the compiler uses to store them.  Explain and make examples
8996         of how 'const' interacts with pointers, and the complication of
8997         the encoding of 'const char *'.
8998         (Legacy type encoding): New subsection, explaining that GCC emits
8999         incorrect type encodings for the NeXT runtime for compatibility
9000         reasons.
9001         (@@encode): New subsection, explaining @encode and particularly
9002         that protocol qualifiers are not recognized inside an @encode()
9003         expression.
9004         (Method signatures): New subsection, explaining how method
9005         signatures are encoded.
9006
9007 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9008
9009         Merge from 'apple/trunk' branch on FSF servers.  Removed small
9010         change in build_conditional_expr that had been added when fixing
9011         PR objc/27377 and which did the same check in a less complete way.
9012
9013         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
9014
9015         Radar 4229905
9016         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9017         looking for objective-c common pointer types.
9018
9019         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
9020
9021         Radar 4154928
9022         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
9023         use their ObjC common type.
9024
9025 2010-09-27  Richard Guenther  <rguenther@suse.de>
9026
9027         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
9028
9029 2010-09-27  Jie Zhang  <jie@codesourcery.com>
9030
9031         * print-tree.c (print_node): Print in-constant-pool.
9032
9033 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
9034
9035         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
9036         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
9037         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
9038         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
9039
9040 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9041
9042         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
9043         from pro_epilogue_adjust_stack_<mode>_{1,2}.
9044         (pro_epilogue_adjust_stack_<mode>_add): Rename from
9045         pro_epilogue_adjust_stack_<mode>_3.
9046         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
9047         renamed pro_epilogue_adjust_stack_{si,di}_add.
9048         (ix86_expand_prologue): Use indirect functions.  Update for renamed
9049         pro_epilogue_adjust_stack_{si,di}_sub.
9050
9051 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9052
9053         * config/i386/i386.md (movmsk_df): New insn.
9054         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
9055         sequence for TARGET_SSE_MATH.
9056
9057 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
9058
9059         * config/mips/mips.c (mips_builtin_decls): Declare.
9060         (mips_init_builtins): Store function declarations in
9061         mips_builtin_decls.
9062         (mips_builtin_decl): New function.
9063         (TARGET_BUILTIN_DECL): Define.
9064
9065 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
9066             Richard Henderson  <rth@redhat.com>
9067
9068         * config/i386/cygwin.asm: Include auto-host.h.
9069         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
9070         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
9071         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
9072         alignment code from the 64-bit path.  Use gas local labels.
9073         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
9074         from _di_2.  Remove the useless constant integer argument.
9075         (pro_epilogue_adjust_stack_<mode>_3): New.
9076         (allocate_stack_worker_probe_<mode>): Macroize from
9077         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
9078         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
9079         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
9080         (__chkstk_ms): New function.
9081         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
9082         * config/i386/t-interix: Likewise.
9083         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
9084         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9085         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
9086         * configure, config.in: Rebuild.
9087
9088 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9089
9090         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
9091         statements because of the return slot optimization.
9092
9093 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
9094
9095         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
9096         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
9097         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9098         (class_likely_spilled_p): Rename to...
9099         (avr_class_likely_spilled_p): ...this. Make static. Change argument
9100         type to reg_class_t.
9101
9102 2010-09-24  Jan Hubicka  <jh@suse.cz>
9103
9104         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
9105         (lto_symtab_resolve_symbols): Set it.
9106         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
9107         store resolution field in cgraph/varpool.
9108         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
9109         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
9110         (cgraph_dump_node): Drop used_from_object_file.
9111         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
9112         (cgraph_function_body_availability): Use decl_replaceable_p.
9113         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
9114         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
9115         cgraph_used_from_object_file_p.
9116         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
9117         cgraph_used_from_object_file_p.
9118         (resolution_used_from_other_file_p): New functoin.
9119         (cgraph_used_from_object_file_p): New predicate.
9120         * cgraph.h: Include plugin-api.h
9121         (struct cgraph_local_info): Remove used_from_object_file.
9122         (struct cgraph_node): Add resolution field.
9123         (struct varpool_node): Likewise; remove used_from_object_file;
9124         reove const_value_known.
9125         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
9126         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
9127         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
9128         varpool_used_from_object_file_p): Declare.
9129         (varpool_get_node, varpool_extra_name_alias): Update prototype.
9130         * tree.h (DECL_REPLACEABLE_P): Remove.
9131         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
9132         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
9133         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9134         input_overwrite_node, input_node, input_varpool_node): Stream
9135         resolution.
9136         * expr.c (expand_expr_real_1): Use const_value_known_p
9137         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
9138         const_value_known.
9139         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
9140         (function_and_variable_visibility): Set resolution for local vars
9141         and functions; use varpool_used_from_object_file_p.
9142         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
9143         static functions.
9144         (default_binds_local_p_1): Use resolutoin info.
9145         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
9146         * varpool.c (varpool_get_node): Constify.
9147         (const_value_known_p): Do not use vnode->const_value_known;
9148         use decl_replaceable_p.
9149         (varpool_finalize_decl): Do not set const_value_known.
9150         (cgraph_variable_initializer_availability): Use decl_replaceable_p
9151         (varpool_extra_name_alias): Return new node.
9152         (varpool_used_from_object_file_p): New function.
9153
9154 2010-09-24  Richard Henderson  <rth@redhat.com>
9155
9156         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
9157         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
9158         (do_spill): Use REG_CFA_OFFSET.
9159         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
9160         as appropriate.
9161         (ia64_expand_epilogue): Likewise.
9162         (process_set): Split into ...
9163         (process_cfa_adjust_cfa): this,
9164         (process_cfa_register): this,
9165         (process_cfa_offset): and this new function.
9166         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
9167         instead of REG_FRAME_RELATED_EXPR.
9168
9169 2010-09-24  Olivier Hainque  <hainque@adacore.com>
9170
9171         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
9172
9173 2010-09-24  Jan Hubicka  <jh@suse.cz>
9174
9175         * doc/extend.texi: (attribute leaf): Document.
9176         * tree.c (local_define_builtin): Handle ECF_LEAF.
9177         (build_common_builtin_nodes): Set ECF_LEAF where needed.
9178         * tree.h (ECF_LEAF): New.
9179         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
9180         overwrittable and unavailable functions.
9181         (ipa_init): Put all_module_statics into optimization_summary_obstack.
9182         (copy_global_bitmap): Do not copy all_module_statics.
9183         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
9184         (propagate): Handle overwritable and unavailable leaf functions;
9185         initialize global info for overwritable and unavailable leaf functions;
9186         do not free all module statics.
9187         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
9188         local statics.
9189         * calls.c (flags_from_decl_or_type): Handle leaf.
9190         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
9191         abnormal gotos.
9192
9193 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
9194
9195         * gengtype.c: Reindented.
9196         * gengtype.h: Reindented.
9197         * gengtype-parse.c: Reindented.
9198
9199 2010-09-24  Jan Hubicka  <jh@suse.cz>
9200
9201         PR tree-optimization/45738
9202         PR tree-optimization/45741
9203         * expr.c (string_constant): Allow CONST_DECL too;
9204         check that DECL_INITIAL is set.
9205         * varpool.c (const_value_known_p): Only look into VAR_DECL
9206         and CONST_DECL.
9207
9208 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
9209
9210         * common.opt (undef): New.
9211
9212 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
9213
9214         PR middle-end/45234
9215         * rtl.h (enum global_rtl_index): Add
9216         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
9217         (LAST_VIRTUAL_POINTER_REGISTER): Define.
9218         (virtual_preferred_stack_boundary_rtx,
9219         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
9220         (LAST_VIRTUAL_REGISTER): Increase by one.
9221         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
9222         instead of LAST_VIRTUAL_REGISTER.
9223         * function.c (instantiate_new_reg): Handle
9224         virtual_preferred_stack_boundary_rtx.
9225         * emit-rtl.c (init_virtual_regs): Handle
9226         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9227         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
9228         * explow.c (round_push): If crtl->preferred_stack_boundary
9229         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
9230         virtual_preferred_stack_boundary_rtx alignment instead of
9231         crtl->preferred_stack_boundary alignment.
9232         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
9233         macros.  Never decrease crtl->preferred_stack_boundary,
9234         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
9235         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
9236         stack_pointer_delta in dynamic allocation, even when size
9237         is constant.
9238         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
9239         macro.
9240         * print-rtl.c (print_rtx): Handle
9241         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9242         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
9243         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
9244         * config/frv/frv.c (frv_emit_movsi): Likewise.
9245         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
9246         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
9247         Likewise.
9248
9249         Revert:
9250         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9251
9252         PR middle-end/45234
9253         * calls.c (expand_call): Make sure that all variable sized
9254         adjustments are multiple of preferred stack boundary after
9255         stack alignment.
9256
9257 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
9258             Dominique Dhumieres  <dominiq@lps.ens.fr>
9259
9260         PR bootstrap/45751
9261         * config/darwin-driver.c (darwin_default_min_version):
9262         Adjust size passed to memcpy in two places.
9263
9264 2010-09-24  Richard Guenther  <rguenther@suse.de>
9265
9266         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
9267         Make sure to not call set_type_context with error_mark_node.
9268         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
9269
9270 2010-09-24  Richard Guenther  <rguenther@suse.de>
9271
9272         * Makefile.in (OBJS-onestep): Remove.
9273         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
9274         (libbackend.a): Remove onestep support.
9275         (libbackend.o): Remove.
9276         * configure.ac (--enable-intermodule): Remove.
9277         * configure: Regenerate.
9278
9279 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
9280
9281         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
9282         reaching the end of a block if it occurs at a DEBUG_INSN.
9283
9284 2010-09-09  Tristan Gingold  <gingold@adacore.com>
9285
9286         PR target/44242
9287         * config/vms/vms-crt0-64.c: Removed.
9288         * config/vms/vms-crt0.c: Removed.
9289         * config/vms/vms-psxcrt0-64.c: Removed.
9290         * config/vms/vms-psxcrt0.c: Removed.
9291         * config/vms/vms-ucrt0.c: New file.
9292         * config/vms/t-vms64: Removed.
9293         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
9294         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
9295         * config.gcc (alpha-dec-vms): Use t-vms.
9296
9297 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9298
9299         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
9300         underfull hbox in DVI output.
9301         (-fobjc-class-cxx-cdtors): Same change.
9302         (-fobjc-exceptions): Tidied up documentation.  Explain what the
9303         option does, but moved the (lenghty) description of the exception
9304         syntax into objc.texi.
9305         (-fobjc-gc): Explain that the option is not useful with the GNU
9306         runtime.
9307         (-fzero-link): Explain that the GNU runtime always works in
9308         "zero-link" mode.
9309         * doc/objc.texi: All sections: simplified @node declarations
9310         removing specification of next, previous, up node.
9311         (Objective-C): Updated introduction.
9312         (Garbage Collection): Updated.  The bohem-gc library is now
9313         included in gcc itself.  Mention that this section only applies to
9314         the GNU Objective-C runtime.
9315         (compatibility_alias): Small tidy up.
9316         (Exceptions): New section mostly containing text previously in the
9317         description of the -fobjc-exception command-line option.
9318         (Synchronization): Same.
9319
9320 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
9321
9322         * config/i386/i386.md (ix86_code_end): Move the initialization of
9323         xops array near the consumer.  Use AX_REG and SP_REG instead of
9324         numerical constants.
9325
9326 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
9327
9328         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
9329         method [methodname]' for an Objective-C method instead of the less
9330         satisfactory 'too many arguments to function' (with no method name).
9331
9332 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
9333
9334         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
9335         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
9336         (execute_update_addresses_taken): Remove parameter.  Execute the
9337         optimization unconditionally.
9338         * passes.c (execute_function_todo): Call execute_update_addresses_taken
9339         unconditionally if TODO_rebuild_alias is set, else only when optimizing
9340         if TODO_update_address_taken is set.
9341
9342 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
9343
9344         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9345         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
9346         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9347         (arm_output_addr_const_extra): Make static.
9348
9349 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
9350
9351         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
9352         define as unspec_volatile.
9353         ("nops"): Define as unspec_volatile. Use fputs to write to
9354         asm_out_file directly.  Output NOPs on separate lines using while loop.
9355         * config/i386/i386.c (ix86_code_end): Use fputs to write to
9356         asm_out_file directly.  Output NOPs on separate lines using while loop.
9357
9358 2010-09-23  Richard Guenther  <rguenther@suse.de>
9359
9360         PR tree-optimization/45565
9361         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9362         Make sure to adjust the fndecl before replacing the stmt.
9363
9364 2010-09-23  Richard Guenther  <rguenther@suse.de>
9365
9366         PR middle-end/45750
9367         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
9368         gimplifying MEM_REF.
9369
9370 2010-09-23  Alan Modra  <amodra@gmail.com>
9371
9372         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
9373         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
9374
9375 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
9376
9377         PR rtl-optimization/44374
9378         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
9379         * df-core.c (df_set_bb_dirty): Set it.
9380         * ifcvt.c (find_memory): Remove function.
9381         (dead_or_predicable): Use can_move_insns_across.
9382         * df.h (can_move_insns_across): Declare function.
9383         * cfgcleanup.c (block_was_dirty): New static variable.
9384         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
9385         than df_get_bb_dirty.
9386         (try_head_merge_bb): New static function.
9387         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
9388         is set.
9389         * df-problems.c: Include "target.h"
9390         (df_simulate_find_uses): New static function.
9391         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
9392         (find_memory, find_memory_store): New static functions.
9393         (can_move_insns_across): New function.
9394         * Makefile.in (df-problems.o): Update dependencies.
9395
9396 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9397
9398         PR java/44095
9399         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
9400         is specified and the suffix of the file isn't ".c".
9401         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9402
9403 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9404
9405         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
9406         * doc/cppopts.texi: Fix markup of index entry.
9407         * doc/extend.texi (Constructing Calls): Fix markup of
9408         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
9409         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
9410         (Vague Linkage, C++ Attributes): Fix markup of index entries and
9411         keywords.
9412         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
9413         avoid long lines.
9414         (C Dialect Options, C++ Dialect Options, Warning Options)
9415         (Debugging Options, Spec Files, Darwin Options)
9416         (i386 and x86-64 Options, MIPS Options)
9417         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
9418         index entries, avoid abbreviations, allow URLs to wrap, avoid
9419         long lines, avoid overlong pages from long @itemx lists.
9420         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
9421         * doc/standards.texi (Standards): Likewise.
9422         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
9423
9424 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
9425
9426         * opts-common.c (prune_options): Make static.  Work with decoded
9427         options.
9428         (decode_cmdline_options_to_array): Call prune_options.  Don't
9429         resize option array here.
9430         * opts.h (prune_options): Remove prototype.
9431         * gcc.c (process_command): Take decoded options; don't call
9432         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
9433         (main): Call decode_cmdline_options_to_array here instead of
9434         prune_options.  Update call to process_command.
9435         * config/darwin-driver.c: Include opts.h.
9436         (darwin_default_min_version): Work with decoded options.  Don't
9437         handle -b or -V here.
9438         * config/darwin.h (darwin_default_min_version): Update prototype.
9439         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
9440         darwin_default_min_version.
9441         * config/i386/cygwin.h (mingw_scan): Update prototype.
9442         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
9443         * config/i386/cygwin1.c: Include opts.h.
9444         (mingw_scan): Work with decoded options.
9445         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
9446         * config/t-darwin (darwin-driver.o): Update dependencies.
9447
9448 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
9449
9450         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
9451         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
9452         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
9453         -force-link, -force-link=, -language, -language=,
9454         -library-directory, -library-directory=, -no-canonical-prefixes,
9455         -no-standard-libraries, -no-warnings, -optimize, -output,
9456         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
9457         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
9458         -print-file-name=, -print-libgcc-file-name,
9459         -print-multi-directory, -print-multi-lib,
9460         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
9461         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
9462         -profile, -save-temps, -shared, -specs, -specs=, -static,
9463         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
9464         symbolic): New.
9465         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
9466         * gcc.c (A Short Introduction to Adding a Command-Line Option):
9467         Remove comment.
9468         (cc1_options): Correct specs for passing down --help,
9469         --target-help and --help=*.  Add spec for passing down --version.
9470         (struct option_map, option_map, target_option_translations,
9471         translate_options): Remove.
9472         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
9473         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
9474         OPT_fhelp_ and OPT_ftarget_help.
9475         (process_command): Don't call translate_options.  Call
9476         decode_cmdline_options_to_array before checking for
9477         -no-canonical-prefixes using decoded options.
9478         * opts-common.c (tm.h): Update comment on #include.
9479         (find_opt): Allow abbreviations of long options.
9480         (struct option_map, option_map): New.
9481         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
9482         and -mno handling.
9483         (target_option_translations): New.
9484         (decode_cmdline_options_to_array): Handle
9485         TARGET_OPTION_TRANSLATE_TABLE in driver.
9486         * opts.c (common_handle_option): Don't handle OPT_fhelp,
9487         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
9488
9489 2010-09-22  Richard Guenther  <rguenther@suse.de>
9490
9491         * tree-inline.c (optimize_inline_calls): Schedule cleanups
9492         only if we inlined something.  Block compaction and conditional
9493         folding are done by cfg cleanup.  Schedule update-address-taken.
9494         (tree_function_versioning): Remove redundant call to number_blocks.
9495         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
9496         folding is done by cfg cleanup.
9497         * passes.c (init_optimization_passes): Remove update-address-taken
9498         pass after IPA inlining.
9499
9500 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
9501
9502         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
9503         to update conditions. Fix reg_mode[] check.
9504
9505 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
9506
9507         * config/picochip/picochip.md (movhicc): Use expand to check whether
9508         movhicc is available and split it after reload.
9509
9510 2010-09-22  Richard Guenther  <rguenther@suse.de>
9511
9512         * tree-ssanames.c (release_dead_ssa_names): Do not remove
9513         callee edges here.
9514         * passes.c (init_optimization_passes): Remove early CFG cleanup.
9515         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
9516         (pass_cleanup_cfg): Likewise.
9517         (execute_fixup_cfg): Cleanup.
9518         * tree-pass.h (pass_cleanup_cfg): Remove.
9519
9520 2010-09-22  Martin Jambor  <mjambor@suse.cz>
9521
9522         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
9523         builtins if it is true.
9524         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
9525         parameter.
9526
9527 2010-09-22  Martin Jambor  <mjambor@suse.cz>
9528
9529         * tree-sra.c (struct access): New field grp_no_warning.
9530         (create_access_replacement): Set TREE_NO_WARNING according to
9531          grp_no_warning.
9532         (create_artificial_child_access): Use build_ref_for_model and set
9533         grp_no_warning if build_user_friendly_ref_for_offset fails.
9534         (propagate_subaccesses_across_link): Likewise.
9535
9536 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9537
9538         PR target/35664
9539         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
9540         ('f'): Likewise.
9541
9542 2010-09-22  Tristan Gingold  <gingold@adacore.com>
9543
9544         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
9545
9546 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
9547
9548         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
9549         * config/i386/i386.c (decide_alg): Update for rename.
9550
9551 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
9552
9553         PR rtl-optimization/45739
9554         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
9555         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
9556
9557 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
9558
9559         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
9560         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
9561         Remove.
9562         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
9563         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9564
9565 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9566
9567         PR objc/23710
9568         * c-parser.c (c_parser_objc_method_definition): Check the return
9569         value of objc_start_method_definition and if false is returned,
9570         parse the method definition but emit no code.
9571
9572 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9573
9574         PR objc/25965
9575         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
9576         call objc_get_interface_ivars ().
9577
9578 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
9579
9580         PR target/45694
9581         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
9582         static chain-register is used for 64-bit.
9583
9584 2010-09-21  Richard Guenther  <rguenther@suse.de>
9585
9586         * dwarf2out.c (is_cu_die): New function.
9587         (add_pubtype): Use it.
9588         (gen_subprogram_die): Likewise.
9589         (gen_struct_or_union_type_die): Likewise.
9590         (dwarf2out_finish): Likewise.
9591         (comp_unit_die): Rename to ...
9592         (single_comp_unit_die): ... this.
9593         (comp_unit_die): New function lazily constructing and
9594         returning single_comp_unit_die.
9595         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
9596         base_type_die, subrange_type_die, modified_type_die,
9597         lower_bound_default, add_bound_info, add_prototyped_attribute,
9598         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
9599         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
9600         force_decl_die, gen_namespace_die, dwarf2out_decl,
9601         dwarf2out_start_source_file, dwarf2out_end_source_file,
9602         prune_unused_types, dwarf2out_finish): Use it.
9603         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
9604         the global list of translation-unit decls.
9605         (dwarf2out_init): Do not create single_comp_unit_die here.
9606         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
9607
9608 2010-09-21  Richard Guenther  <rguenther@suse.de>
9609
9610         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
9611         for bool for C++.
9612
9613 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
9614
9615         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
9616         (qhs_extenddi_cstr): Likewise.
9617         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
9618         them for the source operand.
9619
9620 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
9621
9622         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
9623         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
9624         (ix86_split_ashr): Ditto.
9625         (ix86_split_lshr): Ditto.
9626
9627 2010-09-21  Richard Guenther  <rguenther@suse.de>
9628
9629         PR tree-optimization/45580
9630         * tree-ssa-propagate.c (substitute_and_fold): Always replace
9631         regular uses.
9632         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
9633         virtuals fold the call into a regular indirect one.
9634
9635 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9636
9637         PR rtl-optimization/42775
9638         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
9639         scheduling is enabled.
9640
9641 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9642
9643         PR rtl-optimization/45728
9644         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
9645         gen_lowpart_common first and if that fails, force_reg first
9646         before calling gen_lowpart.
9647
9648         PR middle-end/45678
9649         * cfgexpand.c (expand_one_stack_var_at): Use
9650         crtl->max_used_stack_slot_alignment as max_align, instead
9651         of maximum of that and PREFERRED_STACK_BOUNDARY.
9652         Don't call update_stack_alignment.
9653
9654 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9655
9656         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
9657         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
9658         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
9659         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
9660         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
9661         (build_nonstandard_integer_type): Likewise.
9662         (build_range_type_1): New function, built from...
9663         (build_range_type): ...this.  Call build_range_type_1.
9664         (build_nonshared_range_type): New function.
9665         (build_array_type_1): New function, built from...
9666         (build_array_type: ...this.  Call build_array_type_1.
9667         (build_nonshared_array_type): New function.
9668         * tree.h (build_nonshared_range_type): Declare.
9669         (build_nonshared_array_type): Likewise.
9670
9671 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
9672
9673         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
9674         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9675         (arm_class_likely_spilled_p): New function.
9676
9677 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
9678
9679         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
9680         indirect functions.
9681         (ix86_split_ashl): Ditto.
9682         (ix86_split_ashr): Ditto.
9683         (ix86_split_lshr): Ditto.
9684         (ix86_adjust_counter): Ditto.
9685
9686 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
9687
9688         * c-family/c-common.h (constant_string_class): Documented with
9689         comment identical to the one already in c-common.c.
9690
9691 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9692
9693         * dwarf2out.c (any_cfis_emitted): New static variable.
9694         (add_fde_cfi): Set it.
9695         (dwarf2out_frame_debug): Clear it before processing,
9696         if it is set afterwards, flush any queued reg saves.
9697
9698         PR debug/45124
9699         * dwarf2out.c (add_accessibility_attribute): Assume
9700         DW_ACCESS_private as the default for dwarf_version > 2
9701         and DW_TAG_class_type parent.
9702         (gen_inheritance_die): Assume DW_ACCESS_public as the default
9703         for dwarf_version > 2 and parent other than DW_TAG_class_type.
9704
9705 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9706
9707         PR target/45726
9708         * arm.md (arm_movt): Only enable on machines with MOVT.
9709
9710 2010-09-20  Jie Zhang  <jie@codesourcery.com>
9711
9712         * config/arm/arm.c (arm_address_offset_is_imm): New.
9713         (arm_early_store_addr_dep): New.
9714         (arm_early_load_addr_dep): New.
9715         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
9716         (arm_early_load_addr_dep): Declare.
9717         (arm_address_offset_is_imm): Declare.
9718         * config/arm/cortex-m4.md: New file.
9719         * config/arm/cortex-m4-fpu.md: New file.
9720         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
9721         (attr generic_sched): Exclude cortexm4.
9722         (attr generic_vfp): Exclude cortexm4.
9723
9724 2010-09-20  Richard Guenther  <rguenther@suse.de>
9725
9726         PR middle-end/45704
9727         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
9728
9729 2010-09-20  Jan Hubicka  <jh@suse.cz>
9730
9731         PR tree-optimize/45605
9732         * cgraph.h (const_value_known_p): Declare.
9733         (varpool_decide_const_value_known): Remove.
9734         * tree-ssa-ccp.c (get_base_constructor): Use it.
9735         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
9736         * expr.c (string_constant): Likewise.
9737         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9738         * ipa.c (ipa_discover_readonly_nonaddressable_var,
9739         function_and_variable_visibility): Likewise.
9740         * gimplify.c (gimplify_call_expr): Likewise.
9741         * gimple-fold.c (get_symbol_constant_value): Likewise.
9742         * varpool.c (varpool_decide_const_value_known): Replace by...
9743         (const_value_known_p): ... this one; handle other kinds of DECLs
9744         too and work for automatic vars.
9745         (varpool_finalize_decl): Use const_value_known_p.
9746
9747 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9748
9749         PR target/45726
9750         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
9751
9752 2010-09-20  Richard Guenther  <rguenther@suse.de>
9753
9754         PR tree-optimization/45705
9755         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
9756
9757 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9758
9759         PR rtl-optimization/45695
9760         * combine.c (try_combine): When splitting a two set pattern,
9761         make sure the pattern which will be put into i2 doesn't use REGs
9762         or MEMs set by insns in between i2 and i3.
9763
9764 2010-09-19  Jan Hubicka  <jh@suse.cz>
9765
9766         PR lto/44246
9767         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
9768         processing same node twice.
9769
9770 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
9771
9772         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
9773         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9774         (bfin_class_likely_spilled_p): New function
9775
9776 2010-09-19  Ira Rosen  <irar@il.ibm.com>
9777
9778         PR tree-optimization/45714
9779         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
9780         created in vectorizable_call instead of the original statement in
9781         def stmt updates.
9782
9783 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
9784
9785         * config/i386/i386-protos.h (split_double_mode): New prototype.
9786         (split_di, split_ti): Remove prototypes.
9787         * config/i386/i386.c (split_double_mode): New function.
9788         (split_di, split_ti): Remove.
9789         (ix86_expand_branch): Use split_double_mode.
9790         (ix86_split_to_parts): Ditto.
9791         (ix86_split_ashl): Ditto.
9792         (ix86_split_ashr): Ditto.
9793         (ix86_split_lshr): Ditto.
9794         (ix86_force_to_memory): Ditto.
9795         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
9796
9797 2010-09-18  Jan Hubicka  <jh@suse.cz>
9798
9799         PR tree-optimization/45453
9800         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
9801         virtual functions are reachable.
9802         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
9803         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
9804         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
9805         when modifying function.
9806
9807 2010-09-18  Jan Hubicka  <jh@suse.cz>
9808
9809         PR tree-optimization/45605
9810         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
9811         * gimple-fold.c (static_object_in_other_unit_p): New function.
9812         (canonicalize_constructor_val): Use it.
9813         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
9814         returning NULL.
9815         (gimple_fold_obj_type_ref_known_binfo): Use
9816         static_object_in_other_unit_p.
9817
9818 2010-09-18  Richard Guenther  <rguenther@suse.de>
9819
9820         PR tree-optimization/45709
9821         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
9822         insertions until after all PHI nodes of the block are processed.
9823
9824 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
9825
9826         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
9827
9828 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
9829
9830         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
9831
9832 2010-09-18  Richard Guenther  <rguenther@suse.de>
9833
9834         PR tree-optimization/45709
9835         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
9836
9837 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
9838
9839         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
9840         (dot_deps_stmt): Same.
9841         * graphite-poly.c (dot_lst): Same.
9842         * graphite-scop-detection.c (dot_all_scops): Same.
9843         (dot_scop): Same.
9844
9845 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
9846
9847         Revert:
9848         2009-12-16  Ben Elliston  <bje@au.ibm.com>
9849
9850         * tree-data-ref.c (dot_rdg_1): Added back.
9851         (dot_rdg): Same.  Added "#if 0" around system call.
9852
9853 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9854             Richard Henderson  <rth@redhat.com>
9855
9856         * config/i386/i386.c (initial_ix86_tune_features): Add
9857         X86_TUNE_PAD_SHORT_FUNCTION.
9858         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
9859         (ix86_count_insn): New.
9860         (ix86_pad_short_function): Likewise.
9861         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
9862
9863         * config/i386/i386.h (ix86_tune_indices): Add
9864         X86_TUNE_PAD_SHORT_FUNCTION.
9865         (TARGET_PAD_SHORT_FUNCTION): New.
9866
9867         * config/i386/i386.md (UNSPEC_NOPS): New.
9868         (nops): Likewise.
9869
9870 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9871
9872         PR middle-end/45234
9873         * calls.c (expand_call): Make sure that all variable sized
9874         adjustments are multiple of preferred stack boundary after
9875         stack alignment.
9876
9877 2010-09-17  DJ Delorie  <dj@redhat.com>
9878
9879         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
9880         passed an invalid value, print an error instead of ICEing.
9881         (valid_psw_flag): New.
9882         (rx_expand_builtin): Call it for setpsw/clrpsw.
9883         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
9884
9885         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
9886         (bitclr_in_memory): Likewise.
9887         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
9888
9889 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9890
9891         PR middle-end/45678
9892         * cfgexpand.c (update_stack_alignment): New.
9893         (get_decl_align_unit): Use it.
9894         (expand_one_stack_var_at): Call update_stack_alignment.
9895
9896 2010-09-17  Richard Guenther  <rguenther@suse.de>
9897
9898         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
9899         Properly copy the read string.
9900
9901 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
9902
9903         * doc/options.texi (Variable): Document.
9904         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
9905         generate target_flags declarations explicitly.  Don't define
9906         VarExists variables for the driver.
9907         * common.opt (target_flags): New Variable record.
9908         (flag_dump_unnumbered, flag_dump_unnumbered_links,
9909         flag_var_tracking, flag_var_tracking_assignments,
9910         flag_var_tracking_assignments_toggle): Don't mark variables with
9911         VarExists.
9912         * config/i386/i386.c (ix86_isa_flags): Don't define here.
9913         * config/i386/i386.opt (ix86_isa_flags): Define here.
9914         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
9915         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
9916         VarExists.
9917         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
9918         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
9919         Only define for generator programs.
9920         * rtlanal.c (target_flags): Remove.
9921         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
9922         flag_var_tracking_assignments_toggle): Remove.
9923
9924 2010-09-17  Michael Matz  <matz@suse.de>
9925
9926         PR tree-optimization/43432
9927         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9928         Accept backwards consecutive accesses.
9929         (vect_create_data_ref_ptr): If step is negative generate
9930         decreasing IVs.
9931         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
9932         (perm_mask_for_reverse, reverse_vec_elements): New functions.
9933         (vectorizable_load): Handle loads with negative steps when easily
9934         possible.
9935
9936 2010-09-03  Jan Hubicka  <jh@suse.cz>
9937
9938         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
9939
9940 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
9941
9942         * config/v850/v850.c (v850_function_value_regno_p): Make static.
9943         Adjust comments. Declare.
9944         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
9945         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
9946
9947 2010-09-17  Richard Guenther  <rguenther@suse.de>
9948
9949         * common.opt (combine): Remove.
9950         * gcc.c (default_compilers): Remove specs testing combine.
9951         The C compilers no longer can combine.
9952         (option_map): Remove -combine.
9953         (display_help): Remove -combine.
9954         (driver_handle_option): Remove OPT_combine handling.
9955         (compile_input_file_p): Remove.
9956         (do_spec): Remove code concerning combine.
9957         (main): Likewise.
9958         * doc/invoke.texi: Remove traces of -combine.
9959         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
9960
9961 2010-09-17  Richard Guenther  <rguenther@suse.de>
9962
9963         PR middle-end/45678
9964         * builtins.c (fold_builtin_memory_op): Always properly adjust
9965         alignment of memory accesses.
9966
9967 2010-09-16  Jan Hubicka  <jh@suse.cz>
9968
9969         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
9970         processing clone.
9971
9972 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
9973
9974         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
9975
9976         * config/i386/i386.c (predict_jump): Add prototype.
9977         (flag_opts): Add -m8bit-idiv.
9978         (ix86_split_idivmod): New.
9979
9980         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
9981         Add 2 splitters for SI/DI mode divide.
9982         (divmod<mode>4_1): New pattern.
9983         (udivmod<mode>4_1): Likewise.
9984         (testdi_ccno_1): Likewise.
9985
9986         * config/i386/i386.opt (m8bit-idiv): New.
9987
9988         * doc/invoke.texi: Document -m8bit-idiv.
9989
9990 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
9991
9992         PR bootstrap/45680
9993         * config/i386/i386.c (min_insn_size): Moved out of the
9994         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
9995
9996 2010-09-16  Jan Hubicka  <jh@suse.cz>
9997
9998         * lto-cgraph.c (lto_output_node): Fix handling of clones.
9999         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10000         unreachable clones with reachable clones.
10001         * tree-inline.c (copy_bb): Fix sanity checking when producing
10002         unreachable clone.
10003
10004 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
10005
10006         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10007         (TARGET_MEMORY_MOVE_COST): Define.
10008         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10009
10010 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
10011
10012         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10013         maybe_tidy_empty_bb.
10014
10015         Revert:
10016         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10017         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10018
10019 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10020
10021         * target.def (target_option.optimization): New hook.
10022         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
10023         TARGET_OPTION_OPTIMIZATION hook.
10024         * doc/tm.texi: Regenerate.
10025         * hooks.c (hook_void_int_int): New.
10026         * hooks.h (hook_void_int_int): Declare.
10027         * opts.c: Don't include tm_p.h.
10028         (decode_options): Use targetm.target_option.optimization instead
10029         of OPTIMIZATION_OPTIONS.
10030         * system.h (OPTIMIZATION_OPTIONS): Poison.
10031         * config/arm/arm-protos.h (arm_optimization_options): Remove.
10032         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
10033         (arm_optimization_options): Rename to arm_option_optimization.
10034         Make static.
10035         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
10036         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
10037         (cris_option_optimization): New.
10038         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
10039         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
10040         (crx_option_optimization): New.
10041         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
10042         * config/frv/frv-protos.h (frv_optimization_options): Remove.
10043         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
10044         (frv_optimization_options): Rename to frv_option_optimization.
10045         Make static.
10046         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
10047         * config/h8300/h8300.c (h8300_option_optimization): New.
10048         (TARGET_OPTION_OPTIMIZATION): Define.
10049         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
10050         * config/i386/i386-protos.h (optimization_options): Remove.
10051         * config/i386/i386.c (optimization_options): Rename to
10052         ix86_option_optimization.  Make static.
10053         (TARGET_OPTION_OPTIMIZATION): Define.
10054         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
10055         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
10056         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
10057         (ia64_optimization_options): Rename to ia64_option_optimization.
10058         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
10059         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
10060         commented-out definition.
10061         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
10062         instead of OPTIMIZATION_OPTIONS.
10063         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
10064         (m32r_option_optimization): New.
10065         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
10066         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
10067         Remove.
10068         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
10069         (mcore_option_optimization): New.
10070         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
10071         * config/mep/mep-protos.h (mep_optimization_options): Remove.
10072         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
10073         (mep_optimization_options): Rename to mep_option_optimization.
10074         Make static.  Take unused level and size parameters.
10075         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
10076         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
10077         (mmix_option_optimization): New.
10078         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
10079         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
10080         (pdp11_option_optimization): New.
10081         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
10082         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
10083         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
10084         (optimization_options): Rename to rs6000_option_optimization.
10085         Make static.
10086         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
10087         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
10088         * config/rx/rx.c (rx_set_optimization_options): Rename to
10089         rx_option_optimization.  Make static.  Take unused level and size
10090         parameters.
10091         (TARGET_OPTION_OPTIMIZATION): Define.
10092         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
10093         * config/s390/s390-protos.h (optimization_options): Remove.
10094         * config/s390/s390.c (optimization_options): Rename to
10095         s390_option_optimization.  Make static.  Don't mark size parameter
10096         unused.
10097         (TARGET_OPTION_OPTIMIZATION): Define.
10098         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
10099         * config/sh/sh-protos.h (sh_optimization_options): Remove.
10100         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
10101         (sh_optimization_options): Rename to sh_option_optimization.  Make
10102         static.  Don't mark parameters unused.
10103         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
10104         * config/spu/spu-protos.h (spu_optimization_options): Remove.
10105         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
10106         (spu_optimization_options): Rename to spu_option_optimization.
10107         Make static.
10108         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
10109         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
10110         (v850_option_optimization): New.
10111         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
10112         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
10113         (xtensa_option_optimization): New.
10114         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
10115
10116 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10117
10118         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
10119         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
10120         * doc/tm.texi: Regenerate.
10121         * system.h (OVERRIDE_OPTIONS): Poison.
10122         * target.def (override): Default to hook_void_void.
10123         * targhooks.c (default_target_option_override): Remove.
10124         * genmodes.c, machmode.def: Update comments mentioning
10125         OVERRIDE_OPTIONS.
10126         * config/alpha/alpha-modes.def: Update comment mentioning
10127         alpha_override_options.
10128         * config/alpha/alpha-protos.h (override_options): Remove.
10129         * config/alpha/alpha.c (override_options): Rename to
10130         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
10131         (TARGET_OPTION_OVERRIDE): Define.
10132         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
10133         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
10134         of OVERRIDE_OPTIONS.
10135         * config/arc/arc-protos.h (arc_init): Remove.
10136         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
10137         (arc_init): Rename to arc_option_override.  Make static.
10138         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
10139         (OVERRIDE_OPTIONS): Remove.
10140         * config/arm/arm-protos.h (arm_override_options): Remove.
10141         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
10142         (arm_override_options): Rename to arm_option_override.  Make
10143         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10144         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
10145         * config/arm/arm.md: Update comment referring to arm_override_options.
10146         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10147         instead of OVERRIDE_OPTIONS.
10148         * config/avr/avr-protos.h (avr_override_options): Remove.
10149         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
10150         (avr_override_options): Rename to avr_option_override.  Make static.
10151         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
10152         * config/bfin/bfin-protos.h (override_options): Remove (twice).
10153         * config/bfin/bfin.c (override_options): Rename to
10154         bfin_option_override.  Make static.
10155         (TARGET_OPTION_OVERRIDE): Define.
10156         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
10157         * config/cris/cris-protos.h (cris_override_options): Remove.
10158         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
10159         (cris_override_options): Rename to cris_option_override.  Make static.
10160         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
10161         * config/frv/frv-protos.h (frv_override_options): Remove.
10162         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
10163         (frv_override_options): Rename to frv_option_override.  Make static.
10164         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
10165         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
10166         * config/h8300/h8300.c (h8300_init_once): Rename to
10167         h8300_option_override.  Make static.
10168         (TARGET_OPTION_OVERRIDE): Define.
10169         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
10170         * config/i386/i386-protos.h (override_options): Remove.
10171         * config/i386/i386.c (override_options): Rename to
10172         ix86_option_override_internal.  Make static.  Comments referring
10173         to this function and callers changed.
10174         (ix86_option_override): New.
10175         (TARGET_OPTION_OVERRIDE): Define.
10176         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
10177         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
10178         * config/ia64/ia64.c (ia64_file_start): Update comment referring
10179         to ia64_override_options.
10180         * config/iq2000/iq2000-protos.h (override_options): Remove.
10181         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
10182         (override_options): Rename to iq2000_option_override.  Make static.
10183         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
10184         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
10185         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
10186         (lm32_override_options): Rename to lm32_option_override.  Make static.
10187         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
10188         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
10189         (m32r_option_override): New.
10190         (m32r_init): Update comment.
10191         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
10192         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
10193         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
10194         (m68hc11_override_options): Rename to m68hc11_option_override.
10195         Make static.  Return void.
10196         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
10197         * config/m68k/m68k-protos.h (override_options): Remove.
10198         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
10199         (override_options): Rename to m68k_option_override.  Make static.
10200         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
10201         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
10202         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
10203         (mcore_override_options): Rename to mcore_option_override.  Make
10204         static.
10205         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
10206         * config/mep/mep-protos.h (mep_override_options): Remove.
10207         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
10208         (mep_override_options): Rename to mep_option_override.  Make static.
10209         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
10210         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
10211         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
10212         (mmix_override_options): Rename to mmix_option_override.  Make static.
10213         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
10214         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
10215         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
10216         (mn10300_override_options): Rename to mn10300_option_override.
10217         Make static.
10218         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
10219         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
10220         * config/moxie/moxie.c (moxie_override_options): Rename to
10221         moxie_option_override.  Make static.
10222         (TARGET_OPTION_OVERRIDE): Define.
10223         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
10224         * config/picochip/picochip-protos.h (picochip_override_options):
10225         Remove.  Update comment referring to picochip_override_options.
10226         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
10227         (picochip_override_options): Rename to picochip_option_override.
10228         Make static.  Update comment and definition of
10229         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
10230         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
10231         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10232         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10233         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10234         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10235         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10236         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
10237         instead of OVERRIDE_OPTIONS.
10238         * config/rs6000/rs6000-modes.def: Update comment referring to
10239         rs6000_override_options.
10240         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
10241         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
10242         (rs6000_override_options): Rename to
10243         rs6000_option_override_internal.  Make static.  Commented
10244         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
10245         (rs6000_option_override): New.
10246         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
10247         instead of OVERRIDE_OPTIONS.
10248         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10249         * config/s390/s390-protos.h (override_options): Remove.
10250         * config/s390/s390.c (override_options): Rename to
10251         s390_option_override.  Make static.
10252         (TARGET_OPTION_OVERRIDE): Define.
10253         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
10254         * config/score/score-protos.h (score_override_options): Remove.
10255         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
10256         (score_override_options): Rename to score_option_override.  Make
10257         static.
10258         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
10259         Update comment referring to override_options.
10260         * config/score/score3.c (score3_override_options): Rename to
10261         score3_option_override.
10262         * config/score/score3.h (score3_override_options): Rename to
10263         score3_option_override.
10264         * config/score/score7.c (score7_override_options): Rename to
10265         score7_option_override.
10266         * config/score/score7.h (score7_override_options): Rename to
10267         score7_option_override.
10268         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
10269         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
10270         (sparc_override_options): Rename to sparc_option_override.  Make
10271         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10272         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
10273         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10274         instead of OVERRIDE_OPTIONS.
10275         * config/spu/spu-protos.h (spu_override_options): Remove.
10276         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
10277         (spu_override_options): Rename to spu_option_override.  Make
10278         static.
10279         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
10280         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
10281         OVERRIDE_OPTIONS.
10282         * config/vax/vax-protos.h (override_options): Remove.
10283         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
10284         (override_options): Rename to vax_option_override.  Make static.
10285         Call SUBTARGET_OVERRIDE_OPTIONS.
10286         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
10287         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
10288         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
10289         * config/xtensa/xtensa-protos.h (override_options): Remove.
10290         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
10291         (override_options): Rename to xtensa_option_override.  Make static.
10292         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
10293
10294 2010-09-16  Richard Guenther  <rguenther@suse.de>
10295
10296         PR tree-optimization/45623
10297         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
10298         (get_constraint_for_component_ref): If computing a constraint
10299         for the rhs handle type punning through unions.
10300         (get_constraint_for_address_of): Adjust.
10301         (get_constraint_for_1): Likewise.
10302         (get_constraint_for): Likewise.
10303         (get_constraint_for_rhs): New function.
10304         (do_structure_copy): Adjust.
10305         (make_constraint_to): Likewise.
10306         (handle_const_call): Likewise.
10307         (find_func_aliases): Likewise.
10308         (process_ipa_clobber): Likewise.
10309         (create_variable_info_for): Likewise.
10310
10311 2010-09-16  Ira Rosen  <irar@il.ibm.com>
10312
10313         * tree-vectorizer.c: Fix documentation.
10314         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
10315         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
10316         is_pattern_stmt_p, is_loop_header_bb_p,
10317         stmt_vinfo_set_inside_of_loop_cost,
10318         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
10319         known_alignment_for_access_p): Likewise.
10320         * tree-vect-loop.c: Fix documentation.
10321         (vect_get_cost): Start function name from new line.
10322         * tree-vect-data-refs.c: Fix documentation.
10323         * tree-vect_stmts.c: Likewise.
10324         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
10325         (vectorizable_store): Free vec_oprnds if allocated.
10326         (vectorizable_condition): Initialize several variables to avoid
10327         warnings.
10328         * tree-vect-slp.c: Fix documentation.
10329
10330 2010-09-16  Richard Guenther  <rguenther@suse.de>
10331
10332         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
10333         is TS_TRANSLATION_UNIT_DECL.
10334         (initialize_tree_contains_struct): Adjust.
10335         (all_translation_units): New global vector.
10336         (build_translation_unit_decl): New function.
10337         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
10338         (struct tree_translation_unit_decl): New.
10339         (all_translation_units): Declare.
10340         (union tree_node): Add translation_unit_decl member.
10341         (build_translation_unit_decl): Declare.
10342         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
10343         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
10344         New function.
10345         (pack_value_fields): Call it.
10346         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
10347         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
10348         (lto_output_tree_pointers): Call it.
10349         * lto-streamer-in.c (lto_input_tree_ref): Handle references
10350         to TRANSLATION_UNIT_DECL.
10351         (unpack_ts_translation_unit_decl_value_fields): New function.
10352         (unpack_value_fields): Call it.
10353         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
10354         (lto_input_tree_pointers): Call it.
10355         * lto-streamer.c (check_handled_ts_structures): Adjust.
10356         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
10357         * c-decl.c (all_translation_units): Remove.
10358         (pop_scope): Use build_translation_unit_decl.
10359         (collect_all_refs): Adjust.
10360         (for_each_global_decl): Likewise.
10361         (c_write_global_declarations): Likewise.
10362
10363 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
10364
10365         PR bootstrap/45686
10366         * fold-const.c (fold_checksum_tree): Change slot from const void **
10367         to void **, use CONST_CAST_TREE to store into *slot.
10368
10369 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
10370
10371         * config/i386/i386.md: Remove unneeded empty conditions and
10372         preparation statements from expanders.
10373         * config/i386/mmx.md: Ditto.
10374         * config/i386/sse.md: Ditto.
10375
10376 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
10377
10378         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
10379
10380 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10381
10382         PR rtl-optimization/45593
10383         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
10384         insns that were in delay slots as stand-alone insns.
10385
10386 2010-09-15  Ian Lance Taylor  <iant@google.com>
10387
10388         * incpath.c (remove_duplicates): If name is not a directory, issue
10389         a warning rather than an error.
10390
10391 2010-09-15  Martin Jambor  <mjambor@suse.cz>
10392
10393         PR middle-end/45644
10394         * tree-sra.c (create_access): Check for bit-fields directly.
10395
10396 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
10397
10398         PR tree-optimization/45633
10399         * tree-cfg.c (verify_gimple_assign_binary): Allow
10400         MINUS_EXPR with lhs and rhs1 pointer vector and
10401         rhs2 sizetype vector.
10402         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
10403         or vector pointer use TER to optimize pointer subtraction.
10404
10405 2010-09-15  Jie Zhang  <jie@codesourcery.com>
10406
10407         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
10408         fcmpd to fcmps.
10409
10410 2010-09-15  Ian Lance Taylor  <iant@google.com>
10411
10412         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
10413
10414 2010-09-15  Ian Lance Taylor  <iant@google.com>
10415
10416         * function.c (get_arg_pointer_save_area): Set
10417         arg_pointer_save_area_init to true.
10418
10419 2010-09-15  Martin Jambor  <mjambor@suse.cz>
10420
10421         * tree-sra.c (generate_subtree_copies): Updated comment.
10422         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
10423         obtained from the statement iterator instead.
10424         (load_assign_lhs_subreplacements): Removed parameters lhs and
10425         right_offset, which is obtained from top_racc instead.  Parameter lacc
10426         is now expected to be the root of the processed tree rather than root's
10427         first child.  Updated all callers.
10428
10429 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
10430
10431         * config/pdp11/pdp11.c (register_move_cost): Rename to
10432         pdp11_register_move_cost.
10433         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
10434         pdp11_register_move_cost.
10435         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
10436         pdp11_register_move_cost instead of register_move_cost.
10437
10438 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
10439
10440         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
10441         pattern for vmovn. Expansion in case of non
10442         -mvectorize-with-neon-quad.
10443         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
10444         non- -mvectorize-with-neon-quad case.
10445         (move_lo_quad_<mode>): New expansion to vmov into low part.
10446         (move_hi_quad_<mode>): New expansion to vmov into high part.
10447         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
10448         (move_lo_quad_v4sf): Likewise.
10449         (move_lo_quad_v8hi): Likewise.
10450         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
10451         low part.
10452         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
10453         high part.
10454         * config/arm/iterators.md (ANY128): New mode iterator.
10455         (V_narrow_pack): New mode attribute.
10456         (V_HALF): Add attribute.
10457         (V_DOUBLE): Add attribute.
10458         (V_mode_nunits): Add attribute.
10459
10460 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10461
10462         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
10463         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
10464
10465 2010-09-15  Olivier Hainque  <hainque@adacore.com>
10466             Jose Ruiz  <ruiz@adacore.com>
10467
10468         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
10469         * config/alpha/osf5-unwind.h: New file.
10470
10471 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10472
10473         PR bootstrap/45672
10474         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
10475         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10476         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10477
10478 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10479
10480         * c-lang.h (struct lang_type): Add variable_size GTY option.
10481
10482 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10483
10484         PR bootstrap/45672
10485         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10486
10487 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10488
10489         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
10490         result isn't used in memory address.
10491
10492 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10493
10494         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
10495         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
10496         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10497         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10498         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10499         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10500
10501         * target.def: Add units_per_simd_word to vectorize.
10502
10503         * targhooks.c (default_units_per_simd_word): New.
10504         * targhooks.h (default_units_per_simd_word): Likewise.
10505         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
10506         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10507         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
10508         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10509         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10510         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10511         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10512         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10513
10514         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
10515         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
10516
10517         * tree-vect-stmts.c: Don't include "tm_p.h".
10518         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
10519         with targetm.vectorize.units_per_simd_word.
10520
10521         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
10522
10523         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
10524
10525         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
10526         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10527
10528         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
10529         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
10530
10531         * doc/tm.texi: Regenerated.
10532
10533 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
10534
10535         * tree-vect-stmts.c: Include "tm_p.h".
10536
10537         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
10538         out of RTX_CODE.
10539
10540 2010-09-14  Martin Jambor  <mjambor@suse.cz>
10541
10542         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
10543         location of generated statement.  Changed all callers.
10544         (build_ref_for_model): New parameter loc which used to set location of
10545         all generated expressions.  Changed all callers.
10546         (generate_subtree_copies): Likewise.
10547         (init_subtree_with_zero): Likewise.
10548         (sra_modify_expr): Set locations of all generated statements and
10549         expressions to the location the original statement.
10550         (handle_unscalarized_data_in_subtree): Likewise.
10551         (load_assign_lhs_subreplacements): Likewise.
10552         (sra_modify_constructor_assign): Likewise.
10553         (sra_modify_assign): Likewise.
10554
10555 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
10556
10557         PR target/45277
10558         PR target/45363
10559         PR target/45407
10560         * doc/install.texi (sparc*-*-*): New section.
10561         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
10562
10563 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
10564
10565         PR middle-end/45567
10566         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
10567         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
10568         (expand_builtin): Adjust caller.
10569         (expand_builtin_unop): Only use subtarget if it has the right mode.
10570
10571 2010-09-14  Tristan Gingold  <gingold@adacore.com>
10572
10573         * configure.ac (plugins): Fix typos.
10574         * configure: Regenerate.
10575
10576 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
10577
10578         PR debug/45660
10579         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
10580         gen_type_die for function/method return type.
10581
10582 2010-09-14  Ira Rosen  <irar@il.ibm.com>
10583
10584         PR tree-optimization/45470
10585         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10586         can throw an exception.
10587         * tree-vect-stmts.c (vectorizable_call): Likewise.
10588
10589 2010-09-14  DJ Delorie  <dj@redhat.com>
10590
10591         PR target/44749
10592         * config/mep/mep-protos.h (mep_save_register_info,
10593         mep_reinit_regs, mep_init_regs): Declare.
10594
10595         * config/mep/mep.c: Move all target definitions to the end of the
10596         file to avoid the need for duplicate declarations.
10597         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
10598         (mep_reorg_erepeat): Remove unused variables.
10599         (mep_expand_builtin): Likewise.
10600
10601         * config/mep/mep-pragma.c: Don't include rtl.h.
10602         (INVALID_REGNUM): New.
10603         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
10604         functions.
10605         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
10606         Avoid enum/integer math.
10607
10608 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
10609
10610         PR target/44749
10611         * config/mep/t-mep (GTM_H): Add insn-constants.h.
10612         * config/mep/mep.c (mep_conditional_register_usage): Take no
10613         parameters.
10614         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
10615         prototype.
10616         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
10617         call to mep_conditional_register_usage.
10618
10619 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10620
10621         PR debug/43937
10622         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
10623         the DECL as well.
10624
10625 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
10626
10627         PR rtl-optimization/45617
10628         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
10629         even if low N bits of X aren't known to be zero.
10630
10631 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
10632
10633         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
10634
10635         * config/i386/i386.c (initial_ix86_tune_features): Add
10636         X86_TUNE_VECTORIZE_DOUBLE.
10637         (ix86_units_per_simd_word): New.
10638
10639         * config/i386/i386.h (ix86_tune_indices): Add
10640         X86_TUNE_VECTORIZE_DOUBLE.
10641         (TARGET_VECTORIZE_DOUBLE): New.
10642         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
10643
10644 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
10645
10646         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
10647         (new_temp_expr_table): Allocate call_cnt vector.
10648         (free_temp_expr_table): Free it.
10649         (process_replaceable): Add call_cnt parm and set in vector.
10650         (find_replaceable_in_bb): Skip replacement if def/use span a call.
10651         (debug_ter): Dump call_cnt value, remove stderr uses.
10652
10653 2010-09-13  Jan Hubicka  <jh@suse.cz>
10654
10655         * tree.c (build_zero_cst): New.
10656         * tree.h (build_zero_cst): Declare.
10657         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
10658         (get_base_constructor): Break out from ...
10659         (fold_const_aggregate_ref): Here; handle empty constructors.
10660
10661 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10662
10663         * config/arm/arm.md: (define_attr "conds"): Update comment.
10664         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
10665         conds attribute to clob.
10666         (arm_sync_compare_and_swapsi): Likewise.
10667         (arm_sync_compare_and_swap<mode>): Likewise.
10668         (arm_sync_lock_test_and_setsi): Likewise.
10669         (arm_sync_lock_test_and_set<mode>): Likewise.
10670         (arm_sync_new_<sync_optab>si): Likewise.
10671         (arm_sync_new_nandsi): Likewise.
10672         (arm_sync_new_<sync_optab><mode>): Likewise.
10673         (arm_sync_new_nand<mode>): Likewise.
10674         (arm_sync_old_<sync_optab>si): Likewise.
10675         (arm_sync_old_nandsi): Likewise.
10676         (arm_sync_old_<sync_optab><mode>): Likewise.
10677         (arm_sync_old_nand<mode>): Likewise.
10678
10679 2010-09-13  Olivier Hainque  <hainque@adacore.com>
10680
10681         * fwprop.c (forward_propagate_and_simplify): Only attach a
10682         REG_EQUAL note to an insn if the destination is a register.
10683         * gcse.c (try_replace_reg): Likewise.
10684
10685 2010-09-13  Richard Guenther  <rguenther@suse.de>
10686
10687         PR tree-optimization/45611
10688         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
10689         (copy_ref_info): Likewise.
10690
10691 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
10692
10693         PR debug/45604
10694         PR debug/45419
10695         PR debug/45408
10696         * tree-pretty-print.c (dump_generic_node): Disregard top-level
10697         types of MEM_REF pointer types to the same type.
10698
10699 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
10700
10701         PR rtl-optimization/41087
10702         * ifcvt.c (noce_get_condition): Don't allow conditions with
10703         side-effects.
10704
10705 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
10706
10707         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10708         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
10709         * config/frv/frv.c (frv_register_move_cost): Make static. Change
10710         arguments type to reg_class_t. Add mode argument.
10711         (frv_memory_move_cost): New.
10712         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
10713
10714 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
10715
10716         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
10717         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
10718
10719 2010-09-10  Jan Hubicka  <jh@suse.cz>
10720
10721         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
10722
10723 2010-09-10  Richard Guenther  <rguenther@suse.de>
10724
10725         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
10726         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
10727         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
10728         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
10729         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
10730
10731 2010-09-10  Richard Guenther  <rguenther@suse.de>
10732
10733         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
10734         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
10735         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
10736         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
10737
10738 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
10739
10740         PR middle-end/45634
10741         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
10742         of string folding is of integral type.
10743
10744 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
10745
10746         * doc/invoke.texi (-x): Fix typo.
10747
10748 2010-09-10  Richard Guenther  <rguenther@suse.de>
10749
10750         PR debug/44115
10751         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
10752         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10753         Output DECL_DEBUG_EXPR.
10754         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10755         Input DECL_DEBUG_EXPR.
10756
10757 2010-09-10  Richard Guenther  <rguenther@suse.de>
10758
10759         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
10760         (build_index_type): Implement in terms of build_range_type.
10761         (build_range_type): Do not allow NULL_TREE type, improve
10762         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
10763         if we didn't hash.
10764         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
10765         create a distinct copy of the type.
10766
10767 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
10768
10769         * configure: Regenerated.
10770         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
10771
10772 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10773
10774         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
10775         * config/arm/cortex-a9-neon.md: New and partially generated.
10776         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
10777
10778 2010-09-10  Richard Guenther  <rguenther@suse.de>
10779
10780         * tree.h (build_index_2_type): Remove.
10781         * tree.c (build_index_2_type): Remove.
10782
10783 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
10784
10785         PR bootstrap/45630
10786         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
10787         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
10788         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
10789
10790 2010-09-10  Martin Jambor  <mjambor@suse.cz>
10791
10792         PR tree-optimization/44972
10793         * tree-sra.c: Include toplev.h.
10794         (build_ref_for_offset): Entirely reimplemented.
10795         (build_ref_for_model): New function.
10796         (build_user_friendly_ref_for_offset): New function.
10797         (analyze_access_subtree): Removed build_ref_for_offset check.
10798         (propagate_subaccesses_across_link): Likewise.
10799         (create_artificial_child_access): Use
10800         build_user_friendly_ref_for_offset.
10801         (propagate_subaccesses_across_link): Likewise.
10802         (ref_expr_for_all_replacements_p): Removed.
10803         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
10804         (sra_modify_expr): Use build_ref_for_model.
10805         (load_assign_lhs_subreplacements): Likewise.
10806         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
10807         checks for return values of build_ref_for_offset.
10808         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
10809         build_ref_for_offset.
10810         * ipa-prop.h: Include gimple.h
10811         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
10812         (ipa_analyze_indirect_call_uses): Update comment.
10813         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
10814         (IPA_PROP_H): Likewise.
10815
10816 2010-09-10  Martin Jambor  <mjambor@suse.cz>
10817
10818         PR tree-optimization/44972
10819         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
10820         calling build_ref_for_offset.
10821
10822 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10823
10824         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
10825         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
10826         * config/arm/arm-tune.md: Regenerate.
10827         * doc/invoke.texi (ARM Options): Document it.
10828
10829 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
10830
10831         * config/i386/i386.c: Include sched-int.h.
10832         (TARGET_SCHED_DISPATCH): Defined.
10833         (TARGET_SCHED_DISPATCH_DO): Defined.
10834         (DISPATCH_WINDOW_SIZE): Defined.
10835         (MAX_DISPATCH_WINDOWS): Defined.
10836         (MAX_INSN): Defined.
10837         (MAX_IMM): Defined.
10838         (MAX_IMM_SIZE): Defined.
10839         (MAX_IMM_32): Defined.
10840         (MAX_IMM_64): Defined.
10841         (MAX_LOAD): Defined.
10842         (MAX_STORE): Defined.
10843         (BIG): Defined.
10844         (dispatch_group): New.
10845         (num_allowable_groups): New.
10846         (group_name): New.
10847         (sched_insn_info_s): New.
10848         (dispatch_windows_s): New.
10849         (imm_info_s): New.
10850         (dispatch_window_list): New.
10851         (dispatch_window_list1): New.
10852         (get_mem_group): New.
10853         (is_cmp): New.
10854         (dispatch_violation): New.
10855         (is_branch): New.
10856         (is_prefetch): New.
10857         (init_window): New.
10858         (allocate_window): New.
10859         (init_dispatch_sched): New.
10860         (is_end_basic_block): New.
10861         (process_end_window): New.
10862         (allocate_next_window): New.
10863         (find_constant_1): New.
10864         (find_constant): New.
10865         (get_num_immediates): New.
10866         (has_immediate): New.
10867         (get_insn_path): New.
10868         (get_insn_group): New.
10869         (count_num_restricted): New.
10870         (fits_dispatch_window): New.
10871         (add_insn_window): New.
10872         (add_to_dispatch_window): New.
10873         (debug_dispatch_window_file): New.
10874         (debug_dispatch_window): New.
10875         (debug_insn_dispatch_info_file): New.
10876         (debug_ready_dispatch): New.
10877         (do_dispatch): New.
10878         (has_dispatch): New.
10879         * config/i386/i386.h (debug_ready_dispatch): Declared.
10880         (debug_dispatch_window): Declared.
10881         * config/i386/i386.opt (mdispatch-scheduler): New flag.
10882         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
10883         (TARGET_SCHED_DISPATCH_DO): New.
10884         * doc/tm.texi: Regererated.
10885         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
10886         ready_remove_first_dispatch
10887         (schedule_block): Call targetm.sched.dispatch and
10888         targetm.sched.dispatch_do.
10889         (sched_init): Call targetm.sched.dispatch and
10890         targetm.sched.dispatch_do.
10891         (ready_remove_first_dispatch): New.
10892         (number_in_ready): New.
10893         (get_ready_element): New.
10894         * hooks.c (hook_bool_rtx_int_false): New.
10895         (hook_void_rtx_int): New.
10896         * hooks.h (hook_bool_rtx_int_false): Declared.
10897         (hook_void_rtx_int): Declared.
10898         * sched-int.h (IS_DISPATCH_ON): Defined.
10899         (IS_CMP): Defined.
10900         (DISPATCH_VIOLATION): Defined.
10901         (FITS_DISPATCH_WINDOW): Defined.
10902         (DISPATCH_INIT): Defined.
10903         (ADD_TO_DISPATCH_WINDOW): Defined.
10904         (get_ready_element): Declared.
10905         (number_in_ready): Declared.
10906         * target.def (dispatch): Defined.
10907         (dispatch_do): Defined.
10908
10909 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10910
10911         PR middle-end/45312
10912         * reload1.c (merge_assigned_reloads): Remove.
10913         (reload_as_needed): Don't call it.
10914
10915 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
10916
10917         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
10918         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10919         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10920
10921 2010-09-09  Matthias Klose  <doko@ubuntu.com>
10922
10923         PR bootstrap/43847
10924         * configure.ac (--enable-plugin): Enhance for cross builds.
10925         * configure: Regenerate.
10926
10927 2010-09-09  Jan Hubicka  <jh@suse.cz>
10928
10929         PR tree-optimization/45598
10930         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
10931         string folding is of integral type.
10932
10933 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
10934
10935         * configure.ac (gnu_indirect_function): New test.
10936         * configure: Rebuilt.
10937         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
10938         * defaults.h (IFUNC_ASM_TYPE): Provide default.
10939
10940         * doc/extend.texi (Function Attributes): Document ifunc.
10941         * varasm.c (do_assemble_alias): Deal with ifuncs too.
10942
10943 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10944
10945         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
10946         epilogue instruction move.
10947
10948 2010-09-09  Jan Hubicka  <jh@suse.cz>
10949
10950         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
10951         command line to allow more partitions than input files.
10952
10953 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10954
10955         PR middle-end/44554
10956         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
10957
10958 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10959
10960         PR middle-end/40386
10961         * ira.c (pseudo_for_reload_consideration_p): Don't use
10962         flag_ira_share_spill_slots.
10963
10964 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10965
10966         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
10967         point zero operands that fit into a single GPR.
10968         (s390_preferred_reload_class): Ensure we only return general-purpose
10969         register classes.
10970         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
10971         floating-point zero operands into GPRs.
10972         ("*mov<mode>_64"): Likewise.
10973         ("mov<mode>"): Likewise using lhi.
10974
10975 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10976
10977         * config/s390/s390.c (s390_symref_operand_p): Return false for
10978         literal pool references.
10979         (s390_check_qrst_address): Update caller.
10980
10981 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
10982
10983         * config/i386/predicates.md (ext_register_operand): Check that
10984         SUBREG_REG is really a register before looking for REGNO.
10985         (reg_not_xmm0_operand): Handle SUBREGs correctly.
10986         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
10987
10988 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
10989
10990         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
10991         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
10992         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
10993         * print-rtl.c (print_rtx): Likewise.
10994         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10995         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
10996         for ADDR_EXPR with non-addressable object.
10997         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
10998         (struct dw_val_struct): Add v.val_decl_ref.
10999         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11000         Handle DW_OP_GNU_implicit_pointer.
11001         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
11002         (get_ref_die_offset_label): New function.
11003         (implicit_ptr_descriptor): New function.
11004         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11005         (loc_descriptor): Likewise.
11006         (gen_variable_die): Put even definitions into decl_die_table.
11007         (resolve_addr_in_expr): Resolve still unresolved
11008         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11009         return false.
11010         (dwarf2out_finish): Call output_location_lists after outputting
11011         .debug_info and .debug_abbrev instead of before.
11012
11013 2010-09-09  Roland McGrath  <roland@redhat.com>
11014
11015         * dwarf2out.c (DWARF_REF_SIZE): Define.
11016         (size_of_loc_descr): Use it for DW_OP_call_ref.
11017
11018 2010-09-09  Alan Modra  <amodra@gmail.com>
11019
11020         * doc/invoke.text: Reinstate mcmodel=medium.
11021         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11022         CMODEL_MEDIUM as default.
11023         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
11024         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
11025         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
11026         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
11027
11028 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11029
11030         PR target/45250
11031         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
11032         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
11033         (builtin_longjmp): Likewise.
11034         (allocate_stack): Use hard_frame_pointer_rtx instead of
11035         frame_pointer_rtx.
11036         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
11037         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
11038         (pa_can_eliminate): Likewise.
11039         (TARGET_INTERNAL_ARG_POINTER): Define.
11040         (TARGET_CAN_ELIMINATE): Define.
11041         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
11042         pointer.
11043         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
11044         (pa_internal_arg_pointer, pa_can_eliminate,
11045         pa_initial_elimination_offset): New.
11046         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
11047         (HARD_FRAME_POINTER_REGNUM): Set to register three.
11048         (INITIAL_FRAME_POINTER_OFFSET): Delete.
11049         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
11050         Define.
11051         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
11052         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
11053         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
11054         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
11055         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
11056         new soft frame pointer.
11057         * config/pa/pa64-regs.h: Likewise.
11058
11059 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11060
11061         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
11062         numerical constant.
11063         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
11064
11065 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11066
11067         PR debug/45531
11068         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
11069
11070 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11071
11072         PR debug/45419
11073         PR debug/45408
11074         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11075         qualifiers in otherwise equal MEM_REF pointer types.
11076         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
11077         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
11078
11079 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11080
11081         PR target/44392
11082         * config/arm/arm.md (bswapsi2): Handle condition correctly
11083         for armv6 and optimize_size.
11084
11085 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11086
11087         PR other/18555
11088         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
11089
11090 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11091
11092         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
11093         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
11094         ix86_expand_strlen, legitimate_pic_address_disp_p,
11095         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
11096         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
11097         ix86_check_movabs, ix86_secondary_memory_needed): Change function
11098         prototype to bool.
11099         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
11100         return_in_memory_ms_64, ix86_check_movabs,
11101         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
11102         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
11103         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
11104         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
11105         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
11106         ix86_secondary_memory_needed): Change to bool.  Return
11107         "true" and "false" values.
11108         * config/i386/i386.md: Return "true" and "false" values.
11109
11110 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11111
11112         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11113         run_expensive_tests.
11114
11115 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11116
11117         * toplev.c (output_stack_usage): Use lbasename instead of basename.
11118
11119 2010-09-08  Martin Jambor  <mjambor@suse.cz>
11120
11121         PR other/45443
11122         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
11123         at -O3.
11124
11125 2010-09-08  Richard Guenther  <rguenther@suse.de>
11126
11127         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
11128         (visit): Adjust.
11129         (iterative_hash_gimple_type): Likewise.
11130         (gimple_type_hash): Likewise.
11131         (gimple_register_type): Likewise.
11132         (print_gimple_types_stats): Likewise.
11133         (free_gimple_type_tables): Likewise.
11134
11135 2010-09-08  Michael Matz  <matz@suse.de>
11136
11137         PR tree-optimization/43430
11138         * tree-vect-stmts.c (vectorizable_condition): Support multiple
11139         copies for conditional statements if it's not part of a reduction.
11140
11141 2010-09-08  Michael Matz  <matz@suse.de>
11142
11143         PR tree-optimization/33244
11144         * tree-ssa-sink.c (statement_sink_location): Don't sink into
11145         empty loop latches.
11146
11147 2010-09-08  Richard Guenther  <rguenther@suse.de>
11148
11149         PR tree-optimization/45578
11150         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
11151         Be more careful when transfering alignment information to
11152         the new induction variable.
11153         (copy_ref_info): Likewise.
11154
11155 2010-09-08  Richard Guenther  <rguenther@suse.de>
11156
11157         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
11158         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
11159
11160 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
11161
11162         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
11163         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
11164
11165 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11166
11167         PR doc/45587
11168         * doc/md.texi: Fixed modes on several standard pattern names.
11169
11170 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
11171
11172         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
11173         (ashl<mode>3): ...this.
11174         (loongson_psra<V_suffix>): Rename to...
11175         (ashr<mode>3): ...this.
11176         (loongson_psrl<V_suffix>): Rename to...
11177         (lshr<mode>3): ...this.
11178         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
11179         (CODE_FOR_loongson_psllw): Define.
11180         (CODE_FOR_loongson_psrlh): Define.
11181         (CODE_FOR_loongson_psrlw): Define.
11182         (CODE_FOR_loongson_psrah): Define.
11183         (CODE_FOR_loongson_psraw): Define.
11184
11185 2010-09-07  Richard Henderson  <rth@redhat.com>
11186
11187         * tree-vect-data-refs.c: Include tm_p.h.
11188         * Makefile.in (tree-vect-data-refs.o): Update deps.
11189         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
11190         Move delarations outside #ifdef RTX_CODE.
11191
11192 2010-09-07  Richard Henderson  <rth@redhat.com>
11193
11194         * final.c (rest_of_handle_final): Unconditionally do
11195         output_function_exception_table before assemble_end_function.
11196
11197 2010-09-07  Jan Hubicka  <jh@suse.cz>
11198
11199         * tree-inline.c (tree_inlinable_function_p): Do not test
11200         DECL_REPLACEABLE_P.
11201         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
11202         update_callee_keys, cgraph_decide_inlining): Test function availability.
11203         * cif-code.def (OVERWRITABLE): New code.
11204
11205 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
11206             Jack Howarth  <howarth@bromo.med.uc.edu>
11207
11208         PR target/36502
11209         PR target/42313
11210         PR target/44651
11211         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
11212         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
11213         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
11214         MAX macro.
11215
11216 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11217
11218         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
11219         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
11220
11221 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11222
11223         * config.gcc: Don't append t-android for Android targets.
11224
11225         * config/t-android: Removed.
11226
11227 2010-09-07  Richard Henderson  <rth@redhat.com>
11228
11229         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
11230         * doc/tm.texi.in: Add doc marker.
11231         * doc/tm.texi: Rebuild.
11232         * except.c (switch_to_exception_section): Always build.
11233         (output_one_function_exception_table): Move section switch,
11234         personality output, and label output ...
11235         (output_function_exception_table): ... here.  Use the new
11236         personality hook.
11237
11238         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
11239         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
11240         TARGET_ASM_INIT_SECTIONS): New.
11241         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
11242         make static.
11243         (TARGET_ASM_UNWIND_EMIT): Update to match.
11244         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
11245
11246         * config/arm/arm.c (arm_asm_emit_except_personality): New.
11247         (arm_asm_init_sections): New.
11248         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
11249
11250 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11251
11252         * config/arm/arm.md: Remove unused variable.
11253
11254 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
11255
11256         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11257         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
11258         (m32r_memory_move_cost): New function.
11259
11260 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
11261
11262         * config.gcc: Append t-android for Android targets.
11263
11264         * config/t-android: New.
11265
11266 2010-09-07  Richard Henderson  <rth@redhat.com>
11267
11268         * target.def (unwind_emit_before_insn): New hook.
11269         * doc/tm.texi.in: Add @hook marker for it.
11270         * doc/tm.texi: Rebuild.
11271         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
11272
11273 2010-09-07  Martin Jambor  <mjambor@suse.cz>
11274
11275         PR fortran/43665
11276         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
11277         are any type attributes.
11278
11279 2010-09-07  Jan Hubicka  <jh@suse.cz>
11280
11281         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
11282         array_ref_low_bound in string access folding.
11283
11284 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
11285
11286         PR target/45206
11287         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
11288         eh_return fixup sequence.
11289
11290 2010-09-07  Jan Hubicka  <jh@suse.cz>
11291
11292         * gimple-fold.c (maybe_fold_reference): Verify that operand is
11293         gimple_min_invariant.
11294
11295 2010-09-07  Richard Guenther  <rguenther@suse.de>
11296
11297         PR middle-end/45569
11298         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
11299         nor CONSTRUCTOR can trap.
11300         * tree-complex.c (update_complex_assignment): Update EH info.
11301
11302 2010-09-07  Richard Guenther  <rguenther@suse.de>
11303
11304         PR middle-end/45569
11305         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
11306         * passes.c (execute_function_todo): Do not verify anything if
11307         we saw errors.
11308
11309 2010-09-07  Richard Guenther  <rguenther@suse.de>
11310
11311         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
11312
11313 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
11314
11315         PR target/43137
11316         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
11317         New define_mode_attrs.
11318         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
11319         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
11320         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
11321         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
11322         Remove pool_range attribute.
11323         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
11324         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
11325         pool_range and neg_pool_range attributes.
11326         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
11327         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
11328         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
11329
11330 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
11331
11332         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
11333         check glibc.
11334
11335 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
11336
11337         PR target/22152
11338         * config/i386/mmx.md (*mov<mode>_internal_rex64,
11339         *mov<mode>_internal_avx, *mov<mode>_internal,
11340         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
11341         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
11342
11343 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
11344
11345         * c-typeck.c (do_warn_double_promotion): Remove.
11346         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
11347         Objective-C++ too.
11348
11349 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
11350
11351         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
11352         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
11353         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
11354         argument type to reg_class_t. Change result type to bool.
11355         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11356
11357 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
11358
11359         PR libobjc/19850
11360         * gthr-posix.h (__gthread_objc_thread_detach): Use
11361         _objc_thread_attribs when detaching a thread.
11362         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
11363
11364 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
11365
11366         PR target/45524
11367         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
11368         * configure: Regenerated.
11369
11370 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11371
11372         * combine.c (try_combine): Set subst_low_luid to i0.
11373
11374 2010-09-06  Richard Guenther  <rguenther@suse.de>
11375
11376         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
11377         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
11378         (build_aligned_type): Declare.
11379         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
11380         (check_aligned_type): New function.
11381         (build_aligned_type): Likewise.
11382         * expr.c (expand_assignment): Handle misaligned stores via
11383         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
11384         (expand_expr_real_1): Likewise.
11385         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
11386         * tree-vect-stmts.c (vectorizable_store): Do not build
11387         MISALIGNED_INDIRECT_REF but initialize alignment information.
11388         (vectorizable_load): Likewise.
11389         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
11390         handling.
11391         * cfgexpand.c (expand_debug_expr): Likewise.
11392         * dwarf2out.c (loc_list_from_tree): Likewise.
11393         * fold-const.c (maybe_lvalue_p): Likewise.
11394         (operand_equal_p): Likewise.
11395         (build_fold_addr_expr_with_type_loc): Likewise.
11396         * gimplify.c (gimplify_addr_expr): Likewise.
11397         (gimplify_expr): Likewise.
11398         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11399         (verify_gimple_assign_single): Likewise.
11400         * tree-dump.c (dequeue_and_dump): Likewise.
11401         (tree_could_trap_p): Likewise.
11402         * tree-predcom.c (ref_at_iteration): Likewise.
11403         * tree-pretty-print.c (dump_generic_node): Likewise.
11404         (op_code_prio): Likewise.
11405         (op_symbol_code): Likewise.
11406         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11407         * tree-ssa-loop-im.c (for_each_index): Likewise.
11408         (gen_lsm_tmp_name): Likewise.
11409         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11410         (find_interesting_uses_address): Likewise.
11411         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11412         * tree-ssa-operands.c (get_expr_operands): Likewise.
11413         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11414         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11415         (ao_ref_init_from_vn_reference): Likewise.
11416         * tree.c (staticp): Likewise.
11417         (build1_stat): Likewise.
11418         (reference_alias_ptr_type): Likewise.
11419         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11420         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
11421         MISALIGNED_INDIRECT_REF handling.
11422
11423 2010-09-06  Richard Guenther  <rguenther@suse.de>
11424
11425         PR tree-optimization/45534
11426         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
11427         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
11428         on the target.
11429         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
11430         valid on the target.
11431
11432 2010-09-06  Andreas Schwab  <schwab@redhat.com>
11433
11434         * configure.ac: Quote argument of AC_MSG_WARN.
11435         * configure: Regenerate.
11436
11437 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11438
11439         * sel-sched.c (move_cond_jump): Correct arguments to
11440         maybe_tidy_empty_bb.
11441         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11442
11443 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
11444
11445         PR rtl-optimization/44919
11446         * sel-sched.c (move_cond_jump): Remove assert, check that
11447         the several blocks case can only happen with mutually exclusive
11448         insns instead.  Rewrite the movement code to support moving through
11449         several basic blocks.
11450
11451 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
11452
11453         * config/i386/i386.md (iptrsize): New mode attribute.
11454         (tp_seg): Ditto.
11455         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
11456         mode iterator.
11457         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
11458         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
11459         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
11460         (stack_tls_protect_set_<mode>): Ditto from
11461         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
11462         of thread base pointer load.
11463         (stack_tls_protect_test_<mode>): Ditto from
11464         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
11465         of thread base pointer load.
11466         (stack_protect_set): Rewrite using indirect functions.
11467         (stack_protect_test): Ditto.
11468         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
11469         (ix86_print_operand): Handle '@'.
11470
11471 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
11472
11473         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
11474         MINUS_EXPR.
11475
11476 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
11477
11478         * doc/invoke.texi: Document -Wdouble-promotion.
11479         * c-typeck.c (convert_arguments): Check for implicit conversions
11480         from float to double.
11481         (do_warn_double_promotion): New function.
11482         (build_conditional_expr): Use it.
11483         (build_binary_op): Likewise.
11484
11485 2010-09-05  Richard Guenther  <rguenther@suse.de>
11486
11487         PR tree-optimization/45535
11488         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
11489         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
11490         dereferencing it.
11491         (indirect_refs_may_alias_p): Likewise.
11492
11493 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
11494
11495         * config/sh/sh.c (sh_option_override): Make static.
11496         Adjust comments.  Declare.
11497         (sh_function_value_regno_p): Likewise.
11498         (sh_register_move_cost): Modify the arguments, make static.
11499         Adjust comments.  Declare.
11500         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
11501         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11502         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
11503         REGISTER_MOVE_COST): Delete.
11504         * config/sh/sh-protos.h (sh_override_options): Delete.
11505         (sh_register_move_cost): Delete.
11506         (sh_function_value_regno_p): Delete.
11507
11508 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
11509
11510         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
11511         m32r_function_value_regno_p): New functions.
11512         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11513         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
11514         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
11515         FUNCTION_VALUE_REGNO_P): Remove.
11516
11517 2010-09-04  Jan Hubicka  <jh@suse.cz>
11518
11519         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
11520         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
11521         fold_read_from_constant_string.
11522
11523         * gimple.h (canonicalize_constructor_val): Declare.
11524         * gimple-fold.c (canonicalize_constructor_val): New function.
11525         (get_symbol_constant_value):Use it.
11526         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
11527
11528 2010-09-04  Jan Hubicka  <jh@suse.cz>
11529
11530         * tree-switch-conversion.c (build_one_array): Set constructor to be
11531         static.
11532         * varpool.c (varpool_finalize_decl): Compute const_value_known.
11533
11534 2010-09-04  Richard Guenther  <rguenther@suse.de>
11535
11536         PR bootstrap/45519
11537         * tree-flow.h (force_gimple_operand_1): Declare.
11538         (force_gimple_operand_gsi_1): Likewise.
11539         * gimplify.c (force_gimple_operand_1): New worker taking a
11540         gimple predicate for ...
11541         (force_gimple_operand): ... which now wraps it.
11542         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
11543         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
11544         last change.
11545         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
11546         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
11547         (create_mem_ref): Likewise.
11548
11549 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
11550
11551         * config/i386/predicates.md (sse_reg_operand): New predicate.
11552         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
11553         predicate for operand 1.
11554         (XFmode push splitter): Use fp_register_operand predicate
11555         for operand 1.
11556         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
11557         (SF-DF float_extend push splitter): Add reload_completed insn
11558         predicate.
11559         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
11560         MODEF mode macro.  Add reload_completed insn predicate.
11561
11562 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
11563
11564         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
11565         (struct df_extract_ref): Remove.
11566         (union df_ref_d): Remove extract_ref member.
11567         (df_ref_create): Remove last three arguments.
11568         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
11569         * df-scan.c (df_ref_record): Remove last three arguments, do not
11570         pass them to df_ref_create_structure.
11571         (df_uses_record): Remove first and last three arguments.  Replace
11572         first argument with DF_REF_REGULAR, adjust calls to remove the
11573         width, offset and mode.  Always call recursively on the second
11574         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
11575         (df_ref_create_structure): Remove first argument.
11576         (struct df_scan_problem_data): Remove ref_extract_pool.
11577         (df_scan_free_internal): Do not free it.
11578         (df_scan_alloc): Do not allocate it.
11579         (df_ref_create): Remove last three arguments, do not pass them to
11580         df_ref_create_structure.
11581         (df_free_ref): Remove DF_REF_EXTRACT case.
11582         (df_notes_rescan): Adjust call to df_uses_record.
11583         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
11584         Remove DF_REF_EXTRACT case.
11585         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
11586         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
11587         and SUBREG definitions.
11588         (df_get_conditional_uses): Remove references to width/offset/mode,
11589         adjust call to df_ref_create_structure.
11590         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
11591         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
11592         calls to df_uses_record and df_ref_record.
11593         * fwprop.c (update_df): Remove references to width/offset/mode,
11594         adjust call to df_ref_create.
11595
11596 2010-09-03  Jan Hubicka  <jh@suse.cz>
11597
11598         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
11599         (build_cdtor_fns): Update use of build_cdtor.
11600
11601 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
11602
11603         * doc/options.texi (SeparateAlias): Document.
11604         * opt-functions.awk (switch_flags): Handle SeparateAlias.
11605         * opth-gen.awk: Generate enumeration names for options marked
11606         SeparateAlias, but not for those marked Ignore.
11607         * opts-common.c (generate_canonical_option): Don't output separate
11608         argument for options marked CL_SEPARATE_ALIAS.
11609         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
11610         * opts.h (CL_SEPARATE_ALIAS): New.
11611         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
11612         CL_COMMON): Adjust definitions.
11613         * config/i386/darwin.opt, config/mips/sde.opt: New.
11614         * common.opt (fdump-final-insns): New.
11615         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11616         i386/darwin.opt.
11617         (mips*-sde-elf*): Add mips/sde.opt.
11618         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
11619         -mno-data-in-code and -mcode-xonly here.
11620         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
11621         * gcc.c (option_map): Add "j" to --dump entry.
11622         (translate_options): Don't translate -d to -foutput-class-dir= here.
11623
11624 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
11625
11626         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
11627         DR_IS_WRITE.
11628         (compute_all_dependences): Same.
11629         (create_rdg_edge_for_ddr): Same.
11630         * tree-data-ref.h (DR_IS_WRITE): New.
11631         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
11632         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
11633         (write_memrefs_written_at_least_once): Same.
11634         * tree-predcom.c (suitable_component_p): Same.
11635         (determine_roots_comp): Same.
11636         (execute_load_motion): Same.
11637         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
11638         (vect_enhance_data_refs_alignment): Same.
11639         (vect_analyze_group_access): Same.
11640
11641 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
11642
11643         PR testsuite/42843
11644         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
11645         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
11646
11647 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
11648
11649         * dwarf2out.c (file scope): Remove #if0'd code.
11650         (gen_subprogram_die): Same.
11651
11652 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
11653
11654         PR middle-end/45484
11655         * dwarf2out.c (flush_queued_reg_saves): Rename to...
11656         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
11657         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
11658         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
11659         * config/i386/i386.c (output_set_got): Call it.
11660
11661 2010-09-03  Michael Matz  <matz@suse.de>
11662
11663         PR middle-end/45415
11664         * tree-sra.c (sra_modify_assign): If we modify the statement,
11665         say so.
11666
11667         * tree-ssa.c (verify_ssa): Check number of operands and links
11668         per statement to agree.
11669
11670 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
11671             Iain Sandoe  <iains@gcc.gnu.org>
11672
11673         PR target/45476
11674         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
11675         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
11676         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11677
11678 2010-09-03  Richard Guenther  <rguenther@suse.de>
11679
11680         * lto-streamer-out.c (output_function): Output function
11681         start and end loci.
11682         * lto-streamer-in.c (input_function): Input function start
11683         and end loci.
11684
11685 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11686
11687         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
11688         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
11689         * configure: Regenerate.
11690         * aclocal.m4: Regenerate.
11691
11692 2010-09-03  Jan Hubicka  <jh@suse.cz>
11693
11694         PR lto/44812
11695         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
11696         on functions/variables in other partition.
11697
11698 2010-09-03  Jan Hubicka  <jh@suse.cz>
11699
11700         * cgraph.h (struct varpool_node): Add const_value_known.
11701         (varpool_decide_const_value_known): Declare.
11702         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
11703         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
11704         (input_varpool_node): Restore const_value_known.
11705         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
11706         initializer folding.
11707         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11708         function_and_variable_visibility): Compute const_value_known.
11709         * gimple-fold.c (get_symbol_constant_value): Use varpool for
11710         initializer folding.
11711         * varpool.c (varpool_decide_const_value_known): New function.
11712
11713 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
11714
11715         * config/i386/i386.md: Remove empty preparation statements
11716         from splitters.
11717
11718 2010-09-03  Jan Hubicka  <jh@suse.cz>
11719
11720         * passes.c (rest_of_decl_compilation): Do not add local vars into
11721         varpool.
11722         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
11723         static or extern vars are in varpool.
11724         (varpool_finalize_decl): Sanity check that only static vars are
11725         finalized.
11726
11727 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
11728
11729         PR debug/45500
11730         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
11731         not just generic vectors with BLKmode.
11732
11733 2010-09-03  Richard Guenther  <rguenther@suse.de>
11734
11735         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
11736         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
11737         * tree.h (TMR_SYMBOL): Remove.
11738         (TMR_BASE, TMR_OFFSET): Adjust.
11739         (TMR_INDEX2): New.
11740         * alias.c (ao_ref_from_mem): Use TMR_BASE.
11741         * builtins.c (get_object_alignment): Merge TMR_BASE and
11742         TMR_SYMBOL handling.
11743         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
11744         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
11745         handling.  Also allow TARGET_MEM_REF as base address.
11746         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
11747         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
11748         base.  Gimplify TMR_INDEX2.
11749         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
11750         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11751         (get_addr_base_and_unit_offset): Likewise.
11752         * tree-eh.c (tree_could_trap_p): Likewise.
11753         * tree-pretty-print.c (dump_generic_node): Likewise.
11754         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
11755         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
11756         base to index2.
11757         (get_address_description): Reconstruct addres description
11758         from merged TMR_BASE and TMR_INDEX2.
11759         (maybe_fold_tmr): Fold propagated addresses.
11760         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
11761         MEM_REF and TARGET_MEM_REF paths.
11762         (indirect_refs_may_alias_p): Likewise.
11763         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
11764         instead of TMR_SYMBOL.
11765         * tree-ssa-operands.c (get_tmr_operands): Simplify.
11766         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
11767         according to changes ...
11768         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
11769         Split TARGET_MEM_REF into two fields plus the base.
11770         * tree.c (mem_ref_offset): Simplify.
11771         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
11772         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
11773         Strip NOPs when folding MEM_REF addresses.
11774         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
11775         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
11776         (fold_gimple_assign): ... not here.
11777
11778 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
11779
11780         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
11781         * config/mips/mips.c (mips_shift_truncation_mask): New function.
11782         (TARGET_SHIFT_TRUNCATION_MASK): Define.
11783
11784 2010-09-02  Richard Henderson  <rth@redhat.com>
11785
11786         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
11787         instead of readelf in the test.
11788         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
11789         in the .debug_frame section for coff targets.
11790         * configure: Rebuild.
11791
11792 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
11793
11794         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
11795         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
11796         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11797         (m32c_class_likely_spilled_p): Make static. Change argument type to
11798         reg_class_t. Change result type to bool.
11799
11800 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11801
11802         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
11803         to convert (double)(long) into a single FRIZ instruction or not
11804         when -ffast-math is used.
11805
11806         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
11807         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
11808         or FRIZ instruction if -ffast-math.
11809         * config/rs6000/rs6000.md (friz): Ditto.
11810
11811         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
11812
11813 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11814
11815         * opth-gen.awk (quote, comma): Remove unused variables.
11816
11817 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
11818
11819         * arm.c (arm_override_options): Correct fall-back code to use
11820         SUBTARGET_CPU_DEFAULT.
11821
11822 2010-09-02  Julian Brown  <julian@codesourcery.com>
11823
11824         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
11825         unspecs.
11826         (vcond<mode>, vcondu<mode>): New expanders.
11827         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
11828         comparisons with zero.
11829         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
11830         * config/arm/constraints.md (Dz): New constraint.
11831
11832 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
11833
11834         * target.def (class_likely_spilled_p): New hook.
11835         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
11836         * doc/tm.texi: Regenerate.
11837         * targhooks.c (default_class_likely_spilled_p): New function.
11838         * targhooks.h (default_class_likely_spilled_p): Declare.
11839         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
11840         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
11841         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
11842         Use fixed_reg_set instead of fixed_regs.
11843         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
11844         * calls.c (avoid_likely_spilled_reg): Ditto.
11845         * ira-conflicts.c (ira_build_conflicts): Ditto.
11846         * ira.c (update_equiv_regs): Ditto.
11847         * mode-switching.c (create_pre_exit): Ditto.
11848         * regmove.c (find_matches): Ditto.
11849         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
11850         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
11851         (small_register_class_p): New inline function.
11852         (push_secondary_reload, find_reusable_reload, find_reloads): Use
11853         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
11854
11855         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
11856         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
11857         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11858
11859 2010-09-02  Richard Guenther  <rguenther@suse.de>
11860
11861         PR tree-optimization/44937
11862         PR tree-optimization/45412
11863         * ipa-split.c (split_function): Properly remove PHI nodes.
11864
11865 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11866
11867         * opts.h (struct cl_option): Add warn_message field.
11868         (struct cl_decoded_option): Add warn_message field.
11869         * doc/options.texi (Ignore, Warn): Document.
11870         * opt-functions.awk (needs_state_p): Don't consider aliases or
11871         ignored options to need state saved.
11872         * optc-gen.awk: Handle Warn and Ignore.
11873         * opth-gen.awk: Output OPT_SPECIAL_ignore.
11874         * opts-common.c (decode_cmdline_option): Set warn_message field.
11875         Handle ignored options.
11876         (decode_cmdline_options_to_array, generate_option,
11877         generate_option_input_file): Set warn_message field.
11878         (read_cmdline_option): Generate warnings from warn_message field.
11879         Handle ignored options.
11880         * common.opt (Wunreachable-code, fargument-alias,
11881         fargument-noalias, fargument-noalias-global,
11882         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
11883         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
11884         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
11885         ftree-salias): Mark Ignore.
11886         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
11887         -mintel-syntax and -mno-intel-syntax here.
11888         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
11889         using Warn.
11890         * opts.c (common_handle_option): Don't handle options marked as
11891         ignored.
11892         (enable_warning_as_error): Handle ignored options.
11893
11894 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11895
11896         PR driver/44076
11897         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
11898         alias_target fields.
11899         * opt-functions.awk (opt_sanitized_name): Don't handle
11900         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
11901         * optc-gen.awk: Generate alias fields.
11902         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
11903         Don't generate such constants for aliases.
11904         * opts-common.c (generate_canonical_option): New.
11905         (decode_cmdline_option): Handle aliases.  Use
11906         generate_canonical_option for known options instead of copying the
11907         input option text.
11908         * doc/options.texi (Alias): Document.
11909         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
11910         fstack-check, specs): Mark as aliases.
11911         * gcc.c (driver_handle_option): Canonicalize -L options to joined
11912         arguments.
11913         (driver_handle_option): Don't handle OPT_specs.
11914         * opts.c (common_handle_option): Don't handle options marked as
11915         aliases.
11916         (enable_warning_as_error): Handle aliases.
11917         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
11918         OPT_Wlarger_than_eq.
11919         * tree-optimize.c (tree_rest_of_compilation): Use
11920         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
11921
11922 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11923
11924         * config/i386/i386.md (nonmemory_operand): New mode attribute.
11925         (push memory peephole2): Macroize peepholes using SWI mode iterator.
11926         (move immediate to memory peephole2): Macroize peepholes using
11927         SWI124 mode iterator.
11928         (non-pairable NOT peephole2): Macroize peepholes using SWI124
11929         mode iterator.
11930         (simple lea add peephole2): Macroize peepholes using SWI48
11931         mode iterator.
11932         (simple lea mult peephole2): Ditto.
11933         (imul by 3,5,9 to lea peephole2): Ditto.
11934         (mov $-1, reg peephole2): Macroize peepholes using SWI248
11935         mode iterator.
11936         (imul $32bit_imm,mem,reg peephole2): Ditto.
11937         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
11938
11939 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
11940
11941         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
11942
11943 2010-09-02  Olivier Hainque  <hainque@adacore.com>
11944
11945         PR middle-end/44763
11946         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
11947         (allocno_priority_compare_func): Use it instead of a straight
11948         difference computation over priorities.
11949
11950 2010-09-02  Andi Kleen  <ak@linux.intel.com>
11951
11952         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
11953
11954 2010-09-02  Ira Rosen  <irar@il.ibm.com>
11955
11956         * tree-vectorizer.h (get_later_stmt): New function.
11957         (vect_analyze_data_ref_dependences): Add argument.
11958         * tree-vect-loop.c (vect_analyze_loop): Update call to
11959         vect_analyze_data_ref_dependences.
11960         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
11961         New function.
11962         (vect_analyze_data_ref_dependence): Add argument for basic block
11963         dependencies. Check dependencies in basic block vectorization.
11964         (vect_analyze_data_ref_dependences): Add argument and update call to
11965         vect_analyze_data_ref_dependences.
11966         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
11967         (vect_bb_vectorizable_with_dependencies): New.
11968         (vect_slp_analyze_bb): Check dependencies in basic block.
11969         (vect_schedule_slp_instance): Insert stores before the last store in
11970         SLP instance.
11971
11972 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11973
11974         PR target/45476
11975         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
11976         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11977
11978 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
11979
11980         PR middle-end/45458
11981         * bb-reorder.c (add_labels_and_missing_jumps): Treat
11982         bbs ending with throwing insns like blocks ending with a call.
11983         (fix_up_fall_thru_edges): Likewise.
11984
11985 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
11986
11987         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
11988         (m32c_function_arg_advance): Delete.
11989         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11990         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
11991         comments.  Take a const_tree and a bool.  Declare.
11992         (m32c_function_arg_advance): Likewise.
11993         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11994
11995 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11996
11997         PR target/45476
11998         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
11999         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12000         * config/i386/mingw32.h: ... here.
12001
12002 2010-09-01  Andi Kleen  <ak@linux.intel.com>
12003
12004         PR lto/45475
12005         * lto-streamer-in.c (lto_input_ts_target_option): Add.
12006         (lto_input_tree_pointers): Call lto_input_ts_target_option.
12007         * lto-streamer-out (lto_output_ts_target_option): Add.
12008         (lto_output_tree_pointers): Call lto_output_ts_target_option.
12009
12010 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
12011
12012         PR/target 45452
12013         * config/i386/cygwin.h: Change order of specified import libraries.
12014         * config/i386/mingw32.h: Likewise.
12015         * config/i386/t-cygwin: Likewise.
12016         * config/i386/t-mingw32: Likewise.
12017         * config/i386/t-mingw-w32: Likewise.
12018         * config/i386/t-mingw-w64: Likewise.
12019
12020 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12021
12022         * config/arm/neon-schedgen.ml (core): New type.
12023         (allCores): List of supported cores.
12024         (availability_table): Add supported cores.
12025         (collate_bypasses): Accept core as a parameter.
12026         (worst_case_latencies_and_bypasses): Accept core as a parameter.
12027         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
12028         and coreStr to get tune attribute and prefix for functional units.
12029         (emit_bypasses): Accept core name and use it.
12030         (calculate_per_core_availability_table): New.
12031         (filter_core): New.
12032         (calculate_core_availability_table): New.
12033         (main): Use calculate_core_availablity_table.
12034         * config/arm/cortex-a8-neon.md: Update copyright year.
12035         Regenerated from ml file and merged in.
12036         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
12037         cortex_a8_neon_mrc.
12038
12039 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
12040
12041         * Makefile.in (tree-switch-conversion.o): Update dependencies.
12042
12043 2010-09-01  Richard Guenther  <rguenther@suse.de>
12044
12045         * alias.c (ao_ref_from_mem): Adjust.
12046         * builtins.c (get_object_alignment): Likewise.
12047         * cfgexpand.c (expand_debug_expr): Likewise.
12048         * gimple.c (get_base_address): Likewise.
12049         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12050         (get_addr_base_and_unit_offset): Likewise.  Fix for
12051         both TMR_SYMBOL and TMR_BASE being set.
12052         * tree-eh.c (tree_could_trap_p): Likewise.
12053         * gimplify.c (gimplify_expr): Do not attempt to gimplify
12054         TMR_SYMBOL.  Always gimplify TMR_BASE.
12055         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12056         TMR_BASE if there is a TMR_SYMBOL.
12057         * tree-pretty-print.c (dump_generic_node): Adjust.
12058         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12059         (tree_mem_ref_addr): Likewise.
12060         (create_mem_ref_raw): Likewise.
12061         (move_fixed_address_to_symbol): Likewise.
12062         (create_mem_ref): Likewise.
12063         (dump_mem_address): Likewise.
12064         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
12065         Fix for both TMR_SYMBOL and TMR_BASE being set.
12066         (indirect_refs_may_alias_p): Likewise.
12067         * tree-ssa-operands.c (get_tmr_operands): Adjust.
12068         * tree.def (TARGET_MEM_REF): Adjust documentation.
12069
12070 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12071
12072         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
12073         Rename from X86_TUNE_ADD_ESP_4.
12074         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
12075         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
12076         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
12077         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
12078         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
12079         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
12080         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
12081         * config/i386/i386.c (initial_ix86_tune_features)
12082         <X86_TUNE_SINGLE_POP>: Invert members.
12083         <X86_TUNE_DOUBLE_POP>: Ditto.
12084         <X86_TUNE_SINGLE_PUSH>: Ditto.
12085         <X86_TUNE_DOUBLE_PUSH>: Ditto.
12086         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
12087         No longer exported.
12088         (push peephole2 patterns): Macroize peepholes using P mode iterator.
12089         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
12090         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
12091         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
12092
12093 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
12094
12095         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
12096         a volatile LHS if the constructor has only one element.
12097
12098 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
12099
12100         PR bootstrap/45321
12101         * tree.c (stdarg_p): Make fntype parameter const.
12102         * tree.h (stdarg_p): Likewise.
12103         (function_args_iterator): Remove unused fntype field.
12104         (function_args_iter_init): Do not initialize fntype
12105         field.  Make fntype parameter const.
12106
12107 2010-09-01  Richard Guenther  <rguenther@suse.de>
12108
12109         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
12110         estimate.
12111         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
12112         (execute_vrp): Compute number of iteration estimates.
12113         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
12114         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12115         * tree-data-ref.c (estimated_loop_iterations): Adjust.
12116         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12117         Infer loop bounds from undefined behavior based on a new parameter.
12118         (estimate_numbers_of_iterations): Likewise.
12119         (scev_probably_wraps_p): Adjust.
12120         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12121
12122 2010-09-01  Nick Clifton  <nickc@redhat.com>
12123
12124         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
12125         where appropriate.
12126         (xstormy16_legitimate_address_p): Use true and false instead of 1
12127         and 0.
12128         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
12129         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
12130         magic constant 2.
12131         (xstormy16_expand_call): Fix comment at start of function.
12132
12133 2010-09-01  Nick Clifton  <nickc@redhat.com>
12134
12135         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
12136         when pushing accumulator register.
12137         (rx_get_stack_layout): Always save call clobbered registers inside
12138         interrupt handlers.
12139         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
12140
12141 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12142
12143         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
12144         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
12145
12146         * libgcc-std.ver (GCC_4.6.0): Define version.
12147
12148 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12149
12150         * tree-nested.c (convert_all_function_calls): Iterate until after the
12151         sum of static chains in the nest doesn't change.
12152
12153 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
12154
12155         * config/m32c/m32c.c (classes_intersect): Remove.
12156         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
12157         reg_classes_intersect_p instead of classes_intersect.
12158         (class_can_hold_mode): Change arguments type from enum reg_class to
12159         reg_class_t.  Use reg_class_contents instead of class_contents.
12160         (m32c_register_move_cost): Make static. Change arguments type from
12161         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
12162         classes_intersect. Use reg_class_contents instead of class_contents.
12163         (m32c_memory_move_cost): Make static. Change arguments type from
12164         enum reg_class to reg_class_t.
12165         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12166         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12167         * config/m32c/m32c-protos.h (m32c_register_move_cost,
12168         m32c_memory_move_cost): Remove.
12169
12170 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12171
12172         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
12173         (arm_function_arg): Delete.
12174         (arm_needs_doubleword_align): Take a const_tree.
12175         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12176         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
12177         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
12178         (arm_function_arg): Make static.  Take a const_tree and a bool.
12179         (arm_function_arg_advance): Likewise.
12180         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12181
12182 2010-08-31  Andi Kleen  <ak@linux.intel.com>
12183
12184         * common.opt (fwhopr=): Update for -fwhopr=jobserver
12185         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
12186         * lto-wrapper.c (run_gcc): Add jobserver mode.
12187         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
12188         argument.
12189
12190 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
12191
12192         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
12193         (popsi1): Ditto.
12194         (*popdi1_epilogue): Ditto.
12195         (*popsi1_epilogue): Ditto.
12196         (popsi, popdi peephole2 patterns): Update peepholes for changed
12197         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
12198
12199         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
12200         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
12201
12202         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
12203         (override_options): Do not initialize removed ix86_gen_pop1.
12204         (gen_pop): New static function.
12205         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
12206         (release_scratch_register_on_entry): Ditto.
12207         (ix86_restore_reg_using_pop): Ditto.
12208         (ix86_expand_epilogue): Ditto.
12209
12210 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
12211
12212         PR middle-end/45461
12213         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
12214
12215 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12216
12217         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
12218         semicolons.
12219
12220 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12221
12222         * doc/extend.texi: Fix documentation of the return value of
12223         __builtin_choose_expr.
12224
12225 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12226
12227         * config/v850/v850-protos.h (function_arg): Delete.
12228         * config/v850/v850.h (FUNCTION_ARG): Delete.
12229         (FUNCTION_ARG_ADVANCE): Move code to...
12230         * config/v850/v850.c (v850_function_arg_advance): ...here.
12231         (v850_function_arg): Make static.  Take a const_tree and a bool.
12232         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12233
12234 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12235
12236         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
12237         these...
12238         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12239         ...and these...
12240         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
12241         ..to here..
12242         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12243         ...and here.
12244         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12245
12246 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12247
12248         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
12249         Delete.
12250         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12251         * config/rx/rx.c (rx_function_arg_size): Make static.
12252         (rx_function_arg): Likewise.
12253         (rx_function_arg_advance): New function.
12254         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12255
12256 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
12257
12258         * config/arm/arm.c (arm_override_options): Remove superfluous test.
12259         Fix indentation.
12260
12261 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12262
12263         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
12264         (dwarf2out_decl) <CONST_DECL>: Likewise.
12265
12266 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
12267
12268         Stack usage support
12269         * common.opt (-fstack-usage): New option.
12270         * doc/invoke.texi (Debugging options): Document it.
12271         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
12272         allocate_dynamic_stack_space.
12273         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
12274         and propagate it to allocate_dynamic_stack_space.
12275         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
12276         * calls.c (initialize_argument_information): Pass TRUE as 4th
12277         argument to allocate_dynamic_stack_space.
12278         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
12279         to 1 when pushing a variable-sized argument onto the stack.  Pass
12280         TRUE as 4th argument to allocate_dynamic_stack_space.
12281         Update current_function_pushed_stack_size.
12282         (emit_library_call_value_1): Likewise.
12283         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
12284         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
12285         attempt to find an upper bound.  Remove redundant code for the
12286         SETJMP_VIA_SAVE_AREA case.
12287         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
12288         * function.h (struct stack_usage): New structure.
12289         (current_function_static_stack_size): New macro.
12290         (current_function_dynamic_stack_size): Likewise.
12291         (current_function_pushed_stack_size): Likewise.
12292         (current_function_dynamic_alloc_count): Likewise.
12293         (current_function_has_unbounded_dynamic_stack_size): Likewise.
12294         (current_function_allocates_dynamic_stack_space): Likewise.
12295         (struct function): Add new field 'su'.
12296         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
12297         add the value of the dynamic offset to the dynamic stack usage.
12298         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
12299         for variable-sized objects.
12300         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
12301         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
12302         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
12303         BUILT_IN_ALLOCA for variable-sized objects.
12304         * output.h (output_stack_usage): Declare.
12305         * toplev.c (stack_usage_file): New file pointer.
12306         (output_stack_usage): New function.
12307         (open_auxiliary_file): Likewise.
12308         (lang_dependent_init): Open file if flag_stack_usage is set.
12309         (finalize): Close file if stack_usage_file is not null.
12310         * tree.h (ALLOCA_FOR_VAR_P): New macro.
12311         * config/alpha/alpha.c (compute_frame_size): New function.
12312         (alpha_expand_prologue): Use it.
12313         (alpha_start_function): Likewise.
12314         (alpha_expand_epilogue): Likewise.  Set stack usage info.
12315         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12316         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12317         * config/mips/mips.c (mips_expand_prologue): Likewise.
12318         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12319         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12320         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12321
12322 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
12323
12324         PR tree-optimization/45427
12325         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
12326         Handle the case that the exit is never taken correctly.
12327         (number_of_iterations_ne): Pass exit_must_be_taken to
12328         number_of_iterations_ne_max.
12329
12330 2010-08-30  Catherine Moore  <clm@codesourcery.com>
12331
12332         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
12333         Infer -mdspr2 for the the 74K.
12334
12335 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
12336
12337         PR debug/45419
12338         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
12339
12340         PR middle-end/45423
12341         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
12342         and TRUTH_{AND,OR,XOR}_EXPR.
12343         * c-parser.c (c_parser_omp_atomic): Handle boolean
12344         {PRE,POST}_{INC,DEC}REMENT.
12345
12346 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
12347
12348         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
12349         (function_arg): Delete.
12350         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12351         (FUNCTION_INCOMING_ARG): Delete.
12352         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
12353         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
12354         and a bool.
12355         (function_arg): Rename to...
12356         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
12357         a bool.
12358         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
12359         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12360         (TARGET_FUNCTION_INCOMING_ARG): Define.
12361
12362 2010-08-30  Richard Guenther  <rguenther@suse.de>
12363
12364         PR tree-optimization/21602
12365         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
12366         using points-to information.
12367
12368 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
12369
12370         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
12371
12372 2010-08-30  Richard Guenther  <rguenther@suse.de>
12373
12374         PR tree-optimization/45449
12375         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
12376         variables.
12377
12378 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
12379
12380         * opts.h (CL_ERR_NEGATIVE): Define.
12381         * opts.c (unknown_option_callback): Don't postpone warnings for
12382         options marked with CL_ERR_NEGATIVE.
12383         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
12384         for negative versions of CL_REJECT_NEGATIVE options.
12385
12386 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
12387
12388         * config/i386/i386.md (zero_extendsidi2_1): Rename from
12389         zero_extendsidi2_32.
12390         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
12391         using SWI12 mode iterator.
12392         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
12393         to define_insn_and_split pattern.
12394         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
12395         using SWI24 mode iterator.
12396         (*zero_extendqi<mode>2_and): Macroize insn from
12397         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
12398         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
12399         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
12400         SWI24 mode iterator.
12401         (*zero_extendqi<mode>2_movzbl): Ditto from
12402         *zero_extendqi{hi,si}2_movzbl.
12403         (extendsidi2_1): Rename from extendsidi2_32.
12404         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
12405         SWI12 mode iterator.
12406
12407 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
12408
12409         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
12410         general purpose registers.
12411         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
12412         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
12413         with general purpose registers and memory operands.  Add associated
12414         CCImode post-reload splitter.
12415         * config/ia64/div.md: Change BImode to CCImode throughout.
12416
12417 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
12418
12419         * config/ia64/ia64.md (cstorebi4): Fix thinko.
12420
12421 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
12422
12423         * config/picochip/picochip.c (reorder_var_tracking_notes): This
12424         function was dropping debug insns which caused PR45299.
12425
12426 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
12427
12428         * config/i386/sse.md (extsuffix): New code attribute.
12429         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
12430         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
12431         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
12432         and sse4_1_zero_extendv4qiv4si2.
12433         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
12434         and sse4_1_zero_extendv2qiv2di2.
12435         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
12436         and sse4_1_zero_extendv4hiv4si2.
12437         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
12438         and sse4_1_zero_extendv2hiv2di2.
12439         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
12440         and sse4_1_zero_extendv2siv2di2
12441
12442         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
12443         using any_extend code iterator.
12444         (*avx_<s>mulv8hi3_highpart): Macroize insn from
12445         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
12446         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
12447
12448         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
12449         gen_sse4_1_sign_extend* functions.
12450         (struct builtin_description bdesc_args): Ditto.
12451
12452 2010-08-27  Xinliang David Li  <davidxl@google.com>
12453
12454         PR/45422
12455         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
12456         (iv_ca_set_no_cp): Update used inv expr count.
12457         (iv_ca_set_cp): Ditto.
12458         (iv_ca_new): Initialize new member.
12459         (iv_ca_free): Free memory.
12460
12461 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12462
12463         * config/sh/sh-protos.h (sh_function_arg): Delete.
12464         (sh_function_arg_advance): Delete.
12465         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12466         (PASS_IN_REG_P): Eliminate cast.
12467         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
12468         const_tree and a bool.
12469         (sh_function_arg): Likewise.
12470         (sh_output_mi_thunk): Call sh_function_arg_advance) and
12471         sh_function_arg.
12472         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12473
12474 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
12475             Kaz Kojima  <kkojima@gcc.gnu.org>
12476
12477         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
12478         when possible.
12479         (sh_expand_epilogue): Likewise.
12480         * config/sh/sh.md (movml_push_banked): New insn.
12481         (movml_pop_banked): Likewise.
12482
12483 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
12484
12485         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
12486         gen_regexp_oneof, gen_regexp_sequence): Use the string found
12487         in vector element 0 rather than the original string when there's
12488         only one element.
12489         (gen_regexp): Remove extra semicolon.
12490
12491         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
12492         thumb2_movsf_vfp): Set attribute "insn".
12493         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
12494         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
12495         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
12496         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
12497         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
12498         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
12499         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
12500         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
12501         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
12502         if_not_arith, if_arith_not, cond_move_not): Likewise.
12503
12504 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12505
12506         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
12507         New declaration.
12508         (rs6000_allocate_stack_temp): Ditto.
12509         (rs6000_expand_convert_si_to_sfdf): Ditto.
12510
12511         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
12512         line.  Update the options set if power6 or power7 server/embedded
12513         type options are used.  If we give a warning for no vsx under
12514         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
12515         (rs6000_allocate_stack_temp): New function to allocate a stack
12516         tempoary and adjust the address so it meets either REG+OFFSET or
12517         REG+REG addressing requirements.
12518         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
12519         that they can be used with the LFIWAX/LFIWZX instrucitons.
12520         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
12521         converting signed/unsigned SImode to either SFmode/DFmode.
12522
12523         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
12524         whether certain instructions can be generated.
12525         (TARGET_FCTIDZ): Ditto.
12526         (TARGET_STFIWX): Ditto.
12527         (TARGET_LFIWAX): Ditto.
12528         (TARGET_LFIWZX): Ditto.
12529         (TARGET_FCFIDS): Ditto.
12530         (TARGET_FCFIDU): Ditto.
12531         (TARGET_FCFIDUS): Ditto.
12532         (TARGET_FCTIDUZ): Ditto.
12533         (TARGET_FCTIWUZ): Ditto.
12534
12535         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
12536         (UNSPEC_FCTID): Ditto.
12537         (UNSPEC_LFIWAX): Ditto.
12538         (UNSPEC_LFIWZX): Ditto.
12539         (UNSPEC_FCTIWUZ): Ditto.
12540         (rreg): Use correct constraints.
12541         (SI_CONVERT_FP): New mode attribute for floating point conversion
12542         tests.
12543         (E500_CONVERT): Ditto.
12544         (lfiwax): New insns for converting from integer to floating point
12545         utilizing newer instructions.  Attempt to optimize conversions
12546         that come from memory so that we don't load the value into a GPR,
12547         spill it to the stack and reload it into a FPR.
12548         (floatsi<mode>2_lfiwax): Ditto.
12549         (floatsi<mode>2_lfiwax_mem): Ditto.
12550         (floatsi<mode>2_lfiwax_mem2): Ditto.
12551         (lfiwzx): Ditto.
12552         (floatunssi<mode>2_lfiwzx): Ditto.
12553         (floatunssi<mode>2_lfiwzx_mem): Ditto.
12554         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
12555         (floatdidf2_mem): Ditto.
12556         (floatunsdidf2_fcfidu): Ditto.
12557         (floatunsdidf2_mem): Ditto.
12558         (floatunsdisf2): Ditto.
12559         (floatunsdisf2_fcfidus): Ditto.
12560         (floatunsdisf2_mem): Ditto.
12561         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
12562         Use FCFID on 32-bit hosts that support it.
12563         (floatsidf2_internal): Ditto.
12564         (floatunssisf2): Ditto.
12565         (floatunssidf2): Ditto.
12566         (floatunssidf2_internal): Ditto.
12567         (floatsisf2): Ditto.
12568         (floatdidf2): Ditto.
12569         (floatdidf2_fpr): Ditto.
12570         (floatunsdidf2): Ditto.
12571         (floatdisf2): Ditto.
12572         (floatdisf2_fcfids): Ditto.
12573         (floatdisf2_internal1): Ditto.
12574         (fixuns_truncsfsi2): Delete, merge into common pattern for both
12575         SF/DF.  Add power7 support.
12576         (fix_truncsfsi2): Ditto.
12577         (fixuns_truncdfsi2): Ditto.
12578         (fixuns_truncdfdi2): Ditto.
12579         (fix_truncdfsi2): Ditto.
12580         (fix_truncdfsi2_internal): Ditto.
12581         (fix_truncdfsi2_internal_gfxopt): Ditto.
12582         (fix_truncdfsi2_mfpgpr): Ditto.
12583         (fctiwz): Ditto.
12584         (btruncdf2): Ditto.
12585         (btruncdf2_fpr): Ditto.
12586         (btructsf2): Ditto.
12587         (ceildf2): Ditto.
12588         (ceildf2_fpr): Ditto.
12589         (ceilsf2): Ditto.
12590         (floordf2): Ditto.
12591         (floordf2_fpr): Ditto.
12592         (floorsf2): Ditto.
12593         (rounddf2): Ditto.
12594         (rounddf2_fpr): Ditto.
12595         (roundsf2): Ditto.
12596         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
12597         (fix_trunc<mode>di2): Ditto.
12598         (fixuns_trunc<mode>si2): Ditto.
12599         (fixuns_trunc<mode>di2): Ditto.
12600         (fctiwz_<mode>): Ditto.
12601         (btrunc<mode>2): Ditto.
12602         (btrunc<mode>2_fpr): Ditto.
12603         (ceil<mode>2): Ditto.
12604         (ceil<mode>2_fpr): Ditto.
12605         (floor<mode>2): Ditto.
12606         (float<mode>2_fpr): Ditto.
12607         (round<mode>2): Ditto.
12608         (round<mode>2_fpr): Ditto.
12609         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
12610         (fixuns_trunc<mode>si2_stfiwx): Ditto.
12611         (fix_truncdfsi2_internal): Ditto.
12612         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
12613         converted value on stack, loaded into GPR, and then stored into
12614         the final destination.
12615         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
12616         FCTIDZ.
12617         (lrint<mode>di2): New insn, provide the lrint builtin functions.
12618         (ftruncdf2): Delete, unused.
12619         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
12620
12621         * config/rs6000/vsx.md (toplevel): Update copyright year.
12622         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
12623         (VSr3): Ditto.
12624
12625 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
12626             Jeremie Salvucci  <jeremie.salvucci@free.fr>
12627
12628         * gengtype.c (output_type_enum): Test the right union member.
12629
12630 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
12631
12632         PR target/41484
12633         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
12634         operands for operand 1.
12635         (sse4_1_extendv4qiv4si2): Ditto.
12636         (sse4_1_extendv2qiv2di2): Ditto.
12637         (sse4_1_extendv4hiv4si2): Ditto.
12638         (sse4_1_extendv2hiv2di2): Ditto.
12639         (sse4_1_extendv2siv2di2): Ditto.
12640         (sse4_1_zero_extendv8qiv8hi2): Ditto.
12641         (sse4_1_zero_extendv4qiv4si2): Ditto.
12642         (sse4_1_zero_extendv2qiv2di2): Ditto.
12643         (sse4_1_zero_extendv4hiv4si2): Ditto.
12644         (sse4_1_zero_extendv2hiv2di2): Ditto.
12645         (sse4_1_zero_extendv2siv2di2): Ditto.
12646         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
12647         (*sse4_1_extendv4qiv4si2): Ditto.
12648         (*sse4_1_extendv2qiv2di2): Ditto.
12649         (*sse4_1_extendv4hiv4si2): Ditto.
12650         (*sse4_1_extendv2hiv2di2): Ditto.
12651         (*sse4_1_extendv2siv2di2): Ditto.
12652         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
12653         (*sse4_1_zero_extendv4qiv4si2): Ditto.
12654         (*sse4_1_zero_extendv2qiv2di2): Ditto.
12655         (*sse4_1_zero_extendv4hiv4si2): Ditto.
12656         (*sse4_1_zero_extendv2hiv2di2): Ditto.
12657         (*sse4_1_zero_extendv2siv2di2): Ditto.
12658
12659 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12660
12661         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
12662         (mips_function_arg): Delete.
12663         (mips_function_arg_boundary): Take a const_tree.
12664         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
12665         (mips_arg_info): Likewise.
12666         (mips_setup_incoming_varargs): Call mips_function_arg_advance
12667         instead of FUNCTION_ARG_ADVANCE.
12668         (mips_function_arg_advance): Adjust prototype.  Make static.
12669         (mips_function_arg): Likewise.
12670         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12671         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
12672
12673 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
12674
12675         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12676         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
12677         (function_arg): Delete.
12678         (function_arg_boundary): Take a const_tree.
12679         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
12680         (rs6000_spe_function_arg): Likewise.
12681         (rs6000_parm_start): Likewise.
12682         (rs6000_arg_size): Likewise.
12683         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
12684         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
12685         (rs6000_mixed_function_arg): Likewise.
12686         (function_arg): Rename to...
12687         (rs6000_function_arg): ...this.
12688         (function_arg_advance): Rename to...
12689         (rs6000_function_arg_advance_1): ...this
12690         (rs6000_function_arg_advance): New function.  Call it.
12691         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
12692         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
12693         (rs6000_function_value): Likewise.
12694         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12695
12696 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12697
12698         * config/arm/arm.md (enabled): Test the value of arch_enabled
12699         rather than just using it.
12700
12701 2010-08-27  Olivier Hainque  <hainque@adacore.com>
12702             Eric Botcazou  <ebotcazou@adacore.com>
12703
12704         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
12705         cover all the possible offsets from this base.
12706         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
12707
12708 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
12709
12710         PR tree-optimization/44485
12711         * calls.c (flags_from_decl_or_type): For const or pure
12712         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
12713         together with ECF_CONST resp. ECF_PURE.
12714         * builtins.c (expand_builtin): Use flags_from_decl_or_type
12715         instead of querying flags directly.
12716         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
12717         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
12718
12719 2010-08-26  Richard Guenther  <rguenther@suse.de>
12720
12721         PR tree-optimization/45255
12722         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
12723         and externals are also invariant.
12724
12725 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
12726
12727         PR rtl-optimization/44858
12728         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
12729         newi2pat, make sure they don't affect newpat.
12730
12731         PR rtl-optimization/45400
12732         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
12733         SUBREG_REG if both modes are of MODE_INT class.
12734
12735 2010-08-25  Julian Brown  <julian@codesourcery.com>
12736
12737         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
12738         * config/arm/arm.md (generic_sched): No for Cortex-A5.
12739         (generic_vfp): Likewise.
12740         (cortex-a5.md): Include.
12741         * config/arm/cortex-a5.md: New.
12742
12743 2010-08-25  Richard Guenther  <rguenther@suse.de>
12744
12745         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
12746         * gimple.c (gimple_get_alias_set): Remove special handling
12747         for pointers.
12748
12749 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12750
12751         PR middle-end/45355
12752         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
12753         dead_or_set_p when computing i0_feeds_i2_n.
12754
12755         * combine.c (find_split_point): Undo canonicalization of multiply-add
12756         to (minus x (mult)) when it seems likely that this will increase the
12757         chances of a split.
12758
12759 2010-08-25  Richard Guenther  <rguenther@suse.de>
12760
12761         PR lto/44562
12762         * lto-streamer.c (lto_record_common_node): Do not mess with
12763         TYPE_CANONICAL when not in lto.
12764         * gimple.c (gimple_register_type): Likewise.
12765
12766 2010-08-25  Richard Guenther  <rguenther@suse.de>
12767
12768         PR tree-optimization/45316
12769         * tree-ssa-pre.c (eliminate): Properly clean EH info.
12770
12771 2010-08-25  Richard Guenther  <rguenther@suse.de>
12772
12773         PR tree-optimization/45393
12774         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
12775         and clean EH info.  Avoid SSA update.
12776         (execute_cse_sincos): Cleanup the CFG if it has changed.
12777
12778 2010-08-25  Richard Guenther  <rguenther@suse.de>
12779
12780         PR middle-end/45379
12781         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
12782         TARGET_MEM_REF in alignment computation.
12783
12784 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
12785
12786         PR tree-optimization/45059
12787         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
12788         type conversions from newop{1,2}.  Assert t is a comparison and
12789         newop{1,2} after the stripping are gimple vals.
12790
12791 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
12792
12793         * config/arm/iterators.md (VU, SE, V_widen_l): New.
12794         (V_unpack, US): New.
12795         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
12796         (vec_unpack<US>_lo_<mode>): Likewise.
12797         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
12798         (neon_vec_unpack<US>_lo_<mode>): Likewise.
12799         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
12800         (vec_widen_<US>mult_hi_<mode>): Likewise.
12801         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
12802         (neon_vec_<US>mult_hi_<mode>"): Likewise.
12803         (neon_unpack<US>_<mode>): Widening move intermediate step for
12804         vectorizing without -mvectorize-with-neon-quad.
12805         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
12806         for vectorizing without -mvectorize-with-neon-quad.
12807         * config/arm/predicates.md (vect_par_constant_high): Check for
12808         high-half lanes of a vector.
12809         (vect_par_constant_low): Check for low-half lanes of a vector.
12810
12811 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12812
12813         * tree-if-conv.c (struct ifc_dr): New.
12814         (IFC_DR): New.
12815         (DR_WRITTEN_AT_LEAST_ONCE): New.
12816         (DR_RW_UNCONDITIONALLY): New.
12817         (memref_read_or_written_unconditionally): Use the cached values
12818         when possible.
12819         (write_memref_written_at_least_once): Same.
12820         (if_convertible_loop_p): Initialize and free DR->aux fields.
12821
12822 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12823
12824         * gimple.c (gimple_could_trap_p_1): Not static anymore.
12825         Pass an extra bool parameter include_mem.
12826         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
12827         (gimple_assign_rhs_could_trap_p): Same.
12828         * gimple.h (gimple_could_trap_p_1): Declared.
12829         * tree-data-ref.h (same_data_refs_base_objects): New.
12830         (same_data_refs): New.
12831         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
12832         (write_memrefs_written_at_least_once): New.
12833         (ifcvt_memrefs_wont_trap): New.
12834         (operations_could_trap): New.
12835         (ifcvt_could_trap_p): New.
12836         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
12837         Gets a vector of data refs.
12838         (if_convertible_stmt_p): Same.
12839         (if_convertible_loop_p_1): New.
12840         (if_convertible_loop_p): Call if_convertible_loop_p_1.
12841
12842 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12843
12844         * common.opt (ftree-loop-if-convert-stores): New flag.
12845         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
12846         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
12847         the created statement before GSI.
12848         (if_convertible_phi_p): Allow virtual phi nodes when
12849         flag_loop_if_convert_stores is set.
12850         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
12851         Do not handle types that do not match is_gimple_reg_type.
12852         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
12853         when flag_loop_if_convert_stores is set, as LHS can contain
12854         memory refs.
12855         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
12856         to if_convertible_gimple_assign_stmt_p.
12857         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
12858         (replace_phi_with_cond_gimple_assign_stmt): Renamed
12859         predicate_scalar_phi.  Do not handle virtual phi nodes.
12860         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
12861         Call predicate_scalar_phi.
12862         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
12863         just after the labels for flag_loop_if_convert_stores, otherwise
12864         insert the predicate in the end of the BB.
12865         (predicate_mem_writes): New.
12866         (combine_blocks): Call predicate_all_scalar_phis.  When
12867         flag_loop_if_convert_stores is set, call predicate_mem_writes.
12868         (tree_if_conversion): Call mark_sym_for_renaming when
12869         flag_loop_if_convert_stores is set.
12870         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
12871         flag_loop_if_convert_stores is set.
12872
12873 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
12874
12875         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
12876         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
12877         (pa_function_value): Make static.
12878         (override_options): Rename to...
12879         (pa_option_override): ...this. Make static.
12880         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
12881         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
12882         TARGET_OPTION_OVERRIDE): Define.
12883         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
12884         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
12885         Remove.
12886         * config/pa/pa-protos.h (override_options): Remove.
12887
12888 2010-08-24  Richard Guenther  <rguenther@suse.de>
12889
12890         PR middle-end/45379
12891         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
12892         if addr->index is NULL or zero.
12893         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
12894         TARGET_MEM_REF more properly.
12895         (indirect_ref_may_alias_decl_p): Likewise.
12896         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
12897         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
12898
12899 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
12900
12901         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
12902         (m32c_override_options): Rename to...
12903         (m32c_option_override): ...this. Make static.
12904         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
12905         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
12906         Remove.
12907         * config/m32c/m32c-protos.h (m32c_override_options,
12908         m32c_function_value_regno_p): Remove.
12909
12910 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12911
12912         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
12913         Fix a typo in a previous commit.
12914
12915 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
12916
12917         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
12918         Pre-initialize innerloop_iters to one.
12919
12920 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12921
12922         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
12923         existing static function global.
12924
12925         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
12926         is changed to global.
12927
12928         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
12929         may_be_nonaddressable_p on base, and don't collect this reference
12930         if the address of the base could not be taken.
12931
12932 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12933
12934         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
12935         enable the compiler to autovectorize mathmetical functions for
12936         power7 using the Mathematical Acceleration Subsystem library.
12937
12938         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
12939         handle which vector math library we have.
12940         (rs6000_override_options): Add -mveclibabi=mass support.
12941         (rs6000_builtin_vectorized_libmass): New function to handle auto
12942         vectorizing math functions that are in the MASS library.
12943         (rs6000_builtin_vectorized_function): Call it.
12944
12945         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
12946         -mveclibabi=mass.
12947
12948 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12949
12950         PR boehm-gc/34544
12951         * gthr-posix.h (__gthread_active_init): Delete.
12952         (__gthread_active_p): Do activity check here.
12953         Don't include errno.h on hppa-hpux.  Update comment.
12954         * gthr-posix95.h (__gthread_active_init): Delete.
12955         (__gthread_active_p): Do activity check here.
12956         Don't include errno.h on hppa-hpux.  Update comment.
12957         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
12958         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
12959         add -lpthread when -mt or -pthread is specified.
12960         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
12961         (LINK_GCC_C_SEQUENCE_SPEC): Define.
12962         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
12963         (stublib.c, pthread_default_stacksize_np-stub.o,
12964         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
12965         $(T)libgcc_stub.a): Add methods.
12966         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
12967         (stublib.c, pthread_default_stacksize_np-stub.o,
12968         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
12969         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12970         pthread_mutex_unlock): New stubs.
12971
12972 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
12973
12974         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
12975         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
12976         options.
12977         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
12978         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
12979         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
12980         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
12981         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
12982         "-l".
12983         * cppspec.c: Include opts.h.
12984         (lang_specific_driver): Use cl_decoded_option structures.
12985         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
12986         * doc/tm.texi: Regenerate.
12987         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
12988         (driver_handle_option): Allow driver options needing no special
12989         processing.
12990         (process_command): Decode options before call to
12991         lang_specific_driver.  Pass decoded options to
12992         lang_specific_driver.
12993         * gcc.h (lang_specific_driver): Update prototype.
12994         * gccspec.c: Include opts.h.
12995         (lang_specific_driver): Use cl_decoded_option structures.
12996         * opts-common.c (option_ok_for_language, generate_option,
12997         generate_option_input_file): New.
12998         (decode_cmdline_option): Use option_ok_for_language.
12999         (decode_cmdline_options_to_array): Use generate_option_input_file.
13000         (handle_generated_option): Use generate_option.
13001         * opts.h (generate_option, generate_option_input_file): Declare.
13002
13003 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
13004
13005         * config/mips/mips.c (mips_override_options): Rename to...
13006         (mips_option_override): ...this. Make static.
13007         (TARGET_OPTION_OVERRIDE): Define.
13008         (mips_in_small_data_p): Update comment.
13009         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13010         (FIXED_REGISTERS): Update comment.
13011         * config/mips/mips-protos.h (mips_override_options): Remove.
13012
13013 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13014
13015         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13016
13017 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13018
13019         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
13020         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
13021
13022 2010-08-20  Jan Hubicka  <jh@suse.cz>
13023
13024         * tree-pass.h (pass_ipa_cdtor_merge): New function.
13025         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
13026         heap allocated.
13027         (record_cdtor_fn): Move to ipa.c; do not test for
13028         have_ctors_dtors.
13029         (build_cdtor): Move to ipa.c; add code avoiding construction
13030         when target have ctors/dtors and there is only one ctor/dtor at given
13031         priority.
13032         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
13033         sort; reverse order of constructors.
13034         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
13035         (cgraph_finalize_function): Do not call record_cdtor_fn.
13036         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
13037         (cgraph_build_static_cdtor): Move to ipa.c.
13038         * ipa.c: Include target.h and tree-iterator.h.
13039         (cgraph_build_static_cdtor, static_ctors, static_dtors,
13040         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
13041         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
13042         pass_ipa_cdtor_merge): New.
13043         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
13044         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
13045         bounds access.
13046
13047 2010-08-20  Jan Hubicka  <jh@suse.cz>
13048
13049         PR c++/45307
13050         PR c++/17736
13051         * cgraph.h (cgraph_only_called_directly_p,
13052         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
13053         static cdtors.
13054         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
13055         are not needed.
13056         (cgraph_finalize_function): Static cdtors are reachable.
13057         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
13058
13059 2010-08-20  Jan Hubicka  <jh@suse.cz>
13060
13061         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
13062         flag_wpa.
13063         * lto-streamer-out.c (lto_output): Likewise.
13064         * passes.c (ipa_write_optimization_summaries): Initialize statement
13065         uids.
13066
13067 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13068
13069         * tree.h (alias_diag_flags): New enum.
13070         (alias_pair): Add an 'emitted_diags' field.
13071         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
13072         (assemble_alias): Initialize emitted_diags of new pairs.
13073
13074 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
13075
13076         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13077         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13078         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13079         (STACK_CHECK_PROTECT): Define.
13080         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
13081         (output_probe_stack_range): Likewise.
13082         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
13083         builtin stack checking is enabled.
13084         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
13085         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13086         (probe_stack_range): New insn.
13087
13088 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
13089
13090         PR target/45336
13091         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
13092         short first.
13093
13094         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
13095         char first.
13096
13097 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13098
13099         PR target/45336
13100         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
13101         to cover zero extension into 64-bit register.
13102         (*sse2_pextrw): Likewise.
13103         (*sse4_1_pextrd_zext): New insn.
13104
13105 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13106
13107         revert r163410, partially revert r163267.
13108         * config/rs6000/darwin.h (LIB_SPEC): Remove.
13109         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
13110         Darwin versions.
13111
13112 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13113
13114         PR middle-end/44974
13115         * builtins.c (expand_builtin): Don't optimize away
13116         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
13117
13118 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
13119
13120         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
13121         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
13122         alternative 1 of operand 2.
13123
13124 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13125             Paolo Bonzini  <bonzini@gnu.org>
13126
13127         * simplify-rtx.c (simplify_unary_operation_1): Optimize
13128         (sign_extend (zero_extend (...)) and
13129         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
13130
13131 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13132
13133         PR rtl-optimization/45353
13134         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
13135         after bb_note is a BARRIER.
13136
13137 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13138
13139         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
13140         linking libgcc.a.
13141
13142 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13143             Michael Matz  <matz@suse.de>
13144
13145         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
13146
13147 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13148
13149         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
13150         (ggc_mark_roots): ...here.
13151
13152 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13153
13154         * vec.h (FOR_EACH_VEC_ELT): Define.
13155         * c-decl.c: Use it.
13156         * cfgloop.c: Likewise.
13157         * cfgloopmanip.c: Likewise.
13158         * cgraph.c: Likewise.
13159         * cgraphunit.c: Likewise.
13160         * combine.c: Likewise.
13161         * config/bfin/bfin.c: Likewise.
13162         * config/mips/mips.c: Likewise.
13163         * config/rs6000/rs6000.c: Likewise.
13164         * dbxout.c: Likewise.
13165         * df-scan.c: Likewise.
13166         * dominance.c: Likewise.
13167         * dse.c: Likewise.
13168         * dwarf2out.c: Likewise.
13169         * except.c: Likewise.
13170         * expr.c: Likewise.
13171         * function.c: Likewise.
13172         * gcse.c: Likewise.
13173         * genattr.c: Likewise.
13174         * ggc-common.c: Likewise.
13175         * gimplify.c: Likewise.
13176         * graphite-blocking.c: Likewise.
13177         * graphite-clast-to-gimple.c: Likewise.
13178         * graphite-dependences.c: Likewise.
13179         * graphite-interchange.c: Likewise.
13180         * graphite-poly.c: Likewise.
13181         * graphite-scop-detection.c: Likewise.
13182         * graphite-sese-to-poly.c: Likewise.
13183         * graphite.c: Likewise.
13184         * haifa-sched.c: Likewise.
13185         * ifcvt.c: Likewise.
13186         * implicit-zee.c: Likewise.
13187         * ipa-prop.c: Likewise.
13188         * ipa-struct-reorg.c: Likewise.
13189         * ipa.c: Likewise.
13190         * ira-build.c: Likewise.
13191         * ira-color.c: Likewise.
13192         * ira-emit.c: Likewise.
13193         * lambda-code.c: Likewise.
13194         * loop-invariant.c: Likewise.
13195         * loop-unroll.c: Likewise.
13196         * lower-subreg.c: Likewise.
13197         * lto-cgraph.c: Likewise.
13198         * lto-opts.c: Likewise.
13199         * lto-streamer-in.c: Likewise.
13200         * lto-streamer-out.c: Likewise.
13201         * lto-streamer.c: Likewise.
13202         * lto-symtab.c: Likewise.
13203         * matrix-reorg.c: Likewise.
13204         * opts.c: Likewise.
13205         * predict.c: Likewise.
13206         * print-tree.c: Likewise.
13207         * sdbout.c: Likewise.
13208         * sel-sched-dump.c: Likewise.
13209         * sel-sched-ir.c: Likewise.
13210         * sel-sched.c: Likewise.
13211         * sese.c: Likewise.
13212         * stor-layout.c: Likewise.
13213         * tree-cfg.c: Likewise.
13214         * tree-cfgcleanup.c: Likewise.
13215         * tree-chrec.c: Likewise.
13216         * tree-data-ref.c: Likewise.
13217         * tree-emutls.c: Likewise.
13218         * tree-inline.c: Likewise.
13219         * tree-into-ssa.c: Likewise.
13220         * tree-loop-distribution.c: Likewise.
13221         * tree-loop-linear.c: Likewise.
13222         * tree-mudflap.c: Likewise.
13223         * tree-outof-ssa.c: Likewise.
13224         * tree-parloops.c: Likewise.
13225         * tree-predcom.c: Likewise.
13226         * tree-pretty-print.c: Likewise.
13227         * tree-scalar-evolution.c: Likewise.
13228         * tree-ssa-live.c: Likewise.
13229         * tree-ssa-loop-im.c: Likewise.
13230         * tree-ssa-loop-ivcanon.c: Likewise.
13231         * tree-ssa-loop-ivopts.c: Likewise.
13232         * tree-ssa-loop-manip.c: Likewise.
13233         * tree-ssa-loop-niter.c: Likewise.
13234         * tree-ssa-loop-prefetch.c: Likewise.
13235         * tree-ssa-phiprop.c: Likewise.
13236         * tree-ssa-pre.c: Likewise.
13237         * tree-ssa-reassoc.c: Likewise.
13238         * tree-ssa-sccvn.c: Likewise.
13239         * tree-ssa-structalias.c: Likewise.
13240         * tree-ssa.c: Likewise.
13241         * tree-vect-data-refs.c: Likewise.
13242         * tree-vect-loop-manip.c: Likewise.
13243         * tree-vect-loop.c: Likewise.
13244         * tree-vect-patterns.c: Likewise.
13245         * tree-vect-slp.c: Likewise.
13246         * tree-vect-stmts.c: Likewise.
13247         * tree-vrp.c: Likewise.
13248         * tree.c: Likewise.
13249         * value-prof.c: Likewise.
13250         * var-tracking.c: Likewise.
13251         * varasm.c: Likewise.
13252         * vmsdbgout.c: Likewise.
13253
13254 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
13255             Richard Guenther  <richard.guenther@gmail.com>
13256
13257         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
13258         copy the src value and return a copy.
13259         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
13260         (C++ Volatiles): Adjust to describe C++ semantics only.
13261
13262 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
13263
13264         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
13265         be zero or nonzero.
13266         * doc/tm.texi: Regenerate.
13267         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
13268         * df-scan.c (df_get_exit_block_use_set), reginfo.c
13269         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
13270         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
13271         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
13272         to 1.
13273
13274 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13275
13276         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
13277         an extra nop past a sibling call at the very end.
13278
13279 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
13280
13281         PR bootstrap/45350
13282         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
13283         a comment.
13284
13285 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
13286
13287         * target.def (function_arg, function_incoming_arg): Remove const
13288         qualifier on CUMULATIVE_ARGS parameter.
13289         * targhooks.h (default_function_arg, default_function_incoming_arg):
13290         Likewise.
13291         * targhooks.c (default_function_arg, default_function_incoming_arg):
13292         Likewise.
13293         * config/i386/i386.c (ix86_function_arg): Likewise.
13294
13295 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
13296
13297         PR target/45336
13298         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
13299         SIGN_EXTENDs or ZERO_EXTENDs.
13300
13301 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
13302
13303         PR target/42172
13304         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
13305         Take its cost into account if nonnull.
13306         (insn_a_feeds_b): New static function.
13307         (combine_instructions): Look for four-insn combinations.
13308         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
13309         them into account when computing all_adjacent and looking for other
13310         uses.
13311         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
13312         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
13313         (try_combine): New arg I0.  Handle four-insn combinations.
13314         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
13315         like ELIM_I1.
13316
13317 2010-08-19  Jason Merrill  <jason@redhat.com>
13318
13319         PR c++/45307
13320         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
13321         if ctor is empty.
13322         (gimplify_modify_expr_rhs): Adjust.
13323
13324 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
13325
13326         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
13327         bitmap_bit_p.
13328         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
13329         * dominance.c (iterate_fix_dominators): Likewise.
13330         * dse.c (set_usage_bits): Likewise.
13331         (set_position_unneeded, record_store): Likewise.
13332         * gimple-fold.c (get_maxval_strlen): Likewise.
13333         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
13334         * ipa-inline.c (update_caller_keys): Likewise.
13335         * ipa-split.c (verify_non_ssa_vars): Likewise.
13336         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
13337         (close_type_exposed_parameter, close_type_full_escape): Likewise.
13338         (close_addressof_down): Likewise.
13339         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
13340         (setup_allocno_left_conflicts_size): Likewise.
13341         (ira_reassign_conflict_allocnos): Likewise.
13342         (ira_reassign_pseudos): Likewise.
13343         * ira-emit.c (change_loop): Likewise.
13344         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
13345         * lto-streamer-out.c (write_symbol): Likewise.
13346         * predict.c (expr_expected_value_1): Likewise.
13347         * regstat.c (regstat_bb_compute_ri): Likewise.
13348         * sel-sched.c (create_block_for_bookkeeping): Likewise.
13349         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
13350         * stmt.c (expand_case): Likewise.
13351         * tree-eh.c (emit_eh_dispatch): Likewise.
13352         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
13353         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
13354         Likewise.
13355         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
13356         (rdg_build_components): Likewise.
13357         * tree-object-size.c (collect_object_sizes_for): Likewise.
13358         * tree-sra.c (convert_callers): Likewise.
13359         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
13360         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
13361         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
13362
13363 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
13364
13365         * config/i386/i386.md (*lea_1): Use P mode iterator.
13366         (lea add splitter): Also handle DImode operands.
13367         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
13368         predicate.  Do not use ix86_lea_for_add_ok.
13369         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
13370         (lea ashift splitter): Also handle DImode operands.
13371         (DImode lea ashift splitter): Remove splitter.
13372
13373 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
13374
13375         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
13376         ix86_binary_operator_ok.
13377
13378 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
13379
13380         PR rtl-optimization/44691
13381         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
13382         is not a register.
13383
13384 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
13385
13386         PR target/45070
13387         * config/arm/arm.c (arm_output_epilogue): Ensure that return
13388          value of size 1-3 is handled correctly.
13389
13390 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
13391
13392         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
13393         type for the conditional has wide enough range.
13394
13395 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
13396
13397         PR target/45327
13398         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
13399         ix86_binary_operator_ok.
13400
13401 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
13402
13403         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
13404         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
13405         code to output insn mnemonic.  Fix comment.
13406         (*addsi_1_zext): Add r-r-0 alternative 1.
13407         <TYPE_LEA>: Split insn to lea.
13408         <default>: Handle alternative 1.
13409         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
13410         multi-level if_then_else RTX to set "type" attribute.
13411         <default>: Handle alternative 2.
13412         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
13413         Use cond RTX instead of multi-level if_then_else RTX to set
13414         "type" attribute.
13415         <default>: Handle alternatives 2 and 4.
13416         (lea splitters): Update calls to ix86_lea_for_add_ok.
13417
13418         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
13419         argument.
13420         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
13421
13422 2010-08-18  Richard Guenther  <rguenther@suse.de>
13423
13424         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
13425         use operand helpers.
13426
13427 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
13428
13429         PR middle-end/45292
13430         * optabs.c (expand_bool_compare_and_swap): Expand pending
13431         pops before trying the optab.
13432
13433 2010-08-18  Yao Qi  <yao@codesourcery.com>
13434
13435         PR target/45094
13436         * config/arm/arm.c (output_move_double): Fix typo generating
13437         instructions ('ldr'->'str').
13438
13439 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
13440
13441         PR rtl-optimization/42575
13442         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
13443         live ranges.
13444
13445 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13446
13447         * config/arm/arm-protos.h (arm_expand_sync): New.
13448         (arm_output_memory_barrier, arm_output_sync_insn): New.
13449         (arm_sync_loop_insns): New.
13450         * config/arm/arm.c (FL_ARCH7): New.
13451         (FL_FOR_ARCH7): Include FL_ARCH7.
13452         (arm_arch7): New.
13453         (arm_print_operand): Support %C markup.
13454         (arm_legitimize_sync_memory): New.
13455         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
13456         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
13457         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
13458         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
13459         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
13460         (arm_process_output_sync_insn, arm_output_sync_insn): New.
13461         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
13462         * config/arm/arm.h (struct arm_sync_generator): New.
13463         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
13464         (TARGET_HAVE_MEMORY_BARRIER): New.
13465         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
13466         * config/arm/arm.md: Include sync.md.
13467         (UNSPEC_MEMORY_BARRIER): New.
13468         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
13469         (VUNSPEC_SYNC_OP):New.
13470         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
13471         (sync_result, sync_memory, sync_required_value): New attributes.
13472         (sync_new_value, sync_t1, sync_t2): Likewise.
13473         (sync_release_barrier, sync_op): Likewise.
13474         (length): Add logic to length attribute defintion to call
13475         arm_sync_loop_insns when appropriate.
13476         * config/arm/sync.md: New file.
13477
13478 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
13479
13480         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
13481         ENABLE_TREE_CHECKING.
13482         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
13483         and GCC >= 4.3.
13484
13485 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
13486
13487         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
13488         or optimizing for size, always avoid lea if possible.
13489
13490         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
13491
13492 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
13493
13494         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
13495         Dunmmy function with NULL return unless the target is
13496         OSX >= 10.6 (Darwin10).
13497
13498 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
13499
13500         * gcc.c (spec_function): Add remove-outfile.
13501         (remove_outfile_spec_function): New function.
13502         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
13503         * invoke.texi (replace-outfile): Document.
13504
13505 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
13506
13507         PR target/45296
13508         * reginfo.c (globalize_reg): Reject stack registers.
13509
13510 2010-08-17  Richard Guenther  <rguenther@suse.de>
13511
13512         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
13513         list of conditional equivalences.
13514         (free_all_edge_infos): Adjust.
13515         (record_equivalences_from_incoming_edge): Likewise.
13516         (record_cond): Likewise.
13517         (build_and_record_new_cond): Likewise.
13518         (record_conditions): Likewise.
13519         (dom_opt_leave_block): Likewise.
13520
13521 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
13522
13523         * doc/invoke.texi (ms-extension): Add documentation.
13524
13525 2010-08-17  Richard Guenther  <rguenther@suse.de>
13526
13527         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
13528
13529 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
13530
13531         PR c/40563
13532         * c-decl.c (diagnose_uninitialized_cst_member): New function.
13533         (finish_decl): Use it to issue a -Wc++-compat warning about
13534         uninitialized const field in struct or union.
13535
13536         (finish_struct): Use strip_array_types.
13537
13538 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
13539
13540         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
13541         functions.
13542         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
13543         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
13544         call block_nreverse here.
13545         (blocks_nreverse): Rename decl temporary to block.
13546
13547 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
13548
13549         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
13550         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
13551         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
13552         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
13553         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
13554         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
13555         thumb2_iorsi3): Delete.
13556         (orsi_notsi_si): No longer a named pattern.
13557         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
13558         * config/arm/predicates.md (shift_amount_operand): New.
13559         (mult_operator): New.
13560         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
13561         attr enabled): New.
13562         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
13563         arch matches t2.
13564         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
13565         (not_shiftsi_compare0): Likewise, renamed from
13566         arm_notsi_shiftsi_compare0.
13567         (not_shiftsi_compare0_scratch): Likweise, renamed from
13568         arm_notsi_shiftsi_compare0_scratch.
13569         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
13570         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
13571         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
13572         so that the register alternative is disabled when the shift_operator
13573         is MULT.  Use "M" as the constraint for constants.
13574         (arith_shiftsi splitter): Enable for TARGET_32BIT.
13575         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
13576         constraint for constants.
13577         (arith_shiftsi_compare0_scratch): Likewise.
13578         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
13579         Handle Thumb2 alternative.
13580
13581 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
13582
13583         * doc/options.texi (NoDriverArg): Document.
13584         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
13585         -MDX and -MMDX.
13586         * opt-functions.awk (switch_flags): Handle NoDriverArg.
13587         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
13588         marking for CL_NO_DRIVER_ARG options when in the driver.
13589         * opts.h (CL_NO_DRIVER_ARG): Define.
13590         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13591         CL_COMMON): Update values.
13592
13593 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
13594
13595         * common.opt: Add driver options.
13596         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
13597         * doc/options.texi (Driver, RejectDriver): Document.
13598         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
13599         print_prog_name, print_multi_directory, print_sysroot,
13600         print_multi_os_directory, print_multi_lib,
13601         print_sysroot_headers_suffix, report_times, combine_flag,
13602         use_pipes, wrapper_string): Remove.
13603         (save_switch, driver_unknown_option_callback,
13604         driver_wrong_lang_callback, driver_post_handling_callback,
13605         driver_handle_option): New.
13606         (spec_lang, last_language_n_infiles): Make file-scope static
13607         instead of local to process_command.
13608         (process_command): Use decode_cmdline_options_to_array and
13609         read_cmdline_option for option processing.  Compute have_c in
13610         prescan of decoded options.
13611         * opt-functions.awk (switch_flags): Handle Driver and
13612         RejectDriver.
13613         (var_type, var_type_struct): Handle Separate options as generating
13614         const char * variables.
13615         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
13616         CL_TARGET to be passed by caller if required.
13617         (decode_cmdline_options_to_array): Update comment.
13618         * opts.c (complain_wrong_lang): Handle options only valid for the
13619         driver.
13620         (decode_options): Update call to decode_cmdline_options_to_array.
13621         (print_filtered_help): Ignore driver-only options.
13622         (print_specific_help): Ignore CL_DRIVER.
13623         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
13624         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
13625         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
13626         Update values.
13627
13628 2010-08-16  Richard Guenther  <rguenther@suse.de>
13629
13630         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13631         TARGET_MEM_REF a bit.
13632         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
13633         (create_mem_ref_raw): Always create TMR_OFFSET, store the
13634         alias pointer type via it.
13635         (copy_mem_ref_info): Adjust.
13636         (maybe_fold_tmr): Likewise.
13637         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
13638         (reference_alias_ptr_type): Likewise.
13639         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
13640         adjust documentation of TMR_OFFSET operand.
13641         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
13642         use the alias pointer type.
13643         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
13644         initialize mem attrs but the TMR itself.
13645         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
13646         similar to MEM_REF.
13647         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
13648         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
13649         (unshare_and_remove_ssa_names): Likewise.
13650         (copy_ref_info): Adjust.
13651         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
13652         TARGET_MEM_REF case.
13653         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
13654         at TMR_ORIGINAL.
13655         * tree.h (TMR_ORIGINAL): Remove.
13656         * gimple.c (get_base_address): For TARGET_MEM_REF with a
13657         symbol return that.
13658         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
13659         with a symbol.
13660         (get_addr_base_and_unit_offset): Likewise.
13661         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
13662         TARGET_MEM_REFs.
13663         (indirect_ref_may_alias_decl_p): Likewise.
13664         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
13665
13666 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
13667
13668         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
13669         with GCC version 4.6, the default setting (when not optimizing
13670         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
13671         been changed to -fomit-frame-pointer.
13672
13673 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
13674
13675         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
13676         Darwin10.  Do not link libgcc.a for Darwin >= 9.
13677
13678 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
13679
13680         * doc/invoke.texi (Warning Options): Fix terminology and markup
13681         in the description of how unknown warning options are handled.
13682
13683 2010-08-15  Ira Rosen  <irar@il.ibm.com>
13684
13685         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
13686         in basic blocks.
13687         (vect_supportable_dr_alignment): Check alignment for basic blocks.
13688         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
13689         data references.
13690         (vect_bb_vectorization_profitable_p): New function.
13691         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
13692         check if it's worthwhile to vectorize the basic block.
13693
13694 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
13695
13696         * reload.h (register_move_cost, memory_move_secondary_cost,
13697         secondary_reload_class): Adjust prototype.
13698         * rtl.h (reg_class_subset_p): Adjust prototype.
13699         * reload.c (secondary_reload_class): Change arguments type from
13700         enum reg_class to reg_class_t. Change result type to reg_class_t.
13701         * reginfo.c (register_move_cost, reg_class_subset_p): Change
13702         arguments type from enum reg_class to reg_class_t.
13703         (memory_move_secondary_cost): Change arguments type from
13704         enum reg_class to reg_class_t. Change type of saved_flags to
13705         reg_class_t.
13706
13707         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13708         Remove macros.
13709         (mips_cost): Remove.
13710         (struct mips_rtx_cost_data): Moved to mips.c.
13711         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
13712         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
13713         (mips_cost): Make static.
13714         (mips_canonicalize_move_class): Change argument type to reg_class_t.
13715         Change result type to reg_class_t.
13716         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
13717         type from enum reg_class to reg_class_t.
13718         (mips_register_move_cost): Make static. Change arguments
13719         type from enum reg_class to reg_class_t.
13720         (mips_memory_move_cost): New function.
13721         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13722
13723 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
13724
13725         PR rtl-optimization/43358
13726         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
13727         of a single hard register, using simplify_subreg_regno to decide
13728         what that register should be.
13729
13730 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
13731
13732         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
13733         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
13734         (loongson_pmull<V_suffix>): Rename to...
13735         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
13736
13737 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
13738
13739         * configure.ac: Enable -fomit-frame-pointer on darwin
13740         which support dwarf2.
13741         * config/i386/i386.c (override_options): Same.
13742
13743 2010-08-13  Jie Zhang  <jie@codesourcery.com>
13744
13745         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
13746
13747 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
13748
13749         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
13750         -MMD.
13751
13752 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
13753
13754         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
13755         up dot_prod pattern searching if a stmt is outside the loop.
13756
13757 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
13758             Uros Bizjak  <ubizjak@gmail.com>
13759
13760         * config.gcc: Handle --enable-frame-pointer.
13761
13762         * configure.ac: Add --enable-frame-pointer.
13763         * configure: Regenerated.
13764
13765         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
13766         (override_options): If not configured with --enable-frame-pointer,
13767         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
13768         optimizing for size), -fasynchronous-unwind-tables and
13769         -maccumulate-outgoing-args by default.
13770
13771 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
13772
13773         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
13774
13775         PR middle-end/45262
13776         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
13777         -a overflows.  Normalize the range.
13778
13779 2010-08-12  Richard Guenther  <rguenther@suse.de>
13780
13781         PR tree-optimization/45232
13782         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
13783         for types with undefined overflow.
13784         (reassociate_bb): Allow re-associating of bit and min/max
13785         operations for types with undefined overflow.
13786         * tree-ssa-forwprop.c (associate_plusminus): New function.
13787         (tree_ssa_forward_propagate_single_use_vars): Call it.
13788
13789 2010-08-12  Richard Guenther  <rguenther@suse.de>
13790
13791         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
13792         * tree-ssa-alias.c (get_ptr_info): Move ...
13793         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
13794         align and misalign fields conservatively.
13795         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
13796         derive alignment information.
13797         (evaluate_stmt): Derive alignment information from memory
13798         allocation functions.
13799         * tree.h (get_pointer_alignment): Make unsigned.
13800         * builtins.c (get_object_alignment): Use alignment information we
13801         have computed for pointers.
13802         (get_pointer_alignment): Likewise.  Make conservative, return
13803         and unsigned value.
13804         (expand_builtin_strlen): Adjust.
13805         (expand_builtin_memcmp): Likewise.
13806         (expand_builtin_strcmp): Likewise.
13807         (expand_builtin_strncmp): Likewise.
13808         (get_builtin_sync_mem): Use at least mode alignment.
13809         (fold_builtin_memset): Adjust.
13810         (fold_builtin_memory_op): Likewise.
13811         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
13812         information also dump pointer alignment knowledge.
13813         (dump_gimple_stmt): Likewise.
13814
13815 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
13816
13817         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
13818         (EMPTY_FIELD_BOUNDARY): Remove.
13819         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
13820
13821 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
13822
13823         PR debug/45259
13824         * caller-save.c (save_call_clobbered_regs): Only swap notes with
13825         DEBUG_INSNs if n_regs_saved.
13826
13827 2010-08-12  Wei Guozhi  <carrot@google.com>
13828
13829         PR target/44999
13830         * config/arm/arm.md (andsi3): Change to zero extension if possible.
13831         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
13832
13833 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
13834
13835         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
13836
13837         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
13838
13839 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13840
13841         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
13842         the case removed in the previous patch, when the only phi argument
13843         is defined in the same loop as the phi node itself.  Handle it
13844         separately from the invariant case by both propagating it outside
13845         the region and replacing the phi node with an assign.
13846
13847 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13848
13849         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
13850         constant phi nodes with one argument are is_gimple_min_invariant
13851         and SSA_NAME_IS_DEFAULT_DEF.
13852
13853 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13854
13855         * graphite-cloog-util.c (oppose_constraint):
13856         Extend loop counter's value range (CLOOG_ORG).
13857         (cloog_matrix_to_ppl_constraint): Same.
13858         (new_Constraint_System_from_Cloog_matrix): Same.
13859         * graphite-cloog-compat.h (matrix_num_type): New.
13860
13861 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13862
13863         * graphite.c (graphite_initialize): Do not initialize
13864         CLooG and initialize the Parma Polyhedra Library
13865         manually when using CLOOG_ORG.
13866         (graphite_finalize): Do not finalize CLooG and finalize
13867         the Parma Polyhedra Library manually when using CLOOG_ORG.
13868         * graphite-cloog-compat.h (cloog_initialize): Hide function
13869         when using CLOOG_ORG.
13870         (cloog_finalize): Same.
13871
13872 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13873
13874         * graphite-clast-to-gimple.c (free_scattering): Change
13875         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
13876         (CLOOG_ORG).
13877         (build_cloog_prog): Same.
13878         * graphite-cloog-compat.h (cloog_domain): Removed.
13879         (cloog_scattering): New.
13880         (cloog_set_domain): Removed.
13881         (cloog_set_scattering): New.
13882         (cloog_next_domain): Removed.
13883         (cloog_next_scattering): New.
13884         (cloog_set_next_domain): Removed.
13885         (cloog_set_next_scattering): New.
13886         (CloogScatteringList): New.
13887         (CloogScattering): New.
13888         (cloog_scattering_free): New.
13889         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
13890         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
13891         New.
13892
13893 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13894
13895         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
13896         CloogState.
13897         (set_cloog_options): Same.
13898         (print_clast_stmt): Same.
13899         (scop_to_clast): Same.
13900         (print_generated_program): Same.
13901         (gloog): Same.
13902         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
13903         (scop_to_clast): Extend with CloogState.
13904         * graphite-cloog-util.c: Include graphite-cloog-compat.h
13905         (new_Cloog_Domain_from_ppl_Polyhedron):
13906         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
13907         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
13908         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13909         * graphite-cloog-util.h (build_cloog_prog): Same.
13910         * graphite-cloog-copat.h (build_cloog_prog): New.
13911         (CloogState): New.
13912         (cloog_state_malloc): New.
13913         (cloog_state_free): New.
13914         (cloog_loop_malloc): New.
13915         (cloog_options_malloc): New.
13916         (cloog_statement_alloc): New.
13917         (cloog_domain_from_cloog_matrix): New.
13918         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
13919         (new_Cloog_Domain_from_ppl_Polyhedron): New.
13920
13921 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13922
13923         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
13924         type of NAME now depends on used CLooG version.
13925         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
13926         (gcc_type_for_clast_expr): Same.
13927         (print_clast_stmt): Replace pprint with clast_pprint.
13928         * graphite-cloog-compat.h: Provide compatibility macros for
13929         CLooG Legacy.
13930         (clast_name_p): New.
13931         (clast_expr_term): New.
13932         (clast_expr_red): New.
13933         (clast_expr_bin): New.
13934         (clast_pprint): New.
13935
13936 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13937
13938         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
13939         compatible to newer CLooG releases (CLOOG_ORG).
13940         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
13941         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
13942         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
13943         (build_cloog_prog) : New.
13944         (cloog_program_extract_scalars): New.
13945         (cloog_program_scatter): New.
13946
13947 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13948
13949         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
13950         conditionally (CLOOG_ORG).
13951         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
13952         (cloog_statement_usr): New.
13953         (cloog_domain): Same.
13954         (cloog_set_domain): Same.
13955         (cloog_next_domain): Same.
13956         (cloog_set_next_domain): Same.
13957         (cloog_program_nb_scattdims): Same.
13958         (cloog_program_set_nb_scattdims): Same.
13959         (cloog_program_names): Same.
13960         (cloog_program_set_names): Same.
13961         (cloog_program_set_context): Same.
13962         (cloog_program_set_loop): Same.
13963         (cloog_program_blocklist): Same.
13964         (cloog_program_set_blocklist): Same.
13965         (cloog_program_scaldims): Same.
13966         (cloog_program_set_scaldims): Same.
13967         (cloog_names_nb_parameters): Same.
13968         (cloog_names_set_nb_parameters): Same.
13969         (cloog_names_parameters): Same.
13970         (cloog_names_set_parameters): Same.
13971         (cloog_names_set_nb_iterators): Same.
13972         (cloog_names_set_iterators): Same.
13973         (cloog_names_set_nb_scattering): Same.
13974         (cloog_names_set_scattering): Same.
13975         (cloog_statement_set_usr): Same.
13976         (cloog_loop_set_next): Same.
13977         (cloog_loop_set_domain): Same.
13978         (cloog_loop_set_block): Same.
13979         (cloog_block_list_next): Same.
13980         (cloog_block_list_set_next):
13981         (cloog_block_list_set_block): Same.
13982
13983 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13984
13985         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
13986         a bool.
13987         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
13988         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
13989         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
13990         when something has been changed.
13991         (rewrite_commutative_reductions_out_of_ssa): Same.
13992
13993 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13994
13995         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
13996         handle the case when def is in the sese region.
13997         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
13998         for invariant expressions.
13999         (rewrite_cross_bb_phi_deps): Removed.
14000         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14001         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14002         rewrite_cross_bb_phi_deps.
14003
14004 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14005
14006         * graphite-sese-to-poly.c
14007         (rewrite_commutative_reductions_out_of_ssa_loop): Call
14008         scev_analyzable_p only on is_gimple_reg
14009
14010 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14011
14012         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14013         (rewrite_close_phi_out_of_ssa): Propagate constant values or
14014         parametric expressions outside the scop region.
14015         (rewrite_cross_bb_scalar_deps): Same.
14016         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14017
14018 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14019
14020         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
14021         SSA_NAME_DEF_STMT only on SSA_NAMEs.
14022
14023 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14024
14025         * tree-scalar-evolution.c (instantiate_scev_name): Do not
14026         instantiate default definitions.
14027
14028 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
14029             Sebastian Pop  <sebastian.pop@amd.com>
14030
14031         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
14032         (loop_exits_from_bb_p): New.
14033         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
14034         (loop_exits_from_bb_p): Declared.
14035         * graphite-scop-detection.c (scopdet_basic_block_info): Call
14036         loop_exits_to_bb_p.
14037
14038 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14039
14040         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
14041         extra parameter for the region.  Call scev_analyzable_p.
14042         (rewrite_reductions_out_of_ssa): Update call to
14043         rewrite_close_phi_out_of_ssa.
14044         (rewrite_cross_bb_phi_deps): Same.
14045         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
14046         parameter for the region.  Call scev_analyzable_p.
14047         (rewrite_commutative_reductions_out_of_ssa): Update call to
14048         rewrite_commutative_reductions_out_of_ssa_loop.
14049
14050 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14051
14052         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
14053
14054 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14055
14056         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
14057         SSA scalar phi nodes that can be scev_analyzable_p.
14058
14059 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14060
14061         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
14062         handle SSA_NAME_IS_DEFAULT_DEF.
14063
14064 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14065
14066         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
14067
14068 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14069
14070         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
14071         case non close-phi nodes with one argument.
14072
14073 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14074
14075         * sese.h (scev_analyzable_p): Scevs could be expressions without
14076         chrecs and still be scev_analyzable_p.
14077
14078 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14079
14080         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14081
14082 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14083
14084         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
14085         * cfgloop.h (struct loop): Remove single_iv field.
14086         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
14087         (scop_canonicalize_loops): Removed.
14088         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
14089         over all the loop phi nodes in loop->header.
14090         (build_poly_scop): Remove use of scop_canonicalize_loops.
14091
14092 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14093
14094         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
14095         handle GIMPLE_CALL.
14096
14097 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14098
14099         * tree-chrec.c (chrec_apply): Should only apply to the specified
14100         variable.  Also handle multivariate chains of recurrences that
14101         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
14102
14103 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14104
14105         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
14106         (debug_clast_name_indexes_1): Removed.
14107         (debug_clast_name_indexes): Removed.
14108         (pbb_to_depth_to_oldiv): Removed.
14109         (build_iv_mapping): Replace the use of rename_map with iv_map.
14110         (translate_clast_user): Remove uses of rename_map.  Allocate and
14111         free iv_map.
14112         (translate_clast_for_loop): Remove uses of rename_map.
14113         (translate_clast_for): Same.
14114         (translate_clast_guard): Same.
14115         (translate_clast): Same.
14116         (gloog): Same.
14117         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
14118         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
14119         * sese.c (set_rename): Now static.
14120         (rename_variables_in_stmt): Removed.
14121         (rename_uses): New.
14122         (is_parameter): Removed.
14123         (is_iv): Removed.
14124         (expand_scalar_variables_call): Removed.
14125         (expand_scalar_variables_ssa_name): Removed.
14126         (expand_scalar_variables_expr): Removed.
14127         (expand_scalar_variables_stmt): Removed.
14128         (expand_scalar_variables): Removed.
14129         (rename_variables): Removed.
14130         (remove_condition): Removed.
14131         (get_true_edge_from_guard_bb): Removed.
14132         (get_false_edge_from_guard_bb): Removed.
14133         (struct igp): Removed.
14134         (default_before_guard): Removed.
14135         (convert_for_phi_arg): Removed.
14136         (add_guard_exit_phis): Removed.
14137         (insert_guard_phis): Removed.
14138         (graphite_copy_stmts_from_block): Now also uses iv_map and a
14139         region.  Do not copy conditions.  Do not copy induction variables.
14140         Call rename_uses.
14141         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
14142         the translated statement.  Use the iv_map for the induction
14143         variable renaming.
14144         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
14145         (set_rename): Removed declaration.
14146         (scev_analyzable_p): ...here.
14147         * tree-chrec.c (chrec_apply_map): New.
14148         * tree-chrec.h (chrec_apply_map): Declared.
14149
14150 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14151
14152         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
14153         insert_loop_close_phis.
14154         * sese.c (name_defined_in_loop_p): Removed.
14155         (expr_defined_in_loop_p): Removed.
14156         (alive_after_loop): Removed.
14157         (close_phi_not_yet_inserted_p): Removed.
14158         (struct alep): Removed.
14159         (add_loop_exit_phis): Removed.
14160         (insert_loop_close_phis): Removed.
14161
14162 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14163
14164         * graphite-cloog-util.c
14165         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
14166         * graphite-poly.c
14167         (psct_scattering_dim_for_loop_depth): Same.
14168
14169 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14170
14171         * graphite-cloog-util.h: Added cloog.h.
14172         * graphite-blocking.c: Removed cloog.h.
14173         * graphite-dependences.c: Same.
14174         * graphite-interchange.c: Same.
14175         * graphite-poly.c: Same.
14176         * graphite-ppl.c: Same.
14177         * graphite-scop-detection.c: Same.
14178         * graphite-sese-to-poly.c:
14179         Removed cloog.h.
14180         Removed graphite-clast-to-gimple.h.
14181         (check_poly_representation): Removed (unused).
14182         * graphite-sese-to-poly.h
14183         (check_poly_representation): Removed (unused).
14184
14185 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14186
14187         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
14188         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
14189         (graphite-cloog-util.o): New.
14190         (graphite-ppl.o): Added graphite-cloog-util.h.
14191         * graphite-clast-to-gimple.c:
14192         Added graphite-cloog-util.h to include statements.
14193         * graphite-cloog-util.c: New.
14194         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
14195         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14196         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14197         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14198         (insert_constraint_into_matrix): Same.
14199         (ppl_Constrain_System_number_of_constraints): Same.
14200         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14201         (oppose_constraint): Same.
14202         (cloog_matrix_to_ppl_constraint): Same.
14203         (new_Constraint_System_from_Cloog_Matrix): Same.
14204         * graphite-cloog-util.h: New.
14205         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
14206         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14207         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14208         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14209         (insert_constraint_into_matrix): Same.
14210         * graphite-ppl.c:
14211         Added graphite-cloog-util.h to include statements.
14212         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
14213         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14214         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14215         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14216         (insert_constraint_into_matrix): Same.
14217         (ppl_Constrain_System_number_of_constraints): Same.
14218         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14219         (oppose_constraint): Same.
14220         (cloog_matrix_to_ppl_constraint): Same.
14221         (new_Constraint_System_from_Cloog_Matrix): Same.
14222         * graphite-ppl.h:
14223         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
14224         graphite-cloog-util.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
14230 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14231
14232         * graphite-clast-to-gimple.c
14233         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
14234         (precision_for_interval): Same.
14235         (gcc_type_for_interval): Same.
14236         (compute_type_for_level): Same.
14237         * graphite-interchange.c
14238         (lst_interchange_profitable_p): Same.
14239         * graphite-poly.c
14240         (psct_scattering_dim_for_loop_depth): Same.
14241         * graphite-ppl.c
14242         (ppl_max_for_le_pointset): Same.
14243         (ppl_min_for_le_pointset): Same.
14244
14245 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14246
14247         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
14248         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
14249
14250 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14251
14252         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
14253         rewrite_close_phi_out_of_ssa.
14254
14255 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14256
14257         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
14258
14259 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14260
14261         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
14262         rename_map.
14263         * sese.c (debug_rename_map): Same.
14264         (get_rename): Same.
14265         (set_rename): Same.
14266         (rename_variables_in_stmt): Same.
14267         (expand_scalar_variables_call): Same.
14268         (expand_scalar_variables_ssa_name): Same.
14269         (expand_scalar_variables_expr): Same.
14270         (expand_scalar_variables_stmt): Same.
14271         (expand_scalar_variables): Same.
14272         (rename_variables): Same.
14273         (graphite_copy_stmts_from_block): Same.
14274         (copy_bb_and_scalar_dependences): Same.
14275
14276 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14277
14278         * graphite-clast-to-gimple.c (copy_renames): Removed.
14279         (translate_clast_for): Do not call copy_renames.
14280         (translate_clast_guard): Same.
14281
14282 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14283
14284         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
14285         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
14286         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
14287         before rewrite_cross_bb_scalar_deps.
14288
14289 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14290
14291         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
14292         Early return in when flag_associative_math is not set.
14293
14294 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14295
14296         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
14297         of SSA copies on edges except for loop->latch.
14298
14299 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14300
14301         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
14302         Split out of rewrite_reductions_out_of_ssa.
14303         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
14304         Declared.
14305         * graphite.c (graphite_transform_loops): Call it.
14306
14307 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14308
14309         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
14310
14311 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
14312
14313         * dbgcnt.def (graphite_scop): New counter.
14314         * graphite.c: Include dbgcnt.h.
14315         (graphite_transform_loops): Use new counter to limit transformations.
14316         * Makefile.in (graphite.o): Depend on DBGCNT_H.
14317
14318 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14319
14320         * passes.c (init_optimization_passes): Add pass_graphite.
14321         Schedule a pass_copy_prop before pass_graphite_transforms.
14322         * timevar.def (TV_GRAPHITE): Declared.
14323         * tree-pass.h (pass_graphite): Declared.
14324         * tree-ssa-loop.c (pass_graphite): New.
14325
14326 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14327
14328         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
14329         Remove calls to rename_nb_iterations and rename_sese_parameters.
14330         * graphite-clast-to-gimple.h (gloog): Update declaration.
14331         * graphite.c (graphite_transform_loops): Update call to gloog.
14332         * sese.c (rename_variables_in_expr): Removed.
14333         (rename_nb_iterations): Removed.
14334         (rename_sese_parameters): Removed.
14335         * sese.h (rename_nb_iterations): Removed.
14336         (rename_sese_parameters): Removed.
14337
14338 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14339
14340         * graphite-clast-to-gimple.c (gloog): Remove call to
14341         sese_adjust_liveout_phis.
14342         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
14343         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
14344         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
14345         rewrite_phi_out_of_ssa.
14346         * sese.c (get_vdef_before_sese): Removed.
14347         (sese_adjust_vphi): Removed.
14348         (sese_adjust_liveout_phis): Removed.
14349         * sese.h (sese_adjust_liveout_phis): Removed.
14350
14351 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14352
14353         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
14354         argument for the place after which to insert the out of SSA copy.
14355         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
14356         (rewrite_phi_out_of_ssa): Same.
14357         (rewrite_cross_bb_scalar_deps): Same.
14358         (insert_copyout): Removed.
14359         (insert_copyin): Removed.
14360         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
14361         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
14362         insert_copyin.
14363
14364 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14365
14366         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
14367         (rewrite_reductions_out_of_ssa): Same.
14368         (rewrite_commutative_reductions_out_of_ssa): Same.
14369         (build_poly_scop): Do not call these functions.
14370         * graphite-sese-to-poly.h (build_poly_scop): Declared.
14371         (rewrite_reductions_out_of_ssa): Declared.
14372         (rewrite_commutative_reductions_out_of_ssa): Declared.
14373         * graphite.c (graphite_transform_loops): Call on every scop
14374         rewrite_commutative_reductions_out_of_ssa before calling
14375         rewrite_reductions_out_of_ssa and build_scop_bbs.
14376
14377 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14378
14379         * graphite-dependences.c (dot_deps): Make system call to dotty run
14380         in background.
14381         (dot_deps_stmt): Same.
14382         * graphite-poly.c (dot_lst): Same.
14383
14384 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14385
14386         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
14387         phi_arg_in_outermost_loop.
14388         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
14389         (remove_invariant_phi): Same.
14390
14391 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
14392
14393         * target.def (output_addr_const_extra): New hook.
14394         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
14395         * doc/tm.texi: Regenerate.
14396         * targhooks.c (default_asm_output_addr_const_extra): New function.
14397         * targhooks.h (default_asm_output_addr_const_extra): Declare.
14398         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
14399         target hook.
14400
14401         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14402         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
14403         * config/i386/i386.h (output_addr_const_extra): Rename to...
14404         (i386_asm_output_addr_const_extra): ...this. Make static.
14405         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14406
14407 2010-08-11  Richard Henderson  <rth@redhat.com>
14408
14409         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
14410
14411 2010-08-11  Nick Clifton  <nickc@redhat.com>
14412
14413         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
14414         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
14415         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
14416         stormy16-lib2-cmpsi.c.
14417
14418         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
14419         -O2.
14420
14421 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
14422
14423         * opts.h (struct cl_option_handler_func): Make handler take
14424         cl_decoded_option structure as parameter, not individual elements.
14425         (struct cl_option_handlers): Make callbacks take cl_decoded_option
14426         structure as parameter, not individual elements.
14427         (handle_option): Take cl_decoded_option structure as parameter,
14428         not individual elements.
14429         (handle_generated_option): Declare.
14430         * opts-common.c (handle_option): Take cl_decoded_option structure
14431         as parameter, not individual elements.  Update calls to callback
14432         and handler functions.
14433         (handle_generated_option): New.
14434         (read_cmdline_option): Update calls to callback functions and
14435         handle_option.
14436         * opts.c (common_handle_option, complain_wrong_lang,
14437         unknown_option_callback, post_handling_callback,
14438         lang_handle_option, target_handle_option): Take cl_decoded_option
14439         structure as parameter, not individual elements.
14440         (lang_handle_option, target_handle_option, common_handle_option):
14441         Assert option has at most one argument.
14442         (enable_warning_as_error): Call handle_generated_option instead of
14443         handle_option.  Do not pass -Werror argument as argument of
14444         generated option.
14445
14446 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14447
14448         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14449         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14450         (SUBWORD_BOOL_CAS): Likewise.
14451         (SUBWORD_SYNC_OP): Likewise.
14452         (SUBWORD_TEST_AND_SET): Likewise.
14453         (FETCH_AND_OP_WORD): Parenthesise INF_OP
14454         (SUBWORD_SYNC_OP): Likewise.
14455         (OP_AND_FETCH_WORD): Likewise.
14456
14457 2010-08-10  Xinliang David Li  <davidxl@google.com>
14458
14459         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
14460         compute max/min offset in address.
14461
14462 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
14463
14464         * ira-live.c: Include sbitmap.h.
14465         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
14466         Compress live ranges even more.
14467
14468 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14469
14470         * coverage.c (ctr_labels): Delete.
14471
14472 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
14473
14474         PR bootstrap/45177
14475         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
14476         test here from arm_gen_load_multiple_1.
14477         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
14478         multiple_operation_profitable_p.
14479
14480 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14481
14482         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
14483         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
14484
14485 2010-08-10  Richard Henderson  <rth@redhat.com>
14486
14487         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
14488         after saving registers.  Assert that SSE registers are only saved
14489         with a sufficiently aligned frame.
14490         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
14491         remove stack_realign_fp handling.
14492         (ix86_expand_prologue): Save int registers before stack_realign_fp,
14493         and do not mark the stack alignment as frame related.
14494         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
14495
14496         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
14497         saves when re-aligning the stack.
14498
14499 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14500
14501         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
14502         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
14503         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
14504
14505 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14506
14507         * dwarf2out.c (struct die_struct): Move die_tag to the end.
14508
14509 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
14510
14511         * config/arm/iterators.md: New file.
14512         * config/arm/arm.md: Include iterators.md.
14513         (QHSI): Move to new file.
14514         (LTUGEU, cnb, optab, ior_xor): Likewise.
14515         * config/arm/iwmmxt.md (VMMX): Move to new file.
14516         (VSHFT, MMX_char): Likewise.
14517         * config/arm/neon.md (VD): Move to new file.
14518         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
14519         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
14520         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
14521         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
14522         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
14523         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
14524         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
14525         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
14526         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
14527         (Is_d_reg, V_mode_nunits): Likewise.
14528         * config/arm/vec-common.md (VALL): Move to new file.
14529         (VALLW, VINT, VINTW): Likewise.
14530
14531 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
14532
14533         PR middle-end/45182
14534         * combine.c (make_compound_operation): Don't try to convert
14535         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
14536
14537 2010-08-10  Richard Guenther  <rguenther@suse.de>
14538
14539         * tree.h (get_object_alignment): Adjust prototype.
14540         * builtins.c (get_object_alignment): Return unsigned int,
14541         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
14542         and TARGET_MEM_REF properly.
14543         (get_pointer_alignment): Adjust.
14544         * emit-rtl.c (get_mem_align_offset): Adjust comment.
14545         (set_mem_attributes_minus_bitpos): Adjust.
14546         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
14547
14548 2010-08-10  Richard Guenther  <rguenther@suse.de>
14549
14550         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
14551         (copy_prop_visit_assignment): Simplify.
14552         (copy_prop_visit_stmt): Also visit assignments from
14553         constants.
14554         (copy_prop_visit_phi_node): Use operand_equal_p.
14555
14556 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14557
14558         * ipa-split.c (find_split_points): Free stack.
14559
14560 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14561
14562         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
14563         * tree.c (tree_node_kind): Delete corresponding entries.
14564
14565 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
14566
14567         * alias.c (may_alias_p): Remove unused ret.
14568
14569 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
14570
14571         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
14572         alias_sets_conflict_p.
14573         (walk_mems_1): Moved from alias.c.
14574         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
14575         in alias.c.
14576         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
14577         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
14578         * alias.c (walk_mems_2): Moved to ddg.c.
14579         (walk_mems_1): Ditto.
14580         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
14581         to ddg.c.
14582         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
14583         disambiguation.
14584         *(may_alias_p): New function to check whether two memory expression
14585         may alias or not. Currently used in buidling inter-iteration memory
14586         dependence.
14587         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
14588         (insn_alias_sets_conflict_p): Removed
14589         *rtl.h (may_alias_p): New function prototype.
14590
14591 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14592
14593         * tree.c (nreverse): Assert that we don't have a BLOCK.
14594
14595 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
14596
14597         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
14598         * config/arm/arm.c (arm_get_pcs_model): Likewise.
14599         * config/avr/avr.c (init_cumulative_args): Likewise.
14600         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
14601         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
14602         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
14603         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
14604         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
14605         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14606         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
14607         * dwarf2out.c (gen_subprogram_die): Likewise.
14608         * function.c (allocate_struct_function): Likewise.
14609         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
14610         (deserves_ellipsis): Delete.
14611
14612 2010-08-09  Richard Guenther  <rguenther@suse.de>
14613
14614         * tree-ssa-copy.c (cached_last_copy_of): Remove.
14615         (valueize_val): New function.
14616         (get_last_copy_of): Remove.
14617         (set_copy_of_val): Simplify.
14618         (dump_copy_of): Likewise.
14619         (copy_prop_visit_cond_stmt): Use valueize_val.
14620         (copy_prop_visit_phi_node): Properly handle unvisited names.
14621         Drop code managing copy-of chains.
14622         (init_copy_prop): Adjust.
14623         (fini_copy_prop): Likewise.
14624         (execute_copy_prop): Remove obsolete comment.
14625
14626 2010-08-09  Richard Guenther  <rguenther@suse.de>
14627
14628         PR middle-end/44632
14629         * function.c (gimplify_parameters): Do not clear addressable
14630         bit of the original parameter.
14631
14632 2010-08-09  Richard Guenther  <rguenther@suse.de>
14633
14634         PR middle-end/45212
14635         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
14636         alignment from MEM_REF offset only if we took it from the
14637         base object.
14638
14639 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
14640
14641         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
14642
14643 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14644
14645         * c-tree.h (build_arg_info): Declare.
14646         * c-decl.c (build_arg_info): Define.
14647         (get_parm_info): Call it.  Delete initialization code.
14648         * c-parser.c (c_parser_parms_declarator): Likewise.
14649         (c_parser_parms_list_declaractor): Likewise.
14650
14651 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14652
14653         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
14654         (struct c_arg_info): Change type of tags field.
14655         * c-decl.c (grokdeclarator): Update for changed type of tags field.
14656         (get_parm_info): Likewise.
14657         (store_parm_decls_newstyle): Likewise.
14658
14659 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
14660
14661         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
14662         (branch_island_list): Delete.
14663         (branch_islands): Declare.
14664         (add_compiler_branch_island): Adjust for branch_islands instead of
14665         branch_island_list.
14666         (macho_branch_islands): Likewise.
14667         (no_previous_def): Likewise.
14668         (get_prev_label): Likewise.
14669
14670 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14671
14672         PR boehm-gc/34544
14673         * gthr-posix.h (__gthread_start): Delete.
14674         (__gthread_active_init): Use pthread_default_stacksize_np instead of
14675         pthread_create to determine if hpux pthreads are active.
14676         * gthr-posix95.h (__gthread_start): Delete.
14677         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
14678
14679 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
14680
14681         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
14682         _WIN64 not expanded.
14683
14684 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
14685             H.J. Lu  <hongjiu.lu@intel.com>
14686
14687         PR target/45213
14688         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
14689         to output 32bit SFmode immediate as 8 byte sign extended value.
14690
14691 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14692
14693         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14694         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14695         (SUBWORD_BOOL_CAS): Likewise.
14696         (SUBWORD_SYNC_OP): Likewise.
14697         (SUBWORD_TEST_AND_SET): Likewise.
14698         (FETCH_AND_OP_WORD): Parenthesise INF_OP
14699         (SUBWORD_SYNC_OP): Likewise.
14700         (OP_AND_FETCH_WORD): Likewise.
14701
14702 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14703
14704         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
14705         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
14706         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
14707         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
14708         generic part.
14709         (cortex_a9_sched_adjust_cost): New function.
14710         (xscale_sched_adjust_cost): New function.
14711         * config/arm/arm-protos.h (struct tune_params): New field
14712         sched_adjust_cost.
14713         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
14714
14715 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
14716
14717         PR target/44942
14718         * config/sparc/sparc.c (function_arg_advance): Always take into account
14719         the padding, if any.
14720
14721 2010-08-06  Richard Guenther  <rguenther@suse.de>
14722
14723         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
14724         (dump_lattice_value): Dump it.
14725         (get_default_value): Adjust.
14726         (get_constant_value): Likewise.
14727         (set_value_varying): Likewise.
14728         (set_lattice_value): Make sure to not go up the lattice
14729         with bitwise constant values.
14730         (get_value_for_expr): Handle ADDR_EXPRs.
14731         (value_to_double_int): New function.
14732         (get_value_from_alignment): Likewise.
14733         (do_dbg_cnt): Adjust.
14734         (ccp_lattice_meet): Handle partially constant values.
14735         (bit_value_unop_1): New function.
14736         (bit_value_binop_1): Likewise.
14737         (bit_value_unop): Likewise.
14738         (bit_value_binop): Likewise.
14739         (evaluate_stmt): Track partially constant values if
14740         flag_tree_bit_ccp is set.
14741         (ccp_fold_stmt): Dump if we folded a predicate.
14742         (ccp_visit_stmt): Adjust.
14743         * common.opt (ftree-bit-ccp): New flag.
14744         * doc/invoke.texi (ftree-bit-ccp): Document.
14745         * opts.c (decode_options): Enable bit-CCP at -O1.
14746
14747 2010-08-06  Alan Modra  <amodra@gmail.com>
14748
14749         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
14750         and -mrelocatable-lib description.
14751
14752 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
14753
14754         From Martin Thuresson  <martint@google.com>
14755         * postreload.c (reload_cse_simplify_operands): Use
14756         SET_REGNO_RAW instead of SET_REGNO.
14757         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
14758         SET_REGNO.
14759         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
14760         instead of SET_REGNO.
14761         * rtl.h (SET_REGNO_RAW): New macro.
14762
14763 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
14764
14765         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
14766         computations.  Fix formatting issues.
14767         (num_sign_bit_copies1): Likewise.
14768         (canonicalize_condition): Likewise.
14769
14770 2010-08-05  Richard Henderson  <rth@redhat.com>
14771
14772         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
14773         (floor_log2): Use clz_hwi.
14774         (exact_log2): Use ctz_hwi.
14775         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
14776         * builtins.c (fold_builtin_bitop): Use them.
14777         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
14778         * combine.c (get_pos_from_mask): Use ctz_hwi.
14779         * double-int.c (double_int_ctz): Likewise.
14780         * explow.c (force_reg): Likewise.
14781         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
14782
14783 2010-08-05  Richard Henderson  <rth@redhat.com>
14784
14785         PR target/45189
14786         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
14787         the alignment constant is properly sign-extended.
14788
14789 2010-08-05  Richard Guenther  <rguenther@suse.de>
14790
14791         * expr.c (store_expr): Use emit_block_move only if both
14792         source and target are MEMs.  Use store_bit_field if only
14793         the target is a MEM.
14794
14795 2010-08-05  Richard Henderson  <rth@redhat.com>
14796
14797         PR debug/45188
14798         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
14799         (INCOMING_RETURN_ADDR_RTX): Likewise.
14800         (dwarf2out_do_frame): Remove conditional compilation.
14801         (dwarf2out_frame_init): Likewise.
14802
14803 2010-08-05  Nicolas Setton  <setton@adacore.com>
14804
14805         * gcov.c (flag_display_progress): New static variable.
14806         (main): Display progress info on standard output if requested.
14807         (options): Add -d/--display-progress.
14808         (print_usage): Print them.
14809         (process_args): Handle them.
14810         * doc/gcov.texi: Document them.
14811
14812 2010-08-05  Martin Jambor  <mjambor@suse.cz>
14813
14814         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
14815         (ipcp_insert_stage): Redirect only edges not flagged with
14816         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
14817         discovered constants.
14818
14819 2010-08-05  Martin Jambor  <mjambor@suse.cz>
14820
14821         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
14822         (struct ipa_param_descriptor): New fields types and
14823         cannot_devirtualize.
14824         (ipa_param_cannot_devirtualize_p): New function.
14825         (ipa_param_types_vec_empty): Likewise.
14826         (ipa_make_edge_direct_to_target): Declare.
14827         * ipa-cp.c: Fixed first stage driver name in initial comment,
14828         described devirtualization there too.
14829         (ipcp_analyze_node): Call ipa_analyze_params_uses.
14830         (ipcp_print_all_lattices): Print devirtualization info.
14831         (ipa_set_param_cannot_devirtualize): New function.
14832         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
14833         lattice to BOTTOM.
14834         (ipcp_init_stage): Merged into...
14835         (ipcp_generate_summary): ...its caller.
14836         (ipcp_change_tops_to_bottom): Also process type lists.
14837         (ipcp_add_param_type): New function.
14838         (ipcp_copy_types): Likewise.
14839         (ipcp_propagate_types): Likewise.
14840         (ipcp_propagate_stage): Also propagate types.
14841         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
14842         Also return true if propagated types require it.
14843         (ipcp_update_callgraph): Dump redirection info.
14844         (ipcp_process_devirtualization_opportunities): New function.
14845         (ipcp_const_param_count): Include known type information.
14846         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
14847         on new node.  Fixed formatting.
14848         * ipa-prop.c (make_edge_direct_to_target): Renamed to
14849         ipa_make_edge_direct_to_target and changed all callers.  Made
14850         externally visible.
14851         (ipa_node_duplication_hook): Duplicate types vector.
14852         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
14853         redirect outgoing calls for which we can't get a decl from the
14854         statement.  Check that we can get a decl from the call statement.
14855         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
14856         ipa_analyze_params_uses only when ipa-cp is disabled.
14857         * tree-inline.c (get_indirect_callee_fndecl): Removed.
14858         (expand_call_inline): Do not call get_indirect_callee_fndecl.
14859         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
14860         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
14861
14862 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
14863
14864         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
14865         temporary. Emit move from temporary to accum, so REG_EQUAL note will
14866         be attached to this insn in correct mode.
14867
14868 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
14869
14870         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
14871         using REGNO of base_reg directly.
14872
14873 2010-08-05  Jie Zhang  <jie@codesourcery.com>
14874
14875         PR tree-optimization/45144
14876         * tree-sra.c (type_consists_of_records_p): Return false
14877         if the record contains bit-field.
14878
14879 2010-08-04  Richard Henderson  <rth@redhat.com>
14880
14881         * config/i386/i386.c (struct ix86_frame): Remove padding and
14882         to_allocate members.
14883         (ix86_compute_frame_layout): Don't store them.
14884         (ix86_can_use_return_insn_p): Use a more direct and more obviously
14885         correct condition for the position of the stack pointer.
14886         (ix86_expand_prologue): Compute remaining stack allocation based
14887         on the ultimate stack pointer offset.
14888         (ix86_expand_epilogue): Use more obvious expressions testing for
14889         the stack pointer already pointing to the saved registers.
14890
14891         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
14892         duplication deconstructing the frame pointer.  Simplify
14893         deallocation of the local stack frame.
14894
14895         * reg-notes.def (CFA_EXPRESSION): New.
14896         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
14897         (dwarf2out_frame_debug_cfa_expression): New.
14898         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
14899
14900         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
14901         * config/i386/i386.c (ix86_expand_prologue): Set it.
14902         (ix86_expand_epilogue): Clear it.
14903         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
14904         context, add REG_CFA_EXPRESSION notes.
14905
14906         * config/i386/i386.h (struct machine_frame_state): Rename from
14907         machine_cfa_state.  Add members tracking SP and FP regardless
14908         of the current CFA register.
14909         (ix86_cfa_state): Remove.
14910         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
14911         and sse_reg_save_offset members.
14912         (ix86_compute_frame_layout): Set them.
14913         (gen_push): Increment sp_offset too.
14914         (choose_baseaddr_len, choose_baseaddr): New.
14915         (ix86_emit_save_reg_using_mov): New.
14916         (ix86_emit_save_regs_using_mov): Use it.
14917         (ix86_emit_save_sse_regs_using_mov): Likewise.
14918         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
14919         compare vs the saved red_zone_offset.
14920         (pro_epilogue_adjust_stack): Adjust sp_offset.
14921         (ix86_adjust_stack_and_probe): Likewise.
14922         (ix86_expand_prologue): Set up, use, and validate the new
14923         frame_state_info members.  Use gen_frame_mem.
14924         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
14925         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
14926         new frame_state_info members.
14927         (ix86_emit_leave): Likewise.
14928         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
14929         out-of-range stack pointer offsets here.
14930         (ix86_emit_restore_sse_regs_using_mov): Likewise.
14931         (ix86_expand_epilogue): Use and validate the new frame_state_info
14932         members.  Break up and simplify the logic selecting the
14933         restore_regs_via_mov code path.  Ensure that there will be no
14934         out-of-range stack pointer offsets.
14935
14936         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
14937
14938         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
14939         argument name to reflect the expected tree; fix indentation.
14940         (ix86_asm_output_function_label): Output the entire 32-bit
14941         ms_hook here as bytes ...
14942         (ix86_expand_prologue): ... not here as insns.  Attach the
14943         unwind info for the ms_hook to a blockage insn.
14944         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
14945         (ix86_ms_bitfield_layout_p): Fix indentation.
14946         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
14947
14948         * config/i386/i386.c (ix86_using_red_zone): New.
14949         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
14950         ix86_expand_prologue, ix86_force_to_memory): Use it.
14951
14952         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
14953         saving the int registers.
14954
14955         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
14956         and DWARF2_UNWIND_INFO conditional compilation.
14957
14958 2010-08-04  Richard Henderson  <rth@redhat.com>
14959
14960         PR debug/45171
14961         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
14962         an is_naming_typedef_decl.
14963
14964 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
14965
14966         PR rtl-optimization/45162
14967         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
14968         * dce.c (word_dce_process_block): Likewise.
14969
14970 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
14971
14972         PR target/44583
14973         * config/ia64/constraints.md (Z): New.
14974         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
14975         (xfreg_or_signed_fp01_operand): New.
14976         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
14977         with fr_reg_or_signed_fp01_operand and constraint G with Z.
14978         (subsf3): Ditto.
14979         (*maddsf4): Ditto.
14980         (*msubsf4): Ditto.
14981         (adddf3): Ditto.
14982         (adddf3_trunc): Ditto.
14983         (subdf3): Ditto.
14984         (*subdf3_trunc): Ditto.
14985         (*madddf4): Ditto.
14986         (*madddf4_trunc): Ditto.
14987         (*msubdf4): Ditto.
14988         (*msubdf4_trunc): Ditto.
14989         (addxf3): Replace xfreg_or_fp01_operand with
14990         xfreg_or_signed_fp01_operand and constraint G with Z.
14991         (*addxf3_truncsf): Ditto.
14992         (*addxf3_truncdf): Ditto.
14993         (subxf3): Ditto.
14994         (*subxf3_truncsf): Ditto.
14995         (*subxf3_truncdf): Ditto.
14996         (*maddxf4): Ditto.
14997         (*maddxf4_truncsf): Ditto.
14998         (*maddxf4_truncdf): Ditto.
14999         (*msubxf4): Ditto.
15000         (*msubxf4_truncsf): Ditto.
15001         (*msubxf4_truncdf): Ditto.
15002
15003 2010-08-04  Richard Guenther  <rguenther@suse.de>
15004
15005         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15006         if either alias-set is zero.
15007
15008 2010-08-04  Richard Guenther  <rguenther@suse.de>
15009
15010         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15011         * tree-ssa-ccp.c: ... here.
15012         * tree-ssa-copy.c: ... and here.
15013         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15014         value_range_t): Move ...
15015         * tree-vrp.c: ... here.
15016         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15017         (substitute_and_fold): Adjust prototype.
15018         * tree-ssa-propagate.c (replace_uses_in): Adjust.
15019         (replace_phi_args_in): Likewise.
15020         (substitute_and_fold): Take callback to query lattice instead
15021         of pointer to lattice.  Replace SSA name defs with lattice
15022         values first.
15023         * tree-ssa-ccp.c (ccp_finalize): Adjust.
15024         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
15025         (get_value): New function.
15026         (fini_copy_prop): Adjust.
15027         * tree-vrp.c (vrp_finalize): Adjust.
15028
15029 2010-08-04  Richard Guenther  <rguenther@suse.de>
15030
15031         PR middle-end/45176
15032         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
15033         points-to set for original MEM_REF.
15034
15035 2010-08-04  Richard Guenther  <rguenther@suse.de>
15036
15037         * tree-ssa-ccp.c (get_constant_value): New function.
15038         (get_rhs_assign_op_for_ccp): Remove.
15039         (valueize_op): New function.
15040         (ccp_fold): Use get_constant_value and valueize_op.
15041         (fold_const_aggregate_ref): Likewise.
15042         (ccp_fold_stmt): Likewise.
15043         (visit_assignment): Simplify.
15044
15045 2010-08-04  Richard Guenther  <rguenther@suse.de>
15046
15047         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
15048         * double-int.h (double_int_ctz): Declare.
15049         * double-int.c (double_int_ctz): New function.
15050
15051 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15052
15053         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
15054         Define.
15055         picochip_expand_movmemhi : Expand movmem pattern.
15056         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
15057         Declare.
15058         * config/picochip/picochip.md (movmemhi) : New pattern.
15059
15060 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15061
15062         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
15063
15064 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
15065
15066         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
15067         NEG as operand of a MULT by merging it with the other operand.
15068         * combine.c (make_compound_operation): Use trunc_int_for_mode when
15069         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
15070         MULT.
15071         * config/arm/constraints.md (M): Examine only 32 bits of a
15072         HOST_WIDE_INT.
15073         * config/arm/predicates.md (power_of_two_operand): Likewise.
15074
15075 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15076
15077         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
15078         non-NOTE insns.
15079
15080 2010-08-03  Jan Hubicka  <jh@suse.cz>
15081
15082         * ipa-split.c (struct split_point): Add split_part_set_retval.
15083         (find_retval): Forward declare.
15084         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
15085         (consider_split): Compute current->split_part_set_retval.
15086         (visit_bb): Do not look into return value.
15087         (split_function): Handle !split_part_set_retval
15088
15089 2010-08-03  Martin Jambor  <mjambor@suse.cz>
15090
15091         * tree-sra.c (completely_scalarize_record): New parameter REF, create
15092         its own access->expr intead of using build_ref_for_offset.
15093
15094 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
15095
15096         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
15097         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
15098         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
15099         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
15100         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
15101         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
15102         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
15103         DEFAULT_SWITCH_TAKES_ARG.
15104         * config/rx/rx.opt (-patch=): Remove option.
15105         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
15106         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
15107         * doc/invoke.texi (RX Options): Remove -patch=.
15108         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
15109         (option_map): Remove --profile-blocks, --quiet and --silent.
15110
15111 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15112
15113         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
15114         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
15115         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
15116         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15117         Update calls to ix86_expand_compare and ix86_expand_branch.
15118         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
15119         ix86_expand_compare.
15120         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
15121         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15122         Make static.
15123         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
15124         and ix86_compare_op1.  Update calls to ix86_expand_compare.
15125         (ix86_expand_int_movcc): Ditto.
15126         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
15127         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
15128         (ix86_expand_setcc): Ditto.
15129         (ix86_expand_compare): Remove prototype.
15130         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
15131         ix86_compare_op0 and ix86_compare_op1.  Update calls
15132         to ix86_expand_branch to directly pass operands[1] and operands[2].
15133         (cbranchxf4): Ditto.
15134         (cbranch<MODEF:mode>4): Ditto.
15135         (cbranchcc4): Ditto.
15136         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
15137         Update calls to ix86_expand_setcc to directly pass operands[2] and
15138         operands[3].
15139         (cstorexf4): Ditto.
15140         (cstore<MODEF:mode>4): Ditto.
15141         (cstorecc4): Ditto.
15142
15143 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15144
15145         PR target/45063
15146         * caller-save.c (save_call_clobbered_regs): Remove regs from
15147         hard_regs_saved when they are set.
15148
15149 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
15150
15151         PR target/41089
15152         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
15153         as volatile.
15154
15155 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
15156
15157         * common.opt (ftree-loop-distribute-patterns): New.
15158         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
15159         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
15160         at -O3.
15161         * tree-data-ref.c (stores_zero_from_loop): New.
15162         * tree-data-ref.h (stores_zero_from_loop): Declared.
15163         * tree-loop-distribution.c (tree_loop_distribution): Call
15164         stores_zero_from_loop.
15165         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
15166
15167 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15168
15169         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
15170         into account.
15171
15172         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
15173         * config/arm/arm.c (thumb1_code): New variable.
15174         (arm_override_options): Set it.
15175         (thumb1_final_prescan_insn): Keep track of condition code status.
15176         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
15177         jumps that depend on them.
15178         * config/arm/arm.h (thumb1_code): Declare variable.
15179         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
15180         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
15181         thumb1_cc_mode.
15182         (CC_STATUS_INIT): New macro.
15183         * config/arm/constraints.md (Pd): New constraint.
15184         * config/arm/predicates.md (noov_comparison_operator): New predicate.
15185         * config/arm/arm.md (is_thumb1): New define_attr.
15186         (conds): Set default to "clob" when generating Thumb1 code.
15187         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
15188         code are set.  Use two-operand assembly syntax.
15189         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
15190         pattern.
15191         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
15192         codes are set.  Use two-operand assembly syntax.
15193         (zero_extendhisi splitter): Remove constraints.
15194         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
15195         thumb1_movsf_insn): Set conds attribute as appropriate.
15196         (cbranchsi4_insn): Use condition code status from struct
15197         machine_function to determine whether the comparison can be eliminated.
15198         Discourage the alternative using high registers.
15199         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
15200         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
15201         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
15202         subsi3_cbranch): Delete.
15203         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
15204         one subtract and one cbranch insn.
15205
15206         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
15207         thumb2_movdf_soft_insn): Delete patterns.
15208         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
15209         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
15210         (pool_range, neg_pool_range): Use them to define defaults.
15211         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
15212         and allow for TARGET_32BIT.
15213
15214         PR target/40457
15215         * config/arm/arm.h (arm_regs_in_sequence): Declare.
15216         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
15217         load_multiple_sequence, store_multiple_sequence): Delete
15218         declarations.
15219         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
15220         declarations.
15221         * config/arm/ldmstm.md: New file.
15222         * config/arm/arm.c (arm_regs_in_sequence): New array.
15223         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
15224         CHECK_REGS.  All callers changed.
15225         If SAVED_ORDER is nonnull, copy the computed order into it.
15226         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
15227         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
15228         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
15229         If SAVED_ORDER is nonnull, copy the computed order into it.
15230         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
15231         like REGS.  Handle Thumb mode.
15232         (arm_gen_load_multiple_1): New function, broken out of
15233         arm_gen_load_multiple.
15234         (arm_gen_store_multiple_1): New function, broken out of
15235         arm_gen_store_multiple.
15236         (arm_gen_multiple_op): New function, with code from
15237         arm_gen_load_multiple and arm_gen_store_multiple moved here.
15238         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
15239         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
15240         changed.
15241         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
15242         * config/arm/predicates.md (commutative_binary_operator): New.
15243         (load_multiple_operation, store_multiple_operation): Handle more
15244         variants of these patterns with different starting offsets.  Handle
15245         Thumb-1.
15246         * config/arm/arm.md: Include "ldmstm.md".
15247         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
15248         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
15249         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
15250         peepholes): Delete.
15251         * config/arm/ldmstm.md: New file.
15252         * config/arm/arm-ldmstm.ml: New file.
15253
15254         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
15255         if statement which adds extra costs to frame-related expressions.
15256
15257 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15258
15259         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
15260
15261 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
15262
15263         PR target/45142
15264         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
15265         alternative 2.
15266         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
15267         split V4SI operands.
15268
15269 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
15270
15271         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15272         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
15273         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
15274         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
15275
15276 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
15277
15278         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
15279         LOCAL_INCLUDE_DIR.
15280
15281 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
15282
15283         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
15284         used in the call to optab_for_tree_code.  Fix the second
15285         is_widening_mult_p call.  Check that both unwidened operands
15286         have the same sign.
15287
15288 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
15289
15290         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
15291
15292 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
15293
15294         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15295
15296 2010-07-30  DJ Delorie  <dj@redhat.com>
15297
15298         * config/rx/predicates.md (rx_constshift_operand): New.
15299         * config/rx/rx.md (zs_cond): New.
15300         (cbranchsi4): Remove mode.
15301         (*cbranchsi4_<code>): Likewise.
15302         (*tstbranchsi4_<code>): New.
15303         (*tstbranchsi4r_<code>): New.
15304         (*tstbranchsi4m_eq): New.
15305         (*tstbranchsi4m_ne): New.
15306         (cbranchsf4): Remove mode.
15307         (*cbranchsf4_<code>): Likewise.
15308
15309 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
15310
15311         * rtlanal.c (simplify_subreg_regno): Don't treat
15312         HARD_FRAME_POINTER_REGNUM specially.
15313
15314 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
15315
15316         * common.opt (-G): Don't define option here.
15317         * config/g.opt: New.
15318         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
15319         rs6000/powerpc and score targets.
15320         * opts.c (common_handle_option): Don't handle -G here.
15321         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
15322         * config/frv/frv.c (frv_handle_option): Handle -G.
15323         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
15324         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
15325         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
15326         * config/mips/mips.c (mips_handle_option): Handle -G.
15327         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
15328         * config/score/score.c (score_handle_option): Handle -G.
15329
15330 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
15331
15332         * config/mmix/mmix.c: Include basic-block.h.
15333
15334 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
15335
15336         PR debug/45055
15337         PR rtl-optimization/45137
15338         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
15339         prototypes.
15340         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
15341         New functions.
15342         * combine.c (next_nonnote_nondebug_insn): Removed.
15343         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
15344         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
15345         * sched-deps.c (sched_analyze_insn): Likewise.
15346         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
15347         * rtlanal.c (canonicalize_condition): Likewise.
15348         * postreload.c (reload_combine_recognize_pattern): Likewise.
15349         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
15350
15351 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
15352
15353         * config/i386/i386.md (int_cond): Remove code iterator.
15354         (fp_cond): Ditto.
15355         (cbranch<mode>4): Use ordered_comparison_operator predicate
15356         for operator0.
15357         (cstore<mode>4): Ditto for operator1.
15358         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
15359         (add<mode>cc): ditto.
15360
15361 2010-07-30  Richard Guenther  <rguenther@suse.de>
15362
15363         PR middle-end/45141
15364         * expr.c (expand_expr_real_1): Check for not handled base address.
15365
15366 2010-07-30  Richard Guenther  <rguenther@suse.de>
15367
15368         * ipa-prop.c (ipa_modify_formal_parameters): Use
15369         build_distinct_type_copy.
15370
15371 2010-07-30  Anthony Green  <green@moxielogic.com>
15372
15373         * config/moxie/rtems.h: New file.
15374         * config.gcc: Add moxie-rtems support.
15375
15376 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15377
15378         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
15379         df flags as in run_fast_df_dce.
15380
15381 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
15382
15383         Revert:
15384         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15385
15386         * rtl.def (NOTE): Swap operands 4 and 5.
15387         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
15388         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
15389         Adjust accordingly.
15390         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
15391
15392 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
15393
15394         PR debug/45110
15395         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
15396         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
15397         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
15398         formal parameters.
15399         (gen_decl_die): Change return type to dw_die_ref, return what
15400         gen_formal_parameter_die returned.
15401
15402 2010-07-29  Martin Jambor  <mjambor@suse.cz>
15403
15404         * dbgcnt.def (eipa_sra): New counter.
15405         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
15406
15407 2010-07-29  Xinliang David Li  <davidxl@google.com>
15408
15409         PR bootstrap/45119
15410         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
15411         in revision 162652.
15412
15413 2010-07-29  Richard Guenther  <rguenther@suse.de>
15414
15415         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
15416         (TV_TREE_STORE_CCP): Likewise.
15417         (TV_TREE_REDPHI): Likewise.
15418
15419 2010-07-29  Richard Guenther  <rguenther@suse.de>
15420
15421         * double-int.h (double_int_and_not): New function.
15422         * combine.c (try_combine): Use it.
15423         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
15424
15425 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15426
15427         PR rtl-optimization/42575
15428         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
15429         Argument AU removed.  All callers changed.  Ignore artificial refs.
15430         Use return value of df_word_lr_simulate_defs to decide whether an insn
15431         is necessary.
15432         (fast_dce): Rename arg to WORD_LEVEL.
15433         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
15434         static.
15435         (pass_fast_rtl_byte_dce): Delete.
15436         * dce.h (run_word_dce): Declare.
15437         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
15438         All callers changed.  Simplify code to only deal with two-word regs.
15439         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
15440         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
15441         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
15442         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
15443         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
15444         (df_word_lr_mark_ref): Declare.
15445         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
15446         df_word_lr_simulate_uses): Declare or rename from byte variants.
15447         (df_byte_lr_simulate_artificial_refs_at_top,
15448         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15449         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
15450         declarations.
15451         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
15452         (enum df_mm): Delete.
15453         * df-byte-scan.c: Delete file.
15454         * df-problems.c (df_word_lr_problem_data): Renamed from
15455         df_byte_lr_problem_data, all members deleted except for
15456         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
15457         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
15458         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15459         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
15460         df_byte_lr_confluence_0): Delete functions.
15461         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
15462         callers changed.
15463         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
15464         Don't initialize members that were deleted, don't try to discover data
15465         about registers.  Ignore hard regs.
15466         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
15467         (df_word_lr_mark_ref): New function.
15468         (df_word_lr_bb_local_compute): Renamed from
15469         df_byte_bb_lr_local_compute; all callers changed.  Use
15470         df_word_lr_mark_ref.  Assert that artificial refs don't include
15471         pseudos.  Ignore hard registers.
15472         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
15473         Assert that exit block uses don't contain pseudos.
15474         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
15475         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
15476         callers changed.  Ignore hard regs.
15477         (df_word_lr_transfer_function): Renamed from
15478         df_byte_lr_transfer_function; all callers changed.
15479         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
15480         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
15481         changed.
15482         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
15483         callers changed.
15484         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
15485         confluence operator 0 set to NULL.
15486         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
15487         callers changed.
15488         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
15489         Return bool, true if bitmap changed or insn otherwise necessary.
15490         All callers changed.  Simplify using df_word_lr_mark_ref.
15491         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
15492         all callers changed.  Simplify using df_word_lr_mark_ref.
15493         * lower-subreg.c: Include "dce.h"
15494         (decompose_multiword_subregs): Call run_word_dce if df available.
15495         * Makefile.in (lower-subreg.o): Adjust dependencies.
15496         (df-byte-scan.o): Delete.
15497         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
15498
15499 2010-07-29  Richard Guenther  <rguenther@suse.de>
15500
15501         * tree.c (build_vector): Assert that the vector constant
15502         has enough elements.
15503         (build_vector_from_ctor): Pad with trailing zeros.
15504
15505 2010-07-29  Richard Guenther  <rguenther@suse.de>
15506
15507         PR tree-optimization/45120
15508         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15509         Handle offset in DEREFs properly.
15510         (get_constraint_for_1): Handle MEM_REF offset properly.
15511
15512 2010-07-29  Richard Guenther  <rguenther@suse.de>
15513
15514         PR middle-end/45034
15515         * convert.c (convert_to_integer): Always use an unsigned
15516         type for narrowed negate and bitwise not.
15517
15518 2010-07-29  Ira Rosen  <irar@il.ibm.com>
15519
15520         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
15521         to outer loop when creating reduction epilogue for double reduction,
15522         and switch back to the inner loop when updating the phi nodes.
15523         Update uses of outer loop exit phi nodes in double reduction (instead
15524         of uses of reduction).
15525
15526 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
15527
15528         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
15529         popcount on power7 and parity on power6 systems.
15530         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
15531         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
15532         instructions.
15533
15534         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
15535         (UNSPEC_PARITY): Ditto.
15536         (SFDF): New iterator for SF/DF.
15537         (rreg2): New mode attribute for floating register constraint.
15538         (TARGET_FLOAT): New mode attribute for whether single/double float
15539         is supported.
15540         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
15541         pattern.
15542         (parity<mode>2_cmpb): New insn for parity on power6 and newer
15543         machines.
15544         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
15545         pattern.  Add support for fcpsgn instruction added in power6.
15546         (copysignsf3): Delete.
15547         (copysigndf3): Delete.
15548         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
15549         instead of if_then_else in RTL to avoid problems with -0.
15550
15551         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
15552         of if_then_else to mirror scalar code.
15553         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
15554         rs6000.md.
15555
15556         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
15557         instead of if_then_else.
15558
15559 2010-07-28  Xinliang David Li  <davidxl@google.com>
15560
15561         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
15562         (dump_cand): Dump var_before/after.
15563         (htab_inv_expr_eq): New function.
15564         (htab_inv_expr_hash): New function.
15565         (tree_ssa_iv_optimize_init): Support pseudo invariants.
15566         (add_candidate_1): consider base type precision.
15567         (set_use_iv_cost): New parameter.
15568         (adjust_setup_cost): Use profile information.
15569         (get_address_cost): Do not hard code width in computing address
15570         offset limits.
15571         (compare_aff_trees): New function.
15572         (get_loop_invariant_expr_id): New function.
15573         (get_computation_cost_at): New parameter and use profile information.
15574         (get_computation_cost): New parameter.
15575         (determine_use_iv_cost_generic): Pass new parameter.
15576         (determine_use_iv_cost_address): Ditto.
15577         (determine_use_iv_cost_condition): Ditto.
15578         (autoinc_possible_for_pair): Ditto.
15579         (determine_use_iv_costs): More dumps.
15580         (iv_ca_get_num_inv_exprs): New function.
15581         (iv_ca_recount_cost): Consider loop invariants in register pressure
15582         cost.
15583         (iv_ca_add_use): New parameter.
15584         (iv_ca_dump): Better dumping.
15585         (iv_ca_extend): New parameter.
15586         (try_add_cand_for): Attempt to get better partial solution.
15587         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
15588         (create_new-ivs): More dumps.
15589         (rewrite_use_compare): Ditto.
15590         (free_loop_data): More cleanup.
15591         (treee_ssa_iv_optimize_finalize): Ditto.
15592
15593 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
15594
15595         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
15596         * config/i386/i386.c (ix86_profile_before_prologue): New.
15597         (override_options): Add special handling for -mfentry.
15598         (ix86_function_regparm): Likewise.
15599         (ix86_function_sseregparm): Likewise.
15600         (ix86_frame_pointer_required): Likewise.
15601         (ix86_expand_prologue): Check for ms_hook_prologue.
15602         (x86_function_profiler): Adjust mcount output.
15603         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
15604         * config/i386/i386.opt (mfentry): New.
15605         * doc/invoke.texi (mfentry): Add documentation.
15606         * doc/tm.texi: Regenerated..
15607         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
15608         * final.c (final_start_function): Replace macro
15609         PROFILE_BEFORE_PROLOGUE by target hook.
15610         * function.c (thread_prologue_and_epilogue_insns): Likewise.
15611         * target.def (profile_before_prologue): New hook.
15612         * targhooks.c (default_profile_before_prologue): New.
15613         * targhooks.h (default_profile_before_prologue): New.
15614
15615 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
15616
15617         PR debug/45105
15618         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
15619
15620         PR debug/45103
15621         * dwarf2out.c (dwarf2out_var_location): Always consider
15622         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
15623
15624 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15625
15626         PR rtl-optimization/45107
15627         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
15628
15629 2010-07-28  Richard Guenther  <rguenther@suse.de>
15630
15631         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
15632         (set_lattice_value): Do not query an old default value.
15633         (get_value_for_expr): New function.  Properly canonicalize
15634         float values.
15635         (ccp_visit_phi_node): Use it.
15636
15637 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
15638
15639         * config/arm/arm.c (arm_pcs_default): Remove static.
15640         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
15641         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
15642         (arm_pcs_default): Declare.
15643
15644 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
15645
15646         * config/rs6000/rs6000.c (rs6000_override_options):
15647         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
15648         ... to darwin_rs6000_override_options.
15649         (rs6000_return_in_memory): Update preceding comment for darwin
15650         64 bit ABI.  Use TARGET_MACHO inline.
15651         (rs6000_darwin64_struct_check_p): New.
15652         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
15653         (function_arg): Likewise.
15654         (rs6000_arg_partial_bytes): Likewise.
15655         (rs6000_function_value): Likewise.
15656
15657 2010-07-28  Andi Kleen  <ak@linux.intel.com>
15658
15659         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
15660
15661 2010-07-28  Richard Guenther  <rguenther@suse.de>
15662
15663         PR middle-end/44903
15664         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
15665         targets try harder to not generate unaligned accesses.
15666
15667 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15668
15669         PR rtl-optimization/45101
15670         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
15671         for gcse-las.
15672
15673 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
15674
15675         PR tree-optimization/44885
15676         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
15677         with non-aliased component.
15678
15679 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
15680
15681         * config/darwin-driver.c (SWITCH_TAKES_ARG,
15682         WORD_SWITCH_TAKES_ARG): Remove.
15683         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
15684         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
15685         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
15686         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
15687         definitions from gcc.c.
15688         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
15689         defaults.h.
15690         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
15691         Move to defaults.h.
15692         * opts-common.c: Include tm.h.
15693         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
15694         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
15695         Handle more than one argument.  Set canonical_option_num_elements.
15696         (decode_cmdline_options_to_array): Set
15697         canonical_option_num_elements and trailing elements of
15698         canonical_option.
15699         * opts.h (struct cl_decoded_option): Allow four elements in
15700         canonical_option.  Add field canonical_option_num_elements.
15701         * Makefile.in (opts-common.o): Update dependencies.
15702
15703 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
15704
15705         PR middle-end/44790
15706         PR middle-end/44993
15707         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
15708         sure the base has address_mode before adding the offset.
15709
15710 2010-07-27  Xinliang David Li  <davidxl@google.com>
15711
15712         * tree-flow.h (create_mem_ref): Add one new parameter.
15713         * tree-ssa-address.c (create_mem_ref): New parameter.
15714         (addr_to_parts): Ditto.
15715         (move_variant_to_index): New function.
15716         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
15717
15718 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15719
15720         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
15721         4 and 5.
15722         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
15723         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
15724         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
15725         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
15726         CODE_LABELs and NOTEs.
15727         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
15728         * combine.c (try_combine): Likewise.
15729         * ira.c (setup_prohibited_mode_move_regs): Likewise.
15730         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
15731
15732 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15733
15734         * coretypes.h (struct cl_option_handlers): Declare.
15735         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
15736         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
15737         * langhooks-def.h (lhd_handle_option): Declare.
15738         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
15739         * langhooks.c (lhd_handle_option): New.
15740         * langhooks.h (struct lang_hooks): Update prototype and return
15741         value type of handle_option hook.
15742         * optc-gen.awk: Generate target_flags_explicit definition for the
15743         driver.
15744         * opts-common.c: Include diagnostic.h.
15745         (handle_option): Move from opts.c.  Update prototype and return
15746         value type.  Use handlers structure.
15747         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
15748         handlers structure.
15749         (set_option): Move from opts.c.
15750         * opts.c (common_handle_option): Update prototype and return value
15751         type.  Update calls to handle_option and enable_warning_as_error.
15752         (unknown_option_callback, post_handling_callback,
15753         lang_handle_option, target_handle_option): New.
15754         (handle_option, read_cmdline_option): Move to opts-common.c.
15755         (read_cmdline_options): Update prototype.  Update call to
15756         read_cmdline_option.
15757         (decode_options): Initialize and use handlers structure.
15758         (set_option): Move to opts-common.c.
15759         (enable_warning_as_error): Update prototype.  Update call to
15760         handle_option.
15761         * opts.h (struct cl_option_handler_func, struct
15762         cl_option_handlers): New.
15763         (handle_option, enable_warning_as_error): Update prototypes.
15764         (read_cmdline_option): Declare.
15765         * Makefile.in (opts-common.o): Update dependencies.
15766
15767 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15768
15769         * config/arm/arm.c (params.h): Include.
15770         (arm_override_options): Tune gcse-unrestricted-cost.
15771         * config/arm/t-arm (arm.o): Define dependencies.
15772
15773 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15774
15775         PR target/42495
15776         PR middle-end/42574
15777         * basic-block.h (get_dominated_to_depth): Declare.
15778         * dominance.c (get_dominated_to_depth): New function, use
15779         get_all_dominated_blocks as a base.
15780         (get_all_dominated_blocks): Use get_dominated_to_depth.
15781
15782         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
15783         (hoist_exprs): Remove.
15784         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
15785         (compute_code_hoist_vbeinout): Add debug print outs.
15786         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
15787
15788         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
15789         quadratic behavior.
15790         * params.h (MAX_HOIST_DEPTH): New macro.
15791         * doc/invoke.texi (max-hoist-depth): Document.
15792
15793 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15794
15795         PR rtl-optimization/40956
15796         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
15797         constants.
15798
15799 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15800
15801         PR target/42495
15802         PR middle-end/42574
15803         * config/arm/arm.c (legitimize_pic_address): Use
15804         gen_calculate_pic_address pattern to emit calculation of PIC address.
15805         (will_be_in_index_register): New function.
15806         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
15807         (thumb1_legitimate_address_p): Use it provided !strict_p.
15808         * config/arm/arm.md (calculate_pic_address): New expand and split.
15809
15810 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15811
15812         PR target/42495
15813         PR middle-end/42574
15814         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
15815         * config/arm/arm.md (define_split "J", define_split "K"): Make
15816         IRA/reload friendly.
15817
15818 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15819
15820         * gcse.c (insert_insn_end_basic_block): Update signature, remove
15821         unused checks.
15822         (pre_edge_insert, hoist_code): Update.
15823
15824 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15825
15826         PR target/42495
15827         PR middle-end/42574
15828         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
15829
15830 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15831
15832         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
15833
15834 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15835
15836         PR rtl-optimization/40956
15837         PR target/42495
15838         PR middle-end/42574
15839         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
15840         for hoisting.
15841         (hoist_code): Count occurences in current block too.
15842
15843 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15844
15845         * gcse.c (struct expr:max_distance): New field.
15846         (doing_code_hoisting_p): New static variable.
15847         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
15848         simple expressions, don't change behavior for PRE.  Set max_distance.
15849         (insert_expr_in_table): Set new max_distance field.
15850         (hash_scan_set): Update.
15851         (hoist_expr_reaches_here_p): Stop search after max_distance
15852         instructions.
15853         (find_occr_in_bb): New static function.  Use it in ...
15854         (hoist_code): Calculate sizes of basic block before any changes are
15855         done.  Pass max_distance to hoist_expr_reaches_here_p.
15856         (one_code_hoisting_pass): Set doing_code_hoisting_p.
15857
15858         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
15859         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
15860         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
15861         macros.
15862         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
15863         Document.
15864
15865 2010-07-27  Jeff Law  <law@redhat.com>
15866             Maxim Kuvyrkov  <maxim@codesourcery.com>
15867
15868         * gcse.c (compute_transpout, transpout): Remove, move logic
15869         to prune_expressions.
15870         (compute_pre_data): Move pruning of trapping expressions ...
15871         (prune_expressions): ... here.  New static function.
15872         (compute_code_hoist_data): Use it.
15873         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
15874
15875 2010-07-27  Xinliang David Li  <davidxl@google.com>
15876
15877         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
15878         (rewrite_use_address): Adjust iv update position when needed.
15879
15880 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15881
15882         * dbgcnt.def (hoist_insn): New debug counter.
15883         * gcse.c (hoist_code): Use it.
15884
15885 2010-07-27  Xinliang David Li  <davidxl@google.com>
15886
15887         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
15888         (niter_for_single_dom_exit): Passes additional parameter.
15889         (iv_period): Fix comments.
15890         (may_eliminate_iv): Handles multiple exit loops properly.
15891         (free_tree_niter_desc): New function.
15892         (free_loop_data): Frees up loop iteration descriptors.
15893
15894 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15895
15896         PR target/44542
15897         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
15898         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
15899         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
15900         (expand_one_var): Don't consider DECL_ALIGN for variables for
15901         which expand_one_stack_var_at has been already called.
15902
15903         PR testsuite/44701
15904         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
15905         constraints on IA-64.
15906
15907 2010-07-27  Jie Zhang  <jie@codesourcery.com>
15908
15909         PR target/44290
15910         Revert:
15911         2010-07-23  Jie Zhang  <jie@codesourcery.com>
15912
15913         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15914         false if ! tree_versionable_function_p.
15915
15916 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15917
15918         * dwarf2out.c (add_data_member_location_attribute): Use
15919         add_AT_unsigned instead of add_AT_int if offset is non-negative.
15920
15921 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15922
15923         * postreload.c (try_replace_in_use): New static function.
15924         (reload_combine_recognize_const_pattern): Use it here.  Allow
15925         substituting into a final add insn, and substituting into a memory
15926         reference in an insn that sets the reg.
15927
15928 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15929
15930         * common.opt (o): Add MissingArgError.
15931         * doc/options.texi (MissingArgError): Document.
15932         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
15933         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
15934         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
15935         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
15936         * langhooks.h (struct lang_hooks): Remove missing_argument.
15937         * optc-gen.awk: Handle MissingArgError and output new structure
15938         field initializers.
15939         * opts.c (read_cmdline_option): Use missing_argument_error field
15940         instead of missing_argument langhook.
15941         * opts.h (struct cl_option): Add missing_argument_error field.
15942         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
15943
15944 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15945
15946         PR target/29090
15947         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
15948         Darwin64 ABI, for zero-sized objects.
15949
15950 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15951
15952         PR target/35491
15953         PR target/29090
15954
15955         Merge from Apple local 4.2.1.
15956         2005-05-11  Stan Shebs  <shebs@apple.com>
15957         Fix 64-bit varargs for Darwin (Radar 4028089).
15958         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
15959         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
15960         Add argument, add case for 8-byte register half-filled with a float.
15961         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
15962         single-precision floats specially.
15963
15964 2010-07-27  Ira Rosen  <irar@il.ibm.com>
15965
15966         PR tree-optimization/44152
15967         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
15968         complex numbers for further check.
15969         (vect_supported_load_permutation_p): Check nodes with
15970         complex numbers.
15971
15972 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15973
15974         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
15975         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
15976         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
15977         (LANG_HOOKS_INITIALIZER): Add new hooks.
15978         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
15979         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
15980         and complain_wrong_lang_p.  Update init_options prototype.
15981         * c-objc-common.c (c_initialize_diagnostics): First call
15982         c_common_initialize_diagnostics.
15983         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
15984         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
15985         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
15986         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
15987         (hook_uint_void_0): New.
15988         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
15989         (hook_uint_void_0): New.
15990         * opts-common.c (decode_cmdline_option,
15991         decode_cmdline_options_to_array): Also fill in canonical_option field.
15992         * opts.c (complain_wrong_lang): Use langhook to determine whether
15993         to complain instead of special-casing LTO.
15994         (decode_options): Separate lang_mask determination with
15995         option_lang_mask hook from call of init_options hook.
15996         * opts.h (struct cl_decoded_option): Add canonical_option.
15997
15998 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15999
16000         PR tree-optimization/45083
16001         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16002
16003 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16004
16005         * postreload.c (reload_combine_recognize_const_pattern): Move test
16006         for limiting the insn movement to the right scope.
16007
16008         PR rtl-optimization/45051
16009         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16010         than reg_mentioned_p.
16011
16012 2010-07-26  Richard Henderson  <rth@redhat.com>
16013
16014         PR target/44132
16015         * tree-emutls.c: New file.
16016         * Makefile.in (OBJS-common): Add it.
16017         * tree-pass.h (pass_ipa_lower_emutls): Declare.
16018         * passes.c (init_optimization_passes): Add it.
16019
16020         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
16021         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
16022         * expr.c (emutls_var_address): Delete.
16023         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
16024         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
16025         (emutls_finish): Delete.
16026         * toplev.c (compile_file): Don't call it.
16027         * tree.h (emutls_decl): Delete.
16028         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
16029         (emutls_finish, emutls_finalize_control_var): Delete.
16030         (emutls_object_type): Move to tree-emutls.c.
16031         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
16032         default_emutls_var_fields, get_emutls_object_type,
16033         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
16034         default_emutls_var_init): Likewise.
16035         (get_variable_section): Don't special case emutls.
16036         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
16037         default_elf_select_section, default_unique_section,
16038         default_encode_section_info): Likewise.
16039         * varpool.c (decide_is_variable_needed): Likewise.
16040         * gimple-iterator.c (update_call_edge_frequencies): New
16041         (gsi_insert_on_edge_immediate): Use it.
16042         (gsi_insert_seq_on_edge_immediate): Likewise.
16043         (gsi_commit_one_edge_insert): Likewise.
16044
16045         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
16046         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
16047         (x86_64_elf_unique_section): Likewise.
16048
16049 2010-07-26  Jan Hubicka  <jh@suse.cz>
16050
16051         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
16052         GTY((skip)).
16053
16054 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
16055
16056         * target.def (output_source_filename): New hook.
16057         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
16058         * doc/tm.texi: Regenerate.
16059         * toplev.c (output_file_directive) Remove function.
16060         * toplev.h (output_file_directive) Remove.
16061         * output.h (default_asm_output_source_filename,
16062         output_file_directive): Declare.
16063         * varasm.h (default_asm_output_source_filename,
16064         output_file_directive): New functions.
16065
16066         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16067         * config/mips/mips-protos.h (mips_output_filename): Remove.
16068         * config/mips/mips.c (mips_output_filename): Make Static.
16069         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16070
16071 2010-07-26  Richard Guenther  <rguenther@suse.de>
16072
16073         PR tree-optimization/43784
16074         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
16075         if the destination is used by the call.
16076
16077 2010-07-26  Richard Guenther  <rguenther@suse.de>
16078
16079         PR middle-end/45073
16080         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
16081         SSA updating on being in SSA form.
16082
16083 2010-07-26  Richard Guenther  <rguenther@suse.de>
16084
16085         PR middle-end/45056
16086         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
16087
16088 2010-07-26  Richard Guenther  <rguenther@suse.de>
16089
16090         PR tree-optimization/45071
16091         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
16092         adjust op->opcode.
16093
16094 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
16095
16096         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
16097         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
16098         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
16099         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
16100         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
16101         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
16102         save_r31, return_r31, save_interrupt, return_interrupt,
16103         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
16104         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
16105         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
16106         new ABI requirements.
16107         (save_r6_r9, L_callt_save_r6_r9): Remove.
16108         * config/v850/predicates.md (even_reg_operand, disp23_operand,
16109         const_float_1_operand const_float_0_operand): New Predicates.
16110         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
16111         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
16112         * config/v850/t-v850: Update multilibs for new target variants.
16113         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
16114         * config/v850/t-v850e: Likewise.
16115         * config/v850/v850.c (v850_issue_rate): New.
16116         (v850_strict_argument_naming): New.
16117         (function_arg): Modify to generate a different ABI.
16118         (print_operand): Update case 'z' to support float modes.
16119         (output_move_single): Modify to generate appropriate and better
16120         assembly.
16121         (v850_float_z_comparison_operator, v850_select_cc_mode,
16122         v850_float_nz_comparison_operator,  v850_gen_float_compare,
16123         v850_gen_compare): New functions to support comparison of float values.
16124         (ep_memory_offset): Add support for V850E2 targets.
16125         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
16126         (INTERRUPT_REGPARM_NUM): Remove.
16127         (compute_register_save_size): Add extra case to save/restore long call.
16128         (use_prolog_function): New function to support prologue.
16129         (expand_prologue): Add support for V850E2 targets and modified
16130         as per the current ABI requirements.
16131         (expand_epilogue): Likewise.
16132         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
16133         (construct_save_jarl): Likewise.
16134         (construct_dispose_instruction): Update as per the current ABI
16135         requirements.
16136         (construct_prepare_instruction): Likewise.
16137         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
16138         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
16139         (CPP_SPEC): Updated to support v850e2 targets.
16140         (STRICT_ALIGNMENT): Modified.
16141         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
16142         (FIXED_REGISTERS): Likewise.
16143         (CALL_USED_REGISTERS): Likewise.
16144         (CONDITIONAL_REGISTER_USAGE): Updated.
16145         (HARD_REGNO_MODE_OK): Updated.
16146         (reg_class): Updated to add even registers.
16147         (REG_CLASS_NAMES): Likewise.
16148         (REG_CLASS_CONTENTS): Likewise.
16149         (REGNO_REG_CLASS): Updated for CC registers.
16150         (REG_CLASS_FROM_LETTER): Added support for even registers.
16151         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
16152         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
16153         ARG_POINTER_REGNUM): Updated.
16154         (FUNCTION_ARG_ADVANCE): Define.
16155         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
16156         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
16157         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
16158         (GO_IF_LEGITIMATE_ADDRESS): Updated.
16159         (SELECT_CC_MODE): Define.
16160         (REGISTER_NAMES): Updated to add psw and fcc registers.
16161         (ADDITIONAL_REGISTER_NAMES): Updated.
16162         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
16163         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
16164         * config/v850/v850.md (define_constants): Define new constants.
16165         (type): Update store,bit1,macc,div,fpu and single attributes.
16166         (cpu): New attribute.
16167         (cc): Add set_z attribute.
16168         (unsign23byte_load, sign23byte_load, unsign23hword_load,
16169         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
16170         23word_store): New instructions for 23-bit displacement load and store.
16171         (movqi_internal, movhi_internal): Update the attributes.
16172         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
16173         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
16174         the attributes.
16175         (v850_tst1): Modified using CC_REGNUM.
16176         (tstsi): Remove.
16177         (cmpsi): Modified as define_expand from define_insn.
16178         (cmpsi_insn, cmpsf, cmpdf): New instructions.
16179         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
16180         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
16181         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
16182         one_cmplsi2): Clobber the CC_REGNUM register.
16183         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
16184         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
16185         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
16186         (setf_insn, set_z_insn, set_nz_insn): New instructions for
16187         v850e2v3 target.
16188         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
16189         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
16190         targets.
16191         (sasf_1, sasf_2): Remove.
16192         (sasf): New instruction.
16193         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
16194         targets. CC_REGNUM register is clobbered and attributes are
16195         updated.
16196         (branch_z_normal, branch_z_invert, branch_nz_normal,
16197         branch_nz_invert): New branch related instructions.
16198         (jump): Updated the attributes.
16199         (switch): Update to support new targets. CC_REGNUM register is
16200         clobbered and attributes are updated.
16201         (call_internal_short, call_internal_long, call_value_internal_short,
16202         call_value_internal_long): Updated the attributes.
16203         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
16204         clobbered and attributes are updated.
16205         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
16206         Update to support new targets. CC_REGNUM register is clobbered.
16207         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
16208         instructions.
16209         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
16210         are updated.
16211         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
16212         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
16213         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
16214         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
16215         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
16216         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
16217         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
16218         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
16219         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
16220         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
16221         point instructions defined for V850e2v3 target.
16222         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
16223         Add support for V850E2 targets and CC_REGNUM register is clobbered.
16224         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
16225         support for new targets.
16226         * config/v850/v850-modes.def: New file.
16227         * config/v850/v850.opt(mstrict-align): Remove.
16228         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
16229         mv850e2v3): New command line options for V850.
16230         * config.gcc: Update the newly added files.
16231         * doc/invoke.texi: Update the newly added command line options for
16232         V850 target.
16233
16234 2010-07-26  Richard Guenther  <rguenther@suse.de>
16235
16236         PR tree-optimization/45052
16237         * ipa-pure-const.c (check_stmt): Check volatileness.
16238
16239 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16240
16241         PR target/44707
16242         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
16243         * config/sparc/sparc.c: Include reload.h.
16244         (legitimize_tls_address): Rename into...
16245         (sparc_legitimize_tls_address): ...this.
16246         (legitimize_pic_address): Rename into...
16247         (sparc_legitimize_pic_address): ...this.
16248         (sparc_expand_move): Adjust to above renaming.
16249         (sparc_tls_referenced_p): Likewise.
16250         (sparc_legitimize_tls_address): Likewise.
16251         (sparc_legitimize_pic_address): Likewise.
16252         (sparc_legitimize_address): Likewise.
16253         (sparc_output_mi_thunk): Likewise.
16254         (sparc_legitimize_reload_address): New global function.  Recognize
16255         (lo_sum (high ...) ...) patterns generated by earlier passes.
16256         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
16257
16258 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16259
16260         PR target/44484
16261         * config/sparc/predicates.md (memory_reg_operand): Delete.
16262         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
16263         (*sync_compare_and_swap): Encode the address form in the pattern.
16264         (*sync_compare_and_swapdi_v8plus): Likewise.
16265
16266 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
16267
16268         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
16269         Streamline paragraph on compatibility with the system compiler.
16270
16271 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
16272
16273         PR middle-end/45035
16274         * alias.c (true_dependence_1): Fix thinko in merge of old
16275         true_dependence and canon_true_dependence.
16276
16277 2010-07-23  Jan Hubicka  <jh@suse.cz>
16278
16279         * lto-streamer-out.c (write_symbol): Fix visibilities of external
16280         references.
16281
16282 2010-07-23  Le-Chun Wu  <lcwu@google.com>
16283
16284         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
16285         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
16286         and an unnecessary assignment.
16287         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
16288         self-assign warning.
16289         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
16290         unnecessary self-init.
16291
16292 2010-07-23  Richard Guenther  <rguenther@suse.de>
16293
16294         PR lto/43071
16295         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
16296         for -flto and -fwhopr.
16297
16298 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
16299
16300         PR target/41943
16301         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
16302         (stmp-int-hdrs): Prefix/postfix headers by include_next.
16303         * config.gcc (user_headers_inc_next_pre): New.
16304         (user_headers_inc_next_post): Likewise.
16305         (*-w64-mingw*): Use for float.h post-fixing, and for
16306         stddef.h/stdarg.h pre-fixing by include_next.
16307         * configure.ac (user_headers_inc_next_post): New.
16308         (user_headers_inc_next_pre): New.
16309         * configure: Regenerated.
16310
16311 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16312
16313         * configure.ac: Don't disable TLS on Solaris 8/9 by default
16314         Set tga_func for Solaris 2/x86 resp. SPARC.
16315         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
16316         (LIB_THREAD_LDFLAGS_SPEC): Define.
16317         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
16318         * configure: Regenerate.
16319         * config.in: Regenerate.
16320         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
16321         -pthread, -threads, LIB_TLS_SPEC with -pthread.
16322         * doc/install.texi (Specific, *-*-solaris2*): Document use of
16323         alternate thread libraries on Solaris 8.
16324         Document TLS patch requirements.
16325         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
16326         Document tls.
16327
16328         PR target/18788
16329         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
16330         -shared.
16331
16332 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
16333
16334         * tree.h (struct tree_base): Add nameless_flag bitfield.
16335         (TYPE_NAMELESS, DECL_NAMELESS): Define.
16336         * omp-low.c (create_omp_child_function, scan_omp_parallel,
16337         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
16338         DECL_ARTIFICIAL where needed.
16339         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
16340         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
16341         has DECL_NAMELESS set.
16342
16343 2010-07-23  Martin Jambor  <mjambor@suse.cz>
16344
16345         PR tree-optimization/44915
16346         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
16347         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
16348         (analyze_function): Likewise.
16349
16350 2010-07-23  Martin Jambor  <mjambor@suse.cz>
16351
16352         PR tree-optimization/44914
16353         * tree-sra.c (sra_modify_function_body): Return true if CFG was
16354         changed, add purging dead eh edges.
16355         (ipa_sra_modify_function_body): Return true if CFG was changed,
16356         simplify purging dead eh edges.
16357         (modify_function): Return true if CFG was changed.
16358         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
16359         was changed.
16360         (ipa_early_sra): Likewise.
16361
16362 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16363
16364         PR target/44290
16365         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
16366         if "naked".
16367         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16368         false if ! tree_versionable_function_p.
16369
16370 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
16371
16372         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
16373         * ipa-pure-const.c (special_builtlin_state): Remove
16374         BUILT_IN_ARGS_INFO case.
16375         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
16376         * builtins.c (expand_builtin): Likewise.
16377         (expand_builtin_args_info): Remove.
16378         * doc/tm.texi (__builtin_args_info): Remove.
16379         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
16380         * doc/tm.text.in: Likewise.
16381
16382 2010-07-23  Richard Guenther  <rguenther@suse.de>
16383
16384         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
16385         (lto_symtab_merge_decls_2): Likewise.
16386         * tree-ssa.c (useless_type_conversion_p): Likewise.
16387         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16388         * gimple.c (gtc_visited2, gtc_ob2): Remove.
16389         (struct type_pair_d): Make same_p an array indexed by mode.
16390         Update comment.
16391         (lookup_type_pair): Update initialization.
16392         (struct sccs): Adjust same_p type.
16393         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
16394         Adjust.
16395         (print_gimple_types_stats): Likewise.
16396         * gimple.h (enum gtc_mode): New.
16397         (gimple_types_compatible_p): Adjust prototype.
16398
16399 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
16400
16401         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
16402         again after processing insn.
16403
16404 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16405
16406         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
16407         proper words when !tree_versionable_function_p.
16408
16409 2010-07-23  Richard Guenther  <rguenther@suse.de>
16410
16411         PR tree-optimization/45037
16412         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
16413
16414 2010-07-23  Jie Zhang  <jie@codesourcery.com>
16415
16416         * doc/extend.texi: Remove IP2K from the description of naked attribute.
16417         Add MCORE instead.
16418
16419 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16420
16421         PR lto/44992
16422         * lto-opts.c (lto_write_options): Add NULL file_data argument to
16423         lto_get_section_name.
16424         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16425         * lto-streamer-out.c (produce_asm): Likewise.
16426         (copy_function): Likewise.
16427         (produce_symtab): Likewise.
16428         (produce_asm_for_decls): Likewise.
16429         * lto-streamer.c (lto_get_section_name): Add file_data argument.
16430         Rewrite to add random postfix to LTO sections.
16431         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
16432         (lto_get_section_name): Add file_data argument to prototype.
16433
16434 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16435
16436         * lto-section-in.c (lto_section_name): Synchronize names
16437         with lto_get_section_name.
16438
16439 2010-07-10  Andi Kleen  <ak@linux.intel.com>
16440
16441         * lto-opts.c (lto_read_file_options): Check for missing section.
16442
16443 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16444
16445         * ira.c (check_allocation): Correctly handle the case where an allocno
16446         with two objects was allocated to a single reg.
16447
16448 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
16449
16450         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
16451         (is_widening_mult_p): Likewise.
16452         (convert_to_widen): Use them.
16453         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
16454         well as integer ones.
16455
16456 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
16457
16458         * alias.c (true_dependence_1): New function, merged version of
16459         true_dependence and canon_true_dependence.
16460         (true_dependence): Simplify.
16461         (canon_true_dependence): Simplify.
16462
16463 2010-07-22  Richard Henderson  <rth@redhat.com>
16464
16465         PR target/45027
16466         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
16467         of V4SFmode for the SSE saves; increase stack alignment if needed.
16468         (ix86_gimplify_va_arg): Don't increase stack alignment here.
16469
16470 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
16471
16472         PR bootstrap/45028
16473         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
16474         call cprop_find_used_regs again via note_uses.
16475
16476 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
16477
16478         * alias.c (get_alias_set): Fix formatting issues.
16479
16480 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
16481
16482         PR middle-end/44878
16483         * stmt.c (expand_value_return):  Call promote_function_mode with
16484         a for_return argument of 2 when returning by reference.
16485
16486 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
16487
16488         PR debug/45024
16489         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
16490         unit DIE if we can find the scope DIE.
16491
16492 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16493
16494         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
16495         changed.  Initialize OBJECT_SUBWORD.
16496         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
16497         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
16498         all callers changed.
16499         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
16500         (finish_allocno): Likewise.
16501         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
16502         (remove_low_level_allocnos): Likewise.
16503         (update_bad_spill_attribute): Likewise.
16504         (setup_min_max_allocno_live_range_point): Likewise.
16505         (sort_conflict_id_map): Likewise.
16506         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
16507         (ior_hard_reg_conflicts): New function.
16508         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
16509         (compress_conflict_vecs): Iterate over objects, not allocnos.
16510         (ira_add_live_range_to_object): New function.
16511         (object_range_compare_func): Renamed from allocno_range_compare_func.
16512         All callers changed.
16513         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
16514         subobjects, widen the min/max range of the lowest-order object to
16515         potentially include all other such low-order objects.
16516         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
16517         (check_allocation): Likewise.  Use more fine-grained tests for register
16518         conflicts.
16519         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
16520         allocno subobjects.
16521         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
16522         choices about which bits to set in each set.  Don't use
16523         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
16524         using the multiple sets we computed.
16525         (push_allocno_to_stack): Iterate over allocno subobjects.
16526         (all_conflicting_hard_regs_coalesced): New static function.
16527         (setup_allocno_available_regs_num): Use it.
16528         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
16529         subobjects.
16530         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
16531         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16532         by ALLOCNO_NUM_OBJECTS.
16533         (calculate_spill_cost): Likewise.
16534         (color_pass): Express if statement in a more normal way.
16535         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
16536         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
16537         (setup_slot_coalesced_allocno_live_ranges): Likewise.
16538         (allocno_reload_assign): Likewise.
16539         (ira_reassign_pseudos): Likewise.
16540         (fast_allocation): Likewise.
16541         * ira-conflicts.c (build_conflict_bit_table): Likewise.
16542         (print_allocno_conflicts): Likewise.
16543         (ira_build_conflicts): Likewise.
16544         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
16545         callers changed.  Test subword 0 of each allocno for conflicts.
16546         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
16547         callers changed.  Iterate over allocno subobjects.
16548         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
16549         * ira-int.h (struct ira_allocno): New member: num_objects.
16550         Rename object to objects and change it into an array.
16551         (ALLOCNO_OBJECT): Add new argument N.
16552         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
16553         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
16554         (ior_hard_reg_conflicts): Declare.
16555         (ira_add_live_range_to_object): Declare.
16556         (ira_allocno_object_iterator): New.
16557         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
16558         (FOR_EACH_ALLOCNO_OBJECT): New macro.
16559         * ira-lives.c (objects_live): Renamed from allocnos_live; all
16560         uses changed.
16561         (allocnos_processed): New sparseset.
16562         (make_object_born): Renamed from make_allocno_born; take an
16563         ira_object_t argument.  All callers changed.
16564         (make_object_dead): Renamed from make_allocno_dead; take an
16565         ira_object_t argument.  All callers changed.
16566         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
16567         All callers changed.
16568         (mark_pseudo_regno_live): Iterate over allocno subobjects.
16569         (mark_pseudo_regno_dead): Likewise.
16570         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
16571         functions.
16572         (mark_ref_live): Detect subword accesses and call
16573         mark_pseudo_regno_subword_live as appropriate.
16574         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
16575         (process_bb_nodes_live): Deal with object-related updates first; set
16576         and test bits in allocnos_processed to avoid computing allocno
16577         statistics more than once.
16578         (create_start_finish_chains): Iterate over objects, not allocnos.
16579         (print_object_live_ranges): New function.
16580         (print_allocno_live_ranges): Use it.
16581         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
16582         and objects_live.
16583
16584 2010-07-22  Richard Guenther  <rguenther@suse.de>
16585
16586         PR lto/42451
16587         * gimple.c (gtc_next_dfs_num): New global.
16588         (struct sccs): Make value a union, add integer same_p member.
16589         (gtc_visit): New function.
16590         (gimple_types_compatible_p_1): New function, split out from ...
16591         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
16592         (iterative_hash_gimple_type): Adjust for sccs change.
16593
16594 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16595
16596         PR tree-optimization/44891
16597         * tree-sra.c: Include gimple-pretty-print.h.
16598         (replace_uses_with_default_def_ssa_name): Renamed to
16599         get_repl_default_def_ssa_name, return the new SSA name instead of
16600         replacing the old one.
16601         (sra_modify_assign): Dump a message when removing a load, if the LHS
16602         is an SSA_NAME, do not do any propagation, just set the RHS to a
16603         default definition SSA NAME, type convert if necessary.
16604         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
16605
16606 2010-07-22  Richard Guenther  <rguenther@suse.de>
16607
16608         PR tree-optimization/45017
16609         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
16610         TYPE_PRECISION of integral types in addition to size.
16611
16612 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
16613
16614         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
16615         when no C library is specified.
16616
16617 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16618
16619         * ipa-prop.h (struct ipa_node_params): Updated comment.
16620         (struct ipa_edge_args): Likewise.
16621         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
16622
16623 2010-07-22  Martin Jambor  <mjambor@suse.cz>
16624
16625         * cgraphunit.c (verify_edge_count_and_frequency): New function.
16626         (verify_cgraph_node): Verify frequencies of indirect edges.
16627         * tree-inline.c (tree_function_versioning): Update frequencies of
16628         indirect edges.
16629
16630 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16631
16632         PR target/43698
16633         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
16634         Set *arm_rev to be predicable.
16635
16636 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
16637
16638         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
16639         (LINK_COMMAND_SPEC_A): New.
16640         (DSYMUTIL): New.
16641         (DSYMUTIL_SPEC): New.
16642         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
16643         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
16644
16645 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
16646
16647         * calls.c (load_register_parameters): Move check for zero
16648         sized items so that only the call to
16649         mem_overlaps_already_clobbered_arg_p () is protected.
16650
16651 2010-07-22  Jan Hubicka  <jh@suse.cz>
16652
16653         * ipa-pure-const.c (varying_state): Break out from ...
16654         (get_function_state): ... here; always return varying_state
16655         when state would be NULL otherwise.
16656         (remove_node_data): Do not free varying state.
16657
16658 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
16659
16660         PR bootstrap/44970
16661         PR middle-end/45009
16662         * postreload.c: Include "target.h".
16663         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
16664         into account.
16665         (fixup_debug_insns): Don't copy the rtx.
16666         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
16667         Don't copy when replacing.  Call fixup_debug_insns in the case where
16668         we merged one add with another.
16669         (reload_combine_recognize_pattern): Fail if there aren't any uses.
16670         Try harder to determine whether we're picking a valid index register.
16671         Don't set store_ruid for an insn we're going to scan in the
16672         next iteration.
16673         (reload_combine): Remove unused code.
16674         (reload_combine_note_use): When updating use information for
16675         an old insn, ignore a use that occurs after store_ruid.
16676         * Makefile.in (postreload.o): Update dependencies.
16677
16678         * function.c (record_hard_reg_sets): Restrict the previous change
16679         to cases where the incoming nominal mode is the same as the
16680         incoming promoted mode and everything happens in MODE_INT.
16681
16682 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16683
16684         PR debug/45015
16685         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
16686         ASM_OPERANDS_OUTPUT_IDX.
16687         (adjust_insn): For inline asm with multiple sets ensure first
16688         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
16689         the insn.
16690
16691 2010-07-21  Richard Henderson  <rth@redhat.com>
16692
16693         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
16694         comparison for avoiding xmm register saves.  Emit the xmm register
16695         saves explicitly.
16696         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
16697         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
16698         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
16699         Remove patterns and the associated splitters.
16700
16701 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
16702
16703         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
16704         and imagine parts of a complex, so that they can have the same
16705         base and fall into the same group.
16706
16707 2010-07-21  Richard Guenther  <rguenther@suse.de>
16708
16709         PR lto/45018
16710         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
16711         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
16712         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
16713
16714 2010-07-21  Martin Jambor  <mjambor@suse.cz>
16715
16716         PR tree-optimization/44900
16717         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
16718         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
16719
16720 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
16721
16722         PR middle-end/44738
16723         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
16724
16725 2010-07-21  Richard Guenther  <rguenther@suse.de>
16726
16727         PR middle-end/45013
16728         * tree-ssa.c (useless_type_conversion_p): Dispatch to
16729         gimple_types_compatible_p only when in lto.
16730         * gimple.c (gimple_types_compatible_p): Use canonical types
16731         to speed up comparison.
16732
16733 2010-07-21  Richard Guenther  <rguenther@suse.de>
16734
16735         * tree-flow.h (referenced_var): Move define ...
16736         * tree-flow-inline.h (referenced_var): ... here as an inline
16737         function.  Assert here ...
16738         * tree-dfa.c (referenced_var_lookup): ... instead of here.
16739         * tree-ssa.c (maybe_optimize_var): Check if the variable
16740         is in referenced vars.
16741         (execute_update_addresses_taken): Remove old broken check.
16742         * gimple-pretty-print.c (pp_points_to_solution): Use
16743         referenced_var_lookup.
16744         * tree-into-ssa.c (dump_decl_set): Likewise.
16745
16746 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16747
16748         PR debug/45003
16749         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
16750         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
16751         ZERO_EXTEND here.
16752
16753 2010-07-20  Richard Henderson  <rth@redhat.com>
16754
16755         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
16756
16757 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16758
16759         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
16760         computing the sum of the stack pointer and a large constant.
16761         * config/arm/constraints.md (M): Remove superfluous parentheses.
16762         (Pc): New constraint.
16763
16764 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
16765
16766         PR debug/45006
16767         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
16768         operand's type if exp is tcc_unary class tree.
16769
16770 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
16771
16772         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
16773         Reverse sense of if_then_else condition.
16774
16775 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
16776
16777         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
16778         * config/rs6000/rs6000.c (rs6000_override_options): Set
16779         rs6000_block_move_inline_limit appropriately.
16780         (expand_block_move): Use rs6000_block_move_inline_limit.
16781         * doc/invoke.texi (mblock-move-inline-limit): Document.
16782
16783 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16784
16785         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
16786         FROM and TO.  All callers changed.  Don't look for tracked uses,
16787         just scan the RTL for DEBUG_INSNs and substitute.
16788         (reload_combine_recognize_pattern): Call fixup_debug_insns.
16789         (reload_combine): Ignore DEBUG_INSNs.
16790
16791 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
16792
16793         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
16794         depth to 8 from 5.
16795
16796         PR debug/45003
16797         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
16798         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
16799         instead of the result's type.
16800
16801 2010-07-20  Richard Guenther  <rguenther@suse.de>
16802
16803         PR tree-optimization/44977
16804         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
16805         SSA form.
16806
16807 2010-07-20  Richard Guenther  <rguenther@suse.de>
16808
16809         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
16810         (lto_symtab_merge_decls_2): Likewise.
16811         * gimple.h (gimple_types_compatible_p): Declare.
16812         * gimple.c (gimple_queue_type_fixup): Remove.
16813         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
16814         (gimple_compatible_complete_and_incomplete_type_p): New function.
16815         (gimple_types_compatible_p): Adjust.
16816         (gimple_register_type): Remove type fixup code.
16817         (print_gimple_types_stats): Adjust.
16818         (free_gimple_type_tables): Likewise.
16819         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
16820         * tree-ssa.c (useless_type_conversion_p): Likewise.
16821
16822 2010-07-20  Richard Guenther  <rguenther@suse.de>
16823
16824         PR middle-end/44971
16825         PR middle-end/44988
16826         * tree-ssa.c (maybe_optimize_var): New function split out from ...
16827         (execute_update_addresses_taken): ... here.
16828         (non_rewritable_mem_ref_base): Likewise.
16829         (execute_update_addresses_taken): Do not iterate over all referenced
16830         vars but just all local decls and parms.
16831         Properly check call and asm arguments and rewrite call arguments.
16832
16833 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
16834
16835         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
16836         to top level.
16837         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
16838         definitions ...
16839         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
16840         New macro.
16841         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
16842
16843 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
16844
16845         * gengtype.c (start_root_entry): New function, split out from
16846         write_root.  Check whether V is null and raise an error if so.
16847         (write_field_root): Check for V being null.  Don't raise an error here;
16848         set V to null instead.
16849         (write_root): Update comment above function.  Use start_root_entry.
16850
16851 2010-07-19  Xinliang David Li  <davidxl@google.com>
16852
16853         PR testsuite/44932
16854         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
16855         def edges.
16856         (find_uninit_use): Add dump.
16857         (is_use_properly_guarded): Ditto.
16858         (warn_uninitialized_phi): Ditto.
16859         (execute_late_warn_uninitialized): Ditto.
16860
16861 2010-07-19  Richard Guenther  <rguenther@suse.de>
16862
16863         PR middle-end/44941
16864         * expr.c (emit_block_move_hints): Move zero size check first.
16865         Move asserts to more useful places.
16866         * calls.c (load_register_parameters): Check for zero size.
16867
16868 2010-07-19  Richard Henderson  <rth@redhat.com>
16869
16870         * tree-optimize.c (execute_all_early_local_passes): New.  Change
16871         cgraph_state here ...
16872         (execute_early_local_optimizations): ... not here.  Remove.
16873         (pass_early_local_passes, pass_all_early_optimizations): Update.
16874
16875 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
16876
16877         * postreload.c (reload_combine_closest_single_use): Ignore the
16878         number of uses for DEBUG_INSNs.
16879         (fixup_debug_insns): New static function.
16880         (reload_combine_recognize_const_pattern): Use it.  Don't let the
16881         main loop be affected by DEBUG_INSNs.
16882         Really disallow moving adds past a jump insn.
16883         (reload_combine_recognize_pattern): Don't update use_ruid here.
16884         (reload_combine_note_use): Do it here.
16885         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
16886
16887 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
16888
16889         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
16890         of a loop.
16891         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
16892
16893 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
16894
16895         * config/i386/darwin.h: Define darwin_emit_branch_islands.
16896         (TARGET_MACHO_BRANCH_ISLANDS): New.
16897         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
16898         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
16899         default value.
16900         * config/i386/i386.c (output_pic_addr_const): Do not emit
16901         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
16902         (x86_output_mi_thunk): Adjust symbol creation.
16903         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
16904         Remove out of date comment.
16905         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
16906         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16907         (DARWIN_GENERATE_ISLANDS): Ditto.
16908         (output_call):  Do not emit branch islands unless
16909         darwin_emit_branch_islands is set.
16910         * config/darwin.c: Declare darwin_emit_branch_islands.
16911         (machopic_indirect_data_reference): Do not emit unless
16912         darwin_emit_branch_islands is set.
16913         (darwin_override_options): Set darwin_emit_branch_islands
16914         where it is needed.
16915         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16916
16917 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16918
16919         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16920         sse_runtime, sse2_runtime.
16921
16922 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
16923
16924         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
16925         low half of a single-register SCmode return value before ORing
16926         it with the high half.
16927         * config/mips/mips16.S (MERGE_GPRf): Likewise.
16928
16929 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16930
16931         PR target/44805
16932         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
16933         on all targets.
16934
16935 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
16936
16937         PR target/42235
16938         * postreload.c (reload_cse_move2add): Return bool, true if anything.
16939         changed.  All callers changed.
16940         (move2add_use_add2_insn): Likewise.
16941         (move2add_use_add3_insn): Likewise.
16942         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
16943         reload_combine.
16944         (RELOAD_COMBINE_MAX_USES): Bump to 16.
16945         (last_jump_ruid): New static variable.
16946         (struct reg_use): New members CONTAINING_MEM and RUID.
16947         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
16948         (reload_combine_split_one_ruid, reload_combine_split_ruids,
16949         reload_combine_purge_insn_uses, reload_combine_closest_single_use
16950         reload_combine_purge_reg_uses_after_ruid,
16951         reload_combine_recognize_const_pattern): New static functions.
16952         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
16953         is true for our reg and that we have available index regs.
16954         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
16955         callers changed.  Use them to initialize fields in struct reg_use.
16956         (reload_combine): Initialize last_jump_ruid.  Be careful when to
16957         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
16958         Call reload_combine_recognize_const_pattern.
16959         (reload_combine_note_store): Update REAL_STORE_RUID field.
16960
16961 2010-07-16  Jason Merrill  <jason@redhat.com>
16962
16963         * Makefile.in (opts-common.o): Depend on options.h.
16964
16965 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16966
16967         * tree.c (build_common_builtin_nodes): Use build_function_type_list
16968         instead of build_function_type.
16969         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
16970         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
16971
16972 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16973
16974         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
16975         do all the work.
16976         (rs6000_emit_int_cmove): Use function pointers for insn generation.
16977         Don't force values into registers unnecessarily.
16978         (output_isel): Assert that we're not given conditions we can't handle.
16979         Delete corresponding code.
16980         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
16981         scc_comparison_operator constraint.  Permit 0 for the consequent
16982         operand.  Permit any GPR for the alternative operand.
16983         (isel_unsigned_<mode>): Likewise.
16984
16985 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
16986
16987         PR target/44942
16988         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
16989         argument to const_tree.
16990         * config/i386/i386.c (function_arg_advance): If padding needs to be
16991         inserted before argument, increment cum->words by number of padding
16992         words as well.
16993         (contains_aligned_value_p): Change argument to const_tree.
16994         (ix86_function_arg_boundary): Change second argument to const_tree.
16995
16996 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
16997
16998         PR target/42235
16999         * function.c (record_hard_reg_sets): New static function.
17000         (assign_parm_setup_reg): If an optab for extending exists and the
17001         generated code clobbbers no hard regs, emit the insn directly and
17002         create a REG_EQUIV note.
17003
17004 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17005
17006         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17007         TREE_CHAIN.
17008         * c-typeck.c (push_init_level): Likewise.
17009         (process_init_element): Likewise.
17010
17011 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
17012
17013         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17014         (integer_three_node): Add.
17015         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17016         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17017         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17018         of call build_int_cst.
17019         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
17020         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
17021         (find_interesting_uses_address): Ditto.
17022         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
17023         * tree-eh.c (lower_eh_constructs_2): Ditto.
17024         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
17025         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
17026         * expmed.c (expand_divmod): Ditto.
17027         * tree-mudflap.c (mx_register_decls): Ditto.
17028         * varasm.c (array_size_for_constructor): Ditto.
17029         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
17030         * c-parser.c (c_parser_postfix_expression): Ditto.
17031
17032 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
17033
17034         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
17035         New static variables.
17036         (reload_combine_recognize_pattern): New static function, broken out
17037         of reload_combine.
17038         (reload_combine): Use it.  Only initialize first_index_reg and
17039         last_index_reg once.
17040
17041 2010-07-15  Richard Henderson  <rth@redhat.com>
17042
17043         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
17044         when done.
17045
17046 2010-07-15  Jan Hubicka  <jh@suse.cz>
17047
17048         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
17049         comdats for broken gold.
17050         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
17051
17052 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17053
17054         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
17055
17056 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17057
17058         * tree.h (DECL_CHAIN): Define.
17059         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
17060         * c-decl.c: Likewise.
17061         * c-parser.c: Likewise.
17062         * c-typeck.c: Likewise.
17063         * cfgexpand.c: Likewise.
17064         * cgraph.c: Likewise.
17065         * cgraphunit.c: Likewise.
17066         * combine.c: Likewise.
17067         * config/alpha/alpha.c: Likewise.
17068         * config/arm/arm.c: Likewise.
17069         * config/frv/frv.c: Likewise.
17070         * config/i386/i386.c: Likewise.
17071         * config/i386/winnt-cxx.c: Likewise.
17072         * config/ia64/ia64.c: Likewise.
17073         * config/iq2000/iq2000.c: Likewise.
17074         * config/mep/mep.c: Likewise.
17075         * config/mips/mips.c: Likewise.
17076         * config/pa/som.h: Likewise.
17077         * config/rs6000/rs6000.c: Likewise.
17078         * config/s390/s390.c: Likewise.
17079         * config/sh/sh.c: Likewise.
17080         * config/sh/symbian-cxx.c: Likewise.
17081         * config/sparc/sparc.c: Likewise.
17082         * config/spu/spu.c: Likewise.
17083         * config/stormy16/stormy16.c: Likewise.
17084         * config/vxworks.c: Likewise.
17085         * config/xtensa/xtensa.c: Likewise.
17086         * coverage.c: Likewise.
17087         * dbxout.c: Likewise.
17088         * dwarf2out.c: Likewise.
17089         * emit-rtl.c: Likewise.
17090         * expr.c: Likewise.
17091         * function.c: Likewise.
17092         * gimple-low.c: Likewise.
17093         * gimple-pretty-print.c: Likewise.
17094         * gimplify.c: Likewise.
17095         * integrate.c: Likewise.
17096         * ipa-inline.c: Likewise.
17097         * ipa-prop.c: Likewise.
17098         * ipa-split.c: Likewise.
17099         * ipa-struct-reorg.c: Likewise.
17100         * ipa-type-escape.c: Likewise.
17101         * langhooks.c: Likewise.
17102         * lto-cgraph.c: Likewise.
17103         * omp-low.c: Likewise.
17104         * stor-layout.c: Likewise.
17105         * tree-cfg.c: Likewise.
17106         * tree-complex.c: Likewise.
17107         * tree-dfa.c: Likewise.
17108         * tree-dump.c: Likewise.
17109         * tree-inline.c: Likewise.
17110         * tree-mudflap.c: Likewise.
17111         * tree-nested.c: Likewise.
17112         * tree-object-size.c: Likewise.
17113         * tree-pretty-print.c: Likewise.
17114         * tree-sra.c: Likewise.
17115         * tree-ssa-live.c: Likewise.
17116         * tree-ssa-loop-niter.c: Likewise.
17117         * tree-ssa-math-opts.c: Likewise.
17118         * tree-ssa-reassoc.c: Likewise.
17119         * tree-ssa-sccvn.c: Likewise.
17120         * tree-ssa-structalias.c: Likewise.
17121         * tree-tailcall.c: Likewise.
17122         * tree-vrp.c: Likewise.
17123         * tree.c: Likewise.
17124         * var-tracking.c: Likewise.
17125         * varasm.c: Likewise.
17126
17127 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17128
17129         PR target/44877
17130         * config/spu/spu.c (spu_expand_builtin_1): Allow references
17131         (as well as pointers) as argument to mask_for_load builtins.
17132
17133 2010-07-15  Richard Guenther  <rguenther@suse.de>
17134
17135         PR tree-optimization/44946
17136         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
17137         with accessing only padding properly.
17138
17139 2010-07-15  Jan Hubicka  <jh@suse.cz>
17140
17141         * ipa.c (function_and_variable_visibility): Variables marked as used
17142         should not be localized.
17143
17144 2010-07-15  Jan Hubicka  <jh@suse.cz>
17145
17146         * cgraph.c: Include lto-streamer.h
17147         (change_decl_assembler_name): Work when assembler name hash is at place.
17148         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
17149         be sure to rename it to avoid name clash.
17150         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
17151         Localize hidden symbols only when locally defined.
17152
17153 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
17154
17155         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
17156
17157 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
17158             Kevin F. Quinn  <kevquinn@gentoo.org>
17159
17160         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
17161         * common.opt: Add -Wtrampolines.
17162         * doc/invoke.texi: Add -Wtrampolines.
17163
17164 2010-07-15  Jie Zhang  <jie@codesourcery.com>
17165
17166         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
17167         cortex_a8_issue_ls.
17168
17169 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
17170
17171         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
17172         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
17173
17174 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17175
17176         * config/spu/spu.c (reg_names): Remove prototype.
17177         (call_used_regs): Likewise.
17178
17179 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
17180
17181         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
17182         "unused" with attribute "used".
17183         (__JCR_END__): Likewise.
17184         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
17185         "used" attribute.
17186         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
17187
17188 2010-07-14  Richard Guenther  <rguenther@suse.de>
17189
17190         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
17191         (maybe_fixup_decls): Likewise.
17192         (input_gimple_stmt): Do not fixup anything.
17193         * lto-streamer-out.c (output_gimple_stmt): Make sure all
17194         non-automatic variable uses are wrapped inside a MEM_REF.
17195
17196 2010-07-14  Richard Henderson  <rth@redhat.com>
17197
17198         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
17199         for functions.
17200         * varasm.c (assemble_variable): Remove early exit for functions;
17201         assert that we're given a variable.
17202
17203 2010-07-14  Jie Zhang  <jie@codesourcery.com>
17204
17205         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
17206         cortex_a8_default when neon_type is not none.
17207
17208 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17209
17210         * lower-subreg.c (subreg_context): New static bitmap.
17211         (decompose_multiword_subregs): Allocate and free it.
17212         (find_decomposable_subregs): Set a bit in it for a register that
17213         occurs in a subreg that changes mode but not size.
17214         (can_decompose_p): Test it instead of non_decomposable_context.
17215
17216 2010-07-14  Richard Guenther  <rguenther@suse.de>
17217
17218         PR tree-optimization/44824
17219         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
17220         is_gimple_mem_ref_addr.
17221         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
17222         non-decl_address_invariant_p addresses.
17223
17224 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17225
17226         * reload.c (find_reloads): Revert code to penalize small register
17227         classes that was brought in with the IRA merge.
17228
17229 2010-07-14  Richard Guenther  <rguenther@suse.de>
17230
17231         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
17232         as base of ARRAY_REFs.
17233
17234 2010-07-14  Richard Guenther  <rguenther@suse.de>
17235
17236         PR middle-end/44930
17237         * tree-pretty-print.c (do_niy): Do not print a newline.
17238
17239 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17240
17241         * ira-int.h (struct ira_object): New.
17242         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
17243         (struct ira_allocno): Remove members min, max,
17244         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
17245         conflict_allocnos_num and conflict_vec_p.  Add new member object.
17246         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
17247         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
17248         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
17249         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
17250         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
17251         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
17252         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
17253         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
17254         an ira_object_t rather than ira_allocno_t.  All uses changed.
17255         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17256         contains a vector of ira_object_t; all uses changed.
17257         (ira_objects_num): Declare variable.
17258         (ira_create_allocno_object): Declare function.
17259         (ira_conflict_vector_profitable_p): Adjust prototype.
17260         (ira_allocate_conflict_vec): Renamed from
17261         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
17262         (ira_allocate_object_conflicts): Renamed from
17263         ira_allocate_allocno_conflicts; first arg now ira_object_t.
17264         (struct ira_object_iterator): New.
17265         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
17266         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
17267         to conflict_vec_p.  All uses changed.
17268         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
17269         Changed to take into account that conflicts are now tracked for
17270         objects.
17271         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
17272         Args changed to accept ira_object_t.  All uses changed.
17273         (allocnos_conflict_p): New static function.
17274         (collected_conflict_objects): Renamed from collected_allocno_objects;
17275         now a vector of ira_object_t.  All uses changed.
17276         (build_conflict_bit_table): Changed to take into account that
17277         conflicts are now tracked for objects.
17278         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
17279         (print_allocno_conflicts, ira_build_conflicts): Likewise.
17280         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
17281         setup_allocno_left_conflicts_size, allocno_reload_assign,
17282         fast_allocation): Likewise.
17283         * ira-lives.c (make_hard_regno_born, make_allocno_born)
17284         process_single_reg_class_operands, process_bb_node_lives): Likewise.
17285         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
17286         Likewise.
17287         * ira-build.c (ira_objects_num): New variable.
17288         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17289         contains a vector of ira_object_t; all uses changed.
17290         (ira_object_id_map_vec): Corresponding change.
17291         (object_pool): New static variable.
17292         (initiate_allocnos): Initialize it.
17293         (finish_allocnos): Free it.
17294         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
17295         New functions.
17296         (ira_create_allocno): Don't set members that were removed.
17297         (ira_set_allocno_cover_class): Don't change conflict hard regs.
17298         (merge_hard_reg_conflicts): Changed to take into account that
17299         conflicts are now tracked for objects.
17300         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
17301         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
17302         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
17303         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
17304         setup_min_max_conflict_allocno_ids, ):  Likewise.
17305         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
17306         to ira_object_t; all callers changed.
17307         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
17308         to ira_object_t, all callers changed.
17309         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
17310         to ira_object_t, all callers changed.
17311         (conflict_check, curr_conflict_check_tick): Renamed from
17312         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
17313         changed.
17314         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
17315         arg changed to ira_object_t, all callers changed.
17316         (create_cap_allocno): Call ira_create_allocno_object.
17317         (finish_allocno): Free the corresponding object.
17318         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
17319         callers changed.  Adjusted for dealing with objects.
17320         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
17321         dealing with objects.
17322         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
17323
17324         * ira-int.h (struct live_range): Rename allocno member to object
17325         and change type to ira_object_t.
17326         (struct ira_object): New member live_ranges.
17327         (struct ira_allocno): Remove member live_ranges.
17328         (ALLOCNO_LIVE_RANGES): Remove.
17329         (OBJECT_LIVE_RANGES): New macro.
17330         (ira_create_live_range, ira_copy_live_range_list,
17331         ira_merge_live_range_list, ira_live_ranges_intersect_p,
17332         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
17333         * ira-build.c (ira_create_object): Initialize live ranges here.
17334         (ira_create_allocno): Not here.
17335         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
17336         changed to ira_object_t, all callers changed.
17337         (copy_live_range): Rename from copy_allocno_live_range, all callers
17338         changed.
17339         (ira_copy_live_range_list): Rename from
17340         ira_copy_allocno_live_range_list, all callers changed.
17341         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
17342         all callers changed.
17343         (ira_live_ranges_intersect_p): Rename from
17344         ira_allocno_live_ranges_intersect_p, all callers changed.
17345         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
17346         callers changed.
17347         (ira_finish_live_range_list): Rename from
17348         ira_finish_allocno_live_range_list, all callers changed.
17349         (change_object_in_range_list): Rename from change_allocno_in_range_list,
17350         last arg changed to ira_object_t, all callers changed.
17351         (finish_allocno): Changed to expect live ranges in the allocno's object.
17352         (move_allocno_live_ranges, copy_allocno_live_ranges,
17353         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
17354         ira_flattening, ira_build): Likewise.
17355         * ira-color.c (allocnos_have_intersected_live_ranges_p,
17356         slot_coalesced_allocno_live_ranges_intersect,
17357         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
17358         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17359         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
17360         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
17361         make_allocno_dead, create_start_finish_chains,
17362         remove_some_program_points_and_update_live_ranges,
17363         ira_debug_live_range_list): Likewise.
17364
17365         * ira-int.h (ira_object_conflict_iterator): Rename from
17366         ira_allocno_conflict_iterator.
17367         (ira_object_conflict_iter_init): Rename from
17368         ira_allocno_conflict_iter_init, second arg changed to
17369         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
17370         FOR_EACH_ALLOCNO_CONFLICT.
17371         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
17372         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
17373         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
17374         * ira-conflicts.c (print_allocno_conflicts): Likewise.
17375
17376 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
17377
17378         PR other/44874
17379         * tree-dump.c (dump_options): Add enumerate_locals entry.
17380         Add TDF_NOID exclusion to all entry.
17381         * tree-dump.h (dump_enumerated_decls): Declare.
17382         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
17383         Don't display type uid.
17384         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
17385         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
17386         * tree-ssa-live.c: Include gimple.h.
17387         (numbered_tree_d): New struct.
17388         (numbered_tree): New typedef.
17389         (DEF_VEC_O (numbered_tree): New.
17390         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
17391         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
17392         (dump_enumerated_decls): Likewise.
17393         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
17394         debug info and flag_dump_final_insns, call dump_enumerated_decls.
17395         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
17396         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
17397
17398 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
17399
17400         * expmed.h (MAX_BITS_PER_WORD): Move to...
17401         * defaults.h (MAX_BITS_PER_WORD): ...here.
17402
17403 2010-07-13  DJ Delorie  <dj@redhat.com>
17404
17405         * config/h8300/h8300.c (h8300_init_once): Default to
17406         -fstrict_volatile_bitfields.
17407
17408         * config/sh/sh.c (sh_override_options): Default to
17409         -fstrict_volatile_bitfields.
17410
17411         * config/rx/rx.c (rx_option_override): New.
17412
17413         * config/m32c/m32c.c (m32c_override_options): Default to
17414         -fstrict_volatile_bitfields.
17415
17416 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
17417
17418         * tree.h (build_function_call_expr): Delete.
17419         (build_call_expr_loc_array): New function.
17420         (build_call_expr_loc_vec): New function.
17421         * tree-flow.h (struct omp_region): Change type of ws_args field
17422         to a VEC.
17423         * builtins.c (build_function_call_expr): Delete.
17424         (build_call_expr_loc_array): New function.
17425         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
17426         (build_call_expr): Likewise.
17427         (build_call_expr_loc_vec): New function.
17428         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
17429         build_function_call_expr.
17430         * expr.c (emutls_var_address): Likewise.
17431         * varasm.c (emutls_common_1): Likewise.
17432         * omp-low.c (expand_omp_atomic_mutex): Likewise.
17433         (expand_omp_taskreg): Adjust for new type of region->ws_args.
17434         (get_ws_args_for): Return a VEC instead of a tree.
17435         (expand_parallel_call): Call build_call_expr_loc_vec instead of
17436         build_function_call_expr.
17437         * stor-layout.c (self_referential_size): Likewise.
17438
17439 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
17440
17441         PR testsuite/44701
17442         * recog.c (constrain_operands): Allow side-effects in memory
17443         operands if either < or > constraint is used, rather than if
17444         both < and > is used.
17445
17446 2010-07-13  Richard Guenther  <rguenther@suse.de>
17447
17448         PR middle-end/44911
17449         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
17450         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
17451         without name.
17452
17453 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
17454
17455         PR target/44761
17456         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
17457         to variable emited.
17458         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
17459         * config/sh/sh.md (symGOT_load): Likewise.
17460         (symDTPOFF2reg): Likewise.
17461         (symTPOFF2reg): Likewise.
17462
17463 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17464
17465         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
17466         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
17467
17468 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17469
17470         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
17471         explanation.
17472         Find ucontext_t * on Solaris 11.
17473         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
17474         Handle new Solaris 11 __sighndlr patterns.
17475
17476 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
17477
17478         PR debug/44901
17479         * vec.h (VEC_block_remove): Fix comment.
17480         * tree-ssa-live.c (remove_unused_locals): Don't use
17481         VEC_unordered_remove on local_decls, instead replace a single
17482         vector element in each iteration if at least one element had
17483         to be removed and VEC_truncate at the end.
17484         * omp-low.c (expand_omp_taskreg): Likewise.
17485
17486 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17487
17488         * c-decl.c (finish_function): Fix typo in comment.
17489
17490 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
17491
17492         PR bootstrap/44921
17493         * postreload.c (move2add_use_add3_insn): Silence gcc warning
17494         on min_regno.
17495
17496 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
17497
17498         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
17499         (simplify_stmt_using_ranges): Use it.
17500
17501 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17502
17503         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
17504         member.  Do not mark as GTY(()).
17505         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
17506         (spu_builtin_decls): New static variable.
17507         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
17508         (spu_init_builtins): Likewise.
17509         (spu_builtin_mul_widen_even): Likewise.
17510         (spu_builtin_mul_widen_odd): Likewise.
17511         (spu_builtin_mask_for_load): Likewise.
17512         (spu_builtin_vec_perm): Likewise.
17513         * config/spu/spu-c.c: Include "target.h".
17514         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
17515         of using spu_builtins[].fndecl.
17516
17517 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17518
17519         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
17520         imply -minterlink-mips16.
17521
17522 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17523
17524         * config/mips/mips.h (mips16_globals): Declare.
17525         (SWITCHABLE_TARGET): Define.
17526         * config/mips/mips.c: Include target-globals.h.
17527         (mips16_globals): New variable.
17528         (mips_set_mips16_mode): Use save_target_globals and
17529         restore_target_globals instead of target_reinit.
17530
17531 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17532
17533         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
17534         to say that the function can be called more than once.
17535         * target-globals.c (save_target_globals): Call init_reg_sets.
17536
17537 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17538
17539         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
17540         * bb-reorder.h: New file.
17541         * bb-reorder.c (default_target_bb_reorder): New variable.
17542         (this_target_bb_reorder): New conditional variable.
17543         (uncond_jump_length): Redefine as a macro.
17544         * target-globals.h (this_target_bb_reorder): Declare.
17545         (target_globals): Add a bb_reorder field.
17546         (restore_target_globals): Copy the bb_reorder field to
17547         this_target_bb-reorder.
17548         * target-globals.c: Include bb-reorder.h.
17549         (default_target_globals): Initialize the bb_reorder field.
17550         (save_target_globals): Likewise.
17551
17552 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17553
17554         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
17555         * gcse.h: New file.
17556         * gcse.c: Include gcse.h.
17557         (default_target_gcse): New variable.
17558         (this_target_gcse): New conditional variable.
17559         (can_copy): Redefine as a macro.
17560         (can_copy_init_p): New macro.
17561         (can_copy_p): Remove can_copy_init_p.
17562         * target-globals.h (this_target_gcse): Declare.
17563         (target_globals): Add a gcse field.
17564         (restore_target_globals): Copy the gcse field to this_target_gcse.
17565         * target-globals.c: Include gcse.h.
17566         (default_target_globals): Initialize the gcse field.
17567         (save_target_globals): Likewise.
17568
17569 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17570
17571         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
17572         and x_ira_prohibited_mode_move_regs_initialized_p.
17573         (ira_prohibited_mode_move_regs): Redefine as a macro.
17574         * ira.c (ira_prohibited_mode_move_regs): Delete.
17575         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
17576
17577 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17578
17579         * reload.h (target_reload): Add x_cached_reg_save_code and
17580         x_cached_reg_restore_code.
17581         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
17582         Redefine as macros.
17583
17584 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17585
17586         * Makefile.in (target-globals.o): Depend on builtins.h.
17587         * builtins.h: New file.
17588         * builtins.c: Include builtins.h.
17589         (default_target_builtins): New variable.
17590         (this_target_builtins): New conditional variable.
17591         (apply_args_mode, apply_result_mode): Redefine as macros.
17592         * target-globals.h (this_target_builtins): Declare.
17593         (target_globals): Add a builtins field.
17594         (restore_target_globals): Copy the builtins field to
17595         this_target_builtins.
17596         * target-globals.c: Include builtins.h.
17597         (default_target_globals): Initialize the builtins field.
17598         (save_target_globals): Likewise.
17599
17600 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17601
17602         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
17603         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
17604         from expmed.c.
17605         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
17606         (alg_hash, alg_hash_used_p): New macros.
17607         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
17608         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
17609         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
17610
17611 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17612
17613         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
17614         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
17615         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
17616         (this_op_costs, costs_classes): Redefine as macros.
17617         (record_reg_classes): Don't take op_costs as a parameter.
17618         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
17619         (scan_one_insn): Update call to record_operand_costs.
17620
17621 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17622
17623         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
17624         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
17625         (target_ira_int): New structure.
17626         (default_target_ira_int): Declare.
17627         (this_target_ira_int): Declare as a variable or define as a macro.
17628         (ira_reg_mode_hard_regset, ira_register_move_cost)
17629         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
17630         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
17631         (prohibited_class_mode_regs, ira_important_classes_num)
17632         (ira_important_classes, ira_reg_class_intersect)
17633         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
17634         (ira_reg_class_union): Redefine as macros.
17635         * ira.h (target_ira): New structure.
17636         (default_target_ira): Declare.
17637         (this_target_ira): Declare as a variable or define as a macro.
17638         (ira_available_class_regs, ira_hard_regno_cover_class)
17639         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
17640         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
17641         (ira_class_hard_regs_num): Redefine as macros.
17642         * ira.c (default_target_ira, default_target_ira_int): New variables.
17643         (this_target_ira, this_target_ira_int): New conditional variables.
17644         (ira_reg_mode_hard_regset, ira_memory_move_cost)
17645         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
17646         (ira_class_subset_p): Delete.
17647         (no_unit_alloc_regs): Redefine as a macro.
17648         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
17649         (ira_class_hard_regs_num, ira_class_hard_reg_index)
17650         (ira_available_class_regs): Delete.
17651         (alloc_reg_class_subclasses): Redefine as a macro.
17652         (ira_reg_class_cover_size, ira_reg_class_cover)
17653         (ira_important_classes_num, ira_important_classes)
17654         (ira_important_class_nums, ira_class_translate): Delete.
17655         (cover_class_order): Document the variable's lifetime.
17656         (reorder_important_classes): Don't set ira_important_class_nums.
17657         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
17658         (ira_reg_class_super_classes, ira_reg_class_union)
17659         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
17660         Delete.
17661         (setup_reg_class_nregs): Don't set ira_max_regs.
17662         (prohibited_class_mode_regs): Delete.
17663         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
17664         (target_globals): Add ira and ira_int fields.
17665         (restore_target_globals): Copy the ira field to this_target_ira
17666         and the ira_int field to this_target_ira_int.
17667         * target-globals.c: Include ira-int.h.
17668         (default_target_globals): Initialize the ira and ira_int fields.
17669         (save_target_globals): Likewise.
17670
17671 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17672
17673         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
17674         * cfgloop.h (target_cfgloop): New structure.
17675         (default_target_cfgloop): Declare.
17676         (this_target_cfgloop): Declare as a variable or define as a macro.
17677         (target_avail_regs, target_clobbered_regs, target_res_regs)
17678         (target_reg_cost, target_spill_cost): Redefine as macros.
17679         * cfgloopanal.c (default_target_cfgloop): New variable.
17680         (this_target_cfgloop): New conditional variable.
17681         (target_avail_regs, target_clobbered_regs, target_res_regs)
17682         (target_reg_cost, target_spill_cost): Delete.
17683         * target-globals.h (this_target_cfgloop): Declare.
17684         (target_globals): Add a cfgloop field.
17685         (restore_target_globals): Copy the cfgloop field to
17686         this_target_cfgloop.
17687         * target-globals.c: Include cfgloop.h.
17688         (default_target_globals): Initialize the cfgloop field.
17689         (save_target_globals): Likewise.
17690
17691 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17692
17693         * regs.h (target_regs): Add x_direct_load, x_direct_store and
17694         x_float_extend_from_mem.
17695         (direct_load, direct_store, float_extend_from_mem): New macros.
17696         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
17697
17698 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17699
17700         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
17701         (target-globals.o): Depend on $(LIBFUNCS_H).
17702         * libfuncs.h: Include hashtab.h.
17703         (libfunc_entry): Moved from optabs.c.
17704         (target_libfuncs): New structure.
17705         (default_target_libfuncs): Declare.
17706         (this_target_libfuncs): Declare as a variable or define as a macro.
17707         (libfunc_table): Redefine as a macro.
17708         * optabs.c (default_target_libfuncs): New variable.
17709         (this_target_libfuncs): New conditional variable.
17710         (libfunc_table): Delete.
17711         (libfunc_entry): Moved to optabs.h.
17712         (libfunc_hash): Redefine as a macro.
17713         (hash_libfunc, eq_libfunc): Fix comments.
17714         (init_optabs): Use libfunc_hash to detect cases where the function
17715         has already been called.  Clear the hash table instead of
17716         recreating it.
17717         * target-globals.h (this_target_libfuncs): Declare.
17718         (target_globals): Add a libfuncs field.
17719         (restore_target_globals): Copy the libfuncs field to
17720         this_target_libfuncs.
17721         * target-globals.c: Include libfuncs.h.
17722         (default_target_globals): Initialize the libfuncs field.
17723         (save_target_globals): Likewise.
17724
17725 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17726
17727         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
17728         in all dependency lists.
17729
17730 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17731
17732         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
17733         * optabs.h (target_optabs): New structure.
17734         (default_target_optabs): Declare.
17735         (this_target_optabs): Declare as a variable or define as a macro.
17736         (optab_table, convert_optab_table, direct_optab_table): Redefine
17737         as macros.
17738         * optabs.c (default_target_optabs): New variable.
17739         (this_target_optabs): New conditional variable.
17740         (optab_table, convert_optab_table, direct_optab_table): Delete.
17741         * target-globals.h (this_target_optabs): Declare.
17742         (target_globals): Add a optabs field.
17743         (restore_target_globals): Copy the optabs field to
17744         this_target_optabs.
17745         * target-globals.c: Include expr.h and optabs.h.
17746         (default_target_globals): Initialize the optabs field.
17747         (save_target_globals): Likewise.
17748
17749 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17750
17751         * flags.h (target_flagstate): Add x_flag_excess_precision.
17752         (flag_excess_precision): Redefine as a macro.
17753         * toplev.c (flag_excess_precision): Delete.
17754
17755 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17756
17757         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
17758         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
17759         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
17760         (no_caller_save_reg_set): Redefine as a macro.
17761         * reload.h (target_reload): Add x_caller_save_initialized_p and
17762         x_regno_save_mode.
17763         (caller_save_initialized_p): Redefine as a macro.
17764         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
17765         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
17766         (regno_save_mode): Redefine as a macro.
17767
17768 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17769
17770         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
17771         * expmed.h: New file.
17772         * expmed.c (default_target_costs): New variable.
17773         (this_target_costs): New conditional variable.
17774         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
17775         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
17776         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
17777         * target-globals.h (this_target_expmed): Declare.
17778         (target_globals): Add a expmed field.
17779         (restore_target_globals): Copy the expmed field to
17780         this_target_expmed.
17781         * target-globals.c: Include expmed.h.
17782         (default_target_globals): Initialize the expmed field.
17783         (save_target_globals): Likewise.
17784
17785 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17786
17787         * Makefile.in (target-globals.o): Depend on reload.h.
17788         * reload.h (target_reload): New structure.
17789         (default_target_reload): Declare.
17790         (this_target_reload): Declare as a variable or define as a macro.
17791         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
17792         * reload1.c (default_target_reload): New variable
17793         (this_target_reload): New conditional variable.
17794         (indirect_symref_ok, double_reg_address_ok): Delete.
17795         (spill_indirect_levels): Redefine as a macro.
17796         * target-globals.h (this_target_reload): Declare.
17797         (target_globals): Add a reload field.
17798         (restore_target_globals): Copy the reload field to
17799         this_target_reload.
17800         * target-globals.c: Include hard-reg-set.h.
17801         (default_target_globals): Initialize the reload field.
17802         (save_target_globals): Likewise.
17803
17804 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17805
17806         * rtl.h (target_rtl): Add x_static_reg_base_value.
17807         * alias.c (static_reg_base_value): Redefine as a macro.
17808
17809 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17810
17811         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
17812         (GTFILES): Remove reginfo.c.
17813         * rtl.h (target_rtl): Add x_top_of_stack.
17814         (top_of_stack): New macro.
17815         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
17816         (top_of_stack): Delete.
17817
17818 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17819
17820         * regs.h (target_regs): Add x_hard_regs_of_mode,
17821         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
17822         x_may_move_out_cost and x_last_mode_for_init_move_cost.
17823         (have_regs_of_mode, contains_reg_of_mode, move_cost)
17824         (may_move_in_cost, may_move_out_cost): Redefine as macros.
17825         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
17826         (may_move_in_cost, may_move_out_cost): Delete.
17827         (last_mode_for_init_move_cost): Redefine as a macro.
17828
17829 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17830
17831         * hard-reg-set.h (target_hard_regs): New structure.
17832         (default_target_hard_regs): Declare.
17833         (this_target_hard_regs): Declare as a variable or define as a macro.
17834         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
17835         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
17836         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
17837         (reg_class_size, reg_class_subclasses, reg_class_subunion)
17838         (reg_class_superunion, reg_names): Redefine as macros.
17839         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
17840         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
17841         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
17842         (reg_class_contents, reg_class_size, reg_class_subclasses)
17843         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
17844         (default_target_hard_regs): New variable
17845         (this_target_hard_regs, initial_call_really_used_regs)
17846         (initial_reg_alloc_order): New conditional variables.
17847         (initial_reg_names): New variable.
17848         (init_reg_sets): Assert that initial_call_really_used_regs,
17849         initial_reg_alloc_order and initial_reg_names
17850         are all the same size as their variable counterparts.  Use them to
17851         initialize those counterparts.
17852         * target-globals.h (this_target_hard_regs): Declare.
17853         (target_globals): Add a hard_regs field.
17854         (restore_target_globals): Copy the hard_regs field to
17855         this_target_hard_regs.
17856         * target-globals.c: Include hard-reg-set.h.
17857         (default_target_globals): Initialize the hard_regs field.
17858         (save_target_globals): Likewise.
17859
17860 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17861
17862         * Makefile.in (target-globals.o): Depend on $(RTL_H).
17863         * rtl.h (target_rtl): New structure.
17864         (default_target_rtl): Declare.
17865         (this_target_rtl): Declare as a variable or define as a macro.
17866         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
17867         Redefine as macros.
17868         * emit-rtl.c (default_target_rtl): New variable.
17869         (this_target_rtl): New conditional variable.
17870         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
17871         (return_address_pointer_rtx): Delete.
17872         (initial_regno_reg_rtx): New macro.
17873         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
17874         (init_emit_regs): Likewise.
17875         * target-globals.h (this_target_rtl): Declare.
17876         (target_globals): Add a rtl field.
17877         (restore_target_globals): Copy the rtl field to this_target_rtl.
17878         * target-globals.c: Include rtl.h.
17879         (default_target_globals): Initialize the rtl field.
17880         (save_target_globals): Likewise.
17881
17882 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17883
17884         * Makefile.in (target-globals.o): Depend on $(REGS_H).
17885         * regs.h (target_reg_modes): New structure.
17886         (default_target_reg_modes): Declare.
17887         (this_target_reg_modes): Declare as a variable or define as a macro.
17888         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
17889         * reginfo.c (default_target_reg_modes): New variable.
17890         (this_target_reg_modes): New conditional variable.
17891         (hard_regno_nregs, reg_raw_mode): Delete.
17892         * target-globals.h (this_target_regs): Declare.
17893         (target_globals): Add a regs field.
17894         (restore_target_globals): Copy the regs field to this_target_regs.
17895         * target-globals.c: Include regs.h.
17896         (default_target_globals): Initialize the regs field.
17897         (save_target_globals): Likewise.
17898
17899 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17900
17901         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
17902         * doc/tm.texi: Regenerate.
17903         * Makefile.in (OBJS-common): Add target-globals.o.
17904         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
17905         and target-globals.h.
17906         (target-globals.o): New rule.
17907         (GTFILES): Include $(srcdir)/target-globals.h.
17908         * defaults.h (SWITCHABLE_TARGET): Define.
17909         * gengtype.c (open_base_files): Add target-globals.h to the
17910         list of includes.
17911         * target-globals.h: New file.
17912         * target-globals.c: Likewise.
17913
17914         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
17915         * flags.h (target_flag_state): New structure.
17916         (default_target_flag_state): Declare.
17917         (this_target_flag_state): Declare as a variable or define as a macro.
17918         (align_loops_log): Redefine as a macro.
17919         (align_loops_max_skip, align_jumps_log): Likewise.
17920         (align_jumps_max_skip, align_labels_log): Likewise.
17921         (align_labels_max_skip, align_functions_log): Likewise.
17922         * toplev.c (default_target_flag_state): New variable.
17923         (this_target_flag_state): New conditional variable.
17924         (align_loops_log): Delete.
17925         (align_loops_max_skip, align_jumps_log): Likewise.
17926         (align_jumps_max_skip, align_labels_log): Likewise.
17927         (align_labels_max_skip, align_functions_log): Likewise.
17928         * target-globals.h (this_target_flag_state): Declare.
17929         (target_globals): Add a flag_state field.
17930         (restore_target_globals): Copy the flag_state field to
17931         this_target_flag_state.
17932         * target-globals.c: Include flags.h.
17933         (default_target_globals): Initialize the flag_state field.
17934         (save_target_globals): Likewise.
17935
17936 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17937
17938         * postreload.c (reg_symbol_ref[]): New.
17939         (move2add_use_add2_insn): New.
17940         (move2add_use_add3_insn): New.
17941         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
17942         (move2add_note_store): Likewise.
17943
17944 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
17945
17946         PR rtl-optimization/44752
17947         * genautomata.c (main): Don't emit an empty file even if there
17948         is no automaton.
17949
17950 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17951
17952         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
17953         ix86_solaris_return_in_memory.
17954         * config/i386-protos.h: Reflect this.
17955         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17956         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17957         Move ...
17958         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
17959
17960 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17961
17962         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
17963         align the stack when it's going to be saved.
17964
17965 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17966
17967         PR pch/14940
17968         * config/host-solaris.c (mmap_fixed): New function.
17969         (sol_gt_pch_get_address): Use it.
17970         (sol_gt_pch_use_address): Likewise.
17971
17972 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17973
17974         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17975         pentiumpro on Solaris 8 and 9/x86.
17976         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
17977         Document SSE/SSE2 support.
17978         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
17979
17980 2010-07-12  Andi Kleen  <ak@linux.intel.com>
17981
17982         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
17983         instead of gcc_assert to print better error message for multiple
17984         prevailing defs.
17985
17986 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
17987
17988         * config/i386/i386.c (ix86_asm_output_function_label): Change format
17989         string placeholder from 0x%x to %#x.
17990         (ix86_code_end): Use putc to output '\n'.
17991         (ix86_print_operand) <case ';'>: Use putc to output ';'.
17992
17993 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
17994
17995         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
17996         in directive -export.
17997
17998 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
17999
18000         * reginfo.h (reg_classes_intersect_p): Change arguments type to
18001         reg_class_t.
18002         * rtl.h (reg_classes_intersect_p): Adjust prototype.
18003
18004         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18005         Remove macros.
18006         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18007         rs6000_memory_move_cost): Remove
18008         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18009         TARGET_MEMORY_MOVE_COST): Define.
18010         (rs6000_register_move_cost): Make static. Change arguments type from
18011         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18012         (rs6000_memory_move_cost): Make static. Change arguments type from
18013         'enum reg_class' to reg_class_t.
18014
18015 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
18016
18017         PR middle-end/42505
18018         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18019         lookup code into....
18020         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
18021         new functions.
18022         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
18023         * cfgloopanal.c (target_clobbered_regs): Define.
18024         (init_set_costs): Initialize target_clobbered_regs.
18025         (estimate_reg_pressure_cost): Add call_p argument.  When true,
18026         adjust the number of available registers to exclude the
18027         call-clobbered registers.
18028         * cfgloop.h (target_clobbered_regs): Declare.
18029         (estimate_reg_pressure_cost): Adjust declaration.
18030         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
18031         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
18032         (determine_set_costs): Dump target_clobbered_regs.
18033         (loop_body_includes_call): New function.
18034         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
18035         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
18036         call_p flag through.
18037         (best_gain_for_invariant): Likewise.
18038         (find_invariants_to_move): Likewise.
18039         (move_single_loop_invariants): Likewise, using already-computed
18040         has_call field.
18041
18042 2010-07-10  Richard Guenther  <rguenther@suse.de>
18043             Joern Rennecke  <joern.rennecke@embecosm.com>
18044
18045         PR debug/44832
18046         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
18047         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
18048         unless they have DECL_IGNORED_P set.
18049
18050 2010-07-10  Richard Guenther  <rguenther@suse.de>
18051
18052         PR lto/44889
18053         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
18054         helper function.
18055         (gimple_types_compatible_p): Similar to pointed-to
18056         types allow and merge a mix of complete and incomplete aggregate.
18057         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
18058         (iterative_hash_gimple_type): Adjust for that.
18059
18060 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
18061
18062         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
18063
18064 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
18065
18066         PR objc/44140
18067         * config/darwin.c (output_objc_section_asm_op): Save and restore
18068         section when outputting ObjC section list.
18069
18070 2010-07-09  Jan Hubicka  <jh@suse.cz>
18071
18072         * lto-streamer-out.c (produce_symtab): Do not write alias
18073         cgraph/varpool nodes.
18074
18075 2010-07-09  Jan Hubicka  <jh@suse.cz>
18076
18077         * tree-inline.c (declare_return_variable): Fix ICE while
18078         inlining DECL_BY_VALUE function not in SSA form
18079
18080 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
18081
18082         PR tree-optimization/44576
18083         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
18084         New.  Pull out from is_loop_prefetching_profitable to implement
18085         the trip count to ahead ratio heuristic.
18086         (mem_ref_count_reasonable_p): New.  Pull out from
18087         is_loop_prefetching_profitable to implement the instruction to
18088         memory reference ratio heuristic.  Also consider not reasonable if
18089         the memory reference count is above a threshold (to avoid
18090         explosive compilation time.
18091         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
18092         is_loop_prefetching_profitable to implement the instruction to
18093         prefetch ratio heuristic.
18094         (is_loop_prefetching_profitable): Removed.
18095         (loop_prefetch_arrays): Distribute the cost analysis across the
18096         function to allow early exit of the prefetch analysis.
18097         is_loop_prefetching_profitable is splitted into three functions,
18098         with each one called as early as possible.
18099         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
18100         number of memory references in a loop is considered too many.
18101
18102 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18103
18104         * reload.c (find_reloads): Don't clear badop if we have a winreg
18105         alternative, but not win, and the class only has fixed regs.
18106         * hard-reg-set.h (class_only_fixed_regs): Declare.
18107         * reginfo.c (class_only_fixed_regs): New array.
18108         (init_reg_sets_1): Initialize it.
18109         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
18110         discourage alternatives using the stack pointer.
18111
18112         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
18113
18114         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
18115
18116         * config/arm/arm.md (cbranchqi4): Fix array size.
18117         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
18118         calculating length.
18119
18120 2010-07-09  Richard Guenther  <rguenther@suse.de>
18121
18122         * gimple.c (struct type_fixup_s): New struct and VEC type.
18123         (gimple_register_type_fixups): New static global.
18124         (gimple_queue_type_fixup): New function.
18125         (gimple_types_compatible_p): Queue type fixups instead of
18126         applying them here.
18127         (gimple_register_type): Apply queued fixups for the
18128         canonical type.  Empty the type fixup queue.
18129
18130 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18131
18132         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
18133         * configure: Regenerate.
18134         * config.in: Ditto.
18135
18136 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18137             Denys Vlasenko  <dvlasenk@redhat.com>
18138             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18139
18140         PR tree-optimization/28632
18141         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
18142         (extract_range_from_binary_expr): Further optimize
18143         BIT_AND_EXPR and BIT_IOR_EXPR.
18144
18145 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
18146
18147         * tree-if-conv.c (fold_or_predicates): New.
18148         (add_to_predicate_list): Call it.
18149
18150 2010-07-09  Richard Guenther  <rguenther@suse.de>
18151
18152         PR middle-end/44890
18153         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
18154         if base is a pointer.
18155         * tree-cfg.c (verify_expr): Update MEM_REF checking.
18156
18157 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18158
18159         PR target/44877
18160         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
18161         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
18162         builtin mask for load/store builtins.
18163
18164 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18165
18166         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
18167         for "lock addl".
18168         * configure: Regenerate.
18169         * config/i386/i386.c (ix86_print_operand) <case ';'>:
18170         Remove TARGET_MACHO.
18171
18172 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
18173
18174         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
18175         default ISA flags.
18176         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
18177
18178 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
18179
18180         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
18181
18182 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
18183
18184         * config/picochip/picochip.md (commsTestPort): Emit more
18185         efficient sequence for tstport instruction.
18186
18187 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18188
18189         * config/i386/i386.c (ix86_veclib_handler): Make static.
18190
18191 2010-07-09  Richard Guenther  <rguenther@suse.de>
18192
18193         PR tree-optimization/44852
18194         * tree-ssa-alias.c: Include toplev.h for exact_log2.
18195         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
18196         in MEM_REF.
18197         (indirect_refs_may_alias_p): Likewise.
18198         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
18199
18200 2010-07-09  Richard Guenther  <rguenther@suse.de>
18201
18202         PR tree-optimization/44882
18203         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
18204         sets do conflict.
18205         (vectorizable_load): Likewise.
18206
18207 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18208
18209         PR target/40657
18210         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
18211         All callers changed.
18212         Handle the case when we're called for the epilogue.
18213         (thumb_unexpanded_epilogue): Use it.
18214         (thumb1_expand_epilogue): Likewise.
18215
18216 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18217
18218         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
18219         both ranges are range_int_cst_p with non-negative minimum,
18220         try harder to derive smaller range.
18221
18222 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18223
18224         * genrecog.c: Include diagnostic-core.h before toplev.h.
18225         * genoutput.c: Likewise.
18226         * genextract.c: Likewise.
18227         * genautomata.c: Likewise.
18228         * genemit.c: Likewise.
18229         * genpeep.c: Likewise.
18230         * genattrtab.c: Likewise.
18231         * genconditions.c: Likewise.
18232         * genpreds.c: Likewise.
18233
18234 2010-07-08  Andi Kleen  <ak@linux.intel.com>
18235
18236         * lto-section-in.c (lto_section_name): Add missing comma.
18237
18238 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
18239
18240         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
18241         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
18242         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
18243         (ia64_override_options): Rename to...
18244         (ia64_option_override): ... this one. Make static.
18245
18246 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18247
18248         PR middle-end/44843
18249         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
18250         pointed-to type of the offset in a MEM_REF to compute the alignment.
18251
18252 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
18253
18254         * final.c (final_scan_insn): Replace
18255         TARGET_UNWIND_INFO macro check by unwind_emit
18256         hook NULL check.
18257         * targhooks.c (default_unwind_emit): Removed.
18258         * targhooks.h (default_unwind_emit): Likewise.
18259         * target.def (unwind_emit): Set default value to NULL.
18260
18261         * config/i386/i386-protos.h (ix86_asm_output_function_label):
18262         New prototype.
18263         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
18264         for NULL fntype argument and allow 64-bit targets.
18265         (ix86_asm_output_function_label): New function.
18266         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
18267         (ix86_handle_fndecl_attribute): Likewise.
18268         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
18269         * doc/doc/tm.texi: Regenerated.
18270         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
18271         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
18272         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
18273         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
18274         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18275         * config/elfos.h: Likewise.
18276         * config/i386/cygming.h: Likewise.
18277         * config/netbsd-aout.h: Likewise.
18278         * config/openbsd.h: Likewise.
18279         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
18280         by ix86_asm_output_function_label function call.
18281         * varasm.c (assemble_start_function): Use
18282         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18283
18284 2010-07-08  Jan Hubicka  <jh@suse.cz>
18285
18286         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
18287         New function.
18288         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
18289         Declare.
18290         * ipa-cp.c (ipcp_estimate_growth): Use it.
18291         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
18292         Likewise.
18293
18294 2010-07-08  Jan Hubicka  <jh@suse.cz>
18295
18296         * tree-inline.c (declare_return_variable): Allocate annotation for new
18297         temporary.
18298
18299 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18300
18301         PR tree-optimization/44710
18302         * tree-if-conv.c (parse_predicate): New.
18303         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
18304         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
18305
18306 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18307
18308         * common.opt (ftree-loop-if-convert): New flag.
18309         * doc/invoke.texi (ftree-loop-if-convert): Documented.
18310         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
18311         when flag_tree_loop_if_convert is set.
18312
18313 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
18314
18315         * config/i386/i386.c: Use short syntax for function calls
18316         through function pointers.
18317         * config/i386/i386.md: Ditto.
18318
18319 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18320
18321         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
18322
18323 2010-07-08  Richard Guenther  <rguenther@suse.de>
18324
18325         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
18326         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
18327
18328 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
18329
18330         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
18331         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
18332         (loc_list_from_tree): Likewise.
18333         (output_loc_operands): Handle outputting DW_OP_const[48]u
18334         with loc->dtprel set.
18335         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
18336
18337 2010-07-08  Jan Hubicka  <jh@suse.cz>
18338
18339         * ipa.c: Include pointer-set.h
18340         (cgraph_externally_visible_p): New attribute ALIASED;
18341         when in LTO, hidden symbols are local unless they are aliased.
18342         (function_and_variable_visibility): Compute aliased nodes;
18343         handle LTO and hidden symbol on functions and vars.
18344         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
18345         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
18346
18347 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18348
18349         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18350         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18351         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18352         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18353         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18354         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
18355         (ix86_gen_probe_stack_range): Likewise.
18356         (override_options): Set them.
18357         (ix86_target_stack_probe): New function.
18358         (ix86_compute_frame_layout): Force use of push instructions to
18359         save registers if stack checking with probes is enabled.
18360         (get_scratch_register_on_entry): New function.
18361         (release_scratch_register_on_entry): Likewise.
18362         (ix86_adjust_stack_and_probe): Likewise.
18363         (output_adjust_stack_and_probe): Likewise.
18364         (ix86_emit_probe_stack_range): Likewise.
18365         (output_probe_stack_range): Likewise.
18366         (ix86_expand_prologue): Emit stack checking code if static built-in
18367         stack checking is enabled.
18368         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
18369         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
18370         (output_adjust_stack_and_probe): Likewise.
18371         (output_probe_stack_range): Likewise.
18372         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18373         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
18374         TARGET_STACK_PROBE.
18375         (allocate_stack_worker_64): Likewise.
18376         (allocate_stack): Likewise.
18377         (adjust_stack_and_probe): New insn.
18378         (probe_stack_range): Likewise.
18379
18380 2010-07-08  Richard Guenther  <rguenther@suse.de>
18381
18382         PR tree-optimization/44831
18383         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
18384         a MEM_REF preserving TBAA info of the original dereference.
18385         Dereference the original pointer if the address is not invariant.
18386         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
18387         at least one invariant address that we are going to dereference.
18388
18389 2010-07-08  Richard Guenther  <rguenther@suse.de>
18390
18391         PR tree-optimization/44861
18392         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
18393         information when building MEM_REFs.
18394         (vectorizable_load): Likewise.
18395         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
18396
18397 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18398
18399         * config/sol2-c.c: Do not include diagnostic-core.h.
18400
18401 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18402
18403         PR bootstrap/44768
18404         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
18405         with respect to current_function_decl. Pass decl of the function.
18406         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
18407         * ipa-inline.c (compute_inline_parameters): Pass decl to
18408         estimated_stack_frame_size.
18409
18410 2010-07-08  Richard Guenther  <rguenther@suse.de>
18411
18412         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
18413         New function.
18414         (valueize_refs): Call it.
18415
18416 2010-07-08  Richard Guenther  <rguenther@suse.de>
18417
18418         PR rtl-optimization/44838
18419         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
18420         SSA form do not use pointer equivalence.
18421
18422 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18423
18424         * dwarf2out.c (AT_linkage_name): Delete.
18425         (add_linkage_attr): New function.
18426         (add_linkage_name): Call it to emit the linkage attribute.
18427         (dwarf2out_finish): Likewise.
18428         (move_linkage_attr): Explicitly accept both attribute variants.
18429
18430 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18431
18432         * toplev.h: Do not include diagnostic-core.h.
18433         Include diagnostic-core.h in every file that includes toplev.h.
18434         * c-tree.h: Do not include toplev.h.
18435         * pretty-print.h: Update comment.
18436         * Makefile.in: Update dependencies.
18437         * alias.c: Include diagnostic-core.h in every file that includes
18438         toplev.h.
18439         * attribs.c: Likewise.
18440         * auto-inc-dec.c: Likewise.
18441         * bb-reorder.c: Likewise.
18442         * bt-load.c: Likewise.
18443         * caller-save.c: Likewise.
18444         * calls.c: Likewise.
18445         * cfg.c: Likewise.
18446         * cfganal.c: Likewise.
18447         * cfgbuild.c: Likewise.
18448         * cfgcleanup.c: Likewise.
18449         * cfghooks.c: Likewise.
18450         * cfgloop.c: Likewise.
18451         * combine.c: Likewise.
18452         * config/alpha/alpha.c: Likewise.
18453         * config/arc/arc.c: Likewise.
18454         * config/arm/arm.c: Likewise.
18455         * config/arm/pe.c: Likewise.
18456         * config/avr/avr.c: Likewise.
18457         * config/bfin/bfin.c: Likewise.
18458         * config/cris/cris.c: Likewise.
18459         * config/crx/crx.c: Likewise.
18460         * config/darwin-c.c: Likewise.
18461         * config/darwin.c: Likewise.
18462         * config/fr30/fr30.c: Likewise.
18463         * config/frv/frv.c: Likewise.
18464         * config/h8300/h8300.c: Likewise.
18465         * config/host-darwin.c: Likewise.
18466         * config/i386/i386.c: Likewise.
18467         * config/i386/netware.c: Likewise.
18468         * config/i386/nwld.c: Likewise.
18469         * config/i386/winnt-cxx.c: Likewise.
18470         * config/i386/winnt-stubs.c: Likewise.
18471         * config/i386/winnt.c: Likewise.
18472         * config/ia64/ia64-c.c: Likewise.
18473         * config/ia64/ia64.c: Likewise.
18474         * config/iq2000/iq2000.c: Likewise.
18475         * config/lm32/lm32.c: Likewise.
18476         * config/m32c/m32c-pragma.c: Likewise.
18477         * config/m32c/m32c.c: Likewise.
18478         * config/m32r/m32r.c: Likewise.
18479         * config/m68hc11/m68hc11.c: Likewise.
18480         * config/m68k/m68k.c: Likewise.
18481         * config/mcore/mcore.c: Likewise.
18482         * config/mep/mep-pragma.c: Likewise.
18483         * config/mep/mep.c: Likewise.
18484         * config/mmix/mmix.c: Likewise.
18485         * config/mn10300/mn10300.c: Likewise.
18486         * config/moxie/moxie.c: Likewise.
18487         * config/pa/pa.c: Likewise.
18488         * config/pdp11/pdp11.c: Likewise.
18489         * config/picochip/picochip.c: Likewise.
18490         * config/rs6000/rs6000-c.c: Likewise.
18491         * config/rs6000/rs6000.c: Likewise.
18492         * config/rx/rx.c: Likewise.
18493         * config/s390/s390.c: Likewise.
18494         * config/score/score.c: Likewise.
18495         * config/score/score3.c: Likewise.
18496         * config/score/score7.c: Likewise.
18497         * config/sh/sh.c: Likewise.
18498         * config/sh/symbian-base.c: Likewise.
18499         * config/sh/symbian-c.c: Likewise.
18500         * config/sh/symbian-cxx.c: Likewise.
18501         * config/sol2-c.c: Likewise.
18502         * config/sol2.c: Likewise.
18503         * config/sparc/sparc.c: Likewise.
18504         * config/spu/spu.c: Likewise.
18505         * config/stormy16/stormy16.c: Likewise.
18506         * config/v850/v850-c.c: Likewise.
18507         * config/v850/v850.c: Likewise.
18508         * config/vax/vax.c: Likewise.
18509         * config/vxworks.c: Likewise.
18510         * config/xtensa/xtensa.c: Likewise.
18511         * convert.c: Likewise.
18512         * cse.c: Likewise.
18513         * cselib.c: Likewise.
18514         * dbgcnt.c: Likewise.
18515         * dbxout.c: Likewise.
18516         * ddg.c: Likewise.
18517         * dominance.c: Likewise.
18518         * emit-rtl.c: Likewise.
18519         * explow.c: Likewise.
18520         * expmed.c: Likewise.
18521         * fixed-value.c: Likewise.
18522         * fold-const.c: Likewise.
18523         * fwprop.c: Likewise.
18524         * gcse.c: Likewise.
18525         * ggc-common.c: Likewise.
18526         * ggc-page.c: Likewise.
18527         * ggc-zone.c: Likewise.
18528         * gimple-low.c: Likewise.
18529         * gimplify.c: Likewise.
18530         * graph.c: Likewise.
18531         * haifa-sched.c: Likewise.
18532         * ifcvt.c: Likewise.
18533         * implicit-zee.c: Likewise.
18534         * integrate.c: Likewise.
18535         * ira-build.c: Likewise.
18536         * ira-color.c: Likewise.
18537         * ira-conflicts.c: Likewise.
18538         * ira-costs.c: Likewise.
18539         * ira-lives.c: Likewise.
18540         * ira.c: Likewise.
18541         * lists.c: Likewise.
18542         * loop-doloop.c: Likewise.
18543         * loop-iv.c: Likewise.
18544         * lto-opts.c: Likewise.
18545         * lto-symtab.c: Likewise.
18546         * main.c: Likewise.
18547         * modulo-sched.c: Likewise.
18548         * optabs.c: Likewise.
18549         * params.c: Likewise.
18550         * plugin.c: Likewise.
18551         * postreload-gcse.c: Likewise.
18552         * postreload.c: Likewise.
18553         * predict.c: Likewise.
18554         * profile.c: Likewise.
18555         * real.c: Likewise.
18556         * regcprop.c: Likewise.
18557         * reginfo.c: Likewise.
18558         * regmove.c: Likewise.
18559         * reorg.c: Likewise.
18560         * resource.c: Likewise.
18561         * rtl.c: Likewise.
18562         * rtlanal.c: Likewise.
18563         * sched-deps.c: Likewise.
18564         * sched-ebb.c: Likewise.
18565         * sched-rgn.c: Likewise.
18566         * sdbout.c: Likewise.
18567         * sel-sched-dump.c: Likewise.
18568         * sel-sched-ir.c: Likewise.
18569         * simplify-rtx.c: Likewise.
18570         * stmt.c: Likewise.
18571         * stor-layout.c: Likewise.
18572         * store-motion.c: Likewise.
18573         * targhooks.c: Likewise.
18574         * tree-cfg.c: Likewise.
18575         * tree-cfgcleanup.c: Likewise.
18576         * tree-dump.c: Likewise.
18577         * tree-eh.c: Likewise.
18578         * tree-inline.c: Likewise.
18579         * tree-nomudflap.c: Likewise.
18580         * tree-object-size.c: Likewise.
18581         * tree-optimize.c: Likewise.
18582         * tree-outof-ssa.c: Likewise.
18583         * tree-phinodes.c: Likewise.
18584         * tree-profile.c: Likewise.
18585         * tree-ssa-ccp.c: Likewise.
18586         * tree-ssa-coalesce.c: Likewise.
18587         * tree-ssa-live.c: Likewise.
18588         * tree-ssa-loop-niter.c: Likewise.
18589         * tree-ssa-loop-prefetch.c: Likewise.
18590         * tree-ssa-loop.c: Likewise.
18591         * tree-ssa-structalias.c: Likewise.
18592         * tree-ssa-uninit.c: Likewise.
18593         * tree-ssa.c: Likewise.
18594         * tree-vect-data-refs.c: Likewise.
18595         * tree-vect-loop-manip.c: Likewise.
18596         * tree-vect-loop.c: Likewise.
18597         * tree-vect-patterns.c: Likewise.
18598         * tree-vect-stmts.c: Likewise.
18599         * tree-vrp.c: Likewise.
18600         * varasm.c: Likewise.
18601         * vec.c: Likewise.
18602         * web.c: Likewise.
18603         * xcoffout.c: Likewise.
18604
18605 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
18606
18607         * gengtype.c (write_field_root): New function.
18608         (write_root): Use it.
18609
18610 2010-07-07  Wei Guozhi  <carrot@google.com>
18611
18612         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18613         of lowest bits to lshift/compare): Add a missing line.
18614
18615 2010-07-07  Wei Guozhi  <carrot@google.com>
18616
18617         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18618         of lowest bits to lshift/compare): New.
18619
18620 2010-07-07  Tom Tromey  <tromey@redhat.com>
18621
18622         * doc/tm.texi: Update.
18623         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
18624         Add @hook.
18625         * target.def (want_debug_pub_sections): New hook.
18626         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
18627         * dwarf2out.c (add_pubname_string): Check
18628         targetm.want_debug_pub_sections.
18629         (add_pubname): Likewise.
18630         (add_pubtype): Likewise.
18631
18632 2010-07-07  Jie Zhang  <jie@codesourcery.com>
18633
18634         * genautomata.c (output_automata_list_min_issue_delay_code):
18635         Correctly decompress min_issue_delay.
18636
18637 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18638
18639         PR rtl-optimization/44404
18640         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
18641         possible, use reg_overlap_mentioned_p instead.
18642
18643 2010-07-07  Duncan Sands  <baldrick@free.fr>
18644
18645         PR middle-end/41355
18646         * tree.c (build_function_type_skip_args): Copy the original type using
18647         build_distinct_type_copy rather than copy_node.
18648
18649 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18650
18651         PR target/44850
18652         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
18653         revision 161876.
18654         (ix86_expand_prologue): Likewise.
18655         (ix86_handle_fndecl_attribute): Likewise.
18656         (ix86_asm_declare_function_name): Likewise.
18657         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18658         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18659         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
18660         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
18661         * doc/extend.texi: Likewise.
18662
18663 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18664
18665         PR target/44844
18666         * config/i386/i386.md (rdrand<mode>): Changed to expand to
18667         retry if the carry flag isn't valid.
18668         (rdrand<mode>_1): New.
18669
18670 2010-07-07  Richard Guenther  <rguenther@suse.de>
18671
18672         PR middle-end/44790
18673         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
18674         for expanding the constant offset for MEM_REFs.
18675
18676 2010-07-07  Richard Guenther  <rguenther@suse.de>
18677
18678         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
18679         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
18680         * gimple.h (is_gimple_operand): Remove.
18681         * gimple.c (is_gimple_operand): Likewise.
18682         (walk_gimple_op): Fix wi->val_only setting for calls.
18683         * tree-cfg.c (verify_gimple_call): Fix argument validation.
18684         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
18685         invalid gimple calls.
18686
18687 2010-07-06  Jan Hubicka  <jh@suse.cz>
18688
18689         * lto-cgraph.c (output_cgraph): Add missing declaration.
18690
18691 2010-07-06  Jan Hubicka  <jh@suse.cz>
18692
18693         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
18694         partition.
18695
18696 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
18697
18698         * doc/gimple.texi (GIMPLE_DEBUG): Document.
18699         * doc/rtl.texi (Debug Information): New node.
18700         (NOTE_INSN_VAR_LOCATION): Document.
18701         (debug_insn): Likewise.
18702         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
18703
18704 2010-07-07  Jan Hubicka  <jh@suse.cz>
18705
18706         With parts by Richard Guenther.
18707
18708         PR middle-end/44813
18709         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
18710         for functions passed by reference.
18711         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
18712         in memory when passed by reference.
18713         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
18714         beggining.
18715         * ipa-split.c (split_function): Cleanup way return value is passed;
18716         handle SSA DECL_BY_REFERENCE retvals.
18717         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
18718         DECL_BY_REFERENCE is set.
18719         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
18720         find_what_p_points_to): Handle RESULT_DECL.
18721         * tree-inline.c (declare_return_variable): Get new entry_block argument;
18722         when passing by reference ensure that RESULT_DECL is gimple_val.
18723         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
18724         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
18725
18726 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18727
18728         PR rtl-optimization/44787
18729         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
18730         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
18731
18732 2010-07-06  Jan Hubicka  <jh@suse.cz>
18733
18734         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
18735         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
18736         with body can prevail.
18737         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
18738         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
18739         * cgraph.c (cgraph_get_node_or_alias): New function.
18740         * cgraph.h (cgraph_get_node_or_alias): Declare.
18741
18742 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
18743
18744         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
18745         support.
18746         (ix86_expand_prologue): Likewise.
18747         (ix86_handle_fndecl_attribute): Likewise.
18748         (ix86_asm_declare_function_name): New function for
18749         ASM_DECLARE_FUNCTION_NAME.
18750         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
18751         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
18752         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
18753         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
18754         * doc/extend.texi: Adjust documentation about ms_hook_prologue
18755         attribute.
18756
18757 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18758
18759         * config/i386/i386.md (immediate_operand): New mode attribute.
18760
18761         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
18762         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
18763         using P mode iterator.
18764         (pro_epilogue_adjust_stack_di_2): Rename from
18765         pro_epilogue_adjust_stack_rex64_2.
18766
18767         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
18768
18769 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18770
18771         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
18772         through gen_mov_insv_1 function pointer.
18773         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
18774         gen_truncxf<mode>2 through gen_truncxf function pointer.
18775         (remainder<mode>3): Ditto.
18776         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
18777         (allocate_stack): Call gen_allocate_stack_worker_64 or
18778         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
18779         function pointer.
18780         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
18781         function pointer.
18782
18783 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18784
18785         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
18786         operand constraint instead of <r><i>m.
18787
18788 2010-07-06  Richard Guenther  <rguenther@suse.de>
18789
18790         PR middle-end/44828
18791         * convert.c (convert_to_integer): Watch out for overflowing
18792         MULT_EXPR as well.
18793
18794 2010-07-05  Jan Hubicka  <jh@suse.cz>
18795
18796         * lto-streamer.c (write_symbol_vec): Rename to ...
18797         (write_symbol) ... this one; write only symbol given and when
18798         present in cache. Sanity check that what is defined is present
18799         in cgraph/varpool with body/finalized decl.
18800         (write_symbols_of_kind): Remove.
18801         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
18802         pairs to produce symtab.
18803         (produce_asm_for_decls): Update call of produce_symtab; don't do so
18804         when doing WPA streaming.
18805
18806 2010-07-05  Jan Hubicka  <jh@suse.cz>
18807
18808         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
18809         function is still available to fold into.
18810
18811 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18812
18813         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
18814         * function.h (struct_function): Change type of local_decls field
18815         to a VEC.
18816         (add_local_decl): New function.
18817         (FOR_EACH_LOCAL_DECL): New macro.
18818         * cfgexpand.c (init_vars_expansion): Adjust for new type of
18819         cfun->local_decls.
18820         (estimated_stack_frame_size): Likewise.
18821         (expand_used_vars): Likewise.
18822         * cgraphbuild.c (build_cgraph_edges): Likewise.
18823         * function.c (instantiate_decls_1): Likewise.
18824         * ipa-struct-reorg.c (build_data_structure): Likewise.
18825         * ipa-type-escape.c (analyze_function): Likewise.
18826         * lto-streamer-in.c (input_function): Likewise.
18827         * lto-streamer-out.c (output_function): Likewise.
18828         * tree-ssa-live.c (remove_unused_locals): Likewise.
18829         * tree.c (free_lang_data_in_decl): Likewise.
18830         (find_decls_types_in_node): Likewise.
18831         * omp-low.c (remove_exit_barrier): Likewise.
18832         (expand_omp_taskreg): Likewise.
18833         (list2chain): Rename to...
18834         (vec2chain): ...this.  Adjust.
18835         * cgraphunit.c (assemble_thunk): Call add_local_decl.
18836         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
18837         * gimple-low.c (record_vars_into): Likewise.
18838         * tree-inline.c (remap_decls): Likewise.
18839         (declare_return_variable): Likewise.
18840         (declare_inline_vars): Likewise.
18841         (copy_forbidden): Adjust for new type of cfun->local_decls.
18842         (add_local_variables): New function.
18843         (expand_call_inline): Call it.
18844         (tree_function_versioning): Likewise.
18845
18846 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
18847
18848         AVX Programming Reference (June, 2010)
18849         * config/i386/cpuid.h (bit_F16C): New.
18850         (bit_RDRND): Likewise.
18851         (bit_FSGSBASE): Likewise.
18852
18853         * config/i386/i386-builtin-types.def: Add
18854         "DEF_FUNCTION_TYPE (UINT16)", function types for
18855         float16 <-> float conversions and
18856         "DEF_FUNCTION_TYPE (VOID, UINT64)".
18857
18858         * config/i386/i386-c.c (ix86_target_macros_internal): Support
18859         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
18860         OPTION_MASK_ISA_F16C.
18861
18862         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
18863         (OPTION_MASK_ISA_RDRND_SET): Likewise.
18864         (OPTION_MASK_ISA_F16C_SET): Likewise.
18865         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
18866         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
18867         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
18868         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
18869         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
18870         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
18871         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
18872         (override_options): Handle them.
18873         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
18874         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
18875         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
18876         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
18877         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
18878         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
18879         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
18880         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
18881         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
18882         (bdesc_args): Likewise.
18883         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
18884         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
18885         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
18886         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
18887         Handle non-memory store.
18888
18889         * config/i386/i386.h (TARGET_FSGSBASE): New.
18890         (TARGET_RDRND): Likewise.
18891         (TARGET_F12C): Likewise.
18892
18893         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
18894         (UNSPEC_VCVTPS2PH): Likewise.
18895         (UNSPECV_RDFSBASE): Likewise.
18896         (UNSPECV_RDGSBASE): Likewise.
18897         (UNSPECV_WRFSBASE): Likewise.
18898         (UNSPECV_WRGSBASE): Likewise.
18899         (UNSPECV_RDRAND): Likewise.
18900         (rdfsbase<mode>): Likewise.
18901         (rdgsbase<mode>): Likewise.
18902         (wrfsbase<mode>): Likewise.
18903         (wrgsbase<mode>): Likewise.
18904         (rdrand<mode>): Likewise.
18905
18906         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
18907
18908         * config/i386/immintrin.h (_rdrand_u16): New.
18909         (_rdrand_u32): Likewise.
18910         (_readfsbase_u32): Likewise.
18911         (_readfsbase_u64): Likewise.
18912         (_readgsbase_u32): Likewise.
18913         (_readgsbase_u64): Likewise.
18914         (_writefsbase_u32): Likewise.
18915         (_writefsbase_u64): Likewise.
18916         (_writegsbase_u32): Likewise.
18917         (_writegsbase_u64): Likewise.
18918         (_rdrand_u64): Likewise.
18919         (_cvtsh_ss): Likewise.
18920         (_mm_cvtph_ps): Likewise.
18921         (_mm256_cvtph_ps): Likewise.
18922         (_cvtss_sh): Likewise.
18923         (_mm_cvtps_ph): Likewise.
18924         (_mm256_cvtps_ph): Likewise.
18925
18926         * config/i386/sse.md (vcvtph2ps): New.
18927         (*vcvtph2ps_load): Likewise.
18928         (vcvtph2ps256): Likewise.
18929         (vcvtps2ph): Likewise.
18930         (*vcvtps2ph): Likewise.
18931         (*vcvtps2ph_store): Likewise.
18932         (vcvtps2ph256): Likewise.
18933
18934         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
18935
18936         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
18937
18938 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18939
18940         PR bootstrap/44512
18941         * genenums.c (main): Output include of insn-constants.h
18942         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
18943
18944 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
18945
18946         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
18947         (override_options): Initialize it.
18948         (ix86_expand_prologue): Use it.
18949
18950 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
18951
18952         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
18953
18954 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18955
18956         * double-int.h (fit_double_type): Remove declaration.
18957         * double-int.c (fit_double_type): Remove function.
18958         * tree.h (int_fits_type_p): Adjust prototype.
18959         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
18960         instead of fit_double_type.
18961         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
18962         instead of fit_double_type and build_int_cst_wide.
18963         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
18964         instead of fit_double_type and build_int_cst_wide.
18965         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
18966         of fit_double_type.
18967
18968 2010-07-05  Jan Hubicka  <jh@suse.cz>
18969
18970         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
18971         in_other_partition.
18972         * lto-cgraph.c (referenced_from_other_partition_p,
18973         reachable_from_other_partition_p): Use in_other_partition flags.
18974         (output_node, output_varpool_node): COMDAT nodes always have private
18975         copies and thus are never used from other partition.
18976
18977 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18978
18979         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
18980         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
18981         * config/ia64/ia64.c Include reload.h.
18982         (ia64_memory_move_cost): New function.
18983         (TARGET_MEMORY_MOVE_COST): Define.
18984         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
18985         memory_move_cost.
18986
18987 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
18988
18989         PR middle-end/42505
18990         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
18991         comments about cost model.
18992         (try_add_cand_for):  Add second strategy for choosing initial set
18993         based on original IVs, controlled by ORIGINALP argument.
18994         (get_initial_solution): Add ORIGINALP argument.
18995         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
18996         (find_optimal_iv_set): Try two different strategies for choosing
18997         the IV set, and return the one with lower cost.
18998
18999 2010-07-05  Richard Guenther  <rguenther@suse.de>
19000
19001         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19002
19003 2010-07-05  Richard Guenther  <rguenther@suse.de>
19004
19005         * tree.c (reference_alias_ptr_type): New function.
19006         * tree.h (reference_alias_ptr_type): Declare.
19007         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19008         allow non-TARGET_MEM_REF new refs.
19009         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19010         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19011         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19012         (create_mem_ref): Get alias pointer type.  Adjust calls to
19013         create_mem_ref_raw.
19014         (maybe_fold_tmr): Likewise.
19015         * tree-flow.h (create_mem_ref): Adjust prototype.
19016
19017 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19018
19019         PR c++/44808
19020         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
19021         *from_p is VAR_DECL.
19022
19023 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19024
19025         * tree.h (build_call_list): Remove.
19026         * tree.c (build_call_list): Remove.
19027
19028 2010-07-05  Richard Guenther  <rguenther@suse.de>
19029
19030         * double-int.h (double_int_sub): Declare.
19031         * double-int.c (double_int_sub): New function.
19032         * dwarf2out.c (field_byte_offset): Use it.
19033         * fixed-value.c (do_fixed_add): Likewise.
19034         (do_fixed_multiply): Likewise.
19035         (do_fixed_divide): Likewise.
19036         * tree-predcom.c (add_ref_to_chain): Likewise.
19037         (determine_roots_comp): Likewise.
19038         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
19039
19040 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19041
19042         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
19043         implementations.
19044
19045 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
19046
19047         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
19048         * arm-modes.def (CC_NOTB): Don't define.
19049         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
19050         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
19051         (LTUGEU): New code_iterator.
19052         (cnb, optab): New corresponding code_attrs.
19053         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
19054         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
19055         using LTUGEU.
19056         (addsi3_carryin_shift_<optab>): Likewise.
19057         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
19058         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
19059         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
19060         (subsi3_compare): Renamed from subsi3_compare0_c.
19061         Change CC_NOTB to CC.
19062         (arm_subsi3_insn): Allow constants for operand 0.
19063         (compare_scc peephole for eq case): New.
19064         (compare_scc splitters): Change CC_NOTB to CC.
19065
19066 2010-07-05  Richard Guenther  <rguenther@suse.de>
19067
19068         * tree-ssa-loop-im.c (for_each_index): Do not handle
19069         ALIGN_INDIRECT_REF.
19070         (gen_lsm_tmp_name): Likewise.
19071         * tree-dump.c (dequeue_and_dump): Likewise.
19072         * tree-pretty-print.c (dump_generic_node): Likewise.
19073         (op_code_prio): Likewise.
19074         (op_symbol_code): Likewise.
19075         * tree.c (staticp): Likewise.
19076         (build1_stat): Likewise.
19077         * tree.h (INDIRECT_REF_P): Likewise.
19078         * fold-const.c (maybe_lvalue_p): Likewise.
19079         (operand_equal_p): Likewise.
19080         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19081         (ao_ref_init_from_vn_reference): Likewise.
19082         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
19083         (find_interesting_uses_address): Likewise.
19084         * dwarf2out.c (loc_list_from_tree): Likewise.
19085         * gimplify.c (gimplify_expr): Likewise.
19086         * tree-eh.c (tree_could_trap_p): Likewise.
19087         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
19088         * cfgexpand.c (expand_debug_expr): Likewise.
19089         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
19090         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
19091         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
19092         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
19093         * tree-ssa-operands.c (get_expr_operands): Likewise.
19094         * expr.c (safe_from_p): Likewise.
19095         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
19096         * tree-vect-data-refs.c (vect_setup_realignment): Build
19097         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
19098         * tree-vect-stmts.c (vectorizable_load): Likewise.
19099         * tree.def (ALIGN_INDIRECT_REF): Remove.
19100
19101 2010-07-05  Richard Guenther  <rguenther@suse.de>
19102
19103         PR tree-optimization/44784
19104         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
19105         for inserted stmts.
19106         (find_or_generate_expression): Fix SCCVN insertion check.
19107
19108 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
19109
19110         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
19111         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
19112         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
19113         directives.
19114
19115 2010-07-05  Ira Rosen  <irar@il.ibm.com>
19116
19117         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
19118         statements that are not vectorized.
19119         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
19120         in INSIDE_COST.
19121
19122 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
19123
19124         PR bootstrap/44820
19125         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
19126
19127 2010-07-05  Richard Guenther  <rguenther@suse.de>
19128
19129         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
19130         RESULT_DECLs properly.
19131
19132 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
19133
19134         PR rtl-optimization/44695
19135         * config/i386/i386.md (extract_code): Removed.
19136         (<u>divmodqi4): Likewise.
19137         (divmodqi4): New.
19138         (udivmodqi4): Likewise.
19139         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
19140         (udivmodhiqi3): Likewise.
19141
19142 2010-07-04  Jan Hubicka  <jh@suse.cz>
19143
19144         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
19145
19146 2010-07-04  Jan Hubicka  <jh@suse.cz>
19147
19148         * cgraphunit.c (init_cgraph): Only initialize dump file if it
19149         is not already initialized.
19150
19151 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19152
19153         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
19154         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
19155         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
19156         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
19157         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
19158         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
19159         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
19160         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
19161         (sync_new_nand_optab): Redefine as macros.
19162         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
19163         Delete.
19164         (direct_optab_index): New enum.
19165         (direct_optab_d): New structure.
19166         (direct_optab): New typedef.
19167         (direct_optab_table): Declare.
19168         (direct_optab_handler, set_direct_optab_handler): New functions.
19169         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
19170         (sync_lock_release_optab): New macros.
19171         * optabs.c (direct_optab_table): New variable.
19172         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
19173         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
19174         cmpstr_optab and cmpstrn_optab.
19175         (emit_conditional_move): Likewise for movcc_optab.
19176         (can_conditionally_move_p): Likewise for movcc_gen_code.
19177         (init_insn_codes): Clear direct_optab_table.
19178         (init_optabs): Don't initialize the new "direct optabs" here.
19179         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
19180         vcond_gen_code.
19181         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
19182         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
19183         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
19184         (expand_sync_operation): Likewise other sync_*_optabs.
19185         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
19186         to sync_compare_and_swap_optab.
19187         (expand_sync_lock_test_and_set): Use direct_optab_handler for
19188         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
19189         to the names of both.
19190         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
19191         cmpstr_optab and cmpstrn_optab.
19192         (expand_builtin_lock_release): Likewise sync_lock_release.
19193         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
19194         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
19195         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
19196         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
19197         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
19198         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
19199         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
19200         (sync_lock_test_and_set, sync_lock_release): Delete.
19201         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
19202         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
19203         * genopinit.c (optabs): Use set_direct_optab_handler for the new
19204         macro optabs.
19205         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
19206         the "optab" local variable.  Use direct_optab_handler for optab and
19207         sync_compare_and_swap_optab.
19208         * reload1.c (reload_in_optab, reload_out_optab): Delete.
19209         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
19210         reload_in_optab and reload_out_optab.
19211         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19212         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
19213         * config/pa/pa.c (pa_secondary_reload): Likewise.
19214         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
19215         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
19216         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
19217         (VMSupportsCS8_builtin): Likewise.
19218
19219 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19220
19221         * optabs.h (optab_handlers): Change type of insn_code to int.
19222         (optab_handler, set_optab_handler, convert_optab_handler)
19223         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
19224         CODE_FOR_nothing".
19225         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
19226         (init_insn_codes): Zero both the above arrays.
19227         (init_optabs): Never call init_insn_codes first time around.
19228
19229 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19230
19231         * optabs.h (optab_handler, convert_optab_handler): Turn into
19232         inline functions that return an insn code.
19233         (set_optab_handler, set_convert_optab_handler): New functions.
19234         * builtins.c: Replace optab_handler(X)->insn_code with
19235         optab_handler or set_optab_handler thoughout.  Likewise
19236         convert_optab_handler(X)->insn_code with convert_optab_handler
19237         and set_convert_optab_handler.
19238         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
19239         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
19240         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
19241         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
19242         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
19243         config/spu/spu.c: Likewise.
19244
19245 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
19246
19247         PR target/44531
19248         * config.gcc (sh*-*-*): Use regular expressions instead of
19249         the 'i' modifier for sed substitutions.
19250
19251 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
19252
19253         * gimple.c (gimple_body): Comments added.
19254
19255 2010-07-04  Richard Guenther  <rguenther@suse.de>
19256
19257         PR middle-end/44809
19258         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
19259         of an INDIRECT_REF.
19260
19261 2010-07-04  Richard Guenther  <rguenther@suse.de>
19262
19263         PR tree-optimization/44479
19264         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
19265         extra SSA name copy statements which preserves points-to
19266         information.
19267         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19268         Copy points-to information for all pointers.  Properly handle
19269         MEM_REFs.
19270         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
19271         copy statements.
19272         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
19273         dependency.
19274
19275 2010-07-04  Richard Guenther  <rguenther@suse.de>
19276
19277         PR middle-end/44785
19278         * tree-inline.c (initialize_inlined_parameters): Do not
19279         re-use pointer-map slot over remap_type call.
19280
19281 2010-07-04  Richard Guenther  <rguenther@suse.de>
19282
19283         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
19284
19285 2010-07-04  Richard Guenther  <rguenther@suse.de>
19286
19287         PR tree-optimization/44656
19288         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
19289         again after value-replacing in the defintions lhs.
19290
19291 2010-07-04  Ira Rosen  <irar@il.ibm.com>
19292             Revital Eres  <eres@il.ibm.com>
19293
19294         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
19295         Document new arguments.
19296         * doc/tm.texi: Regenerate.
19297         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
19298         Handle unaligned store.
19299         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
19300         * target.def (builtin_vectorization_cost): Add new arguments.
19301         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
19302         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
19303         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
19304         (vect_vfa_segment_size): Fix indentation.
19305         * tree-vectorizer.h (struct _vect_peel_info): New.
19306         (struct _vect_peel_extended_info): New.
19307         (struct _loop_vec_info): Add new field for peeling hash table and a
19308         macro for its access.
19309         (VECT_MAX_COST): Define.
19310         (vect_get_load_cost): Declare.
19311         (vect_get_store_cost, vect_get_known_peeling_cost,
19312         vect_get_single_scalar_iteraion_cost): Likewise.
19313         (vect_supportable_dr_alignment): Add new argument.
19314         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
19315         field.
19316         (destroy_loop_vec_info): Free peeling hash table.
19317         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
19318         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
19319         vect_analyze_slp. Fix indentation.
19320         (vect_get_single_scalar_iteraion_cost): New function.
19321         (vect_get_known_peeling_cost): Likewise.
19322         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
19323         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
19324         statement. Move outside cost calculation inside unknown peeling case.
19325         Call vect_get_known_peeling_cost for known amount of peeling.
19326         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
19327         reference to the print message of forced alignment.
19328         (vect_verify_datarefs_alignment): Update call to
19329         vect_supportable_dr_alignment.
19330         (vect_get_data_access_cost): New function.
19331         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
19332         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
19333         vect_peeling_hash_choose_best_peeling): Likewise.
19334         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
19335         to store all the accesses in the loop and find best possible access to
19336         align using peeling for known alignment case. For unknown alignment
19337         check if stores are preferred or if peeling is worthy.
19338         (vect_find_same_alignment_drs): Analyze pairs of loads too.
19339         (vect_supportable_dr_alignment): Add new argument and check aligned
19340         accesses according to it.
19341         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
19342         (cost_for_stmt): Call vect_get_stmt_cost.
19343         (vect_model_simple_cost): Likewise.
19344         (vect_model_store_cost): Call vect_get_stmt_cost. Call
19345         vect_get_store_cost to calculate the cost of the statement.
19346         (vect_get_store_cost): New function.
19347         (vect_model_load_cost): Call vect_get_stmt_cost. Call
19348         vect_get_load_cost to calculate the cost of the statement.
19349         (vect_get_load_cost): New function.
19350         (vectorizable_store): Update call to vect_supportable_dr_alignment.
19351         (vectorizable_load): Likewise.
19352         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
19353         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
19354         arguments. Handle unaligned store.
19355         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
19356         (rs6000_builtin_support_vector_misalignment): Return true for word and
19357         double word alignments for VSX.
19358         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
19359         vect_supportable_dr_alignment and builtin_vectorization_cost.
19360
19361 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19362
19363         PR target/44597
19364         * config/pa/predicates.md (prefetch_cc_operand): Remove.
19365         (prefetch_nocc_operand): Likewise.
19366         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
19367         (prefetch_20): New insn.
19368         (prefetch_cc): Remove.
19369         (prefetch_nocc): Likewise.
19370
19371 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19372
19373         * expr.c (vector_mode_valid_p): Move to c-common.c.
19374         * expr.h (vector_mode_valid_p): Do not declare here.
19375         * system.h: Poison GCC_EXPR_H in front-ends.
19376         * Makefile.in: Update dependencies.
19377
19378 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19379
19380         PR target/44705
19381         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
19382
19383 2010-07-03  Jan Hubicka  <jh@suse.cz>
19384
19385         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
19386         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
19387         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
19388         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
19389         Likewise.
19390
19391         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
19392         Update timevars.V
19393         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
19394         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
19395         TV_IPA_LTO_DECL_OUT): New.
19396         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
19397
19398 2010-07-03  Jan Hubicka  <jh@suse.cz>
19399
19400         * ipa-inline.c (update_edge_key): Break out from ...
19401         update_callers_keys): ... here;
19402         (update_callee_keys): Update only the edges from caller to callee.
19403         (update_all_calle_keys): Do what update_calle_keys did.
19404         (decide_inlining_of_small_functions): Avoid recomputing of all
19405         callees when badness increase.
19406
19407 2010-07-03  Jie Zhang  <jie@codesourcery.com>
19408
19409         * config/arm/arm.c (arm_attr_length_move_neon): New.
19410         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
19411         * config/arm/neon.md (define_mode_attr V_slen): Remove.
19412         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
19413         to compute length attribute.
19414
19415 2010-07-03  Jie Zhang  <jie@codesourcery.com>
19416
19417         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
19418         as predicate for operand 1 and remove its constraint.
19419         * config/arm/predicates.md (vfp_register_operand): New.
19420         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
19421         (*push_fp_multi): Likewise.
19422
19423 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
19424
19425         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
19426
19427 2010-07-03  Jan Hubicka  <jh@suse.cz>
19428
19429         * config/i386/i386.c (override_options): Revert accidental commit.
19430
19431 2010-07-02  Le-Chun Wu  <lcwu@google.com>
19432
19433         PR c++/44128
19434         * doc/invoke.texi: Update documentation of -Wshadow.
19435
19436 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
19437             Julian Brown  <julian@codesourcery.com>
19438             Sandra Loosemore  <sandra@codesourcery.com>
19439
19440         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
19441         comparisons.  Adjust to take both operands.
19442         (arm_select_cc_mode): Handle DImode comparisons.
19443         (arm_gen_compare_reg): Generate a scratch register for DImode
19444         comparisons which require one.  Use xor for Thumb equality checks.
19445         (arm_const_double_by_immediates): New.
19446         (arm_print_operand): Allow 'Q' and 'R' for constants.
19447         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
19448         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
19449         arm_canonicalize_comparison.
19450         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
19451         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
19452         prototype.
19453         (arm_const_double_by_immediates): Declare.
19454         * config/arm/constraints.md (Di): New constraint.
19455         * config/arm/predicates.md (arm_immediate_di_operand)
19456         (arm_di_operand, cmpdi_operand): New.
19457         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
19458         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
19459         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
19460         (cstoredi4): Handle non-Cirrus also.
19461
19462 2010-07-02  Julian Brown  <julian@codesourcery.com>
19463             Sandra Loosemore  <sandra@codesourcery.com>
19464
19465         PR target/43703
19466         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
19467         (smax<mode>3): Disable for NEON float modes when
19468         flag_unsafe_math_optimizations is false.
19469         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
19470         (*mul<mode>3_neon)
19471         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
19472         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
19473         for NEON float modes when flag_unsafe_math_optimizations is false.
19474         (quad_halves_<code>v4sf): Only enable if
19475         flag_unsafe_math_optimizations is true.
19476         * doc/invoke.texi (ARM Options): Add note about floating point
19477         vectorization requiring -funsafe-math-optimizations.
19478
19479 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19480             Julian Brown  <julian@codesourcery.com>
19481
19482         * config/arm/neon.md (UNSPEC_VABA): Delete.
19483         (UNSPEC_VABAL): Delete.
19484         (UNSPEC_VABS): Delete.
19485         (UNSPEC_VMUL_N): Delete.
19486         (adddi3_neon): New.
19487         (subdi3_neon): New.
19488         (mul<mode>3add<mode>_neon): Make the pattern named.
19489         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
19490         (neon_vadd<mode>): Replace with define_expand, and move the remaining
19491         unspec parts...
19492         (neon_vadd<mode>_unspec): ...to this.
19493         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
19494         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
19495         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
19496         (neon_vaba<mode>): Rewrite in terms of vabd.
19497         (neon_vabal<mode>): Rewrite in terms of vabdl.
19498         (neon_vabs<mode>): Rewrite without unspec.
19499         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
19500         (*arm_subdi3): Likewise.
19501         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
19502         No_op attribute to disable assembly output checks.
19503         * config/arm/arm_neon.h: Regenerated.
19504         * doc/arm-neon-intrinsics.texi: Regenerated.
19505
19506 2010-07-02  Jan Hubicka  <jh@suse.cz>
19507
19508         * ipa-split.c (split_function): For aggregate values, set the return
19509         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
19510         *<retval> = fncall.part ().
19511         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
19512
19513 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19514
19515         * config/arm/neon.md (UNSPEC_VAND): Delete.
19516         (UNSPEC_VBIC): Delete.
19517         (UNSPEC_VCLZ): Delete.
19518         (UNSPEC_VCNT): Delete.
19519         (UNSPEC_VEOR): Delete.
19520         (UNSPEC_VORN): Delete.
19521         (UNSPEC_VORR): Delete.
19522         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
19523         core registers too.
19524         (anddi3_neon): Likewise.
19525         (orndi3_neon): Likewise.
19526         (bicdi3_neon): Likewise.
19527         (xordi3_neon): Likewise.
19528         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
19529         rid of unspec and handle unused operand.
19530         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
19531         * config/arm/predicates.md (imm_for_neon_logic_operand):
19532         Require TARGET_NEON.
19533         (imm_for_neon_inv_logic_operand): Likewise.
19534         * config/arm/arm.md (define_split for logical_binary_operator):
19535         Disable for NEON registers.
19536         (anddi3): Add new define_expand, and rename the insn.  Disable
19537         this insn for NEON, where anddi3_neon now applies.
19538         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
19539         (iordi3): As for anddi3.
19540         (xordi3): Likewise.
19541         * config/arm/neon.ml (Vand): Split DImode variants and mark them
19542         as No_op to disable testing for exact instruction match.
19543         (Vorr): Likewise.
19544         (Veor): Likewise.
19545         (Vbic): Likewise.
19546         (Vorn): Likewise.
19547         * config/arm/arm_neon.h: Regenerated.
19548         * doc/arm-neon-intrinsics.texi: Regenerated.
19549
19550 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19551
19552         * expr.h (emit_stack_probe): Declare.
19553         * explow.c (emit_stack_probe): Make global.
19554         (anti_adjust_stack_and_probe): Fix comments.
19555         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19556         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19557         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19558         * config/sparc/sparc.c: Include except.h.
19559         (sparc_emit_probe_stack_range): New function.
19560         (output_probe_stack_range): Likewise.
19561         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
19562         built-in stack checking is enabled.
19563         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
19564         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19565         (probe_stack_range): New insn.
19566
19567 2010-07-02  Richard Guenther  <rguenther@suse.de>
19568
19569         PR target/43958
19570         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
19571         for argument alignment.
19572
19573 2010-07-02  Jan Hubicka  <jh@suse.cz>
19574
19575         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
19576         walk backwards from entry_bb to check only those basic block of header
19577         that might lead to execution of split part.
19578         (consider_split) ... here.
19579         (find_return_bb): Allow assignment in return BB.
19580         (find_retval): New.
19581         (split_function): Fix name of cloned function; take care of updating
19582         return value in return_bb containing move.
19583
19584 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
19585
19586         PR target/44771
19587         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
19588         used variable insn.
19589
19590 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19591
19592         * implicit-zee.c (combine_reaching_defs): Fix long lines.
19593         (is_set_with_extension_DI): Delete.
19594         (struct zero_extend_info): New structure.
19595         (add_removable_zero_extend): New function.
19596         (find_removable_zero_extends): Use note_stores to find SETs.
19597         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
19598
19599 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
19600
19601         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
19602         is_miss_rate_acceptable. Pull total_positions computation
19603         out of the loops.  Early return if miss_positions exceeds
19604         the acceptable threshold.
19605         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
19606         is_miss_rate_acceptable after renaming of compute_miss_rate.
19607
19608 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
19609
19610         PR middle-end/44576
19611         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
19612         of 1000) for miss rate if the address diference is greater than or
19613         equal to the cache line size (the two reference will never hit the
19614         same cache line).
19615
19616 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
19617
19618         PR target/42835
19619         * config/arm/arm-modes.def (CC_NOTB): New mode.
19620         * config/arm/arm.c (get_arm_condition_code): Handle it.
19621         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
19622         * config/arm/arm.md (subsi3_compare0_c): New pattern.
19623         (compare_scc): Now a define_and_split.  Add a number of extra
19624         splitters before it.
19625
19626         PR target/42172
19627         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
19628         and ZERO_EXTEND.
19629         (arm_rtx_costs_1): Likewise.
19630         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
19631         * config/arm/arm.md (is_arch6): New attribute.
19632         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
19633         extendqisi2): Tighten the code somewhat, avoiding invalid
19634         RTL to occur in the expander patterns.
19635         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
19636         (thumb1_zero_extendhisi2_v6): Delete.
19637         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
19638         (thumb1_extendhisi2_v6): Delete.
19639         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
19640         (thumb1_extendqisi2_v6): Delete.
19641         (zero_extendhisi2 for register input splitter): New.
19642         (zero_extendqisi2 for register input splitter): New.
19643         (thumb1_extendhisi2 for register input splitter): New.
19644         (extendhisi2 for register input splitter): New.
19645         (extendqisi2 for register input splitter): New.
19646         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
19647         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
19648         and add support for a register alternative requiring a split.
19649         (thumb1_zero_extendqisi2): Likewise.
19650         (arm_zero_extendqisi2): Likewise.
19651         (arm_extendhisi2): Likewise.
19652         (arm_extendqisi2): Likewise.
19653
19654 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19655
19656         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
19657         instead of an unspec.
19658         (neon_expand_vector_init): Likewise.
19659         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
19660         (UNSPEC_VDUP_LANE): Delete.
19661         (UNSPEC VDUP_N): Delete.
19662         (UNSPEC_VGET_HIGH): Delete.
19663         (UNSPEC_VGET_LANE): Delete.
19664         (UNSPEC_VGET_LOW): Delete.
19665         (UNSPEC_VMVN): Delete.
19666         (UNSPEC_VSET_LANE): Delete.
19667         (V_double_vector_mode): New.
19668         (vec_set<mode>_internal): Make code emitted match that for the
19669         corresponding intrinsics.
19670         (vec_setv2di_internal): Likewise.
19671         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
19672         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
19673         (neon_vset_lane<mode>): Combine double and quad patterns and
19674         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
19675         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
19676         (neon_vdup_n<mode>): Rewrite RTL without unspec.
19677         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
19678         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
19679         with neon_vdup_lanev2di, adjusting the pattern from the latter
19680         to be predicable for consistency.
19681         (neon_vdup_lane<mode>_internal): New.
19682         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
19683         to avoid using an unspec.
19684         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
19685         (neon_vdup_lanev2di): Turn into a define_expand.
19686         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
19687         (neon_vget_high<mode>): Replace with....
19688         (neon_vget_highv16qi): New pattern using canonical RTL.
19689         (neon_vget_highv8hi): Likewise.
19690         (neon_vget_highv4si): Likewise.
19691         (neon_vget_highv4sf): Likewise.
19692         (neon_vget_highv2di): Likewise.
19693         (neon_vget_low<mode>): Replace with....
19694         (neon_vget_lowv16qi): New pattern using canonical RTL.
19695         (neon_vget_lowv8hi): Likewise.
19696         (neon_vget_lowv4si): Likewise.
19697         (neon_vget_lowv4sf): Likewise.
19698         (neon_vget_lowv2di): Likewise.
19699
19700         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
19701         test for this emitting vmov.
19702         (Vset_lane): Likewise.
19703         (Vdup_n): Likewise.
19704         (Vmov_n): Likewise.
19705
19706         * doc/arm-neon-intrinsics.texi: Regenerated.
19707
19708 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
19709
19710         * config/arm/neon.md (vec_extractv2di): Correct error in register
19711         numbering to reconcile with neon_vget_lanev2di.
19712
19713 2010-07-02  Richard Guenther  <rguenther@suse.de>
19714
19715         * tree-ssa-structalias.c (pt_solution_set_var): New function.
19716         * tree-ssa-alias.h (pt_solution_set_var): Declare.
19717         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
19718         points-to information.
19719
19720 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
19721
19722         * config/s390/s390.c (override_options): Adopt prefetching
19723         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
19724
19725 2010-07-02  Jan Hubicka  <jh@suse.cz>
19726
19727         * df-problems.c (df_kill_notes): Do not collect dead  notes.
19728         (df_set_note): Just call add_reg_note.
19729         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
19730         df_create_unused_note): Do not deal with lists of old notes.
19731         (df_note_bb_compute): Likewise.
19732
19733 2010-07-02  Richard Guenther  <rguenther@suse.de>
19734
19735         * tree-ssa-structalias.c (find_func_aliases): Handle
19736         pointer alignment via BIT_AND_EXPR.
19737         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
19738
19739 2010-07-02  Richard Guenther  <rguenther@suse.de>
19740
19741         * tree-data-ref.c (initialize_data_dependence_relation): Handle
19742         mismatching number of dimensions properly.
19743
19744 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19745
19746         PR target/44707
19747         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
19748         (lo_sum (high ...) ...) patterns generated by earlier passes.
19749
19750 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19751
19752         * doc/install.texi (Prerequisites): Document Perl requirement on
19753         Solaris 2.
19754         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
19755
19756 2010-07-02  Richard Guenther  <rguenther@suse.de>
19757
19758         PR middle-end/44777
19759         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
19760
19761 2010-07-02  Jan Hubicka  <jh@suse.cz>
19762
19763         PR middle-end/44706
19764         * predict.c (predict_paths_for_bb): Handle case when control dependence
19765         BB has only abnormal edges.
19766
19767 2010-07-02  Richard Guenther  <rguenther@suse.de>
19768
19769         PR tree-optimization/44748
19770         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
19771         the embedded conversion in MEM_REFs.
19772
19773 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
19774
19775         * reload.c: Include toplev.h.
19776         * recog.c:  Likewise.
19777         * Makefile.in: Adjust dependencies.
19778
19779 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
19780
19781         PR debug/44694
19782         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
19783         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
19784
19785 2010-07-01  Richard Guenther  <rguenther@suse.de>
19786
19787         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
19788         types for offsets.
19789
19790 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
19791
19792         PR target/44732
19793         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
19794         Fix argument types.
19795
19796 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
19797
19798         PR target/44727
19799         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19800         Make sure operand 0 dies.
19801
19802 2010-07-01  Richard Guenther  <rguenther@suse.de>
19803
19804         PR middle-end/42834
19805         PR middle-end/44468
19806         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
19807         * doc/generic.texi (References to storage): Document MEM_REF.
19808         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
19809         (print_call_name): Likewise.
19810         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
19811         (build_simple_mem_ref_loc): New function.
19812         (mem_ref_offset): Likewise.
19813         * tree.h (build_simple_mem_ref_loc): Declare.
19814         (build_simple_mem_ref): Define.
19815         (mem_ref_offset): Declare.
19816         * fold-const.c: Include tree-flow.h.
19817         (operand_equal_p): Handle MEM_REF.
19818         (build_fold_addr_expr_with_type_loc): Likewise.
19819         (fold_comparison): Likewise.
19820         (fold_unary_loc): Fold
19821         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
19822         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
19823         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
19824         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
19825         (ptr_deref_may_alias_ref_p_1): Likewise.
19826         (ao_ref_base_alias_set): Properly differentiate base object for
19827         offset and TBAA.
19828         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
19829         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
19830         (indirect_refs_may_alias_p): Likewise.
19831         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
19832         chasing code.
19833         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
19834         (call_may_clobber_ref_p_1): Likewise.
19835         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
19836         * expr.c (expand_assignment): Handle MEM_REF.
19837         (store_expr): Handle MEM_REFs from STRING_CSTs.
19838         (store_field): If expanding a MEM_REF of a non-addressable
19839         decl use bitfield operations.
19840         (get_inner_reference): Handle MEM_REF.
19841         (expand_expr_addr_expr_1): Likewise.
19842         (expand_expr_real_1): Likewise.
19843         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
19844         * alias.c (ao_ref_from_mem): Handle MEM_REF.
19845         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
19846         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
19847         (dr_analyze_indices): Likewise.
19848         (dr_analyze_alias): Likewise.
19849         (object_address_invariant_in_loop_p): Likewise.
19850         * gimplify.c (mark_addressable): Handle MEM_REF.
19851         (gimplify_cond_expr): Build MEM_REFs.
19852         (gimplify_modify_expr_to_memcpy): Likewise.
19853         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
19854         (gimple_fold_indirect_ref): Adjust.
19855         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
19856         * tree.def (MEM_REF): New tree code.
19857         * tree-dfa.c: Include toplev.h.
19858         (get_ref_base_and_extent): Handle MEM_REF.
19859         (get_addr_base_and_unit_offset): New function.
19860         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
19861         * gimple-fold.c (may_propagate_address_into_dereference): Handle
19862         MEM_REF.
19863         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
19864         accesses if the array has just one dimension.  Remove always true
19865         parameter.  Do not require type compatibility here.
19866         (maybe_fold_offset_to_component_ref): Remove.
19867         (maybe_fold_stmt_indirect): Remove.
19868         (maybe_fold_reference): Remove INDIRECT_REF handling.
19869         Fold back to non-MEM_REF.
19870         (maybe_fold_offset_to_address): Simplify.  Deal with type
19871         mismatches here.
19872         (maybe_fold_reference): Likewise.
19873         (maybe_fold_stmt_addition): Likewise.  Also handle
19874         &ARRAY + I in addition to &ARRAY[0] + I.
19875         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
19876         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
19877         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
19878         * tree-ssa.c (useless_type_conversion_p): Make most pointer
19879         conversions useless.
19880         (warn_uninitialized_var): Handle MEM_REF.
19881         (maybe_rewrite_mem_ref_base): New function.
19882         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
19883         to SSA form.
19884         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
19885         INDIRECT_REF handling.
19886         (copy_tree_body_r): Handle MEM_REF.
19887         * gimple.c (is_gimple_addressable): Adjust.
19888         (is_gimple_address): Likewise.
19889         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
19890         invariant base are invariant.
19891         (is_gimple_min_lval): Adjust.
19892         (is_gimple_mem_ref_addr): New function.
19893         (get_base_address): Handle MEM_REF.
19894         (count_ptr_derefs): Likewise.
19895         (get_base_loadstore): Likewise.
19896         * gimple.h (is_gimple_mem_ref_addr): Declare.
19897         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
19898         * tree-cfg.c (verify_address): New function, split out from ...
19899         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
19900         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
19901         INDIRECT_REFs.
19902         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
19903         INDIRECT_REF.  Allow conversions.
19904         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
19905         a register does not change its size.
19906         (verify_types_in_gimple_reference): Verify MEM_REF.
19907         (verify_gimple_assign_single): Disallow INDIRECT_REF.
19908         Handle MEM_REF.
19909         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
19910         New.
19911         (mark_address_taken): Handle MEM_REF.
19912         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
19913         (get_asm_expr_operands): Pass opf_not_non_addressable.
19914         (get_expr_operands): Handle opf_[not_]non_addressable.
19915         Handle MEM_REF.  Remove INDIRECT_REF handling.
19916         * tree-vrp.c (check_array_ref): Handle MEM_REF.
19917         (search_for_addr_array): Likewise.
19918         (check_array_bounds): Likewise.
19919         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
19920         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
19921         (ref_always_accessed_p): Likewise.
19922         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
19923         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
19924         Handle MEM_REF.
19925         * cgraphbuild.c (mark_load): Properly check for NULL result
19926         from get_base_address.
19927         (mark_store): Likewise.
19928         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
19929         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
19930         handling for MEM_REF.
19931         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
19932         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
19933         * builtins.c (stabilize_va_list_loc): Use the function ABI
19934         valist type if we couldn't canonicalize the argument type.
19935         Always dereference with the canonical va-list type.
19936         (maybe_emit_free_warning): Handle MEM_REF.
19937         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
19938         memmove to memcpy.
19939         * builtins.c (fold_builtin_memory_op): Use ref-all types
19940         for all memcpy foldings.
19941         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
19942         (build_outer_var_ref): Likewise.
19943         (scan_omp_1_op): Likewise.
19944         (lower_rec_input_clauses): Likewise.
19945         (lower_lastprivate_clauses): Likewise.
19946         (lower_reduction_clauses): Likewise.
19947         (lower_copyprivate_clauses): Likewise.
19948         (expand_omp_atomic_pipeline): Likewise.
19949         (expand_omp_atomic_mutex): Likewise.
19950         (create_task_copyfn): Likewise.
19951         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
19952         Remove old union trick.  Initialize constant offsets.
19953         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
19954         INDIRECT_REF.  Init base_alias_set properly.
19955         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
19956         (vn_reference_fold_indirect): Adjust for MEM_REFs.
19957         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
19958         for ARRAY_REFs.
19959         (may_insert): Remove.
19960         (visit_reference_op_load): Do not test may_insert.
19961         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
19962         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
19963         a field to store the constant offset this op applies.
19964         (run_scc_vn): Adjust prototype.
19965         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
19966         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
19967         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
19968         bother about volatile qualifiers on pointers.
19969         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
19970         * tree-ssa-loop-ivopts.c
19971         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
19972         (strip_offset_1): Likewise.
19973         (find_interesting_uses_address): Replace INDIRECT_REF handling with
19974         MEM_REF handling.
19975         (get_computation_cost_at): Likewise.
19976         * ipa-pure-const.c (check_op): Handle MEM_REF.
19977         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
19978         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
19979         and constants.
19980         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
19981         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
19982         (eliminate_local_variables_1): Likewise.
19983         (create_call_for_reduction_1): Likewise.
19984         (create_loads_for_reductions): Likewise.
19985         (create_loads_and_stores_for_name): Likewise.
19986         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
19987         (ssa_accessed_in_tree): Handle MEM_REF.
19988         (ssa_accessed_in_assign_rhs): Likewise.
19989         (update_type_size): Likewise.
19990         (analyze_accesses_for_call_stmt): Likewise.
19991         (analyze_accesses_for_assign_stmt): Likewise.
19992         (transform_access_sites): Likewise.
19993         (transform_allocation_sites): Likewise.
19994         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
19995         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
19996         not handle INDIRECT_REF.
19997         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
19998         (cond_store_replacement): Likewise.
19999         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20000         MEM_REF, no not handle INDIRECT_REFs.
20001         (insert_into_preds_of_block): Properly initialize avail.
20002         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
20003         for ARRAY_REFs.  Properly handle reference lookups that
20004         require a bit re-interpretation.
20005         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
20006         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20007         (build_ref_for_offset_1): Remove.
20008         (build_ref_for_offset): Build MEM_REFs.
20009         (gate_intra_sra): Disable for now.
20010         (sra_ipa_modify_expr): Handle MEM_REF.
20011         (ipa_early_sra_gate): Disable for now.
20012         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20013         MEM_REF handling.
20014         (disqualify_base_of_expr): Likewise.
20015         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20016         MEM_REF handling.
20017         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20018         Use mem_ref_offset.  Remove bogus folding.
20019         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
20020         (make_fancy_name_1): Add support for MEM_REF.
20021         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
20022         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
20023         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
20024         (compute_complex_ancestor_jump_func): Likewise.
20025         (ipa_analyze_virtual_call_uses): Likewise.
20026         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
20027         INDIRECT_REF folding with more generalized MEM_REF folding.
20028         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
20029         (forward_propagate_addr_into_variable_array_index): Also handle
20030         &ARRAY + I in addition to &ARRAY[0] + I.
20031         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
20032         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
20033         creates assignments with overlap.
20034         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
20035         (get_frame_field): Likewise.
20036         (get_nonlocal_debug_decl): Likewise.
20037         (convert_nonlocal_reference_op): Likewise.
20038         (struct nesting_info): Add mem_refs pointer-set.
20039         (create_nesting_tree): Allocate it.
20040         (convert_local_reference_op): Insert to be folded mem-refs.
20041         (fold_mem_refs): New function.
20042         (finalize_nesting_tree_1): Perform defered folding of mem-refs
20043         (free_nesting_tree): Free the pointer-set.
20044         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
20045         (vectorizable_load): Likewise.
20046         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
20047         (propagate_with_phi): Likewise.
20048         * tree-object-size.c (addr_object_size): Handle MEM_REFs
20049         instead of INDIRECT_REFs.
20050         (compute_object_offset): Handle MEM_REF.
20051         (plus_stmt_object_size): Handle MEM_REF.
20052         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
20053         for &MEM_REF.
20054         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
20055         (symbol_marked_for_renaming): Likewise.
20056         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
20057         (fold-const.o): Add $(TREE_FLOW_H).
20058         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
20059         (find_func_clobbers): Likewise.
20060         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
20061         (decompose_access): Likewise.
20062         (replace_field_acc): Likewise.
20063         (replace_field_access_stmt): Likewise.
20064         (insert_new_var_in_stmt): Likewise.
20065         (get_stmt_accesses): Likewise.
20066         (reorg_structs_drive): Disable.
20067         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
20068         (ix86_canonical_va_list_type): Likewise.
20069
20070 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20071
20072         PR other/44566
20073         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
20074         * target.def (struct gcc_target): Replace enum reg_class with
20075         reg_class_t in hook argument / return types.
20076         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
20077         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
20078         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
20079         * targhooks.h (default_branch_target_register_class): Likewise.
20080         (default_ira_cover_classes, default_secondary_reload): Likewise.
20081         (default_memory_move_cost, default_register_move_cost): Likewise.
20082         * targhooks.c (default_branch_target_register_class): Likewise.
20083         (default_ira_cover_classes, default_secondary_reload): Likewise.
20084         (default_memory_move_cost, default_register_move_cost): Likewise.
20085         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
20086         * bt-load.c (branch_target_load_optimize): Likewise.
20087         * ira.c (setup_cover_and_important_classes): Likewise.
20088         * ira-costs.c (copy_cost): Likewise.
20089         * reload1.c (emit_input_reload_insns): Likewise.
20090         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20091         * config/frv/frv.c (frv_secondary_reload): Likewise.
20092         * config/s390/s390.c (s390_secondary_reload): Likewise.
20093         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
20094         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
20095         (ix86_register_move_cost): Likewise.
20096         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
20097         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
20098         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
20099         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
20100         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
20101         (rs6000_ira_cover_classes): Likewise.
20102         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
20103         * config/picochip/picochip-protos.h (picochip_secondary_reload):
20104         Likewise.
20105         * config/pa/pa.c (pa_secondary_reload): Likewise.
20106         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
20107         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
20108         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
20109         * doc/tm.texi: Regenerate.
20110
20111 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
20112
20113         PR bootstrrap/44726
20114         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
20115         use.
20116         (build_alias_set_optimal_p): Likewise.
20117         (build_base_obj_set_for_drs): Likewise.
20118
20119 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20120
20121         * target.def: Remove comment about licensing problems of function
20122         declarations.
20123
20124         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
20125         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
20126         * doc/tm.texi: Regenerate.
20127
20128         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
20129         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
20130
20131         * target.def (enum_va_list_p): Use DEFHOOK.
20132         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
20133         Rename ptype to ptree.
20134         * doc/tm.texi: Regenerate.
20135
20136         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
20137         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
20138         * doc/tm.texi: Regenerate.
20139
20140         * target.def (memory_move_cost): Use DEFHOOK.
20141         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
20142         Rename regclass AKA class to rclass.
20143         * doc/tm.texi: Regenerate.
20144
20145         * target.def (pragma_parse): Use DEFHOOK.
20146         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
20147         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
20148         * doc/tm.texi: Regenerate.
20149
20150         * target.def (pass_by_reference): Use DEFHOOK.
20151         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
20152         * doc/tm.texi: Regenerate.
20153
20154         * target.def (resolve_overloaded_builtin): Rename params to arglist.
20155         Use DEFHOOK.
20156         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
20157         * doc/tm.texi: Regenerate.
20158
20159         * target.def (return_pops_args): Use DEFHOOK.
20160         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
20161         Rename stack-size to size.
20162         * doc/tm.texi: Regenerate.
20163
20164         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
20165         last-sched_cycle to last_clock, cur_cycle to clock.
20166         * doc/tm.texi.in: Use @hook.
20167         * doc/tm.texi: Regenerate.
20168
20169         * target.def (print_operand, print_operand_address): Update comment.
20170         (print_operand_punct_valid_p): Likewise.
20171
20172 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20173
20174         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
20175         to rtl.h.
20176         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
20177         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
20178         * rtl-error.h: New.
20179         * regrename.c: Do not include toplev.h. Include rtl-error.h.
20180         * rtl-error.c: Likewise.
20181         * reload.c: Likewise.
20182         * recog.c:  Likewise.
20183         * sel-sched.c: Likewise.
20184         * function.c: Likewise.
20185         * reg-stack.c: Likewise.
20186         * cfgrtl.c: Likewise.
20187         * reload1.c: Likewise.
20188         * final.c: Include rtl-error.
20189         * Makefile.in: Adjust dependencies.
20190
20191 2010-06-30  Jan Hubicka  <jh@suse.cz>
20192
20193         PR middle-end/PR44706
20194         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
20195         to return the value.
20196
20197 2010-06-30  Michael Matz  <matz@suse.de>
20198
20199         PR bootstrap/44699
20200         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
20201         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
20202         a gimple reg, attach the original VDEF to the last store in the
20203         sequence.
20204
20205 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
20206
20207         PR other/44034
20208         * config/darwin.c (darwin_override_options): Use renamed
20209         targetm.asm_out.emit_unwind_label.
20210
20211 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20212
20213         PR tree-optimization/39799
20214         * tree-inline.c (remap_ssa_name): Initialize variable only if
20215         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
20216
20217 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
20218
20219         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
20220
20221 2010-06-30  Richard Guenther  <rguenther@suse.de>
20222
20223         PR target/44722
20224         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
20225         against oscillation with reverse peephole2.
20226
20227 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
20228
20229         PR target/44721
20230         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20231         Fix last commit.
20232
20233 2010-06-30  Nick Clifton  <nickc@redhat.com>
20234
20235         * config/rx/rx-modes.def: New file.
20236         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
20237         (CC_REGNUM): Define.
20238         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
20239         register.
20240         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
20241         (SELECT_CC_MODE): Define.
20242         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
20243         (reg:CC CC_REG) instead of (cc0).
20244         (attr "cc"): Delete.
20245         (cbranchsi4): Do not split compare and branch here. Instead move
20246         it to...
20247         (cbranchsi4_<code>): ... here.  New patterns.
20248         (cmpsi): Call rx-compare_redundant to find out if it is necessary
20249         to emit the compare instruction.
20250         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
20251         cc_status flags.
20252         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
20253         FIRST_PSEUDO_REGNUM.
20254         (rx_expand_prologue, rx_expand_epilogue): Likewise.
20255         (rx_notice_update_cc): Delete.
20256         (rx_cc_modes_compatible): New function.
20257         (flags_needed_for_conditional): New function.
20258         (flags_from_mode): New function.
20259         (rx_compare_redundant): New function - scans backwards through
20260         insn list to find out if condition flags are already set correctly.
20261         (TARGET_CC_MODES_COMPATIBLE): Define.
20262         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
20263
20264         * config/rx/rx.h (BRANCH_COST): Define.
20265         (REGISTER_MOVE_COST): Define.
20266         * config/rx/predicates (rx_source_operand): Allow all constant types.
20267         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
20268         (tstsi4): New pattern.
20269         * config/rx/rx.c (rx_memory_move_cost): Define.
20270         (TARGET_MEMORY_MOVE_COST): Define.
20271
20272 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20273
20274         * tree.h (block_may_fallthru): Declare here.
20275         * tree-flow.h (block_may_fallthru): Do not declare here.
20276         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
20277         bitmap.h
20278         * Makefile.in (c-typeck.o): Update dependencies.
20279
20280 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
20281
20282         PR debug/44694
20283         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
20284         * cselib.c (cfa_base_preserved_regno): New static variable.
20285         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
20286         of REGNO (cfa_base_preserved_val->locs->loc).
20287         (cselib_preserve_cfa_base_value): Add regno argument, set
20288         cfa_base_preserved_regno to it.
20289         (cselib_invalidate_regno): Allow removal of registers other than
20290         cfa_base_preserved_regno from cfa_base_preserved_val.
20291         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
20292         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
20293         of MEM addresses, if not on LHS.
20294         (reverse_op): Don't add reverse ops for cfa_base_rtx.
20295         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
20296
20297 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20298
20299         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
20300         static variables.
20301         (peep2_buf_position): New static function.
20302         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
20303         peephole2_optimize): Use it.
20304         (peep2_attempt, peep2_update_life): New static functions, broken out
20305         of peephole2_optimize.
20306         (peep2_fill_buffer): New static function.
20307         (peephole2_optimize): Change the main loop to try to fill the buffer
20308         with the maximum number of insns before matching them against
20309         peepholes.  Use a forward scan.  Remove special case for targets with
20310         conditional execution.
20311         * genrecog.c (change_state): Delete dead code.
20312         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20313         Rewrite so as not to expect the second insn to have had a peephole
20314         applied yet.
20315
20316 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20317
20318         * genhooks.c (emit_findices): Cast field precision to int.
20319         (emit_documentation): Likewise.
20320
20321 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
20322
20323         PR tree-optimization/43801
20324         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
20325         if old_decl was DECL_ONE_ONLY.
20326
20327         PR debug/44668
20328         * dwarf2out.c (add_accessibility_attribute): New function.
20329         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
20330         instead of adding DW_AT_accessibility manually.
20331         (gen_enumeration_type_die, gen_struct_or_union_type_die,
20332         gen_typedef_die): Use it.
20333
20334 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20335
20336         * vmsdbgout.c (full_name): Just output the file name if not native.
20337
20338 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20339
20340         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
20341         (funcnam_table): New static table.
20342         (funcnum_table): New static table.
20343         (write_rtnbeg): Write value saved in funcnum_table.
20344         (write_rtnend): Write value saved in funcnum_table.
20345         (vmsdbgout_begin_function): Save current function info in
20346         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
20347         (vmsdbgout_finish): Iterate over funcnum_table.
20348
20349 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20350
20351         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
20352         (vmsdbgout_type_decl): Declare
20353         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
20354         (FUNC_EPILOGUE_LABEL): New macro
20355         (vmsdbgout_begin_epilogue): New function.
20356         (vmsdbgout_type_decl): New function.
20357
20358 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20359
20360         * vmsdbg.h: Update copyright.
20361
20362 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
20363
20364         * vmsdbg.h (DST_K_TBG): New DST constant.
20365         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
20366         (write_modbeg): Cast module_language to avoid warning.
20367         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
20368
20369 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20370
20371         PR other/44034
20372         * target.def, doc/tm.texi.in, genhooks.c: New files.
20373         * target.h: Instead of defining individual hook members,
20374         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
20375         include target.def.
20376         * target-def.h: Instead of defining individual hook initializers,
20377         include target-hooks-def.h.
20378         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
20379         targetm.live_on_entry -> targetm.extra_live_on_entry
20380         targetm.sched.md_finish ->targetm.sched.finish
20381         targetm.sched.md_init -> targetm.sched.init
20382         targetm.sched.md_init_global -> targetm.sched.init_global
20383         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
20384         targetm.asm_out.except_table_label ->
20385           targetm.asm_out.emit_except_table_label
20386         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
20387         targetm.target_help -> targetm.help
20388         targetm.vectorize.builtin_support_vector_misalignment ->
20389           targetm.vectorize.support_vector_misalignment
20390         targetm.file_start_app_off -> targetm.asm_file_start_app_off
20391         targetm.file_start_file_directive ->
20392          targetm.asm_file_start_file_directive
20393         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
20394         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
20395         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
20396         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
20397           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
20398         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
20399           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
20400         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
20401         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
20402         * Makefile.in (TARGET_H): Depend on target.def.
20403         (TARGET_DEF_H): Depend on target-hooks-def.h.
20404         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
20405         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
20406         * doc/tm.texi: Regenerate.
20407
20408         * Makefile.in (s-tm-texi): Remove stray tab / rule.
20409
20410         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
20411         (targetm.sched.init): Likewise.
20412
20413 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20414
20415         PR bootstrap/44713
20416         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
20417         (function_arg_advance_32): Const-ify TYPE parameter.
20418         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
20419         (ix86_function_arg_advance): Change type of NAMED to bool.
20420         (function_arg_32): Const-ify CUM and TYPE parameters.
20421         (function_arg_64): Likewise.  Change type of NAMED to bool.
20422         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
20423         to bool.
20424         (ix86_function_arg): Change type of NAMED to bool.
20425         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
20426         last argument as a bool.
20427
20428 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20429
20430         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
20431         (OVERRIDE_OPTIONS): Add note of obsolescence.
20432         Replace references with references to TARGET_OPTION_OVERRIDE.
20433         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
20434          the macro).
20435         * targhooks.c (default_target_option_override): New function.
20436         * targhooks.h (default_target_option_override): Declare.
20437         * target.h (struct gcc_target): Add override member to
20438         target_option member.
20439         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
20440         targetm.target_option.override call.
20441         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
20442         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
20443
20444 2010-06-29  Jan Hubicka  <jh@suse.cz>
20445
20446         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
20447
20448 2010-06-29  Jan Hubicka  <jh@suse.cz>
20449
20450         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
20451         unreachable.
20452         (rebuild_frequencies): New function.
20453         * predict.h (rebuild_frequencies): Declare.
20454         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
20455         entry block and edge reaching new_entry.
20456         (tree_function_versioning): When doing partial cloning, rebuild
20457         frequencies when done.
20458         * passes.c (execute_function_todo): Use rebild_frequencies.
20459
20460 2010-06-29  Richard Guenther  <rguenther@suse.de>
20461
20462         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
20463         * tree-flow.h (enum noalias_state): Remove.
20464         (struct var_ann_d): Remove noalias_state member.
20465
20466 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
20467
20468         PR target/43902
20469         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
20470         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
20471         (maddhidi4): Likewise.
20472
20473         Revert parts of the change for PR25130.
20474         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
20475         MEM_ALIAS_SET.
20476
20477 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20478
20479         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
20480         targetm.calls.function_incoming_arg, and
20481         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
20482         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
20483         * target.h (struct gcc_target): Add function_arg_advance,
20484         function_arg, and function_incoming_arg fields.
20485         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
20486         (TARGET_FUNCTION_INCOMING_ARG): Define.
20487         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
20488         and TARGET_FUNCTION_INCOMING_ARG.
20489         * targhooks.h (default_function_arg_advance): Declare.
20490         (default_function_arg, default_function_incoming_arg): Declare.
20491         * targhooks.c (default_function_arg_advance): New function.
20492         (default_function_arg, default_function_incoming_arg): New function.
20493         * config/i386/i386.c (function_arg_advance): Rename to...
20494         (ix86_function_arg_advance): ...this.  Make static.
20495         (function_arg): Rename to...
20496         (ix86_function_arg): ...this.  Make static.
20497         (TARGET_FUNCTION_ARG_ADVANCE): Define.
20498         (TARGET_FUNCTION_ARG): Define.
20499         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
20500         (FUNCTION_ARG): Delete.
20501         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
20502         (function_arg): Delete prototype.
20503
20504 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
20505
20506         * reginfo.c (init_reg_sets_1): Adjust comments.
20507         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
20508         * calls.c (prepare_call_address): Likewise.
20509         (emit_call_1): Use targetm.calls.return_pops_args.
20510         (expand_call): Likewise.
20511         * function.c (assign_parms): Likewise.
20512         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
20513         * target.h (struct gcc_target) [struct calls]: Add
20514         return_pops_args field.
20515         * targhooks.h (default_return_pops_args): Declare.
20516         * targhooks.c (default_return_pops_args): Define.
20517         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
20518         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
20519         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
20520         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
20521         documentation.
20522         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
20523         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
20524         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
20525         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
20526         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
20527         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
20528         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
20529         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
20530         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
20531         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
20532         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
20533         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
20534         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
20535         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
20536         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
20537         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
20538         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
20539         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
20540         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
20541         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
20542         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
20543         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
20544         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
20545         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
20546         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
20547         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
20548         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
20549         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
20550         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
20551         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
20552         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
20553         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
20554         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
20555         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
20556         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
20557         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
20558         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
20559         * config/i386/i386.c (ix86_return_pops_args): Make static.
20560         Constify arguments.
20561         (TARGET_RETURN_POPS_ARGS): Define.
20562         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
20563         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
20564         (TARGET_RETURN_POPS_ARGS): Define.
20565         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
20566         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
20567         (TARGET_RETURN_POPS_ARGS): Define.
20568
20569 2010-06-29  Richard Guenther  <rguenther@suse.de>
20570
20571         PR middle-end/44667
20572         * tree-inline.c (initialize_inlined_parameters): Make sure
20573         to remap the inlined parameter variable substitutions types.
20574
20575 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
20576
20577         PR rtl-optimization/44659
20578         * combine.c (make_compound_operation) <SUBREG>: Do not return the
20579         result of force_to_mode if it partially re-expanded the compound.
20580
20581 2010-06-28  Jan Hubicka  <jh@suse.cz>
20582
20583         PR middle-end/44671
20584         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
20585         RESULT_DECL.
20586
20587 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
20588
20589         * double-int.h (force_fit_type_double): Remove declaration.
20590         * double-int.c (force_fit_type_double): Move to tree.c.
20591         * tree.h (force_fit_type_double): Declare.
20592         * tree.h (force_fit_type_double): Moved from double-int.c. Use
20593         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
20594         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
20595         * convert.c (convert_to_pointer): Adjust call to
20596         force_fit_type_double.
20597         * tree-vrp.c (extract_range_from_assert,
20598         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
20599         * fold-const.c: Update comment.
20600         (int_const_binop, fold_convert_const_int_from_int,
20601         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
20602         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
20603         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
20604         round_up_loc): Adjust call to force_fit_type_double.
20605
20606 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20607
20608         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
20609
20610 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20611
20612         * tree-sra.c (convert_callers): New parameter, change fndecls of
20613         recursive calls.
20614         (modify_function): Pass the old decl to convert_callers.
20615
20616 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20617
20618         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
20619         ipa_check_create_node_params and ipa_initialize_node_params with
20620         checking asserts they are not necessary.
20621
20622 2010-06-28  Jan Hubicka  <jh@suse.cz>
20623
20624         PR tree-optimization/44687
20625         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
20626
20627 2010-06-28  Martin Jambor  <mjambor@suse.cz>
20628
20629         PR c++/44535
20630         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
20631         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
20632         instead of BINFO_BASE_BINFO.
20633
20634 2010-06-28  Michael Matz  <matz@suse.de>
20635
20636         PR middle-end/44592
20637         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
20638         proper VDEF chain for intermediate stores in the sequence.
20639
20640 2010-06-28  Jan Hubicka  <jh@suse.cz>
20641
20642         PR tree-optimization/44357
20643         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
20644         uninlinable functions.
20645
20646 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20647
20648         * config.gcc (powerpc*-*-*): Handle titan.
20649         * config/rs6000/rs6000.c (titan_cost): New costs.
20650         (rs6000_override_options): Add "titan" to processor_target_table.
20651         Add Titan to branch alignment logic.
20652         Correctly set rs6000_cost for titan.
20653         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
20654         * config/rs6000/titan.md: New file.
20655         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
20656
20657 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
20658
20659         * tree-browser.c (TB_history_stack): Convert to a VEC.
20660         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
20661         (TB_history_prev): Likewise.
20662
20663 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
20664
20665         * vec.h (vec_heap_free): Add parentheses around free.
20666
20667 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
20668
20669         * system.h: Poison GCC_EXCEPT_H for front-end files.
20670
20671         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
20672         langhook.
20673         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
20674         Define to NULL by default.
20675         * except.h: Define GCC_EXCEPT_H.
20676         (doing_eh): Remove prototype.
20677         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
20678         (lang_protect_cleanup_actions): Remove.
20679         * except.c (lang_protect_cleanup_actions): Remove.
20680         (doing_eh): Remove.
20681         (gen_eh_region): Don't check doing_eh here.
20682         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
20683         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
20684         instead of lang_protect_cleanup_actions.
20685         * omp-low.c (maybe_catch_exception): Likewise.
20686         * Makefile.in: Update dependencies.
20687
20688 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
20689
20690         * cgraph.h (struct varpool_node): new used_from_object_file flag.
20691         (struct cgraph_local_info): new used_from_object_file flag.
20692         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
20693         (cgraph_clone_node): initialize used_from_object_file.
20694         (cgraph_create_virtual_clone): initialize used_from_object_file.
20695         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
20696         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
20697         when compiling with -fwhole-program.
20698         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
20699         internal resolver.
20700         * ipa.c (function_and_variable_visibility): Set externally_visible
20701         flag of varpool_node if used_from_object_file flag is set.
20702         (cgraph_externally_visible_p): check used_from_object_file flag.
20703         * doc/invoke.texi (-fwhole-program option): Change description of
20704         externally_visible attribute accordingly.
20705         * doc/extend.texi (externally_visible): Ditto.
20706
20707 2010-06-27  Jan Hubicka  <jh@suse.cz>
20708
20709         * params.def (max-inline-insns-auto): Default to 40.
20710         * doc/invoke.texi (max-inline-insns-auto): Document the change.
20711
20712 2010-06-27  Jan Hubicka  <jh@suse.cz>
20713
20714         PR middle-end/44671
20715         PR middle-end/44686
20716         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
20717         signature change.
20718         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
20719         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
20720
20721 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
20722
20723         * target.h (struct gcc_target): Add register_move_cost field.
20724         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
20725         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
20726         * targhooks.c (default_register_move_cost): New function.
20727         * targhooks.h (default_register_move_cost): Declare function.
20728         * defaults.h (REGISTER_MOVE_COST): Delete.
20729         * ira-int.h (ira_register_move_cost): Update comment.
20730         * ira.c (ira_register_move_cost): Update comment.
20731         * reload.h (register_move_cost): Declare.
20732         * reginfo.c (register_move_cost): New function.
20733         (move_cost): Update comment.
20734         (init_move_cost, memory_move_secondary_cost): Replace
20735         REGISTER_MOVE_COST with register_move_cost.
20736         * postreload.c (reload_cse_simplify_set): (Ditto.).
20737         * reload.c (find_valid_class, find_reloads): (Ditto.).
20738         * reload1.c (choose_reload_regs): (Ditto.).
20739         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
20740         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
20741         * doc/md.texi (can_create_pseudo_p): Update documentation.
20742
20743         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
20744         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
20745         * config/i386/i386.h (ix86_memory_move_cost): Make static.
20746         (TARGET_MEMORY_MOVE_COST): Define.
20747
20748         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20749         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
20750         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
20751         (TARGET_MEMORY_MOVE_COST): Define.
20752
20753 2010-06-27  Richard Guenther  <rguenther@suse.de>
20754
20755         PR tree-optimization/44683
20756         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
20757         false edge from the inverted condition.
20758
20759 2010-06-27  Richard Guenther  <rguenther@suse.de>
20760
20761         PR middle-end/44684
20762         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
20763         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
20764         for register LHS.  Or non-store assignments.
20765
20766 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
20767
20768         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
20769         (sparc_emit_set_const64): Likewise.  Remove disabled code.
20770         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
20771         (sparc_emit_set_const64): Likewise.
20772
20773 2010-06-26  Catherine Moore  <clm@codesourcery.com>
20774
20775         * config/mips/mips.md (alu_type): New attribute.
20776         (type): Infer type from alu_type.
20777         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
20778         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
20779         *subsi3_extended, negsi2, negdi2, *low<mode>,
20780         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
20781         xor<mode>3, *nor<mode>3,
20782         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
20783         *zero_extendhi_truncqi):  Set alu_type instead of type.
20784
20785 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
20786
20787         * config/alpha/alpha.c (alpha_need_linkage): Adjust
20788         splay_tree_new_ggc call.
20789         (alpha_use_linkage): Likewise.
20790
20791 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
20792
20793         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
20794         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
20795         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
20796         (static_specs): Remove switches_need_spaces.
20797         (process_command, do_self_spec): Hardcode handling "-o" instead of
20798         checking switches_need_spaces.
20799         * system.h (SWITCHES_NEED_SPACES): Poison.
20800
20801 2010-06-26  Richard Guenther  <rguenther@suse.de>
20802
20803         PR tree-optimization/44393
20804         * tree-loop-distribution.c (generate_loops_for_partition): Fix
20805         stmt removal and VOP renaming.
20806         (generate_memset_zero): Remove redundant stmt updating.
20807         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
20808         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
20809
20810 2010-06-26  Jan Hubicka  <jh@suse.cz>
20811
20812         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
20813         edges comming from header are equivalent.
20814         (visit_bb): Handle PHIs correctly.
20815         * tree-inline.c (copy_phis_for_bb): Be able to copy
20816         PHI from entry edge.
20817         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
20818
20819 2010-06-26  Richard Guenther  <rguenther@suse.de>
20820
20821         PR middle-end/44674
20822         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
20823         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
20824
20825 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
20826
20827         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
20828         add_infile, alloc_switch): New.
20829         (process_command): Remove variable lang_n_infiles.  Process
20830         options in a single pass.  Use new functions for allocating
20831         infiles and switches arrays.  Properly skip operands of
20832         -Xpreprocessor and -Xassembler.
20833
20834 2010-06-26  Jan Hubicka  <jh@suse.cz>
20835
20836         PR middle-end/44671
20837         * cgraphunit.c (cgraph_function_versioning): Remove wrong
20838         cgraph_make_decl_local call; fix typo copying RTL data.
20839
20840 2010-06-25  DJ Delorie  <dj@redhat.com>
20841
20842         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
20843         (m32c_output_aligned_common): Likewise.
20844         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20845         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20846         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
20847         (m32c_register_pragmas): Register it.
20848         * config/m32c/m32c.c (m32c_get_pragma_address): New.
20849         (m32c_insert_attributes): Set #pragma address decls volatile.
20850         (pragma_entry_eq): New.
20851         (pragma_entry_hash): New.
20852         (m32c_note_pragma_address): New.
20853         (m32c_get_pragma_address): New.
20854         (m32c_output_aligned_common): New.
20855         * doc/extend.texi: Document the new pragma.
20856
20857         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
20858         also.
20859         * config/m32c/predicates.md (m32c_any_operand): Check the code
20860         instead of memory_operand so as to allow matching volatile MEMs.
20861         (m32c_nonimmediate_operand): Likewise.
20862         (mra_operand): Allow volatiles.
20863
20864 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
20865
20866         PR debug/44610
20867         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
20868         address if the offset is unknown.
20869
20870 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
20871
20872         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
20873         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
20874         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
20875         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
20876         to ia64_start_function. Invoke it.
20877         * config/ia64/ia64.c (ia64_start_function): Call new function
20878         dwarf2out_vms_debug_main_pointer.
20879
20880 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20881
20882         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
20883         statements computing the true predicate.
20884
20885 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20886
20887         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
20888         to boolean_true_node.
20889         (reset_bb_predicate): New.
20890         (predicate_bbs): Call reset_bb_predicate.
20891
20892 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20893
20894         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
20895         (tree_if_conversion): Returns true when something has been changed.
20896         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
20897         changed something.
20898
20899 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20900
20901         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
20902         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
20903         * tree-if-conv.c: Include dbgcnt.h.
20904         (tree_if_conversion): Use if_conversion_tree to count the number of
20905         if-convertible loops.
20906
20907 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
20908
20909         * common.opt (fprefetch-loop-arrays): Re-define
20910         -fprefetch-loop-arrays as a tri-state option with the initial
20911         value of -1.
20912         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
20913         pass only when flag_prefetch_loop_arrays > 0.
20914         * toplev.c (process_options): Note that, with tri-states,
20915         flag_prefetch_loop_arrays>0 means prefetching is enabled.
20916         * config/i386/i386.c (override_options): Enable prefetching at -O3
20917         for a set of CPUs that sw prefetching is helpful.
20918         (software_prefetching_beneficial_p): New.  Return TRUE if software
20919         prefetching is beneficial for the given CPU.
20920
20921 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
20922
20923         PR rtl-optimization/44326
20924         * implicit-zee.c (find_removable_zero_extends): Replace
20925         INSN_P with NONDEBUG_INSN_P.
20926
20927 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20928
20929         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
20930         (struct ipa_node_params): Removed the modification_analysis_done flag.
20931         (ipa_is_param_modified): Removed.
20932         (ipa_analyze_node): Declare.
20933         (ipa_compute_jump_functions): Remove declaration.
20934         (ipa_count_arguments): Likewise.
20935         (ipa_detect_param_modifications): Likewise.
20936         (ipa_analyze_params_uses): Likewise.
20937         * ipa-prop.c (struct param_analysis_info): New type.
20938         (visit_store_addr_for_mod_analysis): Removed.
20939         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
20940         moved down in the file.
20941         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
20942         (ipa_count_arguments): Made static.
20943         (mark_modified): New function.
20944         (is_parm_modified_before_call): New function.
20945         (compute_pass_through_member_ptrs): New parameter parms_info, call
20946         is_parm_modified_before_call instead of ipa_is_param_modified.
20947         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
20948         it to compute_pass_through_member_ptrs.
20949         (ipa_compute_jump_functions): New parameter parms_info, pass it to
20950         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
20951         on the callee if it is analyzed.  Made static.
20952         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
20953         is_parm_modified_before_call instead of ipa_is_param_modified.
20954         (ipa_analyze_call_uses): New parameter parms_info, pass it to
20955         ipa_analyze_indirect_call_uses.
20956         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
20957         ipa_analyze_call_uses.
20958         (ipa_analyze_params_uses): New parameter parms_info, pass it to
20959         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
20960         (ipa_analyze_node): New function.
20961         (ipa_print_node_params): Do not dump the modified flag.
20962         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
20963         it.  Do not stream the modified parameter flag.
20964         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
20965         it.  Do not stream the modified parameter flag.
20966         * ipa-cp.c (ipcp_analyze_node): Removed.
20967         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
20968         with only a call to ipa_analyze_node.
20969         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
20970         node with only a call to ipa_analyze_node.
20971
20972 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20973
20974         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
20975
20976 2010-06-25  Jan Hubicka  <jh@suse.cz>
20977
20978         * tree-pass.h (pass_split_functions): Declare.
20979         * opts.c (decode_options): Enable function splitting at -O2
20980         * timevar.def (TV_IPA_FNSPLIT): New macro.
20981         * ipa-split.c: New file.
20982         * common.opt (-fpartial-inlining): New flag.
20983         * Makefile.in (ipa-split.o): New object file.
20984         * passes.c (init_optimization_passes): Add ipa-split.
20985         * params.def (partial-inlining-entry-probability): New parameters.
20986         * doc/invoke.texi (-fpartial-inlining): New.
20987
20988 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20989
20990         PR 44665
20991         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
20992         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
20993         (gimplify_expr): Likewise.
20994
20995 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20996
20997         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
20998         statements instead of bailing out on them.
20999         (ipa_analyze_indirect_call_uses): Do not require that loads from the
21000         parameter are in the same BB as the condition.  Update comments.
21001
21002 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
21003
21004         PR middle-end/43866
21005         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21006         true or always false, return NULL_TREE.
21007         (tree_unswitch_single_loop): Optimize conditions even when reaching
21008         max-unswitch-level parameter.  If num > 0, optimize first all conditions
21009         using entry checks, then do still reachable block discovery and consider
21010         only conditions in still reachable basic blocks in the loop.
21011
21012         PR tree-optimization/44539
21013         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21014         the call doesn't have LHS, but has VDEF.
21015
21016 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21017
21018         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21019         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
21020         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
21021         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
21022         * system.h (MODIFY_TARGET_NAME): Poison.
21023
21024 2010-06-25  Alan Modra  <amodra@gmail.com>
21025
21026         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
21027         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
21028         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
21029         CMODEL_LARGE as default.
21030         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
21031         (offsettable_ok_by_alignment): Delete.
21032         (rs6000_emit_move): Remove mcmodel=medium optimization.
21033
21034 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21035
21036         With large parts from Jim Wilson:
21037         PR target/43902
21038         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
21039         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21040         * optabs.c (optab_for_tree_code): Likewise.
21041         (expand_widen_pattern_expr): Likewise.
21042         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
21043         out of execute_optimize_widening_mul.
21044         (convert_plusminus_to_widen): New function.
21045         (execute_optimize_widening_mul): Use the two new functions.
21046         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
21047         Remove code to generate widening multiply-accumulate.  Add support
21048         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21049         * gimple-pretty-print.c (dump_ternary_rhs): New function.
21050         (dump_gimple_assign): Call it when appropriate.
21051         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
21052         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
21053         (expand_gimple_stmt_1): Likewise.
21054         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
21055         WIDEN_MULT_MINUS_EXPR.
21056         * tree-ssa-operands.c (get_expr_operands): Likewise.
21057         * tree-inline.c (estimate_operator_cost): Likewise.
21058         * gimple.c (extract_ops_from_tree_1): Renamed from
21059         extract_ops_from_tree.  Add new arg for a third operand; fill it.
21060         (gimple_build_assign_stat): Support operations with three operands.
21061         (gimple_build_assign_with_ops_stat): Likewise.
21062         (gimple_assign_set_rhs_from_tree): Likewise.
21063         (gimple_assign_set_rhs_with_ops_1): Renamed from
21064         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
21065         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
21066         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
21067         WIDEN_MULT_MINUS_EXPR.
21068         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
21069         (extract_ops_from_tree_1): Adjust declaration.
21070         (gimple_assign_set_rhs_with_ops_1): Likewise.
21071         (gimple_build_assign_with_ops): Pass NULL for last operand.
21072         (gimple_build_assign_with_ops3): New macro.
21073         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
21074         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
21075         functions.
21076         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
21077         (verify_gimple_assign): Call it.
21078         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
21079         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
21080         functions for dealing with three-operand statements.
21081         * tree.c (commutative_ternary_tree_code): New function.
21082         * tree.h (commutative_ternary_tree_code): Declare it.
21083         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
21084         ternary statements.
21085         (gimple_assign_nonzero_warnv_p): Likewise.
21086         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
21087         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
21088         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
21089         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
21090         (struct hashtable_expr): New member ternary in the union.
21091         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
21092         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
21093         (iterative_hash_hashable_expr): Likewise.
21094         (print_expr_hash_elt): Handle EXPR_TERNARY.
21095         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
21096         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
21097         statements.  Handle GIMPLE_TERNARY_RHS.
21098
21099 2010-06-25  Jan Hubicka  <jh@suse.cz>
21100
21101         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
21102
21103 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
21104
21105         PR c/44517
21106         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
21107         parameters are not good.
21108         (c_parser_parameter_declaration): Error unknown type name if the type
21109         name can't start declaration specifiers.
21110
21111 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21112
21113         * gcc.c (translate_options): Don't mention +e in comment.
21114         (process_command): Don't handle +e specially.
21115
21116 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21117
21118         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
21119
21120         * ira-build.c (merge_hard_reg_conflicts): New function.
21121         (create_cap_allocno, copy_info_to_removed_store_destinations,
21122         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
21123         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
21124         (remove_unnecessary_allocnos, remove_low_level_allocnos)
21125         copy_nifo_to_removed_store_destination): Use them.
21126         * ira-lives.c (make_hard_regno_born): New function, split out of
21127         make_regno_born.
21128         (make_allocno_born): Likewise.
21129         (make_hard_regno_dead): New function, split out of make_regno_dead.
21130         (make_allocno_dead): Likewise.
21131         (inc_register_pressure): New function, split out of set_allocno_live.
21132         (dec_register_pressure): New function, split out of clear_allocno_live.
21133         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
21134         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
21135         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
21136         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
21137         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
21138         mark_pseudo_regno_live.
21139         (process_bb_node_lives): Use mark_pseudo_regno_live,
21140         make_hard_regno_born and make_allocno_dead.
21141         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
21142         set_allocno_live, clear_allocno_live): Delete functions.
21143
21144         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
21145         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
21146         functions.
21147         (ira_flattening): Use ira_parent_allocno.
21148         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
21149         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
21150
21151         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
21152         statement.
21153
21154         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
21155         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
21156         minmax_set_iter_cond, minmax_set_iter_next,
21157         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
21158         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
21159         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
21160         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
21161         uses changed.
21162
21163         * ira-int.h (struct live_range, live_range_t): Renamed from struct
21164         ira_allocno_live_range and allocno_live_range_t; all uses changed.
21165         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
21166         All uses changed.
21167
21168 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
21169
21170         * thumb2.md (thumb2_tlobits_cbranch): Delete.
21171         (peephole2 to convert zero_extract/compare of single bit to
21172          lshift/compare): New.
21173
21174 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
21175
21176         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
21177         recursive call and call to 'int_const_binop'.
21178         (build_range_check, fold_cond_expr_with_comparison, unextend,
21179         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
21180         multiple_of_p): Adjust call to const_binop.
21181
21182 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
21183
21184         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
21185         determine size of XFmode operand.
21186         (XFmode extended DFmode push splitter): Ditto.
21187         (XFmode extended SFmode push splitter): Ditto.
21188
21189 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
21190
21191         PR target/44588
21192         * config/i386/i386.md (extract_code): New.
21193         (<u>divmodqi4): Likewise.
21194         (divmodhiqi3): Likewise.
21195         (udivmodhiqi3): Likewise.
21196         (<u>divqi3): Remvoved.
21197
21198 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
21199
21200         PR middle-end/44492
21201         * recog.h (struct recog_data): Add is_asm field.
21202         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
21203         present in constraints of inline-asm operand and memory operand
21204         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
21205         (extract_insn): Initialize recog_data.is_asm.
21206         * doc/md.texi (Constraints): Document operand side-effect rules.
21207
21208 2010-06-24  Andi Kleen  <ak@linux.intel.com>
21209
21210         * c-parser.c (c_parser_conditional_expression): Call
21211         warn_for_omitted_condop.
21212         * doc/invoke.texi: Document omitted condop warning.
21213
21214 2010-06-24  Nick Clifton<nickc@redhat.com>
21215
21216         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
21217         insn in the sequence is a jump insn before setting its label.
21218
21219 2010-06-24  Alan Modra  <amodra@gmail.com>
21220
21221         * collect2.c (main): Match exactly --version and --help.
21222
21223 2010-06-24  DJ Delorie  <dj@redhat.com>
21224
21225         * config/m32c/m32c-pragma.c: Don't include rtl.h.
21226
21227 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
21228
21229         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
21230         using X87MODEF mode iterator.
21231         (pushsf splitter): Macroize splitter using P mode iterator.
21232         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
21233         mode iterator.
21234
21235         (*movxf_internal): Rename from *movxf_integer.
21236         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
21237         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
21238         (*movdf_internal): Rename from *movdf_integer.
21239         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
21240         (*movsf_internal): Rename from *movdf_1.
21241
21242 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
21243
21244         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
21245         (const_gimple_seq_node): Removed typedefs.
21246
21247         * gimple.h (gimple_seq_node_d, gimple_seq_node)
21248         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
21249
21250 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
21251
21252         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
21253         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
21254         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
21255         and CODE_FOR_vec_extract_lo_v4df.
21256
21257         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
21258         Changed to define_insn_and_split.
21259         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
21260         (vec_extract_lo_v16hi): Likewise.
21261         (vec_extract_lo_v32qi): Likewise.
21262         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
21263         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
21264
21265 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
21266
21267         PR target/44640
21268         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
21269         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
21270         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
21271         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
21272         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
21273
21274         PR target/44640
21275         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
21276
21277         PR other/44644
21278         * df-core.c (struct df): Rename to df_d.
21279         * df.h (struct df): Likewise.
21280         * dse.h (struct df): Remove forward declaration.
21281         * recog.h (struct insn_data): Rename to:
21282         (struct_insn_data_d).  Adjusted all users.
21283
21284 2010-06-23  Arnaud Charlet  <charlet@adacore.com
21285
21286         PR ada/22220
21287         * doc/install.texi: Update requirements to build GNAT.
21288
21289 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
21290
21291         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
21292         enum type.
21293         (m68k_sched_attr_opx_type): Remove unreachable return.
21294         (m68k_sched_attr_opy_type): Likewise.
21295         (m68k_sched_attr_size): Likewise.
21296         (sched_get_opxy_mem_type): Likewise.
21297         (m68k_sched_attr_op_mem): Likewise.
21298
21299 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
21300
21301         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
21302         new statement and adjust VDEF only if necessary.  Remove superfluous
21303         call to maybe_clean_or_replace_eh_stmt.
21304         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
21305         copy the flags.
21306         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
21307         * tree-inline.c (copy_bb): ...and not there.
21308
21309 2010-06-22  Cary Coutant  <ccoutant@google.com>
21310
21311         * dwarf2out.c (is_nested_in_subprogram): New function.
21312         (should_move_die_to_comdat): Use it.
21313         (copy_ancestor_tree): Don't mark DIEs here.
21314         (copy_decls_walk): Start walk from root of newly-added tree;
21315         mark DIEs here instead.
21316
21317 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
21318
21319         * config/i386/i386.md (unit): Also check sseishft1.
21320
21321 2010-06-22  Jan Hubicka  <jh@suse.cz>
21322
21323         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
21324         enabled.
21325
21326 2010-06-22  Jan Hubicka  <jh@suse.cz>
21327
21328         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
21329         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
21330         Return true if something changed.
21331         * df.h (df_confluence_function_n): Return bool.
21332         * df-core.c (df_worklist_propagate_forward,
21333         df_worklist_propagate_backward): Track changes and ages.
21334         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
21335         track ages.
21336         * dse.c (dse_confluence_n): Return always true.
21337
21338 2010-06-22  Jan Hubicka  <jh@suse.cz>
21339
21340         * bitmap.c (bitmap_clear_bit): Micro optimize.
21341
21342 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
21343
21344         * config/i386/i386.md (SWI1248x): New mode iterator.
21345         (SWI48x): Ditto.
21346         (SWI12): Ditto.
21347         (SWI24): Ditto.
21348
21349         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
21350         SWI1248x mode iterator.
21351         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
21352         using SWI124 mode iterator.
21353         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
21354         mode iterator.
21355         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
21356         *pushdi2_prologue_rex64 using P mode iterator.
21357         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
21358         using SWI48 mode iterator.
21359         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
21360         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
21361         using SWI1248x mode iterator.
21362         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
21363         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
21364         SWI48 mode iterator.
21365         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
21366         iterator.
21367         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
21368         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
21369         SWI12 mode iterator.
21370         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
21371         SWI12 mode iterator.
21372         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
21373         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
21374         SWI24 mode iterator.
21375         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
21376         SWI48 mode iterator.
21377         (mov<mode>_insn_1): New expander.
21378         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
21379         using SWI48x mode iterator.
21380
21381         (*movoi_internal_avx): Rename from *movoi_internal.
21382         (*movti_internal_rex64): Rename from *movti_rex64.
21383         (*movti_internal_sse): Rename from *movti_sse.
21384         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
21385         (*movdi_internal): Rename from *movdi_2.
21386         (*movsi_internal): Rename from *movsi_1.
21387         (*movhi_internal): Rename from *movhi_1.
21388         (*movqi_internal): Rename from *movqi_1.
21389
21390         (insv): Update the call to gen_movsi_insv_1 for rename.
21391         * config/i386/i386.c (promote_duplicated_reg): Ditto.
21392
21393 2010-06-22  Jan Hubicka  <jh@suse.cz>
21394
21395         * passes.c (execute_function_todo): Move call of statistics_fini_pass
21396         to ...
21397         (execute_todo) ... this one.
21398
21399 2010-06-22  Alan Modra  <amodra@gmail.com>
21400
21401         PR target/44364
21402         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21403         * caller-save.c (insert_restore, insert_save): Use non-validate
21404         form of adjust_address.
21405
21406 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21407
21408         PR target/39690
21409         * config/pa/pa.c (override_options): Disable
21410         -freorder-blocks-and-partition.
21411
21412 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
21413
21414         PR target/44615
21415         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
21416
21417         * config/i386/i386.md (type): Add sseishft1
21418
21419         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
21420         (ppro_insn_load): Likewise.
21421         (ppro_insn_store): Likewise.
21422         (ppro_insn_both): Likewise.
21423
21424         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
21425         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
21426         for type.
21427         (*vec_extractv2di_1_avx): Likewise.
21428         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
21429         type.  Remove atom_unit.
21430         (*vec_extractv2di_1_sse2): Likewise.
21431
21432 2010-06-21  DJ Delorie  <dj@redhat.com>
21433
21434         * diagnostic.h (diagnostic_classification_change_t): New.
21435         (diagnostic_context): Add history and push/pop list.
21436         (diagnostic_push_diagnostics): Declare.
21437         (diagnostic_pop_diagnostics): Declare.
21438         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
21439         from pragmas in a history chain instead of the global table.
21440         (diagnostic_push_diagnostics): New.
21441         (diagnostic_pop_diagnostics): New.
21442         (diagnostic_report_diagnostic): Scan history chain to find state
21443         of diagnostics as of the diagnostic location.
21444         * opts.c (set_option): Pass UNKNOWN_LOCATION to
21445         diagnostic_classify_diagnostic.
21446         (enable_warning_as_error): Likewise.
21447         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
21448         use in the history chain.
21449         * doc/extend.texi: Document pragma GCC diagnostic changes.
21450
21451 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
21452
21453         * dwarf2out.c (add_linkage_name): New function.  Don't add
21454         anything to DW_TAG_member DIEs.
21455         (add_name_and_src_coords_attributes): Use it.
21456         (gen_variable_die): Call it for C++ static data members if
21457         specification is DW_TAG_member.
21458
21459         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
21460         C++ char16_t and char32_t.
21461
21462         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
21463         * genattrtab.c: Include vecprim.h.
21464         (cached_attrs, cached_attr_count, attrs_seen_once,
21465         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
21466         attrs_cached_after): New variables.
21467         (find_attrs_to_cache): New function.
21468         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
21469         (write_test_expr): Add attrs_cached argument, return it too,
21470         attempt to cache non-const attributes used more than once in
21471         a single case handling.
21472         (write_attr_get): Use find_attrs_to_cache, for caching candidates
21473         emit cached_* variables.  Adjust write_attr_set callers.
21474         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
21475         to find attributes that should be cached in this block.  Adjust
21476         write_test_expr callers.
21477         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
21478         callers.
21479         (make_automaton_attrs): Adjust write_test_expr caller.
21480
21481         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
21482         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
21483         (make_automaton_attrs): If find_tune_attr returns non-NULL,
21484         write separate internal_dfa_insn_code_* and insn_default_latency_*
21485         functions for each attribute's value and emit init_sched_attrs
21486         function and function pointers.
21487         * genattr.c (const_attrs, reservations): New variables.
21488         (gen_attr): Add const attributes to const_attrs vector.
21489         (check_tune_attr, find_tune_attr): New functions.
21490         (main): Add reservations to reservations vector.  If find_tune_attr
21491         returns true, add prototype for init_sched_attrs and make
21492         internal_dfa_insn_code and insn_default_latency function pointers,
21493         otherwise define init_sched_attrs as dummy macro.
21494         * cfgexpand.c: Include insn-attr.h.
21495         (gimple_expand_cfg): Call init_sched_attrs.
21496
21497         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
21498
21499         PR target/44575
21500         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
21501         va_arg from a set of register save slots into a temporary,
21502         if the container is bigger than type size, do the copying
21503         using smaller mode or using memcpy.
21504
21505         PR bootstrap/44426
21506         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
21507         prototype.
21508         (sel_print_to_dot): Remove macro.
21509         (sel_print): Likewise.  New prototype.
21510         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
21511         (sel_print): New function.
21512
21513 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21514
21515         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
21516         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
21517
21518 2010-06-21  Nick Clifton  <nickc@redhat.com>
21519
21520         * config/rx/rx.h (PTRDIFF_TYPE): Define.
21521         (SMALL_REGISTER_CLASS): Define (to zero).
21522         (PRINT_OPERAND): Delete.
21523         (PRINT_OPERAND_ADDRESS): Delete.
21524         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
21525         (rx_print_operand_address): Delete prototype.
21526         * config/rx/rx.c (rx_print_operand): Make static.
21527         Allow %H and %L to handle CONST_DOUBLEs.
21528         (rx_print_operand_address): Make static.
21529         (rx_gen_move_template): Rename local variable 'template' to
21530         out_template.
21531         (rx_function_arg): Do not pass unknown sized objects in registers.
21532         (TARGET_PRINT_OPERAND): Define.
21533         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21534
21535 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
21536
21537         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
21538
21539 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
21540
21541         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
21542         stack-alignment for simple leaf-functions.
21543
21544 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
21545
21546         * doc/install.texi: Document bootstrap-lto.
21547
21548 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
21549
21550         PR debug/44248
21551         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
21552         (input_function): Drop them here, if VTA is disabled.
21553
21554 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
21555
21556         PR target/44546
21557         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
21558         New predicate.
21559         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
21560         ix86_swapped_fp_comparsion_operator instead of
21561         ix86_fp_comparison_operator.
21562
21563         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
21564         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
21565         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
21566         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
21567         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
21568         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
21569
21570 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
21571
21572         PR other/32998
21573         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
21574         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
21575         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
21576         (decode_cmdline_option): Update for this return value.  Set
21577         orig_option_with_args_text field.  Set arg field for unknown
21578         options.  Make static.
21579         (decode_cmdline_options_to_array): New.
21580         (prune_options): Update handling of find_opt return value.
21581         * opts.c (read_cmdline_option): Take decoded option.  Return void.
21582         (read_cmdline_options): Take decoded options.
21583         (decode_options): Add parameters for decoded options.  Use
21584         decode_cmdline_options_to_array.  Use decoded options for -O
21585         scan.  Use integral_argument for -O parameters.  Update call to
21586         read_cmdline_options.
21587         (enable_warning_as_error): Update handling of find_opt return value.
21588         * opts.h: Update comment on unknown options.
21589         (struct cl_decoded_option): Update comments on opt_index and arg.
21590         Add orig_option_with_args_text.
21591         (decode_cmdline_option): Remove.
21592         (decode_cmdline_options_to_array): Declare.
21593         (decode_options): Update prototype.
21594         * toplev.c (save_argv): Remove.
21595         (save_decoded_options, save_decoded_options_count): New.
21596         (read_integral_parameter): Remove.
21597         (print_switch_values): Use decoded options.
21598         (toplev_main): Don't set save_argv.  Update call to decode_options.
21599         * toplev.h (read_integral_parameter): Remove.
21600         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
21601
21602 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
21603
21604         PR target/44072
21605         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
21606         immediate.
21607         * constraints.md (Pw, Px): New constraints.
21608         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
21609
21610 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
21611
21612         * config/i386/sse.md (fma4modesuffixf4): Removed.
21613         (ssemodesuffixf2s): Likewise.
21614         (ssemodesuffixf4): Likewise.
21615         (ssemodesuffixf2c): Likewise.
21616         (ssescalarmodesuffix2s): Likewise.
21617         (avxmodesuffixf2c): Likewise.
21618         (ssemodesuffix): New.
21619         (ssescalarmodesuffix): Likewise.
21620         Update patterns with ssemodesuffix and ssescalarmodesuffix.
21621
21622 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
21623
21624         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
21625
21626 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
21627
21628         * stor-layout.c (debug_rli): Remove unused local variables.
21629
21630 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
21631
21632         PR rtl-optimization/40900
21633         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
21634         original expression for later reuse.
21635         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
21636         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
21637
21638 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
21639
21640         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
21641         double_int_fits_in_uhwi_p): Implement as static inline.
21642         (double_int_xor): New inline function.
21643         (double_int_lrotate, double_int_rrotate, double_int_max,
21644         double_int_umax, double_int_smax, double_int_min, double_int_umin,
21645         double_int_smin): Declare.
21646         (lrotate_double, rrotate_double): Remove declaration.
21647         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
21648         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
21649         (double_int_lrotate, double_int_rrotate, double_int_max,
21650         double_int_umax, double_int_smax, double_int_min, double_int_umin,
21651         double_int_smin): New function.
21652         * fold-const.c (int_const_binop): Clean up, use double_int_*
21653         functions.
21654         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
21655         double_int_* and immed_double_int_const functions.
21656
21657 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
21658
21659         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
21660         * function.c (types_used_by_cur_var_decl): Likewise.
21661         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
21662
21663 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
21664
21665         * tree.h (record_layout_info): Change type of pending_statics field
21666         to a VEC.
21667         * stor-layout.c (start_record_layout): Store NULL into
21668         pending_statics.
21669         (debug_rli): Call debug_vec_tree instead of debug_tree.
21670         (place_field): Likewise.
21671         (finish_record_layout): Likewise.
21672
21673 2010-06-18  Alan Modra  <amodra@gmail.com>
21674
21675         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
21676
21677 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21678
21679         PR target/43740
21680         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
21681         for SET source operand from SET destination operand.
21682
21683 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
21684
21685         PR rtl-optimization/39871
21686         * reload1.c (init_eliminable_invariants): For flag_pic, disable
21687         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
21688         (function_invariant_p): Rule out a plus of frame or arg pointer with
21689         a SYMBOL_REF.
21690         * ira.c (find_reg_equiv_invariant_const): Likewise.
21691
21692 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
21693
21694         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
21695         print_operand_address and puts to output the operand for CONST.
21696
21697 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
21698
21699         PR debug/44572
21700         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
21701         hook.
21702
21703 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21704
21705         * v850-protos.h (print_operand): Delete.
21706         (print_operand_address): Delete.
21707         * v850.h (PRINT_OPERAND): Delete.
21708         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21709         (PRINT_OPERAND_ADDRESS): Delete.
21710         * v850.c (print_operand_address): Rename to...
21711         (v850_print_operand_address): ...this.  Make static. Call
21712         v850_print_operand.
21713         (print_operand): Rename to...
21714         (v850_print_operand): ...this.  Make static.  Call
21715         v850_print_operand_address.
21716         (v850_print_operand_punct_valid_p): New function.
21717         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21718         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21719
21720 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21721
21722         * config/sh/sh-protos.h (print_operand): Delete.
21723         (print_operand_address): Delete.
21724         * config/sh/sh.h (PRINT_OPERAND): Delete.
21725         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21726         (PRINT_OPERAND_ADDRESS): Delete.
21727         * config/sh/sh.c (sh_print_operand_address): Make static.
21728         (sh_print_operand): Make static.  Call sh_print_operand_address
21729         and sh_print_operand.
21730         (sh_print_operand_punct_valid_p): New function.
21731         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21732         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21733
21734 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21735
21736         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
21737         (mcore_print_operand_address): Delete.
21738         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
21739         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21740         (PRINT_OPERAND_ADDRESS): Delete.
21741         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
21742         (mcore_print_operand): Make static.
21743         (mcore_print_operand_punct_valid_p): New function.
21744         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
21745         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21746
21747 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21748
21749         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
21750         (print_operand_address): Delete.
21751         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
21752         (PRINT_OPERAND_ADDRESS): Delete.
21753         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
21754         static.
21755         (m68hc11_print_operand): Make static.
21756         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21757
21758 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21759
21760         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
21761         (m32r_print_operand_address): Delete.
21762         * config/m32r/m32r.h (m32r_punct_chars): Delete.
21763         (PRINT_OPERAND): Delete.
21764         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21765         (PRINT_OPERAND_ADDRESS): Delete.
21766         * config/m32r/m32r.c (m32r_punct_chars): Make static.
21767         (m32r_print_operand_address): Make static.
21768         (m32r_print_operand): Make static.
21769         (m32r_print_operand_punct_valid_p): New function.
21770         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21771         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21772
21773 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21774
21775         * config/iq2000/iq2000-protos.h (print_operand): Delete.
21776         (print_operand_address): Delete.
21777         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
21778         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21779         (PRINT_OPERAND_ADDRESS): Delete.
21780         (iq2000_print_operand_punct): Delete.
21781         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
21782         (iq2000_print_operand_address): Make static.
21783         (iq2000_print_operand): Make static.
21784         (iq2000_print_operand_punct_valid_p): New function.
21785         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21786         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21787
21788 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21789
21790         * config/frv/frv-protos.h (frv_print_operand): Delete.
21791         (frv_print_operand_address): Delete.
21792         * config/frv/frv.h (PRINT_OPERAND): Delete.
21793         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21794         (PRINT_OPERAND_ADDRESS): Delete.
21795         * config/frv/frv.c (frv_print_operand_address): Make static.
21796         (frv_print_operand): Make static.
21797         (frv_print_operand_punct_valid_p): New function.
21798         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21799         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21800
21801 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21802
21803         * tree.h (vec_member): Declare.
21804         * tree.c (vec_member): Define.
21805
21806 2010-06-17  Richard Guenther  <rguenther@suse.de>
21807
21808         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
21809         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
21810
21811 2010-06-17  Richard Guenther  <rguenther@suse.de>
21812
21813         * tree-inline.c (declare_return_variable): Remove bogus code.
21814
21815 2010-06-17  Richard Guenther  <rguenther@suse.de>
21816
21817         * gimplify.c (gimplify_bind_expr): Always promote complex
21818         and vector variables to registers if possible.
21819
21820 2010-06-17  Richard Guenther  <rguenther@suse.de>
21821
21822         * expr.c (get_inner_reference): Use double_int for bit_offset
21823         calculation.
21824
21825 2010-06-16  DJ Delorie  <dj@redhat.com>
21826
21827         * common.opt (-fstrict-volatile-bitfields): new.
21828         * doc/invoke.texi: Document it.
21829         * fold-const.c (optimize_bit_field_compare): For volatile
21830         bitfields, use the field's type to determine the mode, not the
21831         field's size.
21832         * expr.c (expand_assignment): Likewise.
21833         (get_inner_reference): Likewise.
21834         (expand_expr_real_1): Likewise.
21835         * expmed.c (store_fixed_bit_field): Likewise.
21836         (extract_bit_field_1): Likewise.
21837         (extract_fixed_bit_field): Likewise.
21838
21839 2010-06-16  Richard Guenther  <rguenther@suse.de>
21840
21841         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
21842
21843 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
21844
21845         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
21846         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
21847         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
21848         * debug.c: Likewise.
21849         * sdbout.c: Likewise.
21850         * vmsdbgout.c: Likewise.
21851         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
21852         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
21853         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
21854         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
21855         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
21856         * dwarf2out.c (dw_fde_struct): New fields
21857         dw_fde_vms_{end,begin}_prologue.
21858         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
21859         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
21860         (dwarf2out_vms_end_prologue): New function.
21861         (dwarf2out_vms_begin_epilogue): New function.
21862         (dw_val_struct): New value dw_val_class_vms_delta.
21863         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
21864         begin_epilogue for VMS.
21865         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
21866         new static functions.
21867         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
21868         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
21869         static functions.
21870         (print_die): New case dw_val_class_vms_delta.
21871         (attr_checksum): Likewise.
21872         (same_dw_val_p: Likewise.
21873         (size_of_die): Likewise.
21874         (value_format): Likewise.
21875         (output_die): Likewise.
21876         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
21877         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
21878         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
21879         dwarf2out_cfi_begin_epilogue
21880         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
21881
21882 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21883
21884         * config/cris/cris-protos.h (cris_print_operand): Delete.
21885         (cris_print_operand_address): Delete.
21886         * config/cris/cris.h (PRINT_OPERAND): Delete.
21887         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21888         (PRINT_OPERAND_ADDRESS): Delete.
21889         * config/cris/cris.c (cris_print_operand_address): Make static.
21890         (cris_print_operand): Make static.
21891         (cris_print_operand_punct_valid_p): New function.
21892         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21893         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21894
21895 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21896
21897         * config/arm/arm-protos.h (arm_print_operand): Delete.
21898         (arm_print_operand_address): Delete.
21899         * config/arm/arm.h (PRINT_OPERAND): Delete.
21900         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21901         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
21902         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
21903         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
21904         (arm_print_operand): Make static.
21905         (arm_print_operand_punct_valid_p): New function.
21906         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21907         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21908
21909 2010-06-16  Nick Clifton  <nickc@redhat.com>
21910
21911         * config/rx/constraints.md (NEGint4): New constraint.
21912         * config/rx/rx.md (attr cc): Add set_zsc.
21913         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
21914         initialised.
21915         (cmpsf): Likewise.
21916         (call_internal): Clobber the cc0 register.
21917         (call_value_internal): Likewise.
21918         (cstoresi4): Likewise.
21919         (movsieq): Likewise.
21920         (movsine): Likewise.
21921         (addsi3): Add alternative to handle small negative constants.
21922         (sunsi3): Likewise.
21923         (addsi3): Do not set the O bit in the cc0 register.
21924         (adddi3): Likewise.
21925         (subsi3): Likewise.
21926         (subdi3): Likewise.
21927         (andsi3): Reorder alternatives to prefer shorter forms.
21928         (mulsi3): Likewise.
21929         (iorsi3): Likewise.
21930         (negsi2): Note that the cc0 flags are set.
21931         (rotlsi3): Note that only the Z and S bits are set in cc0.
21932         (lshrsi3): Likewise.
21933         (ashlsi3): Likewise.
21934         (subsf3): Use %Q for the MEM operand.
21935         (fix_truncsfsi2): Likewise.
21936         (floatsisf2): Likewise.
21937         (bitset): Remove early clobber from destination.
21938         (bitset_in_memory): Likewise.
21939         (lrintsf2): Clobber the cc0 register.
21940         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
21941         (rx_print_operand): Handle %N.
21942
21943 2010-06-16  Jan Hubicka  <jh@suse.cz>
21944
21945         * df-core.c (df_compact_blocks): Free problem_temps vector.
21946
21947 2010-06-16  Martin Jambor  <mjambor@suse.cz>
21948
21949         PR tree-optimization/43905
21950         * tree-sra.c: Include tree-inline.h.
21951         (create_abstract_origin): Removed.
21952         (modify_function): Version the call graph node instead of creating
21953         abstract origins and dealing with same_body aliases.
21954         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
21955         function is versionable.
21956         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
21957
21958 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
21959
21960         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
21961         (CHOOSE_DYNAMIC_LINKER): Update.
21962
21963 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
21964
21965         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
21966         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
21967         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
21968         *prefetch_3dnow_rex.
21969
21970 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
21971
21972         * target.h (struct asm_out):Add declare_constant_name field.
21973         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21974         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
21975         * output.h (default_asm_declare_constant_name): Declare.
21976         (assemble_label): Update prototype.
21977         * varasm.c (assemble_constant_contents): Use
21978         targetm.asm_out.declare_constant_name target hook.
21979         (assemble_label): Add 'file' argument.
21980         (default_asm_declare_constant_name): New function.
21981         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
21982         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
21983         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
21984
21985         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
21986         * config/darwin.c (darwin_asm_declare_constant_name): New function.
21987         (machopic_output_indirection): Update assemble_label argument list.
21988         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
21989         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21990
21991 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
21992
21993         PR middle-end/44391
21994         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
21995         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
21996
21997 2010-06-15  Richard Guenther  <rguenther@suse.de>
21998
21999         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22000
22001 2010-06-15  Paul Brook  <paul@codesourcery.com>
22002
22003         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22004         hard-float ABI.
22005
22006 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
22007
22008         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22009         don't get a vector type for output.
22010
22011 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
22012
22013         PR fortran/44536
22014         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22015         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22016         (LANG_HOOKS_DECLS): Add it.
22017         * gimplify.c (omp_notice_variable): Call
22018         lang_hooks.decls.omp_report_decl.
22019
22020 2010-06-15  Martin Jambor  <mjambor@suse.cz>
22021
22022         PR lto/44464
22023         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
22024         on the newly dead SSA name.
22025
22026 2010-06-15  Alan Modra  <amodra@gmail.com>
22027
22028         * doc/invoke.texi: Add mcmodel to powerpc options.
22029         * configure.ac: Add HAVE_LD_LARGE_TOC test.
22030         * configure: Regenerate.
22031         * config.in: Regenerate.
22032         * config/rs6000/linux64.opt (mcmodel): New.
22033         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
22034         (TARGET_CMODEL, SET_CMODEL): Define.
22035         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
22036         select CMODEL_MEDIUM default.
22037         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
22038         (TARGET_CMODEL): Define default.
22039         * config/rs6000/rs6000.c (cmodel): New variable.
22040         (rs6000_explicit_options): Add cmodel field.
22041         (rs6000_handle_option): Handle -mcmodel.
22042         (create_TOC_reference): Add largetoc_reg param.  Generate high,
22043         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
22044         (rs6000_delegitimize_address): Recognise new toc reference rtl
22045         and minimal-toc rtl.
22046         (rs6000_legitimize_reload_address): Handle new toc references.
22047         (print_operand_address): Handle legitimate_constant_pool_address_p
22048         match before lo_sum.
22049         (rs6000_eliminate_indexed_memrefs): Tidy.
22050         (rs6000_emit_move): Tweak threshold for inlining constants.
22051         Keep rs6000_emit_allocate_stack large stack frame offsets
22052         loaded into r0 inline.
22053         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
22054         (tocrel_base, tocrel_offset): New variables.
22055         (toc_relative_expr_p): Set them here.
22056         (print_operand_address): Skip over any offset on constant pool address.
22057         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
22058         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
22059         (offsettable_ok_by_alignment): New function.
22060         (rs6000_emit_move): Address suitably aligned local symbol_refs
22061         relative to the toc pointer for -mcmodel=medium.
22062         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
22063         strict param.  Allow lo_sum version of addressing.  Verify reg
22064         used for -mminimal-toc and -mcmodel != small.  Update all callers.
22065         * config/rs6000/constraints.md: Update for above change.
22066         * config/rs6000/predicates.md: Likewise.
22067         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
22068         code.
22069         (tls_gd): Split for -mcmodel=medium/large.
22070         (tls_gd_high, tls_gd_low): New.
22071         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
22072         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
22073         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
22074         (largetoc_high, largetoc_low): New.
22075         (cmptf_internal2): Add clobber.
22076         * config/rs6000/rs6000-protos.h: Update.
22077
22078 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
22079
22080         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
22081         true if no prefetch is going to be generated for a given group.
22082         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
22083         estimate the prefetch_count.
22084         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
22085         prefetch count by considering the unroll_factor and prefetch_mod
22086         for is_loop_prefetching_profitable.
22087
22088 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
22089
22090         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
22091         anything if the argument is not a MEM.
22092
22093 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22094
22095         PR debug/43650
22096         PR debug/44181
22097         PR debug/44247
22098         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
22099         debug stmts.
22100         (canonicalize_loop_ivs): Likewise.
22101
22102 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22103
22104         PR debug/43656
22105         * haifa-sched.c (setup_insn_reg_pressure_info,
22106         update_register_pressure): Reject debug insns.
22107         (ready_sort): Don't setup reg pressure for debug insns.
22108         (schedule_insn): Don't update reg pressure for debug insns.
22109
22110 2010-06-14  Richard Guenther  <rguenther@suse.de>
22111
22112         * lto-streamer.c (cached_bp): Remove.
22113         (bitpack_delete): Likewise.
22114         (bitpack_create): Likewise.
22115         (bp_get_next_word): Likewise.
22116         (bp_pack_value, bp_unpack_value): Move ...
22117         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
22118         Re-implement.
22119         (struct bitpack_d): Likewise.
22120         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
22121         New inline functions.
22122         * lto-streamer-out.c (lto_output_bitpack): Remove.
22123         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22124         (pack_value_fields): Adjust.
22125         (lto_write_tree): Likewise.
22126         (output_gimple_stmt): Likewise.
22127         (output_function): Likewise.
22128         * lto-streamer-in.c (input_gimple_stmt): Adjust.
22129         (input_function): Likewise.
22130         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22131         (lto_input_bitpack): Remove.
22132         (lto_materialize_tree): Adjust.
22133         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
22134         * lto-cgraph.c (lto_output_edge): Adjust.
22135         (lto_output_node): Likewise.
22136         (lto_output_varpool_node): Likewise.
22137         (lto_output_ref): Likewise.
22138         (input_node): Likewise.
22139         (input_varpool_node): Likewise.
22140         (input_ref): Likewise.
22141         (input_edge): Likewise.
22142         (output_node_opt_summary): Likewise.
22143         (input_node_opt_summary): Likewise.
22144         * ipa-pure-const.c (pure_const_write_summary): Likewise.
22145         (pure_const_read_summary): Likewise.
22146         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
22147         (ipa_read_indirect_edge_info): Likewise.
22148         (ipa_write_node_info): Likewise.
22149         (ipa_read_node_info): Likewise.
22150
22151 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
22152
22153         PR target/44534
22154         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
22155         (vec_extract_lo_v16hi): Likewise.
22156         (vec_extract_lo_v32qi): Likewise.
22157
22158 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22159
22160         PR bootstrap/44426
22161         * tree.h (build_call_expr): Don't define as vararg macro, instead
22162         add a prototype.
22163         * builtins.c (build_call_nofold): Remove.
22164         (expand_builtin_int_roundingfn, expand_builtin_pow,
22165         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
22166         expand_builtin_memset_args, expand_builtin_strcmp,
22167         expand_builtin_strncmp, expand_builtin_memory_chk): Use
22168         build_call_nofold_loc instead of build_call_nofold.
22169         (build_call_expr): New function.
22170
22171         PR tree-optimization/44508
22172         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
22173         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
22174         don't eliminate trivially dead stmts.
22175         * tree-vrp.c (vrp_finalize): Pass false as last argument
22176         to substitute_and_fold.
22177         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
22178         to substitute_and_fold.
22179         * tree-ssa-ccp.c (ccp_finalize): Likewise.
22180
22181         PR bootstrap/44509
22182         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
22183
22184 2010-06-14  Ira Rosen  <irar@il.ibm.com>
22185
22186         PR tree-optimization/44507
22187         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
22188         to build initial vector for BIT_AND_EXPR.
22189         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
22190
22191 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22192
22193         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
22194         adjust z10prop set_attr.
22195
22196 2010-06-13  Jan Hubicka  <jh@suse.cz>
22197
22198         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
22199         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
22200         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
22201         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
22202         datastructure checks into checking asserts.
22203         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
22204         * tree-ssa-sccvn.c (VN_INFO): Likewise.
22205         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
22206         df_ref_create_structure): Likewise.
22207         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
22208         pool_free): Use gcc_checking_assert.
22209         * alias.c (get_alias_set): Likewise.
22210         * var-tracking.c (variable_htab_free, shared_hash_copy,
22211         canonicalize_values_mark, variable_merge_over_cur): Likewise.
22212         * lto-streamer.c (bp_unpack_value): Likewise.
22213
22214 2010-06-13  Richard Guenther  <rguenther@suse.de>
22215
22216         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
22217         Do not stream but initialize TYPE_CANONICAL to NULL.
22218         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
22219         * gimple.c (gimple_types_compatible_p): Disregard
22220         TYPE_STRUCTURAL_EQUALITY_P.
22221         (gimple_register_type): Use TYPE_CANONICAL as cache.
22222         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
22223         before registering common types.
22224         * config/i386/i386.c (ix86_function_arg_boundary): Do not
22225         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
22226         * tree.h (TYPE_CANONICAL): Clarify documentation.
22227
22228 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
22229
22230         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
22231         LIBCALL_VALUE): Remove macros.
22232         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
22233         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22234         TARGET_FUNCTION_VALUE_REGNO_P): Define.
22235         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
22236         (ia64_function_value): Make static. Handle receiving the function
22237         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
22238
22239 2010-06-12  Jan Hubicka  <jh@suse.cz>
22240
22241         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
22242         at correct place.
22243
22244 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
22245
22246         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
22247
22248 2010-06-12  Jan Hubicka  <jh@suse.cz>
22249
22250         * df-core.c (df_clear_bb_info): New function.
22251         (df_set_blocks): bb_info is always allocated.
22252         (df_get_bb_info): Use block_info_elt_size.
22253         (df_set_bb_info): Likewise.
22254         (df_compact_blocks): Update for new block_info.
22255         (grow_bb_info): New function.
22256         * df-problems.c (df_grow_bb_info): Move to df-core.c
22257         (df_rd_set_bb_info): Remove.
22258         (df_rd_free_bb_info): Do not free block pool.
22259         (df_rd_alloc): Do not create pool, use check for
22260         obstack presence instead of NULL pointer for new blocks.
22261         (df_rd_free): DO not free alloc pool; clear block_info.
22262         (problem_RD): Add size of block info structure.
22263         (df_lr_set_bb_info): Remove.
22264         (df_lr_free_bb_info): Do not free block pool.
22265         (df_lr_alloc): Do not create pool, use check for
22266         obstack presence instead of NULL pointer for new blocks.
22267         (df_lr_free): DO not free alloc pool; clear block_info.
22268         (problem_LR): Add size of block info structure.
22269         (df_live_set_bb_info): Remove.
22270         (df_live_free_bb_info): Do not free block pool.
22271         (df_live_alloc): Do not create pool, use check for
22272         obstack presence instead of NULL pointer for new blocks.
22273         (df_live_free): DO not free alloc pool; clear block_info.
22274         (problem_LIVE): Add size of block info structure.
22275         (problem_CHAIN): Add size of block info structure.
22276         (df_byte_lr_set_bb_info): Remove.
22277         (df_byte_lr_free_bb_info): Do not free block pool.
22278         (df_byte_lr_alloc): Do not create pool, use check for
22279         obstack presence instead of NULL pointer for new blocks.
22280         (df_byte_lr_free): DO not free alloc pool; clear block_info.
22281         (problem_BYTE_LR): Add size of block info structure.
22282         (problem_NOTE): Add size of block info structure.
22283         (df_byte_MD_set_bb_info): Remove.
22284         (df_byte_MD_free_bb_info): Do not free block pool.
22285         (df_byte_MD_alloc): Do not create pool, use check for
22286         obstack presence instead of NULL pointer for new blocks.
22287         (df_byte_MD_free): DO not free alloc pool; clear block_info.
22288         (problem_BD): Add size of block info structure.
22289         * df-scan.c (df_scan_free_internal): Free block pool.
22290         (df_scan_set_bb_info): Remove.
22291         (df_scan_free_bb_info): Check for artificial_defs instead
22292         of bb_info being non-NULL.
22293         (df_scan_alloc): DO not create df_scan_block pool.
22294         (problem_SCAN): Set size of block info.
22295         (df_bb_refs_record): Do not allocate bb_info.
22296         * df.h (df_problem): Add block_info_elt_size.
22297         (struct dataflow): Change block_info to void *.
22298         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
22299         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
22300         in-line structures.
22301
22302 2010-06-12  Jan Hubicka  <jh@suse.cz>
22303
22304         PR tree-optimize/44485
22305         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
22306         containing use of return value of noreturn function.
22307
22308 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
22309
22310         * targhooks.c (default_function_value): Don't use
22311         FUNCTION_OUTGOING_VALUE.
22312         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
22313         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
22314
22315 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
22316
22317         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
22318         Add crtfastmath.o to extra_parts.
22319         * config/mips/crtfastmath.c: New.
22320         * config/mips/linux.h (ENDFILE_SPEC): New.
22321
22322 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
22323
22324         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
22325         old_type in parameter.
22326         (gcc_type_for_value): Update call to gcc_type_for_interval.
22327         (compute_type_for_level_1): Renamed compute_type_for_level.
22328         Update call to gcc_type_for_interval.
22329
22330 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
22331
22332         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
22333         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
22334
22335 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
22336
22337         * opts-common.c: Include options.h.
22338         (integral_argument): Move from opts.c.
22339         (decode_cmdline_option): New.  Based on read_cmdline_option.
22340         * opts.c (integral_argument): Move to opts-common.c.
22341         (read_cmdline_option): Move most contents to
22342         decode_cmdline_option.  Use %qs in diagnostics.
22343         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
22344         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
22345         decode_cmdline_option): New.
22346
22347 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22348
22349         PR target/44481
22350         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
22351         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
22352         (partiysi2_cmp): Ditto.
22353         (*partiyhi2_cmp): Ditto.
22354         (*parityqi2_cmp): Remove.
22355
22356 2010-06-11  Jan Hubicka  <jh@suse.cz>
22357
22358         * bitmap.h (bmp_iter_next_bit): New.
22359         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
22360
22361 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
22362             Eric Botcazou  <ebotcazou@adacore.com>
22363
22364         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
22365         computed cost.
22366
22367 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22368
22369         * config/i386/i386.md (unspec): New define_c_enum.
22370         (unspecv): Ditto.
22371
22372 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
22373
22374         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
22375
22376 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
22377
22378         PR middle-end/44483
22379         * tree-if-conv.c (bb_predicate_s): New struct.
22380         (bb_predicate_p): New.
22381         (bb_has_predicate): New.
22382         (bb_predicate): New.
22383         (set_bb_predicate): New.
22384         (bb_predicate_gimplified_stmts): New.
22385         (set_bb_predicate_gimplified_stmts): New.
22386         (add_bb_predicate_gimplified_stmts): New.
22387         (init_bb_predicate): New.
22388         (free_bb_predicate): New.
22389         (is_predicated): Use bb_predicate.
22390         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
22391         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
22392         before processing their successors.
22393         (clean_predicate_lists): Removed.
22394         (find_phi_replacement_condition): Use bb_predicate.
22395         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
22396         computations.
22397         (insert_gimplified_predicates): New.
22398         (combine_blocks): Call insert_gimplified_predicates.
22399         (tree_if_conversion): Call free_bb_predicate instead of
22400         clean_predicate_lists.
22401
22402 2010-10-11  Paul Brook  <paul@codesourcery.com>
22403
22404         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
22405         * config/arm/arm.c (all_architectures): Change v7e-m default to
22406         cortexm4.
22407         * config/arm/arm-cores.def: Add cortex-m4.
22408         * config/arm/arm-tune.md: Regenerate.
22409
22410 2010-06-11  Jan Hubicka  <jh@suse.cz>
22411
22412         * ipa-pure-const.c (special_builtlin_state): New function.
22413         (check_call): Use it instead of special casign BUILT_IN_RETURN.
22414         (propagate_pure_const): Use it.
22415
22416 2010-06-11  Jan Hubicka  <jh@suse.cz>
22417
22418         * df-problems.c (df_live_scratch): Convert to bitmap_head.
22419         (df_live_alloc): Initialize df_live_scratch when initializing
22420         problem_data.
22421         (df_live_transfer_function): Update uses of df_live_scratch.
22422         (df_live_free): Free problem_data; clear df_live_scratch before
22423         releasing the obstack.
22424         (df_md_free): Free problem data.
22425
22426 2010-06-11  Jan Hubicka  <jh@suse.cz>
22427
22428         * doc/invoke.texi (Wsuggest-attribute): Document.
22429         (Wmissing-noreturn): Remove.
22430         * ipa-pure-const.c (warn_function_noreturn): New function.
22431         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
22432         warn_missing_noreturn.
22433         * common.opt (Wsuggest-attribute=noreturn): New.
22434         * tree-flow.h (warn_function_noreturn): Declare.
22435         * tree-cfg.c (execute_warn_function_noreturn): Use
22436         warn_function_noreturn.
22437         (gate_warn_function_noreturn): New.
22438         (pass_warn_function_noreturn): Update.
22439
22440 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22441
22442         * c-typeck.c (handle_warn_cast_qual): Add loc
22443         parameter. Improve warning message.
22444         (build_c_cast): Pass location to handle_warn_cast_qual.
22445
22446 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
22447
22448         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
22449         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
22450         insn mnemonic.
22451         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
22452
22453 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
22454
22455         Fix bootstap on mips
22456         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
22457         be naming typedefs.
22458
22459 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
22460
22461         * system.h (helper_const_non_const_cast): New inline for
22462         gcc version <= 4.0.
22463         (CONST_CAST2): For gcc version <= 4.0 use
22464         new helper to do const/non-const casting.
22465
22466 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22467
22468         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
22469         * Makefile.in (OBJS-common): Include insn-enums.o.
22470         (insn-enums.o): New rule.
22471         (simple_generated_c): Add insn-enums.c.
22472         (build/genenums.o): New rule.
22473         (genprogmd): Add "enums".
22474         * genconstants.c (print_enum_type): Declare a C string array
22475         for each enum.
22476         * genenums.c: New file.
22477         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
22478         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
22479         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
22480
22481 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22482
22483         * doc/md.texi (define_enum_attr): Document.
22484         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
22485         * read-md.h (lookup_enum_type): Declare.
22486         * read-md.c (lookup_enum_type): New function.
22487         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
22488         * genattrtab.c (attr_desc): Add an enum_name field.
22489         (evaluate_eq_attr): Take the associated attribute as argument.
22490         Get the enum prefix from the enum_name field, if defined.
22491         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
22492         (simplify_test_exp): Pass attr to evaluate_eq_attr.
22493         (add_attr_value): New function, split out from...
22494         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
22495         (write_test_expr): Pass attr to evaluate_eq_attr.
22496         (write_attr_get): Use the enum_name as the enum tag, if defined.
22497         (write_attr_valueq): Use the enum_name as a prefix, if defined.
22498         (find_attr): Initialize enum_name.
22499         (main): Handle DEFINE_ENUM_ATTR.
22500         * gensupport.c (process_rtx): Likewise.
22501         * config/mips/mips.h (mips_tune_attr): Delete.
22502         * config/mips/mips.md (cpu): Use define_attr_enum.
22503
22504 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22505
22506         * doc/md.texi (define_c_enum, define_enum): Document.
22507         * read-md.h (md_constant): Add a parent_enum field.
22508         (enum_value, enum_type): New structures.
22509         (upcase_string, traverse_enum_types): Declare.
22510         * read-md.c (enum_types): New variable.
22511         (upcase_string, add_constant): New functions.
22512         (handle_constants): Don't create the hash table here.
22513         Use add_constant.
22514         (traverse_md_constants): Don't check for a null md_constants.
22515         (decimal_string, handle_enum, traverse_enum_types): New functions.
22516         (read_md_files): Initialize md_constants and md_enums.
22517         * genconstants.c (print_md_constant): Ignore info argument.
22518         Only print constants that belong to no enum.
22519         (print_enum_type): New function.
22520         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
22521         for each defined enum type.
22522         * config/mips/mips.md (processor): New define_enum.
22523         (unspec): New define_c_enum.
22524         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
22525         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
22526         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
22527         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
22528         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
22529         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
22530         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
22531         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
22532         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
22533         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
22534         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
22535         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
22536         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
22537         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
22538         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
22539         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
22540         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
22541         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
22542         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
22543         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
22544         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
22545         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
22546         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22547         (UNSPEC_RDDSP): Move to mips-dsp.md.
22548         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
22549         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
22550         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
22551         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
22552         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
22553         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
22554         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
22555         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
22556         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
22557         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
22558         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
22559         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
22560         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
22561         Moved to mips-dspr2.md.
22562         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
22563         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
22564         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
22565         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
22566         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
22567         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
22568         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22569         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22570         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22571         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22572         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22573         UNSPEC_LOONGSON_PSADBH)
22574         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22575         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22576         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
22577         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22578         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22579         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22580         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
22581         (cpu): Update comment.
22582         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
22583         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
22584         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
22585         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
22586         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
22587         UNSPEC_LOONGSON_PCMPEQ)
22588         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
22589         UNSPEC_LOONGSON_PINSR_0)
22590         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22591         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22592         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22593         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22594         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22595         UNSPEC_LOONGSON_PSADBH)
22596         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22597         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22598         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
22599         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22600         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22601         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22602         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
22603         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
22604         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
22605         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
22606         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
22607         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
22608         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
22609         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
22610         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
22611         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
22612         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
22613         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
22614         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
22615         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
22616         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
22617         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
22618         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
22619         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
22620         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
22621         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
22622         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22623         (UNSPEC_RDDSP): Moved from mips.md.
22624         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
22625         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
22626         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
22627         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
22628         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
22629         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
22630         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
22631         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
22632         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
22633         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
22634         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
22635         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
22636         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
22637         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
22638         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
22639         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
22640         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
22641         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
22642         (UNSPEC_SCC): Moved from mips.md.
22643         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
22644         "processor_type" to "processor".
22645         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
22646         * config/mips/mips.h (processor_type): Delete.
22647         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
22648         "processor_type" to "processor".
22649
22650 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22651
22652         * configure.ac (tm_include_list): Add insn-constants.h.
22653         * configure: Regenerate.
22654         * Makefile.in (GTM_H): Move insn-constants.h here from...
22655         (TM_H): ...here.
22656         * mkconfig.sh: Remove special handling for insn-constants.h.
22657
22658 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22659
22660         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
22661         (BUILD_MD): ...this new variable.
22662         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
22663         that include the old contents of simple_generated_h and
22664         simple_generated_c.
22665         (simple_generated_h, simple_generated_c): Include them.  Add
22666         insn-constants.h.
22667         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
22668         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
22669         Remove these dependencies from the main rule and include
22670         insn-conditions.md in the command line only if it appears
22671         in the dependency list.
22672         (insn-constants.h, s-constants): Delete.
22673         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
22674         or gensupport.h.
22675         (build/genmddeps.o): Likewise.
22676         (genprogrtl): New variable that contains everything from genprogmd
22677         except mddeps and constants.
22678         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
22679         depend on $(BUILD_MD)
22680         (genprog): New variable.  Make these programs depend on
22681         $(BUILD_ERRORS).
22682         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
22683         (main): Use read_md_files instead of init_rtx_reader_args.
22684         * genconstants.c: As for genmddeps.c.
22685         * read-md.h (read_skip_construct): Declare.
22686         * read-md.c (read_skip_construct): New function.
22687         (handle_file): Allow a null handle_directive, skipping the
22688         construct if so.
22689         (parse_include): Update the comment accordingly.
22690
22691 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22692
22693         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
22694         * genmddeps.c: Include read-md.h.
22695         (main): Call init_rtx_reader_args instead of init_md_reader_args.
22696         * genattr.c (main): Likewise.
22697         * genattrtab.c (main): Likewise.
22698         * genautomata.c (main): Likewise.
22699         * gencodes.c (main): Likewise.
22700         * genconditions.c (main): Likewise.
22701         * genconfig.c (main): Likewise.
22702         * genconstants.c (main): Likewise.
22703         * genemit.c (main): Likewise.
22704         * genextract.c (main): Likewise.
22705         * genflags.c (main): Likewise.
22706         * genopinit.c (main): Likewise.
22707         * genoutput.c (main): Likewise.
22708         * genpeep.c (main): Likewise.
22709         * genrecog.c (main): Likewise.
22710         * genpreds.c (main): Likewise.
22711         * gensupport.h (in_fname): Move to read-md.h.
22712         (init_md_reader_args_cb): Rename to...
22713         (init_rtx_reader_args_cb): ...this and return a bool.
22714         (init_md_reader_args): Rename to...
22715         (init_rtx_reader_args): ...this and return a bool.
22716         (include_callback): Move to read-md.h.
22717         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
22718         (file_name_list, first_dir_md_include): Move to read-md.c
22719         (first_bracket_include): Delete unused variable.
22720         (last_dir_md_include): Move to read-md.c.
22721         (process_include): Delete, moving code to read-md.c:handle_include.
22722         (process_rtx): Don't handle INCLUDE.
22723         (save_string): Delete.
22724         (rtx_handle_directive): New function.
22725         (init_md_reader_args_cb): Rename to...
22726         (init_rtx_reader_args_cb): ...this and return a boolean success value.
22727         Use read_md_args.
22728         (init_md_reader_args): Rename to...
22729         (init_rtx_reader_args): ...this and return a boolean success value.
22730         * rtl.def (INCLUDE): Delete.
22731         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
22732         argument.
22733         * read-rtl.c (read_conditions): Don't gobble ')' here.
22734         (read_mapping): Likewise.
22735         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
22736         Handle top-level non-rtx constructs here rather than in read_rtx_1.
22737         Store the whole queue in *X.  Remove call to init_md_reader.
22738         (read_rtx_1): Rename to...
22739         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
22740         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
22741         here.
22742         (read_nested_rtx): New function.  Handle (nil) here rather than
22743         in read_rtx_code.
22744         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
22745         gobble ')' here.
22746         * read-md.h (directive_handler_t): New type.
22747         (in_fname, include_callback): Moved from read-md.h.
22748         (read_constants, init_md_reader): Delete.
22749         (read_md_files): Declare.
22750         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
22751         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
22752         from gensupport.c.
22753         (read_constants): Rename to...
22754         (handle_constants): ...this.  Don't gobble ')' here.
22755         (handle_include, handle_file, handle_toplevel_file)
22756         (parse_include): New functions, mostly taken from gensupport.c.
22757         (init_md_reader): Subsume into...
22758         (read_md_files): ...this new function.
22759
22760 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22761
22762         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
22763         (unread_char): Decrement read_md_lineno after putting back '\n'.
22764         * read-md.c (fatal_with_file_and_line): Push back any characters
22765         that we decide not to add to the context.
22766         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
22767         fatal_expected_char in cases where '/' ends a line (for example).
22768         (read_name): Don't increment read_md_lineno here.
22769         (read_escape): Likewise.
22770         (read_quoted_string): Likewise.
22771         (read_braced_string): Likewise.
22772
22773 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22774
22775         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
22776         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
22777         * genconstants.c: Include read-md.h.
22778         * read-rtl.c (md_constants): Move to read-md.c.
22779         (md_name): Move to read-md.h.
22780         (initialize_iterators): Use leading_string_hash instead of def_hash
22781         and leading_string_eq_p instead of def_name_eq_p.
22782         (read_name): Move to read-md.c.
22783         (def_hash, def_name_eq_p): Delete.
22784         (read_constants, traverse_md_constants): Move to read-md.c.
22785         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
22786         * read-md.h: Include hashtab.h.
22787         (md_name): Moved from read-rtl.c.
22788         (md_constant): Moved from read-md.h.
22789         (leading_string_hash, leading_string_eq_p, read_name)
22790         (read_constants, traverse_md_constants): Declare.
22791         * read-md.c (md_constants): Moved from read-rtl.c.
22792         (leading_string_hash, leading_string_eq_p): New functions.
22793         (read_name, read_constants, traverse_md_constants): Moved from
22794         read-rtl.c.
22795
22796 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22797
22798         * read-rtl.c (md_name): New structure.
22799         (read_name): Take an md_name instead of a buffer pointer.
22800         Use the "string" field instead of strcpy when expanding constants.
22801         (read_constants): Remove the tmp_char argument.  Update the calls
22802         to read_name, using two local name buffers instead of the tmp_char
22803         argument.  Merge the constant-creation code.
22804         (read_conditions): Remove the tmp_char argument.  Update the calls
22805         to read_name, using a local name buffer instead of the tmp_char
22806         argument.
22807         (read_mapping): Replace tmp_char variable with a local name buffer.
22808         Update the calls to read_name.
22809         (read_rtx_1): Likewise.  Update the calls to read_constants and
22810         read_conditions.
22811
22812 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22813
22814         * Makefile.in (build/read-md.o): Depend on errors.h.
22815         * read-md.h (error_with_line): Declare.
22816         * read-md.c: Include errors.h.
22817         (message_with_line_1): New function, extracted from...
22818         (message_with_line): ...here.
22819         (error_with_line): New function.
22820         * genattrtab.c: If a call to message_with_line is followed by
22821         "have_error = 1;", replace both statements with a call to
22822         error_with_line.
22823         * genoutput.c: Likewise.
22824         * genpreds.c: Likewise.
22825         * genrecog.c: If a call to message_with_line is followed by
22826         "error_count++;", replace both statements with a call to
22827         error_with_line.
22828         (errorcount): Delete.
22829         (main): Don't check it.
22830         * gensupport.c: If a call to message_with_line is followed by
22831         "errors = 1;", replace both statements with a call to error_with_line.
22832         (errors): Delete.
22833         (process_define_cond_exec): Check have_error instead of errors.
22834         (init_md_reader_args_cb): Likewise.  Don't set errors.
22835
22836 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22837
22838         * read-md.h (read_md_file): Declare.
22839         (read_char, unread_char): New functions.
22840         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
22841         (read_quoted_string, read_string): Remove FILE * argument.
22842         * read-md.c (read_md_file): New variable.
22843         (read_md_filename, read_md_lineno): Update comments and remove
22844         unnecessary initialization.
22845         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
22846         (read_escape, read_quoted_string, read_braced_string, read_string):
22847         Remove FILE * argument.  Update calls accordingly, using read_char
22848         and unread_char instead of getc and ungetc.
22849         * rtl.h (read_rtx): Remove FILE * argument.
22850         * read-rtl.c (iterator_group): Remove FILE * argument from
22851         "find_builtin".
22852         (iterator_traverse_data): Remove "infile" field.
22853         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
22854         (add_mapping, read_name, read_constants, read_conditions)
22855         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
22856         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
22857         Remove file arguments from all calls, using read_char and unread_char
22858         instead of getc and ungetc.
22859         * gensupport.c (process_include): Preserve read_md_file around
22860         the include.  Set read_md_file to the handle of the included file.
22861         Update call to read_rtx.
22862         (init_md_reader_args_cb): Set read_md_file to the handle of the file
22863         and remove local FILE *.  Update calls to read_rtx.
22864
22865 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22866
22867         * read-md.h (read_rtx_lineno): Rename to...
22868         (read_md_lineno): ...this.
22869         (read_rtx_filename): Rename to...
22870         (read_md_filename): ...this.
22871         (copy_rtx_ptr_loc): Rename to...
22872         (copy_md_ptr_loc): ...this.
22873         (print_rtx_ptr_loc): Rename to...
22874         (print_md_ptr_loc): ...this.
22875         * read-md.c: Likewise.  Update references after renaming.
22876         (string_obstack): Replace RTL with MD in comment.
22877         (set_rtx_ptr_loc): Rename to...
22878         (set_md_ptr_loc): ...this.
22879         (get_rtx_ptr_loc): Rename to...
22880         (get_md_ptr_loc): ...this.
22881         * genconditions.c: Update references after renaming.
22882         * genemit.c: Likewise.
22883         * genoutput.c: Likewise.
22884         * genpreds.c: Likewise.
22885         * gensupport.c: Likewise.
22886         * read-rtl.c: Likewise.
22887
22888 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22889
22890         * Makefile.in (READ_MD_H): New variable.
22891         (BUILD_RTL): Add build/read-md.o.
22892         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
22893         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
22894         (build/genattrtab.o, build/genconditions.o build/genemit.o)
22895         (build/genextract.o, build/genflags.o, build/genoutput.o)
22896         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
22897         (build/read-md.o): New rule.
22898         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
22899         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
22900         * coretypes.h: ...here.
22901         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
22902         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
22903         * genattr.c: Include read-md.h.
22904         * genattrtab.c: Likewise.
22905         * genconditions.c: Likewise.
22906         * genemit.c: Likewise.
22907         * genextract.c: Likewise.
22908         * genflags.c: Likewise.
22909         * genoutput.c: Likewise.
22910         * genpreds.c: Likewise.
22911         * genrecog.c: Likewise.
22912         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
22913         (join_c_conditions, print_c_condition, read_rtx_filename)
22914         (read_rtx_lineno): Move to read-md.h.
22915         * read-rtl.c: Include read-md.h.
22916         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
22917         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
22918         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
22919         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
22920         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
22921         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
22922         (read_braced_string, read_string): Move to read-md.c.
22923         (read_rtx): Move some initialization to init_md_reader and call
22924         init_md_reader here.
22925         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
22926         Move to read-md.h.
22927         * gensupport.c: Include read-md.h.
22928         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
22929         * read-md.h, read-md.c: New files.
22930
22931 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
22932
22933         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22934         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22935         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
22936         * config/moxie/moxie.c (moxie_function_value): Make static.
22937         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
22938         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22939
22940 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22941
22942         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
22943         * dbgcnt.def (tree_sra): New counter.
22944         * tree-sra.c: Include dbgcnt.h.
22945         (gate_intra_sra): Check tree_sra debug counter.
22946
22947 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22948
22949         PR tree-optimization/44258
22950         * tree-sra.c (build_access_subtree): Return false iff there is a
22951         partial overlap.
22952         (build_access_trees): Likewise.
22953         (analyze_all_variable_accesses): Disqualify candidates if
22954         build_access_trees returns true for them.
22955
22956 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
22957
22958         PR debug/41371
22959         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
22960         tail-recurse into canonical node.  Fast-forward over
22961         non-canonical VALUEs.
22962
22963 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
22964
22965         PR boostrap/44470
22966         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
22967         (*addsi_1_zext) <TYPE_LEA>: Likewise.
22968         (add lea splitter): Likewise.
22969         (add_zext lea splitter): Likewise.
22970
22971 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
22972
22973         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
22974
22975 2010-06-10  Jan Hubicka  <jh@suse.cz>
22976
22977         * df-problems.c (df_live_problem_data): Add live_bitmaps.
22978         (df_live_alloc): Initialize problem data and live_osbtacks.
22979         (df_live_finalize): Remove obstack, problem data; do not
22980         clear all bitmaps.
22981         (df_live_top_dump, df_live_bottom_dump): Do not dump old
22982         data when not allocated.
22983         (df_live_verify_solution_start): Do not allocate problem data.
22984         (df_live_verify_solution_end): Check if out is allocated.
22985         (struct df_md_problem_data): New structure.
22986         (df_md_alloc): Allocate problem data.
22987         (df_md_free): Free problem data; do not clear bitmaps.
22988
22989 2010-06-10  Jan Beulich  <jbeulich@novell.com>
22990
22991         PR bootstrap/37304
22992         * configure.ac: Replace $() with ${} when intending to expand
22993         variables rather than invoking commands.
22994         * configure: Re-generate.
22995
22996 2010-06-10  Jan Hubicka  <jh@suse.cz>
22997
22998         PR rtl-optimization/44460
22999         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23000         TYPE_NEEDS_CONSTRUCTING sanity check.
23001
23002 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
23003
23004         * doc/include/fdl.texi: Move to GFDL version 1.3.
23005
23006         * doc/cpp.texi: Move to GFDL version 1.3.
23007         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
23008         * doc/gccint.texi: Move to GFDL version 1.3.
23009         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
23010         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
23011         * doc/invoke.texi: Move to GFDL version 1.3.
23012
23013 2010-06-09  Jan Hubicka  <jh@suse.cz>
23014
23015         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23016         Break out from ...
23017         (propagate) ... here; swap the order.
23018
23019 2010-06-09  Jan Hubicka  <jh@suse.cz>
23020
23021         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
23022         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
23023         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
23024         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
23025
23026 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23027
23028         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
23029         Do not the gather memory reference in the outer loop if the step
23030         is not a constant.
23031
23032 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23033
23034         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
23035         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
23036         8 to 4.  Minor change of the related comments.
23037
23038 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23039
23040         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
23041         the scev analysis when the variable is not used outside the loop
23042         in a close phi node: call compute_overall_effect_of_inner_loop.
23043
23044 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23045
23046         * graphite-sese-to-poly.c (single_pred_cond): Renamed
23047         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
23048         (build_sese_conditions_before): Renamed call to single_pred_cond.
23049         (build_sese_conditions_after): Same.
23050
23051 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23052
23053         * graphite-poly.h: Fix comments and indentation.
23054         * graphite-sese-to-poly.c: Same.
23055         (build_sese_conditions_before): Compute stmt and gbb only when needed.
23056         * tree-chrec.c: Fix comments and indentation.
23057         (tree-ssa-loop-niter.c): Same.
23058
23059 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
23060
23061         PR rtl-optimization/42461
23062         * dce.c (deletable_insn_p): Return true for const or pure calls again.
23063         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
23064
23065 2010-06-09  Jan Hubicka  <jh@suse.cz>
23066
23067         * bitmap.c (bitmap_and): Walk array forward.
23068         (bitmap_and_compl_into): Likewise.
23069         (bitmap_xor): Likewise.
23070         (bitmap_xor_into):  Likewise.
23071         (bitmap_equal_p): Likewise.
23072         (bitmap_intersect_p): Likewise.
23073         (bitmap_intersect_compl_p): Likewise.
23074         (bitmap_ior_and_into): Likewise.
23075         (bitmap_elt_copy): Likewise.
23076         (bitmap_and_compl): Likewise.
23077         (bitmap_elt_ior): Likewise.
23078
23079 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
23080
23081         * opts-common.c (prune_options): Ensure replacement argv array
23082         is correctly terminated by a NULL entry.
23083
23084 2010-06-09  Jan Hubicka  <jh@suse.cz>
23085
23086         * cgraph.h (varpool_first_static_initializer,
23087         varpool_next_static_initializer): Make checking only when
23088         checking enabled.
23089         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
23090         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
23091         gcc_assert to gcc_checking_assert.
23092         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
23093         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
23094         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
23095         op_iter_init_phiuse, op_iter_init_phidef,
23096         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
23097         gcc_checking_assert.
23098         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
23099         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
23100         partition_is_global, live_on_entry, live_on_exit,
23101         live_merge_and_clear): Likewise.
23102         * system.h (gcc_checking_assert): New macro.
23103         * gimple.h (set_bb_seq): Use gcc_checking_assert.
23104
23105 2010-06-09  Jason Merrill  <jason@redhat.com>
23106
23107         * Makefile.in (TAGS): Collect tags info from c-family.
23108
23109 2010-06-09  Jan Hubicka  <jh@suse.cz>
23110
23111         * gimple.h (gcc_gimple_checking_assert): New macro.
23112         (gimple_set_def_ops, gimple_set_use_ops,
23113         gimple_set_vuse, gimple_set_vdef,
23114         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
23115         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
23116         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
23117         gimple_asm_output_op, gimple_asm_output_op_ptr,
23118         gimple_asm_set_output_op, gimple_asm_clobber_op,
23119         gimple_asm_set_clobber_op, gimple_asm_label_op,
23120         gimple_asm_set_label_op, gimple_try_set_kind,
23121         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
23122         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
23123         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
23124         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
23125         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
23126         gimple_omp_for_set_initial, gimple_omp_for_final,
23127         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
23128         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
23129         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
23130         conditional with ENABLE_GIMPLE_CHECKING.
23131         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
23132
23133 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
23134
23135         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
23136         (get_computation_cost_at): Use it.
23137         (determine_use_iv_cost_condition): Likewise.
23138         (determine_iv_cost): Likewise.
23139
23140 2010-06-09  Richard Guenther  <rguenther@suse.de>
23141
23142         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
23143         replace constants.
23144
23145 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
23146
23147         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
23148
23149 2010-06-09  Martin Jambor  <mjambor@suse.cz>
23150
23151         PR tree-optimization/44423
23152         * tree-sra.c (dump_access): Dump also grp_assignment_read.
23153         (analyze_access_subtree): Pass negative allow_replacements to children
23154         if the current type is scalar.
23155
23156 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23157
23158         PR testsuite/42843
23159         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
23160         * doc/plugins.texi (Plugin license check): Update information
23161         on type of plugin_is_GPL_compatible.
23162         * Makefile.in (PLUGINCC): Define as $(COMPILER).
23163         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
23164
23165 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
23166
23167         * config/arm/arm.c (thumb2_reorg): New function.
23168         (arm_reorg): Call it.
23169         * config/arm/thumb2.md (define_peephole2 for flag clobbering
23170         arithmetic operations): Delete.
23171
23172 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
23173
23174         PR target/44067
23175         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
23176         e500v2 target.
23177
23178 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23179
23180         PR plugins/44459
23181         * gcc-plugin.h: Encapsulate all declarations in extern "C".
23182
23183 2010-06-08  Jan Hubicka  <jh@suse.cz>
23184
23185         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
23186         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
23187
23188 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
23189
23190         PR tree-optimization/39874
23191         PR middle-end/28685
23192         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
23193         Declare.
23194         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
23195         same_bool_result_p): New.
23196         (and_var_with_comparison, and_var_with_comparison_1,
23197         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
23198         (or_var_with_comparison, or_var_with_comparison_1,
23199         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
23200         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
23201         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
23202         of combine_comparisons.
23203         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
23204
23205 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
23206
23207         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23208         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23209         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
23210         pdp11_function_value_regno_p): New functions.
23211         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23212         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23213
23214 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
23215
23216         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
23217         Thumb-2 in the MINUS case.
23218
23219 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
23220
23221         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
23222
23223         * doc/gty.texi (GTY Options): Document typed GC allocation and
23224         variable_size GTY option.
23225
23226         * ggc-internal.h: New.
23227
23228         * ggc.h: Update copyright year.
23229         (digit_string): Move to stringpool.c.
23230         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
23231         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
23232         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
23233         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
23234         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
23235         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
23236         (ggc_force_collect, ggc_get_size, ggc_statistics)
23237         (ggc_print_common_statistics): Move to ggc-internal.h.
23238         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
23239         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
23240         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
23241         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
23242         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
23243         (ggc_alloc_zone_pass_stat): Remove.
23244         (ggc_internal_alloc_stat, ggc_internal_alloc)
23245         (ggc_internal_cleared_alloc_stat): New.
23246         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
23247         (ggc_internal_vec_alloc_stat)
23248         (ggc_internal_cleared_vec_alloc_stat)
23249         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
23250         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
23251         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
23252         (ggc_cleared_alloc_ptr_array_two_args): New.
23253         (htab_create_ggc, splay_tree_new_ggc): Redefine.
23254         (ggc_splay_alloc): Change the type of the first argument to
23255         enum gt_types_enum.
23256         (ggc_alloc_string): Make macro.
23257         (ggc_alloc_string_stat): New.
23258         (ggc_strdup): Redefine.
23259         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
23260         (ggc_alloc_rtvec_sized): New.
23261         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
23262         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
23263         (ggc_internal_cleared_alloc_zone_stat)
23264         (ggc_internal_zone_alloc_stat)
23265         (ggc_internal_zone_cleared_alloc_stat)
23266         (ggc_internal_zone_vec_alloc_stat)
23267         (ggc_alloc_zone_rtx_def_stat)
23268         (ggc_alloc_zone_tree_node_stat)
23269         (ggc_alloc_zone_cleared_tree_node_stat)
23270         (ggc_alloc_cleared_gimple_statement_d_stat): New.
23271
23272         * ggc-common.c: Include ggc-internal.h.
23273         (ggc_internal_cleared_alloc_stat): Rename from
23274         ggc_alloc_cleared_stat.
23275         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
23276         (ggc_calloc): Remove.
23277         (ggc_cleared_alloc_htab_ignore_args): New.
23278         (ggc_cleared_alloc_ptr_array_two_args): New.
23279         (ggc_splay_alloc): Add obj_type parameter.
23280         (init_ggc_heuristics): Formatting fixes.
23281
23282         * ggc-none.c: Update copyright year.
23283         (ggc_alloc_stat): Rename to ggc_alloc_stat.
23284         (ggc_alloc_cleared_stat): Rename to
23285         ggc_internal_cleared_alloc_stat.
23286         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23287
23288         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
23289         Remove references to ggc_alloc in comments.
23290         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
23291         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
23292         (new_ggc_zone, destroy_ggc_zone): Remove.
23293         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23294
23295         * ggc-zone.c: Include ggc-internal.h.  Remove references to
23296         ggc_alloc in comments.
23297         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
23298         (ggc_internal_alloc_zone_pass_stat): New.
23299         (ggc_internal_cleared_alloc_zone_stat): New.
23300         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
23301         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
23302         (new_ggc_zone, destroy_ggc_zone): Remove.
23303
23304         * stringpool.c: Update copyright year.  Include ggc-internal.h
23305         (digit_vector): Make static.
23306         (digit_string): Moved from ggc.h.
23307         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
23308         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
23309
23310         * Makefile.in (GGC_INTERNAL_H): New.
23311         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
23312         $(GGC_INTERNAL_H) to dependencies.
23313
23314         * gentype.c: Update copyright year.
23315         (walk_type): Accept variable_size GTY option.
23316         (USED_BY_TYPED_GC_P): New macro.
23317         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
23318         whitespace at the end of strings.
23319         (get_type_specifier, variable_size_p): New functions.
23320         (alloc_quantity, alloc_zone): New enums.
23321         (write_typed_alloc_def): New function.
23322         (write_typed_struct_alloc_def): Likewise.
23323         (write_typed_typed_typedef_alloc_def): Likewise.
23324         (write_typed_alloc_defns): Likewise.
23325         (output_typename, write_splay_tree_allocator_def): Likewise.
23326         (write_splay_tree_allocators): Likewise.
23327         (main): Call write_typed_alloc_defns and
23328         write_splay_tree_allocators.
23329
23330         * lto-streamer.h (lto_file_decl_data_ptr): New.
23331
23332         * passes.c (order): Define using cgraph_node_ptr.
23333
23334         * strinpool.c (struct string_pool_data): Declare nested_ptr using
23335         ht_identifier_ptr.
23336
23337         * gimple.h (union gimple_statement_d): Likewise.
23338
23339         * rtl.h (struct rtx_def): Likewise.
23340         (struct rtvec_def): Likewise.
23341
23342         * tree.h (union tree_node): Likewise.
23343
23344         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
23345
23346         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
23347
23348         * tree-scalar-evolution.c (scev_initialize): Likewise.
23349
23350         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
23351
23352         * dwarf2asm.c (dw2_force_const_mem): Likewise.
23353
23354         * omp-low.c (lower_omp_critical): Likewise.
23355
23356         * bitmap.h (struct bitmap_head_def): Update comment to not
23357         reference ggc_alloc.
23358
23359         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
23360
23361         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
23362
23363         * ipa-prop.c (duplicate_ggc_array): Rename to
23364         duplicate_ipa_jump_func_array.  Use typed GC allocation.
23365         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
23366
23367         * gimple.c (gimple_alloc_stat): Use
23368         ggc_alloc_cleared_gimple_statement_d_stat.
23369
23370         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
23371
23372         * tree.c (make_node_stat): Use
23373         ggc_alloc_zone_cleared_tree_node_stat.
23374         (make_tree_vec_stat): Likewise.
23375         (build_vl_exp_stat): Likewise.
23376         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
23377         (make_tree_binfo_stat): Likewise.
23378         (tree_cons_stat): Likewise.
23379
23380         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
23381         (shallow_copy_rtx_stat): Likewise.
23382         (make_node_stat): Likewise.
23383
23384         * lto-symtab.c: Fix comment.
23385
23386         * tree-cfg.c (create_bb): Update comment to not reference
23387         ggc_alloc_cleared.
23388         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
23389
23390         * varpool.c (varpool_node): Use typed GC allocation.
23391         (varpool_extra_name_alias): Likewise.
23392
23393         * varasm.c (emutls_decl): Likewise.
23394         (get_unnamed_section): Likewise.
23395         (get_noswitch_section): Likewise.
23396         (get_section): Likewise.
23397         (get_block_for_section): Likewise.
23398         (build_constant_desc): Likewise.
23399         (create_constant_pool): Likewise.
23400         (force_const_mem): Likewise.
23401
23402         * tree.c (build_vl_exp_stat): Likewise.
23403         (build_real): Likewise.
23404         (build_string): Likewise.
23405         (decl_debug_expr_insert): Likewise.
23406         (decl_value_expr_insert): Likewise.
23407         (type_hash_add): Likewise.
23408         (build_omp_clause): Likewise.
23409
23410         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
23411
23412         * tree-ssa.c (init_tree_ssa): Likewise.
23413
23414         * tree-ssa-structalias.c (heapvar_insert): Likewise.
23415
23416         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
23417
23418         * tree-ssa-loop-niter.c (record_estimate): Likewise.
23419
23420         * tree-ssa-alias.c (get_ptr_info): Likewise.
23421
23422         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
23423
23424         * tree-phinodes.c (allocate_phi_node): Likewise.
23425
23426         * tree-iterator.c (tsi_link_before): Likewise.
23427         (tsi_link_after): Likewise.
23428
23429         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
23430
23431         * tree-dfa.c (create_var_ann): Likewise.
23432
23433         * tree-cfg.c (create_bb): Likewise.
23434
23435         * toplev.c (alloc_for_identifier_to_locale): Likewise.
23436         (general_init): Likewise.
23437
23438         * stringpool.c (stringpool_ggc_alloc): Likewise.
23439         (gt_pch_save_stringpool): Likewise.
23440
23441         * sese.c (if_region_set_false_region): Likewise.
23442
23443         * passes.c (do_per_function_toporder): Likewise.
23444
23445         * optabs.c (set_optab_libfunc): Likewise.
23446         (set_conv_libfunc): Likewise.
23447
23448         * lto-symtab.c (lto_symtab_register_decl): Likewise.
23449
23450         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
23451         (input_eh_region): Likewise.
23452         (input_eh_lp): Likewise.
23453         (make_new_block): Likewise.
23454         (unpack_ts_real_cst_value_fields): Likewise.
23455
23456         * lto-section-in.c (lto_new_in_decl_state): Likewise.
23457
23458         * lto-cgraph.c (input_node_opt_summary): Likewise.
23459
23460         * loop-init.c (loop_optimizer_init): Likewise.
23461
23462         * lambda.h (lambda_vector_new): Likewise.
23463
23464         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
23465
23466         * ira.c (update_equiv_regs): Likewise.
23467
23468         * ipa.c (cgraph_node_set_new): Likewise.
23469         (cgraph_node_set_add): Likewise.
23470         (varpool_node_set_new): Likewise.
23471         (varpool_node_set_add): Likewise.
23472
23473         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
23474         (duplicate_ipa_jump_func_array): Likewise.
23475         (ipa_read_node_info): Likewise.
23476
23477         * ipa-cp.c (ipcp_create_replace_map): Likewise.
23478
23479         * integrate.c (get_hard_reg_initial_val): Likewise.
23480
23481         * gimple.c (gimple_alloc_stat): Likewise.
23482         (gimple_build_omp_for): Likewise.
23483         (gimple_seq_alloc): Likewise.
23484         (gimple_copy): Likewise.
23485
23486         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
23487         (gsi_insert_after_without_update): Likewise.
23488
23489         * function.c (add_frame_space): Likewise.
23490         (insert_temp_slot_address): Likewise.
23491         (assign_stack_temp_for_type): Likewise.
23492         (allocate_struct_function): Likewise.
23493         (types_used_by_var_decl_insert): Likewise.
23494
23495         * except.c (init_eh_for_function): Likewise.
23496         (gen_eh_region): Likewise.
23497         (gen_eh_region_catch): Likewise.
23498         (gen_eh_landing_pad): Likewise.
23499         (add_call_site): Likewise.
23500
23501         * emit-rtl.c (get_mem_attrs): Likewise.
23502         (get_reg_attrs): Likewise.
23503         (start_sequence): Likewise.
23504         (init_emit): Likewise.
23505
23506         * dwarf2out.c (new_cfi): Likewise.
23507         (queue_reg_save): Likewise.
23508         (dwarf2out_frame_init): Likewise.
23509         (new_loc_descr): Likewise.
23510         (find_AT_string): Likewise.
23511         (new_die): Likewise.
23512         (add_var_loc_to_decl): Likewise.
23513         (clone_die): Likewise.
23514         (clone_as_declaration): Likewise.
23515         (break_out_comdat_types): Likewise.
23516         (new_loc_list): Likewise.
23517         (loc_descriptor): Likewise.
23518         (add_loc_descr_to_each): Likewise.
23519         (add_const_value_attribute): Likewise.
23520         (tree_add_const_value_attribute): Likewise.
23521         (add_comp_dir_attribute): Likewise.
23522         (add_name_and_src_coords_attributes): Likewise.
23523         (lookup_filename): Likewise.
23524         (store_vcall_insn): Likewise.
23525         (dwarf2out_init): Likewise.
23526
23527         * dbxout.c (dbxout_init): Likewise.
23528
23529         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
23530
23531         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
23532
23533         * config/score/score7.c (score7_output_external): Likewise.
23534
23535         * config/score/score3.c (score3_output_external): Likewise.
23536
23537         * config/s390/s390.c (s390_init_machine_status): Likewise.
23538
23539         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
23540         (rs6000_init_machine_status): Likewise.
23541         (output_toc): Likewise.
23542
23543         * config/pa/pa.c (pa_init_machine_status): Likewise.
23544         (get_deferred_plabel): Likewise.
23545
23546         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
23547
23548         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
23549
23550         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
23551
23552         * config/mep/mep.c (mep_init_machine_status): Likewise.
23553         (mep_note_pragma_flag): Likewise.
23554
23555         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
23556
23557         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
23558
23559         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
23560
23561         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
23562         (i386_pe_maybe_record_exported_symbol): Likewise.
23563
23564         * config/i386/i386.c (get_dllimport_decl): Likewise.
23565         (ix86_init_machine_status): Likewise.
23566         (assign_386_stack_local): Likewise.
23567
23568         * config/frv/frv.c (frv_init_machine_status): Likewise.
23569
23570         * config/darwin.c (machopic_indirection_name): Likewise.
23571
23572         * config/cris/cris.c (cris_init_machine_status): Likewise.
23573
23574         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
23575
23576         * config/avr/avr.c (avr_init_machine_status): Likewise.
23577
23578         * config/arm/arm.c (arm_init_machine_status): Likewise.
23579
23580         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
23581         (alpha_need_linkage): Likewise.
23582         (alpha_use_linkage): Likewise.
23583
23584         * cgraph.c (cgraph_allocate_node): Likewise.
23585         (cgraph_create_edge_1): Likewise.
23586         (cgraph_create_indirect_edge): Likewise.
23587         (cgraph_add_asm_node): Likewise.
23588
23589         * cfgrtl.c (init_rtl_bb_info): Likewise.
23590
23591         * cfgloop.c (alloc_loop): Likewise.
23592         (rescan_loop_exit): Likewise.
23593
23594         * cfg.c (init_flow): Likewise.
23595         (alloc_block): Likewise.
23596         (unchecked_make_edge): Likewise.
23597
23598         * c-parser.c (c_parse_init): Likewise.
23599         (c_parse_file): Likewise.
23600
23601         * c-decl.c (bind): Likewise.
23602         (record_inline_static): Likewise.
23603         (push_scope): Likewise.
23604         (make_label): Likewise.
23605         (lookup_label_for_goto): Likewise.
23606         (finish_struct): Likewise.
23607         (finish_enum): Likewise.
23608         (c_push_function_context): Likewise.
23609
23610         * bitmap.c (bitmap_element_allocate): Likewise.
23611         (bitmap_gc_alloc_stat): Likewise.
23612
23613         * alias.c (record_alias_subset): Likewise.
23614         (init_alias_analysis): Likewise.
23615
23616 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
23617
23618         * fold-const.c (fold_comparison): Remove redundant parenthesis.
23619         * tree-inline.c (expand_call_inline): Pass translated return value of
23620         cgraph_inline_failed_string to diagnostic function.
23621
23622 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
23623             Shujing Zhao  <pearly.zhao@oracle.com>
23624
23625         PR c/37724
23626         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
23627         implicit bad conversions is initialization.
23628         (error_init): Use gmsgid instead of msgid for argument name and change
23629         the call for error.
23630         (pedwarn_init): Use gmsgid instead of msgid for argument name and
23631         change the call for pedwarn.
23632         (warning_init): Use gmsgid instead of msgid for argument name and
23633         change the call for warning.
23634
23635 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
23636
23637         * config/mips/mips-protos.h (mips_print_operand): Delete.
23638         (mips_print_operand_address): Delete.
23639         * config/mips/mips.h (mips_print_operand_punct): Delete.
23640         (PRINT_OPERAND): Delete.
23641         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23642         (PRINT_OPERAND_ADDRESS): Delete.
23643         * config/mips/mips.c (mips_print_operand_punct): Make static.
23644         (mips_print_operand_address): Make static.
23645         (mips_print_operand): Make static.  Call
23646         mips_print_operand_punct_valid_p.
23647         (mips_print_operand_punct_valid_p): New function.
23648         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23649         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23650
23651 2010-06-07  Jan Hubicka  <jh@suse.cz>
23652
23653         PR middle-end/44454
23654         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
23655         are allocated.
23656
23657 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
23658
23659         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
23660         name of RECORD.
23661
23662 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23663
23664         * doc/sourcebuild.texi (Effective-Target Keywords, Other
23665         attributes): Document gas.
23666
23667 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
23668
23669         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
23670         <TYPE_LEA>: Split instruction.
23671         <default>: Remove alternative 2 handling.
23672         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
23673         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
23674         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
23675
23676         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
23677         (ashift_zext lea splitter): Use DImode for multiplication.
23678
23679         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
23680         to generate addition.
23681
23682 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
23683
23684         * common.opt (fira-verbose): Use Var.
23685         (fpcc-struct-return): Use Init instead of VarExists.
23686         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
23687         toplev.c.
23688         * flags.h (flag_signed_char, flag_short_enums,
23689         flag_pcc_struct_return, flag_ira_verbose,
23690         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
23691         * toplev.c (flag_detailed_statistics, flag_signed_char,
23692         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
23693         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
23694         * toplev.h (flag_crossjumping, flag_if_conversion,
23695         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
23696         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
23697         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
23698         flag_cprop_registers, time_report, flag_ira_loop_pressure,
23699         flag_ira_coalesce, flag_ira_move_spills,
23700         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
23701
23702 2010-06-07  Jan Hubicka  <jh@suse.cz>
23703
23704         * df-core.c (df_analyze_problem): Do verification after allocation.
23705
23706         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
23707         (df_lr_alloc): Initialize problem data; move bitmaps to
23708         lr_bitmaps obstack.
23709         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
23710         (df_lr_verify_solution_start): Do not initialize problem data;
23711         allocate bitmaps in lr_bitmaps.
23712         (df_lr_verify_solution_end): Do not free problem data.
23713
23714 2010-06-07  Jan Hubicka  <jh@suse.cz>
23715
23716         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
23717         if caller is noreturn.
23718         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
23719         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
23720         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
23721         * ipa-pure-const.c (check_decl): Add IPA parameter.
23722         (state_from_flags): New function.
23723         (better_state, worse_state): New functions.
23724         (check_call): When in IPA mode, do not care about callees.
23725         (check_load, check_store): Update.
23726         (check_ipa_load, check_ipa_store): New.
23727         (check_stmt): When in IPA mode, use IPA checkers.
23728         (analyze_function): Use state_from_flags.
23729         (propagate): Check indirect edges and references.
23730
23731 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
23732
23733         PR rtl-optimization/44404
23734         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
23735         of count_occurrences to see if it's safe to modify mem_insn.
23736
23737 2010-06-07  Richard Guenther  <rguenther@suse.de>
23738
23739         * gimplify.c (gimplify_cleanup_point_expr): For empty body
23740         and EH-only cleanup drop the cleanup instead of inserting it
23741         unconditionally.
23742
23743 2010-06-07  Ira Rosen  <irar@il.ibm.com>
23744
23745         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
23746         documentation.
23747         * targhooks.c (default_builtin_vectorization_cost): New function.
23748         * targhooks.h (default_builtin_vectorization_cost): Declare.
23749         * target.h (enum vect_cost_for_stmt): Define.
23750         (builtin_vectorization_cost): Change argument and comment.
23751         * tree-vectorizer.h: Remove cost model macros.
23752         * tree-vect-loop.c: Include target.h.
23753         (vect_get_cost): New function.
23754         (vect_estimate_min_profitable_iters): Replace cost model macros with
23755         calls to vect_get_cost.
23756         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
23757         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
23758         default implementation.
23759         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
23760         calls to target hook builtin_vectorization_cost.
23761         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
23762         Likewise.
23763         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
23764         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
23765         implementation to return costs.
23766         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
23767         * config/spu/spu.h: Remove vectorizer cost model macros.
23768         * config/i386/i386.h: Likewise.
23769         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
23770         a call to target hook builtin_vectorization_cost.
23771
23772 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
23773
23774         PR target/44319
23775         * config/i386/i386.c (override_options): Turn zee pass on for level 2
23776         and above and defer till target is known.
23777         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
23778         turn off otherwise.
23779
23780 2010-05-25  Jan Hubicka  <jh@suse.cz>
23781
23782         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
23783         (df_compact_blocks): Likewise.
23784         * df.h (struct df): Turn hardware_regs_used,
23785         regular_block_artificial_uses, eh_block_artificial_uses,
23786         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
23787         bitmap_head.
23788         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
23789         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
23790         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
23791         df_scan_blocks, df_insn_delete, df_insn_rescan,
23792         df_insn_rescan_debug_internal, df_insn_rescan_all,
23793         df_process_deferred_rescans, df_process_deferred_rescans,
23794         df_notes_rescan, df_get_call_refs, df_get_call_refs,
23795         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
23796         df_record_entry_block_defs, df_record_exit_block_uses,
23797         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
23798         df_scan_verify): Update.
23799
23800 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
23801
23802         PR c++/44188
23803         * c-common.c (is_typedef_decl): Move this definition ...
23804         * tree.c (is_typedef_decl): ... here.
23805         (typdef_variant_p): Move definition here from cp/tree.c.
23806         * c-common.h (is_typedef_decl): Move this declaration ...
23807         * tree.h (is_typedef_decl): ... here.
23808         (typedef_variant_p): Move declaration here from cp/cp-tree.h
23809         * dwarf2out.c (is_naming_typedef_decl): New function.
23810         (gen_tagged_type_die): Split out of ...
23811         (gen_type_die_with_usage): ... this function. When an anonymous
23812         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
23813         is emitted for the typedef.
23814         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
23815         anonymous tagged types.
23816
23817 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23818
23819         PR c/20000
23820         * c-decl.c (grokdeclarator): Delete warning.
23821
23822 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
23823
23824         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
23825         newly built CALL_EXPR.
23826         * tree-profile.c (tree_profiling): Don't profile functions produced
23827         for built-in stuff.
23828
23829 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
23830
23831         PR bootstrap/44427
23832         PR bootstrap/44428
23833         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
23834         endianness-independent.
23835
23836 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
23837
23838         * c-common.c: Move to c-family/.
23839         * c-common.def: Likewise.
23840         * c-common.h: Likewise.
23841         * c-cppbuiltin.c: Likewise.
23842         * c-dump.c: Likewise.
23843         * c-format.c: Likewise.
23844         * c-format.h : Likewise.
23845         * c-gimplify.c: Likewise.
23846         * c-lex.c: Likewise.
23847         * c-omp.c: Likewise.
23848         * c.opt: Likewise.
23849         * c-opts.c: Likewise.
23850         * c-pch.c: Likewise.
23851         * c-ppoutput.c: Likewise.
23852         * c-pragma.c: Likewise.
23853         * c-pragma.h: Likewise.
23854         * c-pretty-print.c: Likewise.
23855         * c-pretty-print.h: Likewise.
23856         * c-semantics.c: Likewise.
23857         * stub-objc.c: Likewise.
23858
23859         * gengtype.c (get_file_langdir): Special-case files in c-family/.
23860         (get_output_file_with_visibility): Fix name for c-common.h.
23861         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
23862
23863         * c-tree.h: Update include path for moved files.
23864         * c-lang.c: Likewise.
23865         * c-lang.h: Likewise.
23866         * c-parser.c: Likewise.
23867         * c-convert.c: Likewise.
23868         * c-decl.c: Likewise.
23869         * c-objc-common.c: Likewise.
23870         * configure.ac: Make sure c-family/ exists in the build directory.
23871         * configure: Regenerate.
23872         * Makefile.in: Update paths for moved files.  Regroup files per
23873         location and update dependencies.  Move generated_files down after
23874         ALL_GTFILES_H.
23875
23876         * config/spu/spu-c.c: Update paths for moved files.
23877         * config/mep/mep-pragma.c: Likewise.
23878         * config/darwin-c.c: Likewise.
23879         * config/i386/msformat-c.c: Likewise.
23880         * config/i386/i386-c.c: Likewise.
23881         * config/avr/avr-c.c: Likewise.
23882         * config/sol2-c.c: Likewise.
23883         * config/ia64/ia64-c.c: Likewise.
23884         * config/rs6000/rs6000-c.c: Likewise.
23885         * config/arm/arm.c: Likewise.
23886         * config/arm/arm-c.c: Likewise.
23887         * config/h8300/h8300.c: Likewise.
23888         * config/v850/v850-c.c: Likewise.
23889
23890         * config/t-darwin: Fix dependencies for moved files.
23891         * config/t-sol2: Fix dependencies for moved files.
23892         * config/mep/t-mep: Fix dependencies for moved files.
23893         * config/ia64/t-ia64: Fix dependencies for moved files.
23894         * config/rs6000/t-rs6000: Fix dependencies for moved files.
23895         * config/v850/t-v850: Fix dependencies for moved files.
23896         * config/v850/t-v850e: Fix dependencies for moved files.
23897
23898         * config/m32c/m32c-pragma.c
23899
23900         * po/exgettext: Look in c-family/ also.
23901
23902 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
23903
23904         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
23905         (mark_control_dependent_edges_necessary): Call it instead of marking
23906         the last statement manually.
23907         (propagate_necessity): Likewise.
23908
23909 2010-06-05  Jan Hubicka  <jh@suse.cz>
23910
23911         * basic-block.h (compute_dominance_frontiers): Updated.
23912         (compute_idf): Likewise.
23913
23914         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
23915         for dominance frontiers.
23916         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
23917         (insert_updated_phi_nodes_for): Likewise.
23918         (update_ssa): Likewise.
23919         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23920         (compute_dominance_frontiers): Likewise.
23921         (compute_idf): Likewise.
23922         * df-problems.c (df_md_local_compute): Likewise.
23923
23924 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
23925
23926         * target.h (struct gcc_target): Add memory_move_cost field.
23927         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
23928         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
23929         * targhooks.c (default_memory_move_cost): New function.
23930         * targhooks.h (default_memory_move_cost): Declare function.
23931         * reload.h (memory_move_cost): Declare.
23932         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23933         * reginfo.c (memory_move_cost): New function.
23934         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23935         * ira.h (ira_memory_move_cost): Update comment.
23936         * ira.c (ira_memory_move_cost): Update comment.
23937         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
23938         with memory_move_cost.
23939         * postreload.c (reload_cse_simplify_set): (Ditto.).
23940         * reload1.c (choose_reload_regs): (Ditto.).
23941         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
23942         (MEMORY_MOVE_COST):  Revise documentation.
23943
23944         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23945         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23946         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
23947         type of 'in' argument to bool.
23948         (TARGET_MEMORY_MOVE_COST): Define.
23949
23950 2010-06-05  Jan Hubicka  <jh@suse.cz>
23951
23952         * ipa-pure-const.c (propagate): Fix typo in handling of functions
23953         that cannot return.  Be more careful when merging the results with
23954         previously known ones.
23955
23956 2010-06-05  Matthias Klose  <doko@ubuntu.com>
23957
23958         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
23959         function to add the -iplugindir option.
23960         (find_plugindir_spec_function): Add new declaration and function.
23961         (static_spec_func): Use it for "find-plugindir".
23962
23963 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
23964
23965         PR c++/44361
23966         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
23967         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
23968         statement expression.
23969
23970 2010-06-05  Jan Hubicka  <jh@suse.cz>
23971
23972         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
23973         (df_rd_problem_data): Convert sparse_invalidated_by_call,
23974         dense_invalidated_by_call to bitmap head.
23975         (df_rd_alloc, df_rd_bb_local_compute_process_def,
23976         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
23977         df_rd_start_dump, df_lr_verify_transfer_functions,
23978         df_live_verify_transfer_functions, df_chain_create_bb,
23979         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
23980         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
23981         df_simulate_one_insn_forwards, df_md_alloc,
23982         df_md_bb_local_compute_process_def,
23983         df_md_bb_local_compute_process_def, df_md_local_compute,
23984         df_md_transfer_function df_md_free): Update.
23985
23986 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
23987
23988         PR c/44322
23989         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
23990         target type for ADDR_EXPR; require no changes to qualifiers except
23991         for function types.
23992         * c-tree.h (c_build_type_variant): Remove.
23993
23994 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
23995
23996         * genautomata.c (get_excl_set): Do work per element, not per char.
23997         (check_presence_pattern_sets): Similar.
23998         (check_absence_pattern_sets): Similar.
23999
24000 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24001
24002         * genautomata.c (curr_state_pass_num): Delete.
24003         (min_issue_delay_pass_states): Delete.
24004         (min_issue_delay): Delete.
24005         (initiate_min_issue_delay_pass_states): Delete.
24006         (output_min_issue_delay_table): Compute min_issue_delay_vect
24007         using a breadth-first search variant.
24008         (output_tables): Don't call initiate_min_issue_delay_pass_states.
24009
24010 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
24011
24012         PR boostrap/44421
24013         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24014         (df_byte_lr_bb_local_compute): Likewise.
24015
24016 2010-06-03  Jason Merrill  <jason@redhat.com>
24017
24018         Implement noexcept operator (5.3.7)
24019         * c-common.c (c_common_reswords): Add noexcept.
24020         * c-common.h (enum rid): Add RID_NOEXCEPT.
24021
24022 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
24023
24024         * config/darwin-driver.c (darwin_default_min_version): Use
24025         GCC-specific formats in diagnostics.
24026         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
24027         diagnostics.
24028         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
24029         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
24030         eval_spec_function, handle_braces, process_brace_body, main,
24031         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
24032         getenv_spec_function, compare_version_strings,
24033         version_compare_spec_function): Use GCC-specific formats in
24034         diagnostics.
24035
24036 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24037
24038         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
24039         that operand 0 and operand 1 are equal.
24040         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
24041         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
24042         and operand 1 are equal.
24043         <default>: Ditto.  Remove ??? comment.
24044         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
24045         and operand 1 are equal.
24046         <default>: Ditto.  Remove ??? comment.
24047         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
24048         are equal.
24049         (*add<mode>_4) <default>: Ditto.
24050         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
24051
24052 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
24053
24054         * config/i386/i386-protos.h (ix86_print_operand): Declare.
24055         * config/i386/i386.c (ix86_print_operand): Make non-static.
24056         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
24057         * output.h (output_operand): Declare.
24058         * final.c (output_operand): Make non-static.
24059
24060 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
24061
24062         PR rtl-optimization/44013
24063         * sched-deps.c (add_dependence_list_and_free): Don't free lists
24064         when processing debug insns.
24065
24066         PR debug/41371
24067         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
24068         recursing.  Check that recursion is bounded.  Rename inner var
24069         to avoid hiding incoming argument.
24070
24071 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24072
24073         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
24074         operands[2] == 255.
24075         (*addqi_3): Ditto.
24076         (*addqi_4): Ditto.
24077         (*addqi_5): Ditto.
24078         (*addqi_ext_1_rex64): Ditto.
24079         (*addqi_ext_1): Ditto.
24080
24081         (*addqi_4): Check for incdec_operand in QImode.
24082
24083         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
24084         using SWI mode iterator.
24085         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
24086         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
24087         mode iterator.
24088         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
24089         using SWI mode iterator.
24090
24091 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24092
24093         PR c/25880
24094         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
24095         * c-format.c (gcc_diag_flag_specs): Add hash.
24096         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
24097         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
24098         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
24099         pp_c_cv_qualifiers. Handle qualifiers spelling here.
24100         (pp_c_type_qualifier_list): Call the function above.
24101         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
24102         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
24103         (WARN_FOR_QUALIFIERS): New macro.
24104         (convert_for_assignment): Use it.
24105
24106 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
24107
24108         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
24109
24110 2010-06-04  Jan Hubicka  <jh@suse.cz>
24111
24112         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
24113         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
24114         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
24115         DF_BYTE_LR_OUT): Update for embedded bitmaps.
24116         * fwprop.c (single_def_use_enter_block): Likewise.
24117         * ddg.c (create_ddg_dep_from_intra_loop_link,
24118         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
24119         * loop-iv.c (latch_dominating_def): Likewise.
24120         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
24121         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
24122         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
24123         df_rd_transfer_function, df_rd_top_dump,
24124         df_rd_bottom_dump): Update.
24125         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
24126         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
24127         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
24128         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
24129         df_lr_verify_solution_start, df_lr_verify_solution_end,
24130         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
24131         df_live_free_bb_info, df_live_alloc, df_live_reset,
24132         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
24133         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
24134         df_live_verify_solution_start, df_live_verify_solution_end,
24135         df_live_verify_transfer_functions, df_chain_create_bb,
24136         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
24137         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24138         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24139         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
24140         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
24141         df_byte_lr_transfer_function, df_byte_lr_top_dump,
24142         df_byte_lr_bottom_dump, df_create_unused_note,
24143         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
24144         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
24145         df_md_transfer_function, df_md_init, df_md_confluence_0,
24146         df_md_confluence_n,
24147         df_md_top_dump, df_md_bottom_dump): Update.
24148         (struct df_lr_problem_data): Embedd bitmap headers.
24149
24150 2010-06-04  Jan Hubicka  <jh@suse.cz>
24151
24152         * dce.c (dce_process_block): Do not re-scan already marked
24153         instructions.
24154
24155 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
24156
24157         PR rtl-optimization/39871
24158         PR rtl-optimization/40615
24159         PR rtl-optimization/42500
24160         PR rtl-optimization/42502
24161         * ira.c (init_reg_equiv_memory_loc: New function.
24162         (ira): Call it twice.
24163         * reload.h (calculate_elim_costs_all_insns): Declare.
24164         * ira-costs.c: Include "reload.h".
24165         (regno_equiv_gains): New static variable.
24166         (init_costs): Allocate it.
24167         (finish_costs): Free it.
24168         (ira_costs): Call calculate_elim_costs_all_insns.
24169         (find_costs_and_classes): Take estimated elimination costs
24170         into account.
24171         (ira_adjust_equiv_reg_cost): New function.
24172         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
24173         * reload1.c (init_eliminable_invariants, free_reg_equiv,
24174         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
24175         (elim_bb): New static variable.
24176         (reload): Move code out of here into init_eliminable_invariants and
24177         free_reg_equiv.  Call them.
24178         (calculate_elim_costs_all_insns): New function.
24179         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
24180         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
24181         but call note_reg_elim_costly if we turned a valid memory address
24182         into an invalid one.
24183         * Makefile.in (ira-costs.o): Depend on reload.h.
24184
24185 2010-06-04  Julian Brown  <julian@codesourcery.com>
24186
24187         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
24188         for pool ranges.
24189
24190 2010-06-04  Richard Guenther  <rguenther@suse.de>
24191
24192         PR lto/41584
24193         * cgraph.h (struct varpool_node): Add lto_file_data field.
24194         * lto-cgraph.c (input_varpool_node): Initialize it.
24195
24196 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24197
24198         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
24199         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
24200         predicate in "type" attribute calculation.
24201         (*addsi_1_zext): Ditto.
24202         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
24203         (*addsi_2_zext): Ditto.
24204         (*add<mode>_3): Ditto.
24205         (*addsi_3_zext): Ditto.
24206         (*add<mode>_5): Ditto.
24207
24208 2010-06-03  Jan Hubicka  <jh@suse.cz>
24209
24210         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
24211         of bitmap_bit_p.
24212         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24213
24214 2010-06-03  Jan Hubicka  <jh@suse.cz>
24215
24216         * df-problems.c (df_create_unused_note, df_note_bb_compute):
24217         micro-optimize the checks when to add new note.
24218
24219 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
24220
24221         * final.c (output_asm_insn): Call
24222         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
24223         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
24224         (output_address): Call targetm.asm_out.print_operand_address.
24225         Update comments.
24226         * target.h (struct gcc_target): Add print_operand,
24227         print_operand_address, and print_operand_punct_valid_p fields.
24228         * targhooks.h (default_print_operand): Declare.
24229         (default_print_operand_address): Declare.
24230         (default_print_operand_punct_valid_p): Declare.
24231         * targhooks.c (default_print_operand): Define.
24232         (default_print_operand_address): Define.
24233         (default_print_operand_punct_valid_p): Define.
24234         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
24235         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
24236         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
24237         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
24238         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
24239         * vmsdbgout.c (addr_const_to_string): Update comment.
24240         * config/i386/i386.c (print_operand): Rename to...
24241         (ix86_print_operand): ...this.  Make static.
24242         (print_operand_address): Rename to...
24243         (ix86_print_operand_address): ...this.  Make static.  Call
24244         ix86_print_operand instead of PRINT_OPERAND.
24245         (ix86_print_operand_punct_valid_p): New function.
24246         (TARGET_PRINT_OPERAND): Define.
24247         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24248         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24249         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
24250         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24251         (PRINT_OPERAND): Delete.
24252         (PRINT_OPERAND_ADDRESS): Delete.
24253         * config/i386/i386-protos.h (print_operand): Delete prototype.
24254         (print_operand_address): Delete prototype.
24255
24256 2010-06-03  Richard Guenther  <rguenther@suse.de>
24257
24258         PR tree-optimization/44403
24259         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24260         Preserve pointer qualifiers.
24261         (vect_create_data_ref_ptr): Likewise.
24262
24263 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
24264
24265         PR c++/44294
24266         * defaults.h (MAX_FIXED_MODE_SIZE): New.
24267
24268         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
24269
24270 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
24271
24272         PR debug/44375
24273         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
24274         return false if merging the bbs would lead to goto_locus
24275         location being lost from the IL.
24276
24277 2010-06-03  Jan Hubicka  <jh@suse.cz>
24278             Jakub Jelinek  <jakub@redhat.com>
24279
24280         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
24281         set->regs[i] is NULL or has just one entry.
24282
24283 2010-06-03  Jan Hubicka  <jh@suse.cz>
24284
24285         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
24286         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
24287
24288 2010-06-03  Paul Brook  <paul@codesourcery.com>
24289
24290         * config/arm/arm.c (FL_TUNE): Define.
24291         (arm_default_cpu, arm_cpu_select): Remove.
24292         (all_cores): Populate core field.
24293         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
24294         (arm_find_cpu): New function.
24295         (arm_handle_option): Lookup cpu/architecture names.
24296         (arm_override_options): Cleanup mcpu/march/mtune handling.
24297         (arm_file_start): Ditto.
24298
24299 2010-06-03  Alan Modra  <amodra@gmail.com>
24300
24301         PR target/44169
24302         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
24303         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
24304         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
24305         (rs6000_emit_load_toc_table): Likewise.
24306
24307 2010-06-02  Jan Hubicka  <jh@suse.cz>
24308
24309         * passes.c (init_optimization_passes): Put ipa reference
24310         after ipa pure-const.
24311
24312 2010-06-02  Jan Hubicka  <jh@suse.cz>
24313
24314         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
24315         calls_read_all and calls_write_all.
24316         (get_reference_optimization_summary): Fix formatting.
24317         (is_proper_for_analysis): Check that decl is not readonly.
24318         (propagate_bits): Check CONST/PURE/noreturn flags.
24319         (ipa_init): Move all_module_statics to optimization_summary_obstack.
24320         (analyze_function): Ignore indirect edges.
24321         (copy_global_bitmap): For all module statics, do nothing.
24322         (generate_summary): Do not print calls_read_all/calls_write_all.
24323         (read_write_all_from_decl): Take node as argument; check
24324         cgraph_node_cannot_return.
24325         (propagate): Reorganize read_all/write_all computation;
24326         check indirect edges; check ecf flags; use all_module_statics
24327         in the results; do not free all_module_statics.
24328         (stream_out_bitmap): Handle all_module_statics.
24329         (ipa_reference_write_optimization_summary): Likewise; use
24330         varpool/cgraph encoders to get boundaries.
24331         (ipa_reference_read_optimization_summary): Read in all_module_statics;
24332         use it when possible.
24333
24334 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24335
24336         PR target/44218
24337         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
24338         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
24339
24340         * doc/extend.texi (powerpc builtins): Document vec_recip,
24341         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
24342
24343         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
24344         (rs6000_emit_swrsqrt): Ditto.
24345         (rs6000_emit_swdivsf): Delete.
24346         (rs6000_emit_swdivdf): Ditto.
24347         (rs6000_emit_swrsqrtsf): Ditto.
24348
24349         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
24350         describe the reciprocal estimate support for each type.
24351         (recip_options): Map -mrecip=<opt> into option bits.
24352         (gen_2arg_fn_t): New typedef for binary rtx gen function.
24353         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
24354         reciprocal estimate instructions.
24355         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
24356         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
24357         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
24358         cost information if -mdebug=cost or -mdebug=reg.
24359         (rs6000_override_options): Set -mrecip-precision for power6, and
24360         power7 machines.  If -mvsx or -mdfp, enable various options that
24361         came in previous instruction set ISAs, unless the option was
24362         explicitly disabled by the command line option.  Parse
24363         -mrecip=<opt> options.
24364         (rs6000_builtin_vectorized_function): Add support for vectorizing
24365         the reciprocal estimate builtins and expansions.
24366         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
24367         (bdesc_2arg): Add reciprocal estimate builtins.
24368         (bdesc_1arg): Add reciprocal square root estimate builtins.
24369         (rs6000_expand_builtin): Rewrite to use a switch statement,
24370         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
24371         (rs6000_init_builtins): Create declarations for reciprocal
24372         estimate builtins.
24373         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
24374         sized, prefer traditional floating point registers, if integer
24375         vector types, prefer altivec registers.  Don't actually look at
24376         the memory address any more.
24377         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
24378         builtins.
24379         (rs6000_load_constant_and_splat): New helper function to load up
24380         the constant for reciprocal estimate instructions.
24381         (rs6000_emit_madd): New helper function for generating
24382         multiply/add type instructions, based on the current switches.
24383         (rs6000_emit_msub): Ditto.
24384         (rs6000_emit_mnsub): Ditto.
24385         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
24386         replace a divide with a reciprocal estimate and fixup, adding
24387         support for machines with high precision and vectors.
24388         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
24389         low precision machines.
24390         (rs6000_emit_swdiv): New common function to be called to replace a
24391         division with reciprocal estimate and fixup.
24392         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
24393         for double and vector types.  Add support for high precision machines.
24394
24395         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
24396         the reciprocal estimate instructions can be generated.
24397         (TARGET_FRE): Ditto.
24398         (TARGET_FRSQRTES): Ditto.
24399         (TARGET_FRSQRTE): Ditto.
24400         (RS6000_RECIP_*): New macros for reciprocal estimate support.
24401
24402         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
24403         square root estimate on vectors.
24404         (re<mode>2): New insn for reciprocal division estimate on vectors.
24405
24406         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
24407         New builtin.
24408         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
24409         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
24410         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
24411         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
24412         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
24413         (RS6000_BUILTIN_RSQRT): Ditto.
24414         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
24415         floating point builtin.
24416
24417         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24418         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
24419         __RECIP_PRECISION__ based on the command line switches.
24420         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
24421
24422         * config/rs6000/rs6000.opt (-mrecip): Document add support for
24423         replacing division instructions with reciprocal estimate and fixup.
24424         (-mrecip=<opt>): New option.
24425         (-mrecip-precision): Ditto.
24426
24427         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
24428         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
24429         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
24430         precision scalar.
24431
24432         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
24433         (UNSPEC_VREFP): Ditto.
24434         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
24435         conterparts with regard to support of -mno-fused-madd and -ffast-math.
24436         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
24437         reciprocal estimate instructions to be generated.
24438         (altivec_vrefp): Ditto.
24439
24440         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
24441         estimate support.
24442         (rreg): New mode attribute for reciprocal estimate support.
24443         (recip<mode>3): New insn for division using reciprocal estimate
24444         and fixup builtins.
24445         (divide define_split): New define_split to convert floating point
24446         division to use reciprocal estimate if the user used the
24447         appropriate options and the split is run when we can add new
24448         pseudo registers for the fixup.
24449         (rsqrt<mode>2): New insn for reciprocal square root support.
24450         (recipsf3): Move into recip<mode>3.
24451         (recipdf3): Ditto.
24452         (fres): Use TARGET_FRES.
24453         (rsqrtsf2): Move into rsqrt<mode>2.
24454         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
24455         (copysignsf3): Add support for VSX.
24456         (fred): Use TARGET_FRE.
24457         (fred_fpr): Ditto.
24458         (rsqrtdf_internal1): New function for frsqrte instruciton.
24459
24460         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
24461         (vec_rsqrt): Ditto.
24462
24463 2010-06-03  Richard Guenther  <rguenther@suse.de>
24464
24465         PR middle-end/44291
24466         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
24467         (set_user_assembler_libfunc): Likewise.
24468
24469 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24470
24471         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
24472         defaults.h.
24473         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
24474         to defaults.h
24475         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
24476         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
24477         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
24478         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
24479         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
24480         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
24481         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
24482         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
24483         * defaults.h: Updated for above mentioned changes.
24484
24485 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
24486
24487         * c-common.c: Remove header include of tm_p.h.
24488         * Makefile.in (c-common.o): Remove TM_P_H dependency.
24489
24490 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
24491
24492         * tree.h (struct tree_decl_map): New type.
24493         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
24494         (tree_decl_map_hash): New prototype.
24495         (debug_expr_for_decl, value_expr_for_decl): Change into
24496         tree_decl_map hashtab from tree_map.
24497         (init_ttree): Adjust initialization.
24498         (tree_decl_map_hash): New function.
24499         (decl_debug_expr_lookup, decl_debug_expr_insert,
24500         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
24501
24502 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24503
24504         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
24505         linker emulations.
24506         * configure: Regenerate.
24507         * config.in: Regenerate.
24508
24509         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
24510         (X86_64_EMULATION): Define.
24511         (TARGET_LD_EMULATION): Use them.
24512
24513         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
24514         (SPARC64_EMULATION): Define.
24515         (LINK_ARCH_SPEC): Use them.
24516
24517 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24518
24519         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
24520         smallest_mode_for_size for computing the precision types of new
24521         graphite IVs.  Do not call lang_hooks.types.type_for_size.
24522
24523 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24524
24525         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
24526         information.
24527         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
24528
24529 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
24530
24531         PR middle-end/44363
24532         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
24533         return false instead.
24534
24535 2010-06-02  Jan Hubicka  <jh@suse.cz>
24536
24537         PR middle-end/44295
24538         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
24539         create new cgraph node to check callee.
24540
24541 2010-06-02  Richard Guenther  <rguenther@suse.de>
24542
24543         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
24544
24545 2010-06-02  Richard Guenther  <rguenther@suse.de>
24546
24547         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
24548         (lto_wrapper_cleanup): ... this.  Do not exit.
24549         (fatal): Adjust.  Exit here.
24550         (fatal_perror): Likewise.
24551         (fatal_signal): New function.
24552         (main): Set up signal handlers to cleanup temporary files.
24553         * Makefile.in (lto-wrapper.o): Adjust dependencies.
24554
24555 2010-06-02  Richard Guenther  <rguenther@suse.de>
24556
24557         PR tree-optimization/44377
24558         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
24559
24560 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24561
24562         * config/s390/2097.md (z10_fhex): Remove insn reservation.
24563         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
24564         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
24565         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
24566         instruction.
24567         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
24568
24569 2010-06-02  Jan Hubicka  <jh@suse.cz>
24570
24571         * bitmap.c (bitmap_descriptor): Add search_iter.
24572         (bitmap_find_bit): Increment it.
24573         (print_statistics): Print it.
24574
24575 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
24576
24577         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
24578         instead of gimple_build_call_vec.  Delete unnecessary local variable.
24579
24580 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24581
24582         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
24583         change from yesterday.
24584
24585 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
24586
24587         * c-ada-spec.c: Clean up redundant includes.
24588
24589 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
24590
24591         * gimplify.c: Do not include except.h and optabs.h.
24592         (gimplify_body): Do not initialize RTL profiling.
24593         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
24594         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
24595         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
24596         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
24597         langhooks.h.
24598
24599         * tree-pretty-print.h: Include pretty-print.h.
24600         * gimple-pretty-print.h: Include pretty-print.h.
24601
24602         * tree-pretty-print.c: Do not include diagnostic.h.
24603         * tree-vrp.c: Likewise.
24604         * tree-tailcall.c: Likewise
24605         * tree-scalar-evolution.c: Likewise
24606         * tree-ssa-dse.c: Likewise
24607         * tree-chrec.c: Likewise
24608         * tree-ssa-sccvn.c: Likewise
24609         * tree-ssa-copyrename.c: Likewise
24610         * tree-nomudflap.c: Likewise
24611         * tree-call-cdce.c: Likewise
24612         * tree-stdarg.c: Likewise
24613         * tree-ssa-math-opts.c: Likewise
24614         * tree-nrv.c: Likewise
24615         * tree-ssa-sink.c: Likewise
24616         * tree-browser.c: Likewise
24617         * tree-ssa-loop-ivcanon.c: Likewise
24618         * tree-ssa-loop.c: Likewise
24619         * tree-parloops.c: Likewise
24620         * tree-ssa-address.c: Likewise
24621         * tree-ssa-ifcombine.c: Likewise
24622         * tree-if-conv.c: Likewise
24623         * tree-data-ref.c: Likewise
24624         * tree-affine.c: Likewise
24625         * tree-ssa-phiopt.c: Likewise
24626         * tree-ssa-coalesce.c: Likewise
24627         * tree-ssa-pre.c: Likewise
24628         * tree-ssa-live.c: Likewise
24629         * tree-predcom.c: Likewise
24630         * tree-ssa-forwprop.c: Likewise
24631         * tree-ssa-dce.c: Likewise
24632         * tree-ssa-ter.c: Likewise
24633         * tree-ssa-loop-prefetch.c: Likewise
24634         * tree-optimize.c: Likewise
24635         * tree-ssa-phiprop.c: Likewise
24636         * tree-object-size.c: Likewise
24637         * tree-outof-ssa.c: Likewise
24638         * tree-ssa-structalias.c: Likewise
24639         * tree-switch-conversion.c: Likewise
24640         * tree-ssa-reassoc.c: Likewise
24641         * tree-ssa-operands.c: Likewise
24642         * tree-vectorizer.c: Likewise
24643         * tree-vect-data-refs.c: Likewise
24644         * tree-vect-generic.c: Likewise
24645         * tree-vect-stmts.c: Likewise
24646         * tree-vect-patterns.c: Likewise
24647         * tree-vect-slp.c: Likewise
24648         * tree-vect-loop.c: Likewise
24649         * tree-ssa-loop-ivopts.c: Likewise
24650         * tree-ssa-loop-im.c: Likewise
24651         * tree-ssa-loop-niter.c: Likewise
24652         * tree-ssa-loop-unswitch.c: Likewise
24653         * tree-ssa-loop-manip.c: Likewise
24654         * tree-ssa-loop-ch.c: Likewise
24655         * tree-dump.c: Likewise
24656         * tree-complex.c: Likewise
24657
24658         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
24659         * tree-ssa-uninit.c: Likewise
24660         * tree-ssa-threadupdate.c: Likewise
24661         * tree-ssa-uncprop.c: Likewise
24662         * tree-ssa-ccp.c: Likewise
24663         * tree-ssa-dom.c: Likewise
24664         * tree-ssa-propagate.c: Likewise
24665         * tree-ssa-alias.c: Likewise
24666         * tree-dfa.c: Likewise
24667         * tree-cfgcleanup.c: Likewise
24668         * tree-sra.c: Likewise
24669         * tree-ssa-copy.c: Likewise
24670         * tree-ssa.c: Likewise
24671         * tree-profile.c: Likewise
24672         * tree-cfg.c: Likewise
24673         * tree-ssa-threadedge.c: Likewise
24674         * tree-vect-loop-manip.c: Likewise
24675
24676         * tree-inline.c: Do not include diagnostic.h and expr.h.
24677         Include rtl.h.
24678         (copy_decl_for_dup_finish): Do not use NULL_RTX.
24679
24680         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
24681         * tree-loop-distribution.c: Likewise.
24682
24683 2010-06-01  Jan Hubicka  <jh@suse.cz>
24684
24685         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
24686
24687 2010-06-01  Jan Hubicka  <jh@suse.cz>
24688
24689         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
24690         remove return value.
24691         (split_bbs_on_noreturn_calls) .... here.
24692         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
24693         * tree-flow.h (fixup_noreturn_call): New.
24694
24695 2010-06-01  Jan Hubicka  <jh@suse.cz>
24696
24697         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
24698
24699 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
24700
24701         * tree.h (build_nt_call_list): Delete.
24702         * tree.c (build_nt_call_list): Delete.
24703
24704 2010-06-01  Jan Hubicka  <jh@suse.cz>
24705
24706         * fwprop.c: Make emit-rtl.h include last.
24707         * rtlanal.c: Include emit-rtl.h.
24708         * genautomata.c: Output emit-rtl include into insn-automata.c
24709         * df-scan.c: Include emit-rtl.h.
24710         * haifa-sched.c: Indlude emit-rtl.h.
24711         * mode-switching.c: Indlude emit-rtl.h.
24712         * graph.c: Indlude emit-rtl.h.
24713         * sel-sched.c: Include emit-rtl.h.
24714         * sel-sched-ir.c: Include emit-rtl.h.
24715         * ira-build.c: Include emit-rtl.h.
24716         * emit-rtl.c (first_insn, last_insn): Remove defines.
24717         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
24718         Move to emit-rtl.h.
24719         (set_new_first_and_last_insn, get_last_insn_anywhere,
24720         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
24721         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
24722         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
24723         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
24724         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
24725         Use accessor functions.
24726         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24727          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24728         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24729         mem_expr_equal_p): Move here from rtl.h.
24730         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
24731         Move here from emit-rtl.c; make inline.
24732         * cfglayout.h: Include emit-rtl.h.
24733         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24734          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24735         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24736         mem_expr_equal_p, get_insns, set_first-insn,
24737         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
24738         * reg-stack.c: Include emit-rtl.h.
24739         * dce.c: Likewise.
24740
24741 2010-06-01  Jan Hubicka  <jh@suse.cz>
24742
24743         * cgraph.h (tree_function_versioning): Update prototype.
24744         (cgraph_function_versioning): Update prototype.
24745         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
24746         bitmap.
24747         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
24748         (cgraph_materialize_clone, save_inline_function_body): Update use of
24749         tree_function_versioning.
24750         * tree-inline.c (copy_bb): Look for previous copied block to link
24751         after; fix debug output.
24752         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
24753         (copy_body): Likewise.
24754         (expand_call_inline): Update use of copy_body.
24755         (tree_function_versioning): Update use of copy body; accept
24756         blocks_to_copy and new_entry.
24757
24758 2010-06-01  Jan Hubicka  <jh@suse.cz>
24759
24760         * gegenrtl.c: Remove unnecesary prototypes.
24761         (gendecl): Remove.
24762         (gendef): Produce static inline.
24763         (gencode): Remove.
24764         (main): Do not decode parameters; generate header only.
24765         * Makefile.in (genrtl.c): Remove.
24766
24767 2010-06-01  Jan Hubicka  <jh@suse.cz>
24768
24769         * tree-switch-conversion.c (build_one_array): Make it readonly.
24770
24771 2010-06-01  Richard Guenther  <rguenther@suse.de>
24772
24773         * optabs.c (init_optabs): Guard all accesses to reinit.
24774         * ipa-pure-const.c (propagate): Fix another typo.
24775         * opts.c (common_handle_option): Split assignment to bool.
24776         * c-opts.c (c_common_handle_option): Likewise.
24777
24778 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
24779             Matthew Gingell  <gingell@adacore.com>
24780
24781         * doc/invoke.texi: Mention -fdump-ada-spec.
24782         * tree-dump.c (dump_files): Add ada-spec.
24783         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
24784         * tree-pass.h (tree_dump_index): Add TDI_ada.
24785         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
24786         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
24787         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
24788         * c-decl.c: Include c-ada-spec.h.
24789         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
24790         functions.
24791         (c_write_global_declarations): Add handling of -fdump-ada-spec.
24792         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
24793         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
24794         * c-ada-spec.h, c-ada-spec.c: New files.
24795
24796 2010-06-01  Richard Guenther  <rguenther@suse.de>
24797
24798         PR lto/43853
24799         * ipa-pure-const.c (get_function_state): Hand back varying state
24800         if we do not have one.
24801         (has_function_state): New function.
24802         (duplicate_node_data): Adjust.
24803         (remove_node_data): Likewise.
24804         (pure_const_write_summary): Likewise.
24805         (propagate): Likewise.  Fix typo.
24806
24807 2010-06-01  Jan Hubicka  <jh@suse.cz>
24808
24809         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
24810         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
24811         (execute_all_ipa_transforms): Do not play with the states.
24812
24813 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
24814
24815         * config/arm/t-linux-androideabi: New.
24816         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
24817
24818 2010-06-01  Jan Hubicka  <jh@suse.cz>
24819
24820         * tree-inline.c (estimate_num_insns): For stdarg functions look
24821         into call statement to count cost of argument passing.
24822
24823 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
24824
24825         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
24826         argument for fprintf.
24827         (ix86_output_addr_diff_elt): Likewise.
24828         (x86_function_profiler): Likewise.
24829         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
24830         (LPREFIX): Likewise.
24831         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
24832
24833 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
24834
24835         PR target/44338
24836         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
24837         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
24838         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
24839         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
24840         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
24841         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
24842         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
24843         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
24844         TARGET_FUSED_MADD.
24845
24846 2010-05-31  Jan Hubicka  <jh@suse.cz>
24847
24848         * tree.h (tree_range_check_failed): Declare noreturn.
24849
24850 2010-05-31  Jan Hubicka  <jh@suse.cz>
24851
24852         * gimple.c (gimple_call_builtin_p): New function.
24853         * gimple.h (gimple_call_builtin_p): Declare.
24854         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
24855         to exit.
24856         (execute_warn_function_return): BUILT_IN_RETURN is return.
24857         (split_critical_edges): Return edges are not critical.
24858         (is_ctrl_altering_stmt): Builtin_in_return is altering.
24859         (gimple_verify_flow_info): Handle built_in_return.
24860         (execute_warn_function_return): Handle built_in_return.
24861         * ipa-pure-const.c (check_call): Ignore builtin_return.
24862
24863 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
24864
24865         PR middle-end/44337
24866         * expr.c (expand_assignment): Don't store anything for out-of-bounds
24867         array accesses with non-MEM.
24868
24869         PR tree-optimization/44182
24870         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
24871         newly needs to end a bb is followed by debug stmts, instead return
24872         true from the function at the end.
24873         (maybe_move_debug_stmts_to_successors): New function.
24874         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
24875
24876 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
24877
24878         PR target/44161
24879         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
24880
24881 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
24882
24883         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
24884         for nested functions in non-optimized compilation.
24885
24886 2010-05-31  Richard Guenther  <rguenther@suse.de>
24887
24888         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
24889
24890 2010-05-30  Jan Hubicka  <jh@suse.cz>
24891
24892         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
24893
24894 2010-05-30  Richard Guenther  <rguenther@suse.de>
24895
24896         PR lto/42975
24897         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
24898         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
24899         no longer needed.
24900
24901 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
24902
24903         * config/darwin.c (output_objc_section_asm_op): Add comment.
24904         (name_needs_quotes): Add '_' to list of valid comment chars.
24905         (machopic_output_function_base_name): Remove unneeded quotes.
24906         (darwin_encode_section_info): Adjust asm whitespace.
24907         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
24908         (ASM_OUTPUT_LOCAL): Ditto.
24909         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
24910         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
24911         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
24912
24913 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
24914
24915         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
24916         RS6000_OUTPUT_BASENAME unconditionally.
24917         (rs6000_output_function_epilogue): Likewise.
24918
24919 2010-05-30  Jan Hubicka  <jh@suse.cz>
24920
24921         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
24922         nodes.
24923
24924 2010-05-30  Richard Guenther  <rguenther@suse.de>
24925
24926         * tree-cfg.c (verify_gimple_assign_single): Implement
24927         verification for COND_EXPR rhs.
24928
24929 2010-05-30  Jan Hubicka  <jh@suse.cz>
24930
24931         * cgraph.h (cgraph_dump_file): Declare.
24932         * cgraphunit.c (cgraph_dump_file): Export.
24933         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
24934
24935 2010-05-30  Jan Hubicka  <jh@suse.cz>
24936
24937         * dwarf2out.c (reference_to_unused,
24938         premark_types_used_by_global_vars_helper): Avoid creation of new
24939         varpool nodes.
24940
24941 2010-05-30  Jan Hubicka  <jh@suse.cz>
24942
24943         * cgraph.h (cgraph_node_cannot_return,
24944         cgraph_edge_cannot_lead_to_return): New functions.
24945         * cgraph.c (cgraph_node_cannot_return,
24946         cgraph_edge_cannot_lead_to_return): Use them.
24947         * ipa-pure-const.c (pure_const_names): New static var.
24948         (check_call): Handle calls not leading to return.
24949         (pure_const_read_summary): Dump info read.
24950         (propagate): Dump info about propagation process; ignore side effects
24951         of functions not leading to exit; fix handling of pure functions.
24952
24953 2010-05-30  Jan Hubicka  <jh@suse.cz>
24954
24955         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
24956         for tail call epilogues.
24957
24958 2010-05-30  Jan Hubicka  <jh@suse.cz>
24959
24960         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
24961         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
24962         dump files.
24963
24964 2010-05-29  Jan Hubicka  <jh@suse.cz>
24965
24966         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
24967         node; remove references in node we no longer keep in cgrpah but need
24968         body of.
24969
24970 2010-05-29  Jan Hubicka  <jh@suse.cz>
24971
24972         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
24973
24974 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24975
24976         PR target/44165
24977         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
24978
24979 2010-05-29  Jan Hubicka  <jh@suse.cz>
24980
24981         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
24982         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
24983         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
24984         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
24985         debug_names_replaced_by, debug_update_ssa): Likewise.
24986         * sbitmap.c (debug_sbitmap): Likewise.
24987         * genrecog.c (debug_decision, debug_decision_list): Likewise.
24988         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
24989         debug_tree_chain): Likewise.
24990         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
24991         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
24992         * optabs.c (debug_optab_libfuncs): Likewise.
24993         (verify_loop_closed_ssa): Likewise.
24994         * value-prof.c (verify_histograms): Likewise.
24995         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
24996         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
24997         * cfghooks.c (verify_flow_info): Likewise.
24998         * fold-const.c (debug_fold_checksum): Likewise.
24999         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25000         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25001         Likewise.
25002         * omega.c (debug_omega_problem): Likewise.
25003         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25004         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25005         * dominance.c (verify_dominators, debug_dominance_info,
25006         debug_dominance_tree): Likewise.
25007         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25008         * df_regno_debug, df_ref_debug,
25009         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25010         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25011         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25012         * sel-sched.c (debug_state): Likewise.
25013         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25014         Likewise.
25015         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25016         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25017         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25018         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25019         Likewise.
25020         * c-pretty-print.c (debug_c_tree): Likewise.
25021         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
25022         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
25023         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
25024         * ebitmap.c (debug_ebitmap): Likewise.
25025         * function.c (debug_find_var_in_block_tree): Likewise.
25026         * print-rtl.c (debug_rtx): Likewise.
25027         (debug_rtx_count): Likewise.
25028         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
25029         * stor-layout.c (debug_rli): Likewise.
25030         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
25031         * tree-data-ref.c (debug_data_references,
25032         debug_data_dependence_relations, debug_data_reference,
25033         debug_data_dependence_relation, debug_rdg_vertex,
25034         debug_rdg_component, debug_rdg): Likewise.
25035         * tree-affine.c (debug_aff): Likewise.
25036         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
25037         Likewise.
25038         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
25039         * emit-rtl.c (verify_rtl_sharing): Likewise.
25040         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
25041         debug_value_expressions): Likewise.
25042         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
25043         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
25044         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
25045         * cfglayout.c (verify_insn_chain): Likewise.
25046         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
25047         debug_clast_stmt, debug_generated_program): Likewise.
25048         * ggc-page.c (debug_print_page_list): Likewise.
25049         * tree-ssa-ter.c (debug_ter): Likewise.
25050         * graphite-dependences.c (debug_pddr): Likewise.
25051         * sched-deps.c (debug_ds): Likewise.
25052         * tree-ssa.c (verify_ssa): Likewise.
25053         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
25054         debug_scattering_functions, debug_iteration_domains, debug_pdr,
25055         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
25056         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
25057         * tree-inline.c (debug_find_tree): Likewise.
25058         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
25059         debug_ppl_powerset_matrix): Likewise.
25060         * var-tracking.c (debug_dv): Likewise.
25061         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
25062         * cfgloop.c (verify_loop_structure): Likewise.
25063         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
25064         * c-common.c (verify_sequence_points): Likewise.
25065         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
25066         debug_candidates, debug_rgn_dependencies): Likewise.
25067         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
25068         * debug_constraint_graph, debug_solution_for_var,
25069         debug_sa_points_to_info): Likewise.
25070         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
25071         Likewie.
25072         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
25073         debug_loops, debug_loop, debug_loop_num): Likewise.
25074         * passes.c (debug_pass): Likewise.
25075         (dump_properties): Likewise; add cfglayout property.
25076         (debug_properties): Likewise.
25077         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
25078         * varpool.c (debug_varpool): Likewise.
25079         * regcprop.c (debug_value_data): Likewise.
25080         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
25081         debug_immediate_uses_for): Likewise.
25082
25083 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25084
25085         PR bootstrap/44315
25086         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
25087         Filter out insn-flags.h.
25088
25089 2010-05-29  Jan Hubicka  <jh@suse.cz>
25090
25091         * cgraph.h (struct varpool_node_set_def,
25092         struct cgraph_node_set_def): Remove unused AUX pointer.
25093         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
25094         VEC_empty macro.
25095
25096 2010-05-29  Jan Hubicka  <jh@suse.cz>
25097
25098         PR middle-end/44324
25099         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
25100
25101 2010-05-29  Richard Guenther  <rguenther@suse.de>
25102
25103         * lto-streamer.c (cached_bp): New global variable.
25104         (bitpack_create): Return the cached bitpack, if available.
25105         (bitpack_delete): Clear and cache the bitpack, if appropriate.
25106         (bp_pack_value): Remove redundant asserts.
25107
25108 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25109
25110         PR middle-end/44306
25111         * tree-if-conv.c (is_true_predicate): New.
25112         (is_predicated): Use is_true_predicate.
25113         (add_to_predicate_list): Same.  Do not use unshare_expr.
25114         (add_to_dst_predicate_list): Same.
25115
25116 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25117
25118         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
25119         field on edges.
25120         (predicate_bbs): Same.
25121         (clean_predicate_lists): Same.
25122         (find_phi_replacement_condition): Do not AND the predicate from
25123         edge->aux.
25124
25125 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25126
25127         PR bootstrap/44315
25128         * Makefile.in (build/gencondmd.o): Add a missing `\'.
25129
25130 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25131
25132         PR target/44261
25133         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
25134         (negdf2): Adjust expander pattern and use negdf2_slow.
25135         (negsf2): Likewise.
25136
25137 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
25138
25139         * basic-block.h (struct control_flow_graph): Move last_label_uid field
25140         up.
25141         * df.h (struct df_base_ref): Move regno field up.
25142         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
25143         * expr.h (struct separate_ops): Move location field up.
25144         * optabs.h (struct optab_d): Move libcall_basename field down.
25145         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
25146         * config/i386/i386.h (struct machine_function): Convert call_abi field
25147         into a bitfield.  Move cfa field to the end of the structure.
25148
25149 2010-05-29  Jan Hubicka  <jh@suse.cz>
25150
25151         * varpool.c (varpool_get_node): Fix lookup.
25152
25153 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25154
25155         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
25156         RTL specific prototypes with #ifdef RTX_CODE.
25157         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
25158         * config/spu/t-spu-elf: Fix dependencies.
25159
25160         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
25161
25162 2010-05-29  Mike Stump  <mikestump@comcast.net>
25163
25164         PR bootstrap/44315
25165         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
25166         TM_H when building to avoid dependency loops.
25167
25168 2010-05-29  Jan Hubicka  <jh@suse.cz>
25169
25170         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
25171         refs and body; not the whole node for masters of materialized clones.
25172
25173 2010-05-29  Mike Stump  <mikestump@comcast.net>
25174
25175         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
25176
25177 2010-05-29  Jan Hubicka  <jh@suse.cz>
25178
25179         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
25180         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
25181         use of clone_function_name.
25182         * cgraph.h (cgraph_create_virtual_clone,
25183         cgraph_function_versioning): update prototypes.
25184         (clone_function_name): Declare.
25185         * ipa-cp.c (ipcp_insert_stage): Update call of
25186         cgraph_create_virtual_clone.
25187         * omp-low.c (create_omp_child_function_name): Use
25188         cgraph_create_virtual_clone.
25189         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
25190         (cgraph_function_versioning): Take SUFFIX argument; produce new name
25191         and make decl local.
25192
25193 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25194
25195         * vec.h: Include statistics.h
25196         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
25197         with VEC_H.
25198
25199 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25200
25201         * c-lex.c: Do not include c-tree.h.
25202         * c-pretty-print.c: Likewise.
25203         * c-opts.c: Likewise.
25204         * c-gimplify.c: Likewise.
25205         * c-common.c: Likewise.
25206         * c-dump.c: Likewise.  Include c-common.h.
25207
25208 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25209
25210         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
25211         before including diagnostic-core.h.
25212         (c_cpp_error): New prototype moved from c-tree.h.
25213         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
25214         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
25215         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
25216         (c_cpp_error): Prototype moved to c-common.h.
25217         * Makefile.in: Update dependency for C_COMMON_H.
25218
25219 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25220
25221         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
25222         * c-common.c (c_register_addr_space): Remove here.
25223         * c-decl.c (c_register_addr_space): Re-add here.
25224
25225 2010-05-28  Mike Stump  <mikestump@comcast.net>
25226
25227         * config/darwin-c.c: Remove c-tree.h include.
25228
25229 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25230
25231         * gcc.c: Include diagnostic.h.
25232         (error_count): Remove.  All users changed to use errorcount.
25233         (programname): Remove.  All users changed to use progname.
25234         (fancy_abort, internal_error, fatal_error, error, warning, inform,
25235         fnotice): Remove.
25236         (execute): Don't include "Internal error" and bug reporting
25237         information in argument of internal_error call.
25238         (process_command): Don't increment error_count after calling
25239         perror_with_name.
25240         (input_filename): Rename to gcc_input_filename.  All users
25241         changed.
25242         (main): Call diagnostic_initialize.  Register delete_temp_files
25243         with atexit.  Use seen_error to test for errors.
25244         * gcc.h: Include diagnostic-core.h.
25245         (fatal_error, error, warning): Remove.
25246         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
25247         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
25248         (gcc.o): Update dependencies.
25249
25250 2010-05-28  Jeff Law  <law@redhat.com>
25251
25252         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
25253         functions.
25254         * ira.h (ira_bad_reload_regno): Declare
25255         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
25256
25257         * ira-color.c (update_curr_costs): Free updated hard reg costs.
25258         (ira_reassign_conflict_allocnos): Remove bogus asserts.
25259         (allocno_reload_assign): Likewise.
25260
25261 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
25262
25263         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
25264         build1_stat.
25265
25266 2010-05-28  Richard Guenther  <rguenther@suse.de>
25267
25268         PR lto/44312
25269         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
25270         Stream fixed-point constants mode.
25271         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
25272         and TYPE_PRECISION.
25273         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
25274         Stream fixed-point constants mode.
25275         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
25276         and TYPE_PRECISION.
25277
25278 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25279
25280         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
25281         only place it was called from.
25282         (number_of_latch_executions): Do not return chrec_dont_know when the
25283         may_be_zero is a runtime condition: instead, return a COND_EXPR
25284         including the may_be_zero condition.
25285         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
25286         of nb_iterations.
25287         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
25288         COND_EXPRs.
25289
25290 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25291
25292         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
25293         generate COND_EXPRs for degenerate_phi_result.
25294
25295 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
25296
25297         PR middle-end/44293
25298         * tree-if-conv.c (if_convertible_loop_p): Check the
25299         if-convertibility of phi nodes in non predicated BBs.
25300
25301 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25302
25303         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
25304
25305 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25306
25307         PR driver/15303
25308         * gcc.c (inform, warning, inform): New functions.
25309         (fatal_ice): Rename to internal_error; change cmsgid parameter to
25310         gmsgid.  All callers changed.
25311         (notice): Rename to fnotice; add parameter fp.  All callers changed.
25312         (fatal_error): Rename to fatal_signal.  All users changed.
25313         (fatal): Rename to fatal_error; change cmsgid parameter to
25314         gmsgid.  All callers changed.
25315         (process_command): Use warning instead of error for warnings.
25316         (end_going_arg): Don't use _() around argument of error.
25317         (do_spec_1): Use inform for message from %n specs.  Use warning
25318         instead of error for warnings.
25319         (main): Use inform for comparison messages.  Use warning for
25320         message about unused linker input.
25321         (error): Increment error_count.  Print "error: ".
25322         * gcc.h (fatal): Change to fatal_error.
25323         (warning): Declare.
25324         * config/darwin-driver.c (darwin_default_min_version): Use warning
25325         instead of fprintf for warnings.
25326         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
25327
25328 2010-05-28  Julian Brown  <julian@codesourcery.com>
25329
25330         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
25331         (*thumb2_addsi3_compare0_scratch): New.
25332         * config/arm/constraints.md (Pv): New.
25333         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
25334         for ARM mode only.
25335         (*addsi3_compare0_scratch): Likewise.
25336
25337 2010-05-28  Jan Hubicka  <jh@suse.cz>
25338
25339         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
25340         check.
25341         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
25342         only on local statics.
25343
25344 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
25345
25346         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
25347
25348 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
25349
25350         PR bootstrap/44314
25351         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
25352         (OPTION_GLIBC): Define.
25353
25354 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
25355
25356         PR debug/41048
25357         * dwarf2out.c (double_int_type_size_in_bits): New function.
25358         (round_up_to_align): Change first argument and return value to
25359         double_int.
25360         (field_byte_offset): Work internally on double_ints.
25361
25362         PR target/43636
25363         * builtins.c (expand_movstr): Use a temporary pseudo instead
25364         of target even when target is not NULL and not const0_rtx, but
25365         fails movstr predicate.
25366         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
25367
25368 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
25369
25370         * final.c (rest_of_clean_state): Use %m in errors instead of
25371         strerror (errno).
25372         * gengtype.c (read_input_list, close_output_files): Use xstrerror
25373         instead of strerror.
25374         * toplev.c (process_options): Use %m in errors instead of strerror
25375         (errno).
25376         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
25377         (errno).
25378
25379 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
25380
25381         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
25382         (ix86_canonical_va_list_type): Make static.  Add declaration.
25383         (ix86_enum_va_list): Make static.  Reindent.
25384         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
25385         (ix86_canonical_va_list_type): Ditto.
25386         (ix86_enum_va_list): Ditto.
25387
25388 2010-05-28  Richard Guenther  <rguenther@suse.de>
25389
25390         * lto-wrapper.c (run_gcc): With -save-temps generate a
25391         user-visible ltrans filename.  Fixup ltrans unit numbering.
25392
25393 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
25394
25395         * c-common.c (c_common_nodes_and_builtins): Replace use
25396         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
25397         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
25398         to ix86_enum_va_list.
25399         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
25400         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
25401         (TARGET_ENUM_VA_LIST_P): Add hook description.
25402         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
25403         * target.h (gcc_target): Add enum_va_list hook.
25404
25405         PR bootstrap/44299
25406         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
25407         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
25408         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
25409
25410 2010-05-28  Alan Modra  <amodra@gmail.com>
25411
25412         PR target/44266
25413         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
25414         emit_library_call machinery to set up __tls_get_addr calls.
25415
25416 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25417
25418         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
25419
25420 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
25421
25422         Revert fix for PR c++/44188
25423         * c-common.c (is_typedef_decl): Revert the moving of  this
25424         definition ...
25425         * tree.c (is_typedef_decl): ... here.
25426         (typdef_variant_p): Revert the moving of this  definition
25427         here from cp/tree.c.
25428         * c-common.h (is_typedef_decl): Revert the moving of this
25429         declaration ...
25430         * tree.h (is_typedef_decl): ... here.
25431         (typedef_variant_p): Revert the moving of this  declaration here
25432         from cp/cp-tree.h
25433         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
25434         (gen_tagged_type_die): Revert the splitting out of ...
25435         (gen_type_die_with_usage): ... this function. Revert the anonymous
25436         tagged type handling.
25437         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
25438         typedefs naming anonymous tagged types.
25439
25440 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
25441
25442         * config/rs6000/rs6000-modes.def (PSImode): Delete.
25443
25444 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
25445
25446         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
25447         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
25448         throughout.
25449         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
25450         "xer" to "ca".
25451         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
25452         XER_REGS to CA_REGS throughout.
25453         * config/rs6000/rs6000.h: Same.
25454         (ADDITIONAL_REGISTER_NAMES): Add "xer".
25455         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
25456         that mode_iterator "P" is the size for arithmetic carries as well.
25457         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
25458
25459 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
25460
25461         PR bootstrap/44255
25462         * combine.c (struct rtx_subst_pair): Define unconditionally.
25463         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
25464         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
25465         Call make_compound_operation on pair->to.
25466         (propagate_for_debug): Don't call make_compound_operation here.
25467         Always use simplify_replace_fn_rtx.
25468
25469 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
25470
25471         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
25472         * config/xtensa/xtensa.c (override_options): Check
25473           TARGET_FORCE_NO_PIC and set flag_pic.
25474         * config/xtensa/xtensa.opt: Document -mforce-no-pic
25475
25476 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25477
25478         PR bootstrap/44299
25479         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
25480         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
25481
25482 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
25483
25484         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
25485         toplev.h.
25486         * diagnostic.c: Don't include toplev.h.
25487         (progname): Define.  Moved from toplev.c.
25488         (seen_error): New function.
25489         * diagnostic.h: Include diagnostic-core.h.
25490         (diagnostic_t, emit_diagnostic): Don't declare here.
25491         * toplev.c (progname): Move to toplev.c.
25492         (emit_debug_global_declarations, compile_file, finalize,
25493         do_compile, toplev_main): Use seen_error.
25494         * toplev.h: Include diagnostic-core.h.
25495         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
25496         internal_error, warning, warning_at, error, error_n, error_at,
25497         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
25498         verbatim, fnotice, progname): Move to diagnostic-core.h.
25499         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
25500         (expand_builtin_expect): Use seen_error.
25501         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
25502         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
25503         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
25504         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
25505         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
25506         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
25507         errorcount for errors.
25508         * c-opts.c (c_common_finish): Use seen_error.
25509         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25510         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
25511         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
25512         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
25513         (get_coverage_counts): Use seen_error.
25514         * dwarf2out.c (dwarf2out_finish): Use seen_error.
25515         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
25516         gimplify_body): Use seen_error.
25517         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
25518         * ipa-pure-const.c (gate_pure_const): Use seen_error.
25519         * ipa-reference.c (gate_reference): Use seen_error.
25520         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
25521         * lambda-code.c: Include diagnostic-core.h instead of
25522         diagnostic.h.
25523         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25524         * lto-compress.c: Include diagnostic-core.h instead of
25525         diagnostic.h.
25526         * lto-section-in.c: Include diagnostic-core.h instead of
25527         diagnostic.h.
25528         * lto-streamer-out.c: Include diagnostic-core.h instead of
25529         diagnostic.h.
25530         * lto-streamer.c: Include diagnostic-core.h instead of
25531         diagnostic.h.
25532         (gate_lto_out): Use seen_error.
25533         * matrix-reorg.c: Include diagnostic-core.h instead of
25534         diagnostic.h.
25535         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
25536         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
25537         (gate_expand_omp, lower_omp_1): Use seen_error.
25538         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
25539         (rest_of_decl_compilation, rest_of_type_compilation,
25540         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
25541         * tree-cfg.c (label_to_block_fn): Use seen_error.
25542         * tree-inline.c (optimize_inline_calls): Use seen_error.
25543         * tree-mudflap.c (mudflap_finish_file): Use
25544         seen_error.
25545         * tree-optimize.c (gate_all_optimizations,
25546         gate_all_early_local_passes, gate_all_early_optimizations): Use
25547         seen_error.
25548         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
25549         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
25550         (varpool_remove_unreferenced_decls,
25551         varpool_assemble_pending_decls): Use seen_error.
25552         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
25553         (TOPLEV_H, DIAGNOSTIC_H): Update.
25554         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
25555         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
25556         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
25557         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
25558         coverage.o, lambda-code.o): Update dependencies.
25559
25560 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25561
25562         PR c++/44188
25563         * c-common.c (is_typedef_decl): Move this definition ...
25564         * tree.c (is_typedef_decl): ... here.
25565         (typdef_variant_p): Move definition here from cp/tree.c.
25566         * c-common.h (is_typedef_decl): Move this declaration ...
25567         * tree.h (is_typedef_decl): ... here.
25568         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25569         * dwarf2out.c (is_naming_typedef_decl): New function.
25570         (gen_tagged_type_die): Split out of ...
25571         (gen_type_die_with_usage): ... this function. When an anonymous
25572         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25573         is emitted for the typedef.
25574         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25575         anonymous tagged types.
25576
25577 2010-05-27  Jason Merrill  <jason@redhat.com>
25578
25579         * print-tree.c (debug_vec_tree): New fn.
25580         (print_vec_tree): New fn.
25581         * tree.h: Declare them.
25582         * gdbinit.in (pvt): New command.
25583
25584         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
25585
25586         * gdbinit.in (pdd): New command.
25587
25588 2010-05-27  Jan Hubicka  <jh@suse.cz>
25589
25590         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
25591         (update_caller_keys): Return early if there are no callers;
25592         only update fibheap when decresing the key.
25593         (update_callee_keys): Avoid recursion.
25594         (decide_inlining_of_small_functions): When badness does not match;
25595         re-insert into fibheap.
25596
25597 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
25598
25599         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
25600         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
25601         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
25602         (ALL_HOST_OBJS): Now a union of the above two.
25603         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
25604         all files in ALL_HOST_FRONTEND_OBJS.
25605         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
25606
25607         * c-common.c: Pretend to be a backend file by undefining
25608         IN_GCC_FRONTEND (still need rtl.h here).
25609
25610 2010-05-27  Jan Hubicka  <jh@suse.cz>
25611
25612         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
25613         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
25614
25615 2010-05-27  Jan Hubicka  <jh@suse.cz>
25616
25617         * sched-ebb.c: Rename struct deps to struct deps_desc.
25618         * ddg.c: Likewise.
25619         * sel-sched-ir.c: Likewise.
25620         * sched-deps.c: Likewise.
25621         * sched-int.h: Likewise.
25622         * sched-rgn.c: Likewise.
25623
25624 2010-05-27  Jon Beniston  <jon@beniston.com>
25625
25626         PR 43726
25627         * config/lm32/lm32.h: Remove definition of
25628         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
25629
25630 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
25631
25632         PR lto/44230
25633         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
25634
25635 2010-05-27  Richard Guenther  <rguenther@suse.de>
25636
25637         PR tree-optimization/44284
25638         * tree-vect-stmts.c (vectorizable_assignment): Handle
25639         sign-changing conversions as simple copy.
25640
25641 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25642
25643         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
25644         Bionic C library.
25645         (__gthread_active_p): Check for pthread_create if compiling against
25646         Bionic C library.
25647
25648 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25649
25650         Support compilation for Android platform.  Reimplement -mandroid.
25651
25652         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
25653         (*android*): Set ANDROID_DEFAULT.
25654         (arm*-*-linux*): Include linux-android.h.
25655         (arm*-*-eabi*): Don't include previous -mandroid implementation.
25656         * config/arm/eabi.h: Remove, move Android-specific parts ...
25657         * config/linux-android.h: ... here.  New file.
25658         * config/arm/eabi.opt: Rename to ...
25659         * config/linux-android.opt: ... this.
25660         (mandroid): Allow -mno-android option.  Initialize based on
25661         ANDROID_DEFAULT.
25662         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
25663         Move logic to corresponding LINUX_TARGET_* macros.
25664         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
25665         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
25666         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
25667         Android definitions.
25668         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
25669         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
25670         Document.
25671
25672 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
25673
25674         Add support for Bionic C library
25675
25676         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
25677         macro.
25678         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
25679         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
25680
25681         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
25682         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
25683         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
25684         to support multiple C libraries.  Handle Bionic.
25685         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
25686         (BIONIC_DYNAMIC_LINKER64): Define.
25687         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
25688         Update.
25689         (TARGET_HAS_SINCOS): Enable for Bionic.
25690
25691         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
25692         the last option specified on command line take effect.
25693         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
25694         (mbionic): New.
25695         (mglibc, muclibc): Update.
25696
25697         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
25698         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
25699         DEFAULT_LIBC.
25700
25701         * doc/invoke.texi (-mglibc, -muclibc): Update.
25702         (-mbionic): Document.
25703
25704 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25705
25706         * c-common.h (c_register_addr_space): Add prototype.
25707         (ADDR_SPACE_KEYWORD): Remove.
25708         * c-common.c (c_register_addr_space): New function.
25709         (c_addr_space_name): Reimplement.
25710         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
25711
25712         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
25713         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
25714
25715         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
25716         Remove TARGET_ADDR_SPACE_KEYWORDS.
25717
25718 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
25719
25720         * input.c: New file.
25721         * input.h (main_input_filename): Move declaration to toplev.h.
25722         * toplev.c (input_location, line_table): Move to input.c
25723         * toplev.h (main_input_filename): Move declaration from input.h.
25724         * tree.c (expand_location): Move to input.c.
25725         * Makefile.in (OBJS-common): Add input.o.
25726         (input.o): Add dependencies.
25727
25728 2010-05-27  Richard Guenther  <rguenther@suse.de>
25729
25730         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
25731         for non-existant files.
25732         (fork_execute): Mark args_name file as deleted.
25733
25734 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25735
25736         PR bootstrp/44287
25737         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
25738         (narrow_signed_type): Likewise.
25739
25740 2010-05-26  Jan Hubicka  <jh@suse.cz>
25741
25742         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
25743         edge only when checking is enabled; check using former_clone_of;
25744         check inline clones too.
25745         (cgraph_materialize_clone): Record former_clone_of pointer.
25746         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
25747         combining redirections; dump args_to_skip bitmap
25748         (cgraph_materialize_all_clones): Do no redirection here.
25749         * ipa-inline.c (inline_transform): Do redirection here.
25750         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
25751         cheking only).
25752
25753 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25754
25755         * config/avr/avr-c.c: Do not include regs.h.
25756         Include cpplib.h for cpp_define and tree.h for c-common.h.
25757         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
25758         * config/avr/t-avr: Fix dependencies for avr-c.o.
25759
25760 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25761
25762         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
25763         string instead of SYMBOL_REF rtx.
25764         * rtl.h (set_stack_check_libfunc): Move prototype from here...
25765         * libfuncs.h: ...to here.  Adjust for explow.c change.
25766
25767 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25768
25769         * pretty-print.c: Don't include ggc.h.
25770         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
25771         (identifier_to_locale): Use them for allocation.
25772         * pretty-print.h (identifier_to_locale_alloc,
25773         identifier_to_locale_free): Declare.
25774         * toplev.c (alloc_for_identifier_to_locale): New.
25775         (general_init): Set identifier_to_locale_alloc and
25776         identifier_to_locale_free.
25777         * Makefile.in (pretty-print.o): Update dependencies.
25778
25779 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
25780
25781         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
25782         pointer types if they have different alignment or mode.
25783
25784 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
25785
25786         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25787         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25788         * config/sparc/sparc-protos.h (function_value): Remove declaration.
25789         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
25790         sparc_function_value_regno_p): New functions.
25791         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25792         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25793         (function_value): Rename to...
25794         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
25795         argument to 'outgoing'.
25796         (function_arg_record_value, function_arg_union_value,
25797         function_arg_vector_value): Update comment.
25798
25799 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
25800
25801         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
25802         (fde_needed_for_eh_p): New predicate.
25803         (output_call_frame_info): Use it throughout to decide whether FDEs
25804         are needed for EH purpose.
25805         (dwarf2out_begin_prologue): Reorder assignments.
25806
25807 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25808
25809         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
25810         special case loop->header.
25811         (is_predicated): New.
25812         (if_convertible_loop_p): Call it.
25813
25814 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25815
25816         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
25817         iterator in parameter.  Do not generate code during the analysis.
25818         (tree_if_convert_cond_stmt): Removed.
25819         (tree_if_convert_stmt): Removed.
25820         (predicate_bbs): New.
25821         (if_convertible_loop_p): Call predicate_bbs.
25822         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
25823         now contains all the analysis part.
25824
25825 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25826
25827         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
25828         statements in the analysis part.
25829         (tree_if_convert_stmt): Update comment.
25830         (remove_conditions_and_labels): New.
25831         (combine_blocks): Call remove_conditions_and_labels.
25832         (tree_if_conversion): Update comment.
25833
25834 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25835
25836         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
25837         than 2 predecessors or more than 2 successors.
25838
25839 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25840
25841         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
25842         of loops in which the data dependence analysis fails.
25843
25844 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25845
25846         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
25847         CDI_POST_DOMINATORS.
25848         (tree_if_conversion): Same.
25849
25850 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25851
25852         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
25853
25854 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25855
25856         * tree-if-conv.c: Update copyright years.  Fix comments.
25857         Fix indentation.
25858
25859 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
25860
25861         * builtin-types.def (BT_INT128): New primitive type.
25862         (BT_UINT128): Likewise.
25863         * c-common.c (c_common_r): Add __int128 keyword.
25864         (c_common_type_for_size): Handle __int128.
25865         (c_common_type_for_mode): Likewise.
25866         (c_common_signed_or_unsigned_type): Likewise.
25867         (c_common_nodes_and_builtins): Add builtin type
25868         if target supports 128-bit integer scalar.
25869         * c-common.h (enum rid): Add RID_INT128.
25870         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
25871         if target supports 128-bit integer scalar.
25872         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
25873         (finish_declspecs): Likewise.
25874         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
25875         (c_token_starts_declspecs): Likewise.
25876         (c_parser_declspecs): Likewise.
25877         (c_parser_attributes): Likewise.
25878         (c_parser_objc_selector): Likewise.
25879         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
25880         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
25881         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
25882         * tree.c (make_or_reuse_type): Likewise.
25883         (make_unsigned_type): Likewise.
25884         (build_common_tree_nodes_2): Likewise.
25885         * tree.h (enum integer_type_kind): Add itk_int128 and
25886         itk_unsigned_int128.
25887         (int128_integer_type_node): New define.
25888         (int128_unsigned_type_node): New define.
25889         * doc/extend.texi: Add documentation about __int128 type.
25890
25891 2010-05-26  Richard Guenther  <rguenther@suse.de>
25892
25893         * tree-ssa-sccvn.c (copy_nary): Adjust.
25894         (copy_phis): Rename to ...
25895         (copy_phi): ... this.  Adjust.
25896         (copy_references): Rename to ...
25897         (copy_reference): ... this.  Adjust.
25898         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
25899         result into the valid table.
25900
25901 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25902
25903         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
25904         insn-config.h, insn-codes.h, recog.h, and optabs.h.
25905
25906 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25907
25908         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
25909
25910 2010-05-26  Richard Guenther  <rguenther@suse.de>
25911
25912         * opts.c (common_handle_option): Handle OPT_Ofast.
25913
25914 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25915
25916         * diagnostic.c: Don't include opts.h.
25917         (permissive_error_option): Define.
25918         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
25919         for classify_diagnostic.  Don't use memset for
25920         classify_diagnostic.  Initialize new and recently added fields.
25921         (diagnostic_classify_diagnostic): Use context->n_opts instead of
25922         N_OPTS.
25923         (diagnostic_report_diagnostic): Pass context parameter to
25924         diagnostic_report_warnings_p.  Use option_enabled and option_name
25925         hooks from context.
25926         (emit_diagnostic): Use permissive_error_option.
25927         (permerror): Likewise.
25928         * diagnostic.h: Don't include options.h.
25929         (struct diagnostic_context): Add n_opts, opt_permissive,
25930         inhibit_warnings, warn_system_headers, option_enabled and
25931         option_name fields.  Change classify_diagnostic to a pointer.
25932         * opts-diagnostic.h: New file.
25933         * opts.c: Include opts-diagnostic.h.
25934         (common_handle_option): Set global_dc fields for -Wfatal-errors,
25935         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
25936         (option_name): New function.
25937         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
25938         (c_common_handle_option): Set global_dc->permissive for
25939         -fpermissive.
25940         * c-common.c (c_cpp_error): Save and restore
25941         global_dc->warn_system_headers, not variable warn_system_headers.
25942         * toplev.c: Include opts-diagnostic.h.
25943         (general_init): Update call to diagnostic_initialize.  Set
25944         global_dc->show_column, global_dc->option_enabled and
25945         global_dc->option_name.
25946         (process_options): Don't set global_dc fields here.
25947         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
25948         (diagnostic.o, opts.o, toplev.o): Update dependencies.
25949
25950 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
25951
25952         * config/picochip/picochip.md (movsi): Split a movsi from a
25953         const after reload.
25954
25955 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25956
25957         * ggc-zone.c: Update copyright year.
25958         (poison_region): Mark memory for Valgrind as undefined before
25959         memset () call and inaccessible afterwards.
25960         (ggc_pch_total_size): Change type of i to int.
25961
25962 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25963
25964         * ggc-common.c (ggc_free_overhead): Allow empty slot.
25965
25966 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25967
25968         * ggc-common.c: Update copyright year.
25969         (ggc_rlimit_bound): Remove prototype.  Compile only if
25970         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
25971         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
25972         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
25973         (ggc_min_heapsize_heuristic): Likewise.
25974
25975 2010-05-26  Richard Guenther  <rguenther@suse.de>
25976
25977         PR rtl-optimization/44164
25978         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
25979         no-common access-path disambiguation.
25980         (indirect_ref_may_alias_decl_p): Adjust.
25981         (indirect_refs_may_alias_p): Likewise.
25982         (refs_may_alias_p_1): Likewise.
25983
25984 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25985
25986         * c-typeck.c: Do not include expr.h.
25987
25988 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25989
25990         * rtl.h (decl_default_tls_model): Move prototype from here...
25991         * output.h: ...to here.
25992         * c-decl.c: Do not include rtl.h.
25993         * c-pragma.c: Likewise.
25994         * c-parser.c: Likewise.
25995         * c-gimplify.c: Likewise.  And also not hard-reg-set.
25996         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
25997         FIXME note for it.  Add a FIXME note for expr.h.
25998         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
25999         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26000         defined.
26001
26002 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
26003
26004         PR target/44199
26005         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26006         or total_size is larger than red zone size for non-V4 ABI, emit a
26007         stack_tie resp. frame_tie insn before stack pointer restore.
26008         * config/rs6000/rs6000.md (frame_tie): New insn.
26009
26010 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
26011
26012         * function.h (struct function): Add can_throw_non_call_exceptions bit.
26013         * lto-streamer-in.c (input_function): Stream it in.
26014         * lto-streamer-out.c (output_function): Stream it out.
26015         * function.c (allocate_struct_function): Set it.
26016         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26017         for flag_non_call_exceptions.
26018         * cfgbuild.c (control_flow_insn_p): Likewise.
26019         (make_edges): Likewise.
26020         * cfgexpand.c (expand_stack_alignment): Likewise.
26021         * combine.c (distribute_notes): Likewise.
26022         * cse.c (cse_extended_basic_block): Likewise.
26023         * except.c (insn_could_throw_p): Likewise.
26024         * gcse.c (simple_mem): Likewise.
26025         * ipa-pure-const.c (check_call): Likewise.
26026         (check_stmt ): Likewise.
26027         * lower-subreg.c (lower-subreg.c): Likewise.
26028         * optabs.c (emit_libcall_block): Likewise.
26029         (prepare_cmp_insn): Likewise.
26030         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
26031         * postreload.c (rest_of_handle_postreload): Likewise.
26032         * reload1.c (reload_as_needed): Likewise.
26033         (emit_input_reload_insns): Likewise.
26034         (emit_output_reload_insns): Likewise.
26035         (fixup_abnormal_edges): Likewise.
26036         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
26037         * store-motion.c (find_moveable_store): Likewise.
26038         * tree-eh.c (stmt_could_throw_p): Likewise.
26039         (tree_could_throw_p): Likewise.
26040         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
26041         * config/arm/arm.c (arm_expand_prologue): Likewise.
26042         (thumb1_expand_prologue): Likewise.
26043         * config/rx/rx.md (cbranchsf4): Likewise.
26044         (cmpsf): Likewise.
26045         * config/s390/s390.c (s390_emit_prologue): Likewise.
26046         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
26047         (inline_forbidden_into_p): New predicate.
26048         (expand_call_inline): Use it to forbid inlining.
26049         (tree_can_inline_p): Likewise.
26050
26051 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26052
26053         * config/i386/i386-c.c: Do not include rtl.h.
26054         * config/i386/t-i386: Update dependencies.
26055
26056 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26057
26058         * attribs.c: Do not include rtl.h.
26059         * Makefile.in: Update dependencies.
26060
26061 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
26062
26063         * double-int.h (double_int_and): New.
26064         * combine.c (try_combine): Clean up, use double_int_* and
26065         immed_double_int_const functions.
26066
26067 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26068
26069         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
26070         stderr to /dev/null instead of grep -q.
26071         * configure: Regenerate.
26072
26073 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26074
26075         * Makefile.in (EXCEPT_H): Fix typo.
26076
26077 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
26078
26079         * ira-build.c (update_conflict_hard_reg_costs): New.
26080         (ira_build): Call update_conflict_hard_reg_costs.
26081
26082 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26083
26084         PR debug/41371
26085         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
26086         ENABLE_CHECKING.
26087         (intersect_loc_chains): Walk the s2var's loc_chain together
26088         with s1node chain as long as the locations are equal, don't
26089         call find_loc_in_1pdv in that case.
26090
26091         PR debug/42801
26092         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
26093         (copy_bind_expr): ... instead of here.
26094         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
26095         if the block hasn't been remapped.
26096         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
26097         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
26098
26099 2010-05-25  Richard Guenther  <rguenther@suse.de>
26100
26101         PR middle-end/44069
26102         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
26103         out-of-bounds array accesses.
26104
26105 2010-05-25  Richard Guenther  <rguenther@suse.de>
26106
26107         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
26108         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
26109         (run_gcc): Re-organize to make cleanup easier.
26110
26111 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26112
26113         * config/s390/s390.c (optimization_options): Fix and move the
26114         flag_prefetch_loop_arrays override ...
26115         (override_options): ... here.
26116
26117 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
26118
26119         * diagnostic.c: Don't include plugin.h.
26120         (diagnostic_report_diagnostic): Don't handle plugins specially
26121         here.  Pass context to internal_error callback.
26122         * diagnostic.h (struct diagnostic_context): Add context parameter
26123         to internal_error callback.
26124         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
26125         * plugin.h (struct diagnostic_context): Declare.
26126         (warn_if_plugins, plugins_internal_error_function): Declare.
26127         * toplev.c (general_init): Set global_dc->internal_error.
26128         * Makefile.in (diagnostic.o): Update dependencies.
26129
26130 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
26131
26132         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
26133         * config/rs6000/t-darwin64: New.
26134         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
26135         build crt2.
26136
26137 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
26138
26139         PR 44203
26140         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
26141         match the original (and intended) behaviour before r159557.  This
26142         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
26143         in two ways.
26144
26145 2010-05-25  Richard Guenther  <rguenther@suse.de>
26146
26147         * doc/invoke.texi: Document -Ofast.
26148         * target.h (struct gcc_target): Add handle_ofast.
26149         * target-def.h (TARGET_HANDLE_OFAST): Add.
26150         (TARGET_INITIALIZER): Adjust.
26151         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
26152         * common.opt (Ofast): Add.
26153
26154 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26155
26156         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
26157         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
26158
26159 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26160
26161         PR target/43610
26162         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
26163         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
26164         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
26165         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
26166
26167 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26168
26169         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
26170         DW_OP_minus with negated offset instead of DW_OP_plus.
26171         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
26172
26173 2010-05-25  Wei Guozhi  <carrot@google.com>
26174
26175         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
26176         tst instruction and a new alternative.
26177         * config/arm/constraints.md (Pu): New constraint.
26178
26179 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
26180
26181         * function.c (assign_stack_local_1): Initialize variable
26182         to avoid warning when bootstrapping at -O3.
26183
26184 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
26185
26186         * configure.ac (all_lang_makefiles): Remove everything related to it.
26187         * configure: Regenerate.
26188         * Makefile.in: Fix reference to ada Make-lang.in.
26189         Remove support for LANG_MAKEFILES.
26190
26191 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
26192             Sandra Loosemore  <sandra@codesourcery.com>
26193
26194         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
26195         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
26196         description.  Add arm_neon_fp16_ok.
26197         (Add Options): Add arm_neon and arm_neon_fp16.
26198
26199 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
26200
26201         * diagnostic.c: Don't include flags.h.
26202         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
26203         context parameters.  Check flags in the context passed as a parameter.
26204         (diagnostic_build_prefix): Add context parameter.  Check
26205         show_column flag in context.
26206         (diagnostic_action_after_output): Check fatal_errors flag in context.
26207         (diagnostic_report_current_module): Check show_column flag in context.
26208         (default_diagnostic_starter): Update call to
26209         diagnostic_build_prefix.
26210         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
26211         (emit_diagnostic): Pass context to permissive_error_kind.
26212         (permerror): Pass context to permissive_error_kind.
26213         * diagnostic.h (struct diagnostic_context): Add show_column,
26214         pedantic_errors, permissive and fatal_errors fields.
26215         (diagnostic_build_prefix): Update prototype.
26216         * langhooks.c
26217         * toplev.c (process_options): Set flags in global_dc from
26218         flag_show_column, flag_pedantic_errors, flag_permissive,
26219         flag_fatal_errors.
26220         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
26221         to diagnostic_build_prefix.
26222         * Makefile.in (diagnostic.o): Update dependencies.
26223
26224 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
26225
26226         * config/i386/ia32intrin.h (__crc32q): Define only if
26227         __SSE4_2__ is defined.
26228
26229 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
26230
26231         PR target/44132
26232         PR middle-end/43602
26233         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
26234         DECL_VISIBILITY_SPECIFIED.
26235         (emutls_decl): Set DECL_PRESERVE_P and copy
26236         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
26237         (emutls_finalize_control_var): New callback.
26238         (emutls_finish): Finalize emutls control variables.
26239         * toplev.c (compile_file): Move the call to emutls_finish ()
26240         before varpool_assemble_pending_decls ().
26241
26242 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
26243
26244         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
26245         added to the preprocessor condition.
26246
26247 2010-05-24  Paul Brook  <paul@codesourcery.com>
26248
26249         * gengtype-lex.l: Add HARD_REG_SET.
26250         * expr.c (expand_expr_real_1): Record writes to hard registers.
26251         * function.c (rtl_data): Add asm_clobbers.
26252         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
26253         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
26254         Use crtl->asm_clobbers.
26255
26256 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26257
26258         * doc/makefile.texi (Makefile): Mention stages 'profile'
26259         and 'feedback' for profiledbootstrap.
26260
26261 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
26262
26263         PR target/44245
26264         * config/i386/i386.c (def_builtin): Properly check
26265         OPTION_MASK_ISA_64BIT.
26266
26267 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
26268
26269         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
26270         typedefs with different but compatible types.  Allow duplicate
26271         typedefs with the same type except for pedantic non-C1X, but give
26272         warning for variably modified types.
26273         * c-typeck.c (tagged_types_tu_compatible_p,
26274         function_types_compatible_p, type_lists_compatible_p,
26275         comptypes_internal): Add parameter different_types_p; set
26276         *different_types_p for different but compatible types.  All
26277         callers changed.
26278         (comptypes_check_different_types): New.
26279         * c-tree.h (comptypes_check_different_types): Declare.
26280
26281 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
26282
26283         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
26284         * jump.c: Include basic-block.h.
26285         * profile.c: Likewise.
26286         * tree-profile.c: Likewise.
26287         * coverage.c: Likewise.
26288         * basic-block.h (optimize_function_for_size_p): Move to function.h.
26289         (optimize_function_for_speed_p): Likewise.
26290         * function.h (optimize_function_for_size_p,
26291         optimize_function_for_speed_p): Moved here from basic-block.h.
26292         * Makefile.in: Update dependencies.
26293
26294 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26295
26296         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
26297         before calling make; allow override through $MAKE.
26298         * doc/invoke.texi (Optimize Options): Document override.
26299
26300 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
26301
26302         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
26303         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26304         (rs6000_mode_dependent_address_ptr): Make static.
26305         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26306         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
26307         Remove.
26308
26309 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
26310
26311         PR target/43869
26312         * config/i386/i386.c: Make sure that the correct regparm is passed.
26313
26314 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
26315
26316         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
26317         * sbitmap.c: ...to here to internalize sbitmap element access.
26318         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
26319         Explain why basic-block.h is included.
26320         * function.h: Include tm.h for CUMULATIVE_ARGS.
26321         * Makefile.in: Update dependencies.
26322
26323 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
26324
26325         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
26326         New core types.
26327         * sbitmap.h (struct sbitmap_def): Do not typedef here.
26328         * sbitmap.c: Include sbitmap.h.
26329         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
26330         hard-reg-set.h.  Split everything related to regsets out from here...
26331         * regset.h: ...to here.  New file.
26332         * df.h: Include regset.h and sbitmap.h.
26333         * tree-flow.h: Likewise.
26334         * cfgloop.h: Likewise.
26335         * except.h: Do not include sbitmap.h.  Include hashtab.h.
26336         * cgraph.h: Include vec.h and function.h.
26337         * reload.h (struct insn_chain): Change types of live_throughout
26338         and dead_or_set from regset_head to bitmap_head.
26339         (compute_use_by_pseudos): Be defined also if regset.h is not included.
26340         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
26341         spilled_regs from regset_head to bitmap_head to avoid dependency
26342         in regset.h.
26343         * sel-sched-ir.h: Include regset.h.
26344         * reload.c: Include df.h before reload.h.
26345         * caller-save.c: Likewise.
26346         * reload1.c: Likewise.
26347         * ira.c: Likewise.
26348         (mark_elimination): Update type of r to bitmap, consistent with
26349         DF_LR_IN.
26350         * dominance.c: Include bitmap.h.
26351         * modulo-sched.c: Include df.h.
26352         * cfganal.c: Include bitmap.h and sbitmap.h.
26353         * cfgbuild.c: Include sbitmap.h.
26354         * lcm.c: Include sbitmap.h.
26355         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
26356         * domwalk.c: Include sbitmap.h, exclude ggc.h.
26357         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
26358         * cselib.c: Include bitmap.h.
26359         * tree-optimize.c: Include regset.h.
26360         * stmt.c: Include bitmap.h.
26361         * Makefile.in: Update dependencies.
26362
26363 2010-05-22  Jan Hubicka  <jh@suse.cz>
26364
26365         * cgraph.h (struct varpool_node): Add same_comdat_group.
26366         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
26367         pointer.
26368         (output_varpool): Update call of lto_output_varpool_node.
26369         (input_varpool): Read same_comdat_group pointer.
26370         (input_varpool_1): Fixup same_comdat_group pointer.
26371         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
26372         group is needed, all are.
26373         * varpool.c (varpool_remove_node): Remove node from same comdat group
26374         linklist too.
26375         (varpool_analyze_pending_decls): Walk same comdat groups.
26376
26377 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
26378
26379         * rtl.h (union rtunion_def): Remove rt_bit member.
26380         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
26381         * print-rtl (print_rtx): Do not print the member.
26382         * gengtype.c (adjust_field_rtx_def): Do not handle it.
26383         * gengenrtl.c (type_from_format): Likewise.
26384         (accessor_from_format): Likewise.
26385
26386 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
26387
26388         * dbgcnt.c: Include toplev.h instead of errors.h.
26389         * ira-emit.c: Don't include errors.h.
26390         * ira.c: Include toplev.h instead of errors.h.
26391         * lto-compress.c: Include toplev.h instead of errors.h.
26392         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
26393         ira.o, dbgcnt.o): Update dependencies.
26394
26395 2010-05-22  Richard Guenther  <rguenther@suse.de>
26396
26397         * gimple.c (gimple_types_compatible_p): Check type qualifications
26398         before merging pointer to complete and pointer to incomplete type.
26399         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
26400         we use our own resolution algorithm.  The gold linker plugin
26401         doesn't do the job we want it to do here.
26402
26403 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
26404
26405         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26406         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26407         (sparc_mode_dependent_address_p): New function.
26408
26409 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26410
26411         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
26412
26413         * timevar.c: Do not include any core headers.
26414         (timevar_print): De-i18n-ize.
26415         (print_time): Likewise.
26416         * timevar.h (timevar_push, timevar_pop): Make inline functions.
26417
26418 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
26419
26420         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
26421         langhooks-def.h.
26422         (diagnostic_initialize): Initialize x_data not last_function.
26423         (diagnostic_report_current_function): Move to tree-diagnostic.c.
26424         (default_diagnostic_starter): Call
26425         diagnostic_report_current_module not
26426         diagnostic_report_current_function.
26427         (diagnostic_report_diagnostic): Initialize x_data not
26428         abstract_origin.
26429         (verbatim): Likewise.
26430         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
26431         x_data.
26432         (struct diagnostic_context): Change last_function to x_data.
26433         (diagnostic_auxiliary_data): Replace with
26434         diagnostic_context_auxiliary_data and
26435         diagnostic_info_auxiliary_data.
26436         (diagnostic_last_function_changed, diagnostic_set_last_function,
26437         diagnostic_report_current_function): Move to tree-diagnostic.h.
26438         (print_declaration, dump_generic_node, print_generic_stmt,
26439         print_generic_stmt_indented, print_generic_expr,
26440         print_generic_decl, debug_c_tree, dump_omp_clauses,
26441         print_call_name, debug_generic_expr, debug_generic_stmt,
26442         debug_tree_chain, default_tree_printer): Move to
26443         tree-pretty-print.h.
26444         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
26445         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
26446         gimple-pretty-print.h.
26447         * pretty-print.c: Don't include tree.h
26448         (pp_base_format): Don't handle %K here.
26449         (pp_base_tree_identifier): Move to tree-pretty-print.c.
26450         * pretty-print.h (text_info): Change abstract_origin to x_data.
26451         (pp_tree_identifier, pp_unsupported_tree,
26452         pp_base_tree_identifier): Move to tree-pretty-print.h.
26453         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
26454         tree-pretty-print.h: New files.
26455         * tree-pretty-print.c: Include tree-pretty-print.h.
26456         (percent_K_format): New.  Moved from pretty-print.c.
26457         (pp_base_tree_identifier): Move from pretty-print.c.
26458         * c-objc-common.c: Include tree-pretty-print.h.
26459         (c_tree_printer): Handle %K here.
26460         * langhooks.c: Include tree-diagnostic.h.
26461         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
26462         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
26463         (default_tree_printer): Handle %K using percent_K_format.
26464         (general_init): Use default_tree_diagnostic_starter.
26465         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
26466         (free_lang_data): Use default_tree_diagnostic_starter.
26467         * c-pretty-print.c: Include tree-pretty-print.h.
26468         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26469         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26470         * dwarf2out.c: Include tree-pretty-print.h.
26471         * except.c: Include tree-pretty-print.h.
26472         * gimple-pretty-print.c: Include tree-pretty-print.h and
26473         gimple-pretty-print.h.
26474         * gimplify.c: Include tree-pretty-print.h.
26475         * graphite-poly.c: Include tree-pretty-print.h and
26476         gimple-pretty-print.h.
26477         * ipa-cp.c: Include tree-pretty-print.h.
26478         * ipa-inline.c: Include gimple-pretty-print.h.
26479         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26480         * ipa-pure-const.c: Include gimple-pretty-print.h.
26481         * ipa-struct-reorg.c: Include tree-pretty-print.h and
26482         gimple-pretty-print.h.
26483         * ipa-type-escape.c: Include tree-pretty-print.h.
26484         * print-rtl.c: Include tree-pretty-print.h.
26485         * print-tree.c: Include gimple-pretty-print.h.
26486         * sese.c: Include tree-pretty-print.h.
26487         * tree-affine.c: Include tree-pretty-print.h.
26488         * tree-browser.c: Include tree-pretty-print.h.
26489         * tree-call-cdce.c: Include gimple-pretty-print.h.
26490         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26491         * tree-chrec.c: Include tree-pretty-print.h.
26492         * tree-data-ref.c: Include tree-pretty-print.h and
26493         gimple-pretty-print.h.
26494         * tree-dfa.c: Include tree-pretty-print.h.
26495         * tree-if-conv.c: Include tree-pretty-print.h and
26496         gimple-pretty-print.h.
26497         * tree-inline.c: Include tree-pretty-print.h.
26498         * tree-into-ssa.c: Include tree-pretty-print.h and
26499         gimple-pretty-print.h.
26500         * tree-nrv.c: Include tree-pretty-print.h.
26501         * tree-object-size.c: Include tree-pretty-print.h and
26502         gimple-pretty-print.h.
26503         * tree-outof-ssa.c: Include tree-pretty-print.h and
26504         gimple-pretty-print.h.
26505         * tree-parloops.c: Include tree-pretty-print.h and
26506         gimple-pretty-print.h.
26507         * tree-predcom.c: Include tree-pretty-print.h and
26508         gimple-pretty-print.h.
26509         * tree-scalar-evolution.c: Include tree-pretty-print.h and
26510         gimple-pretty-print.h.
26511         * tree-sra.c: Include tree-pretty-print.h.
26512         * tree-ssa-address.c: Include tree-pretty-print.h.
26513         * tree-ssa-alias.c: Include tree-pretty-print.h.
26514         * tree-ssa-ccp.c: Include tree-pretty-print.h and
26515         gimple-pretty-print.h.
26516         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
26517         * tree-ssa-copy.c: Include tree-pretty-print.h and
26518         gimple-pretty-print.h.
26519         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
26520         * tree-ssa-dce.c: Include tree-pretty-print.h and
26521         gimple-pretty-print.h.
26522         * tree-ssa-dom.c: Include tree-pretty-print.h and
26523         gimple-pretty-print.h.
26524         * tree-ssa-dse.c: Include gimple-pretty-print.h.
26525         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
26526         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
26527         * tree-ssa-live.c: Include tree-pretty-print.h and
26528         gimple-pretty-print.h.
26529         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
26530         gimple-pretty-print.h.
26531         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
26532         gimple-pretty-print.h.
26533         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
26534         gimple-pretty-print.h.
26535         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
26536         gimple-pretty-print.h.
26537         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
26538         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
26539         * tree-ssa-operands.c: Include tree-pretty-print.h and
26540         gimple-pretty-print.h.
26541         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
26542         gimple-pretty-print.h.
26543         * tree-ssa-pre.c: Include tree-pretty-print.h and
26544         gimple-pretty-print.h.
26545         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
26546         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
26547         gimple-pretty-print.h.
26548         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
26549         gimple-pretty-print.h.
26550         * tree-ssa-sink.c: Include gimple-pretty-print.h.
26551         * tree-ssa-ter.c: Include tree-pretty-print.h and
26552         gimple-pretty-print.h.
26553         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
26554         * tree-ssa.c: Include tree-pretty-print.h and
26555         gimple-pretty-print.h.
26556         * tree-stdarg.c: Include gimple-pretty-print.h.
26557         * tree-switch-conversion.c: Include gimple-pretty-print.h.
26558         * tree-tailcall.c: Include tree-pretty-print.h and
26559         gimple-pretty-print.h.
26560         * tree-vect-data-refs.c: Include tree-pretty-print.h and
26561         gimple-pretty-print.h.
26562         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
26563         gimple-pretty-print.h.
26564         * tree-vect-loop.c: Include tree-pretty-print.h and
26565         gimple-pretty-print.h.
26566         * tree-vect-patterns.c: Include gimple-pretty-print.h.
26567         * tree-vect-slp.c: Include tree-pretty-print.h and
26568         gimple-pretty-print.h.
26569         * tree-vect-stmts.c: Include tree-pretty-print.h and
26570         gimple-pretty-print.h.
26571         * tree-vectorizer.c: Include tree-pretty-print.h.
26572         * tree-vrp.c: Include tree-pretty-print.h and
26573         gimple-pretty-print.h.
26574         * value-prof.c: Include tree-pretty-print.h and
26575         gimple-pretty-print.h.
26576         * var-tracking.c: Include tree-pretty-print.h.
26577         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
26578         (tree-diagnostic.o): New dependencies.
26579         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
26580         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
26581         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
26582         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
26583         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
26584         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
26585         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
26586         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
26587         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
26588         tree-ssa-address.o, tree-ssa-loop-niter.o,
26589         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
26590         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
26591         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
26592         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
26593         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
26594         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
26595         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
26596         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
26597         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
26598         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
26599         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
26600         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
26601         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
26602         tree-switch-conversion.o, var-tracking.o, value-prof.o,
26603         cfgexpand.o, pretty-print.o): Update dependencies.
26604
26605 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
26606
26607         * tree-ssa-structalias.c: Remove tm_p.h from include.
26608
26609 2010-05-21  Jeff Law  <law@redhat.com>
26610
26611         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
26612
26613 2010-05-21  Jason Merrill  <jason@redhat.com>
26614
26615         * tree-eh.c (cleanup_is_dead_in): New.
26616         (lower_try_finally): Don't generate a dead cleanup region.
26617         (lower_cleanup): Likewise.
26618
26619 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26620
26621         PR debug/44223
26622         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
26623         unchain each use from the cyclic next_regno_use chain first.
26624
26625 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26626
26627         * real: Do not include gmp.h, mpfr.h, and mpc.h.
26628         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
26629         (real_value_negate, real_value_abs): New prototypes.
26630         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
26631         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
26632         new include file for interface between MPFR and REAL_VALUE_TYPE.
26633         * real.c: Include realmpfr.h.
26634         (real_arithmetic2): Remove legacy function.
26635         (real_value_negate): New.
26636         (real_value_abs): New.
26637         (mfpr_from_real, real_from_mpfr): Move from here...
26638         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
26639         * builtins.c: Include realmpfr.h.
26640         * fold-const.c: Include realmpfr.h.
26641         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
26642         (fold_negate_const): Likewise.
26643         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
26644         * toplev.c: Include realmpfr.h.
26645         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
26646         and real_value_negate.
26647         * fixed-value.c (check_real_for_fixed_mode): Likewise.
26648         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
26649         (vfp3_const_double_index): Likewise.
26650         (arm_print_operand): Likewise.
26651         * Makefile.in: Update dependencies.
26652
26653 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26654
26655         * config/s390/s390.c (override_options): Increase the default
26656         of max-completely-peel-times.
26657
26658 2010-05-21  Julian Brown  <julian@codesourcery.com>
26659             Mark Mitchell  <mark@codesourcery.com>
26660
26661         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
26662         sibling calls for Thumb-1.
26663         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
26664         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
26665         Thumb-2.
26666         (*call_insn, *call_value_insn): Don't use for Thumb-2.
26667         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
26668         for Thumb-2.
26669         (return): New expander.
26670         (*arm_return): New name for ARM return insn.
26671         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
26672
26673 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
26674
26675         * config.gcc (sparc64-*-rtems*): New target.
26676
26677 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
26678
26679         * tree.c (build_function_decl_skip_args): Fix grammar.
26680         (build_function_type_list_1): Fix typos, adjust formatting.
26681
26682 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
26683
26684         * tree.h: Include real.h and fixed-value.h as basic datatypes.
26685         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
26686         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
26687         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
26688         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
26689         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
26690         tree-pretty-print.c, tree-loop-distribution.c,
26691         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
26692         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
26693         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
26694         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
26695         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
26696         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
26697         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
26698         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
26699         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
26700         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
26701         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
26702         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
26703         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
26704         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
26705         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
26706         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
26707         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
26708         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
26709         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
26710         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
26711         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
26712         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
26713         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
26714         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
26715         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
26716         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
26717         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
26718         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
26719         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
26720         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
26721         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
26722         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
26723         config/score/score7.c, config/score/score.c, config/arm/arm.c,
26724         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
26725         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
26726         config/bfin/bfin.c: Clean up redundant includes.
26727         * Makefile.in: Update accordingly.
26728
26729 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
26730
26731         PR middle-end/44204
26732         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
26733         statement has no arguments.
26734
26735 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
26736
26737         PR/44139
26738         * varasm.c (emutls_decl): Merge attributes to new decl.
26739
26740 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
26741
26742         PR middle-end/44101
26743         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
26744         around the uniquized constructor if its type requires a conversion.
26745
26746 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26747
26748         PR debug/44205
26749         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
26750         at -O0 goto_locus of any of the incoming edges differs from
26751         goto_locus of outgoing edge, or gimple_location of any of the
26752         labels differs.
26753
26754 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
26755
26756         * ira.c (ira_non_ordered_class_hard_regs): Define.
26757         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
26758         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
26759         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
26760         cost of unaligned hard regs when allocating multi-reg pseudos.
26761
26762 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
26763
26764         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
26765         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
26766         for TARGET_NO_FLOAT.
26767         * config/mips/mips.c (mips_file_start): Expand conditional expression
26768         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
26769         (mips_override_options): Move -mno-float override -msoft-float and
26770         -mhard-float.
26771         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
26772         Condition(TARGET_SUPPORTS_NO_FLOAT).
26773         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
26774         __mips_no_float here.
26775         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
26776         (TARGET_SUPPORTS_NO_FLOAT): Define.
26777         * config/mips/sdemtk.opt: Delete.
26778
26779 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
26780
26781         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
26782
26783 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
26784
26785         PR target/43733
26786         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
26787         * configure: Regenerate.
26788         * config.in: Regenerate.
26789         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
26790         instead of sahf only for 64bit targets.
26791
26792 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
26793
26794         PR debug/44178
26795         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
26796         setup_ref_regs for DEBUG_INSNs.
26797
26798 2010-05-20  Jan Hubicka  <jh@suse.cz>
26799
26800         PR middle-end/44197
26801         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
26802
26803 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
26804
26805         PR bootstrap/43870
26806         * df-scan.c (df_ref_compare): Stabilize sort.
26807
26808 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
26809
26810         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
26811         argument.  Don't use DW_OP_piece if offset is non-zero,
26812         put offset into second DW_OP_bit_piece argument.
26813         (dw_sra_loc_expr): Adjust callers.  For memory expressions
26814         compute offset.
26815
26816 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
26817
26818         PR target/44202
26819         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
26820         settings for 16-bit-constant "addo" alternative.
26821
26822 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
26823
26824         * config/mips/mips-dsp.md (add<DSPV:mode>3,
26825         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
26826
26827         PR target/43764
26828         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
26829         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
26830         Use it.
26831
26832 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
26833
26834         * diagnostic.c (FLOAT, FFS): Don't undefine.
26835         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
26836         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
26837         include ordering.
26838
26839 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
26840
26841         * combine.c (propagate_for_debug): Call make_compound_operation
26842         on the source value.
26843         (try_combine): When implementing a split chosen by find_split_point,
26844         either copy i2src or set it to null.  Assert that i2src is not null
26845         before substituting into CALL_INSN_FUNCTION_USAGE.
26846
26847 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
26848
26849         * double-int.h (double_int_ior): New function.
26850         * tree.h (build_int_cst_wide_type): Remove.
26851         * tree.c (build_int_cst_wide_type): Remove.
26852         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
26853         of build_int_cst_wide_type.
26854         * stor-layout.c (set_sizetype): (Ditto.).
26855         * dojump.c (do_jump): Use build_int_cstu instead of
26856         build_int_cst_wide_type.
26857
26858 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
26859
26860         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
26861         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
26862         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
26863         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
26864         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
26865         propagate the 'data' argument to copy_tree_r.
26866         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
26867         Propagate 'data' argument to walk_tree.
26868         (copy_if_shared): New function.
26869         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
26870         (unmark_visited): New function.
26871         (unshare_body): Call copy_if_shared instead of doing it manually.
26872         (unvisit_body): Call unmark_visited instead of doing it manually.
26873
26874 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
26875
26876         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
26877         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
26878         * hooks.c: Likewise.
26879         * target-def.h (TARGET_FOLD_BUILTIN): Define to
26880         hook_tree_tree_int_treep_bool_null.
26881         * target.h (struct gcc_target): Update signature of fold_builtin
26882         field.
26883         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
26884         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
26885         instead of the call expression.
26886         (fold_builtin_call_array): Pass n and argarray directly.
26887         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
26888         consing a list.
26889         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
26890         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
26891         `i' and use it in place of `arity'.
26892         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
26893         Dereference `args' directly.
26894         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
26895
26896 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26897
26898         * doc/sourcebuild.texi (Effective-Target Keywords): Document
26899         3dnow, sse3, sse2.
26900         (Directives): Document optional dg-require-effective-target
26901         selector.
26902
26903 2010-05-19  Richard Guenther  <rguenther@suse.de>
26904
26905         PR lto/44196
26906         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
26907
26908 2010-05-19  Richard Guenther  <rguenther@suse.de>
26909
26910         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
26911         * common.opt (fwhopr=): New.
26912         * opts.c (common_handle_option): Handle OPT_fwhopr.
26913         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
26914         * collect2.c (main): Match -fwhopr*.
26915         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
26916         Execute ltrans stage in parallel when jobs is bigger than 1.
26917
26918 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26919
26920         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
26921         pentiumpro on Solaris 8/x86 with Sun as.
26922         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
26923         hidden alias bug.
26924         (gcc_cv_as_ix86_quad): Check for .quad directive.
26925         * configure: Regenerate.
26926         * config.in: Regenerate.
26927         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
26928
26929 2010-05-19  Martin Jambor  <mjambor@suse.cz>
26930
26931         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
26932         also for indirect edges.  Actual printing moved...
26933         (ipa_print_node_jump_functions_for_edge): ...here.
26934         (ipa_compute_jump_functions): Renamed to
26935         ipa_compute_jump_functions_for_edge and made static.
26936         (ipa_compute_jump_functions): New function.
26937         (make_edge_direct_to_target): Check if the number of arguments on
26938         the newly direct edge is the same as the number of parametrs of
26939         the callee.
26940         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
26941         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
26942         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
26943         analysis functions unconditionally, call the new
26944         ipa_analyze_params_uses on the node instead of every edge.
26945
26946 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
26947
26948         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
26949         to tree.
26950         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
26951         also checks for a constant int vs.  non-constant but
26952         loop-invariant steps.
26953         (find_or_create_group): Change the sort algorithm to only consider
26954         steps that are constant ints.
26955         (idx_analyze_ref): Adopt code to handle a tree instead of a
26956         HOST_WIDE_INT for step.
26957         (gather_memory_references_ref): Handle tree instead of int and be
26958         prepared to see a NULL_TREE.
26959         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
26960         prefetches if the step cannot be calculated at compile time.
26961         (issue_prefetch_ref): Issue prefetches for non-constant but
26962         loop-invariant steps.
26963
26964 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26965
26966         Revert:
26967         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26968
26969         * tree.h (build_call_list): Remove.
26970         * tree.c (build_call_list): Remove.
26971
26972 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26973
26974         * tree.h (build_call_list): Remove.
26975         * tree.c (build_call_list): Remove.
26976
26977 2010-05-18  Jan Hubicka  <jh@suse.cz>
26978
26979         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
26980
26981 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
26982
26983         PR rtl-optimization/43332
26984         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
26985
26986 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
26987
26988         * tree.h (build_int_cstu): Implement as static inline.
26989         * tree.c (build_int_cstu): Remove function.
26990         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
26991         sign extended.
26992
26993 2010-05-18  Richard Guenther  <rguenther@suse.de>
26994
26995         PR lto/44143
26996         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
26997         (debug): Initialize from -save-temps.
26998         (collect_execute): Print command-line when verbose.
26999         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
27000         for ltrans invocation.  Produce -dumpbase flag again.
27001         (process_args): Remove.
27002         (main): Simplify.
27003         * collect2.c (maybe_run_lto_and_relink): Only pass object
27004         files to lto-wrapper.
27005         * gcc.c (LINK_COMMAND_SPEC): Likewise.
27006
27007 2010-05-18  Jan Hubicka  <jh@suse.cz>
27008
27009         * opts.c (decode_options): Do not disable whopr at ipa_cp.
27010         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27011
27012 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27013
27014         PR lto/44184
27015         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27016         in a GIMPLE_ASM.
27017         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27018         in a GIMPLE_ASM.
27019
27020 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
27021
27022         PR debug/41371
27023         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
27024         rtx_equal_p inline.
27025
27026 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27027
27028         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
27029         lto-macho as lto_binary_reader.
27030
27031         * darwin.c (darwin_asm_named_section): Do not add assembler comment
27032         after .section directive; just print it before the directive instead.
27033
27034 2010-05-17  Jan Hubicka  <jh@suse.cz>
27035
27036         * cgraph.c (cgraph_create_virtual_clone): Only check
27037         versionable_function_p when not in wpa and checking is enabled.
27038         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
27039         there are no more functions to materialize.
27040
27041 2010-05-17  Jan Hubicka  <jh@suse.cz>
27042
27043         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
27044         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
27045         New functions.
27046         (output_cgraph): Call output_cgraph_opt_summary.
27047         (input_cgrpah): Call input_cgraph_opt_summary.
27048         (output_cgraph_opt_summary_p, output_node_opt_summary,
27049         input_node_opt_summary, input_cgraph_opt_section): New functions.
27050         * lto-section-in.c (lto_section_name): Add cgraphopt.
27051         * tree-inline.c (tree_function_versioning): Handle parm_num.
27052         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
27053         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
27054
27055 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27056
27057         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
27058         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
27059         the insn to prefetch ratio heuristic to loops with known trip count.
27060
27061 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27062
27063         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
27064         (schedule_prefetches): Do not generate a prefetch if the unroll factor
27065         is far from what is required by the prefetch.
27066
27067 2010-05-17  Jan Hubicka  <jh@suse.cz>
27068
27069         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
27070         (ipcp_estimate_growth): Likewise.
27071         (ipcp_const_param_count): Likewise.
27072         (ipcp_insert_stage): Likewise.
27073         * ipa-prop.c (visit_load_for_mod_analysis): New function.
27074         (visit_store_addr_for_mod_analysis): Set used flag.
27075         (ipa_detect_param_modifications): Set used flag for SSE params;
27076         update use of walk_stmt_load_store_addr_ops.
27077         (ipa_print_node_params): Print used flag.
27078         (ipa_write_node_info): Stream used flag.
27079         (ipa_read_node_info): Likewise.
27080         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
27081         (ipa_is_param_used): New function.
27082         (lto_ipa_fixup_call_notes): Remove unused declaration.
27083
27084 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27085
27086         PR target/44074
27087         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
27088         * configure: Regenerate.
27089         * config.in: Regenerate.
27090         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
27091         !HAVE_AS_IX86_REP_LOCK_PREFIX.
27092         Don't emit whitespace.
27093         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
27094         (*rep_movsi): Likewise.
27095         (*rep_movsi_rex64): Likewise.
27096         (*rep_movqi): Likewise.
27097         (*rep_movqi_rex64): Likewise.
27098         (*rep_stosdi_rex64): Likewise.
27099         (*rep_stossi): Likewise.
27100         (*rep_stossi_rex64): Likewise.
27101         (*rep_stosqi): Likewise.
27102         (*rep_stosqi_rex64): Likewise.
27103         (*cmpstrnqi_nz_1): Use {%;} after repz.
27104         (*cmpstrnqi_nz_rex_1): Likewise.
27105         (*cmpstrnqi_1): Likewise.
27106         (*cmpstrnqi_rex_1): Likewise.
27107         (*strlenqi_1): Use {%;} after repnz.
27108         (*strlenqi_rex_1): Likewise.
27109         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
27110         (*sync_compare_and_swap<mode>): Likewise.
27111         (sync_double_compare_and_swap<mode>): Likewise.
27112         (*sync_double_compare_and_swapdi_pic): Likewise.
27113         (sync_old_add<mode>): Likewise.
27114         (sync_add<mode>): Likewise.
27115         (sync_sub<mode>): Likewise.
27116         (sync_<code><mode>): Likewise.
27117
27118 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27119
27120         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
27121         otr_token and polymorphic.
27122         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
27123         (cgraph_clone_edge): Copy the above fields.
27124         * tree.c (get_binfo_at_offset): New function.
27125         * tree.h (get_binfo_at_offset): Declare.
27126         * ipa-prop.h (enum jump_func_type): Added known_type jump function
27127         type, reordered items, updated comments.
27128         (union jump_func_value): Added base_type field, reordered fields.
27129         (enum ipa_lattice_type): Moved down in the file.
27130         (struct ipa_param_descriptor): New field polymorphic.
27131         (ipa_is_param_polymorphic): New function.
27132         * ipa-prop.c: Include gimple.h and gimple-fold.h.
27133         (ipa_print_node_jump_functions): Print known type jump functions.
27134         (compute_complex_pass_through): Renamed to...
27135         (compute_complex_assign_jump_func): this.
27136         (compute_complex_ancestor_jump_func): New function.
27137         (compute_known_type_jump_func): Likewise.
27138         (compute_scalar_jump_functions): Create known type and complex ancestor
27139         jump functions.
27140         (ipa_note_param_call): New parameter polymorphic, set the corresponding
27141         flag in the call note accordingly.
27142         (ipa_analyze_call_uses): Renamed to...
27143         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
27144         variable var only in the block where it is used.
27145         (ipa_analyze_virtual_call_uses): New function.
27146         (ipa_analyze_call_uses): Likewise.
27147         (combine_known_type_and_ancestor_jfs): Likewise.
27148         (update_jump_functions_after_inlining): Implemented handling of a
27149         number of new jump function types combination.
27150         (print_edge_addition_message): Removed.
27151         (make_edge_direct_to_target): New function.
27152         (try_make_edge_direct_simple_call): Likewise.
27153         (try_make_edge_direct_virtual_call): Likewise.
27154         (update_call_notes_after_inlining): Renamed to...
27155         (update_indirect_edges_after_inlining): this.  Moved edge creation for
27156         indirect calls to try_make_edge_direct_simple_call, also calls
27157         try_make_edge_direct_virtual_call for virtual calls.
27158         (ipa_print_node_params): Changed the header message.
27159         (ipa_write_jump_function): Stream also known type jump functions.
27160         (ipa_read_jump_function): Likewise.
27161         (ipa_write_indirect_edge_info): Stream new fields in
27162         cgraph_indirect_call_info.
27163         (ipa_read_indirect_edge_info): Likewise.
27164         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
27165         GIMPLE_FOLD_H.
27166
27167 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27168
27169         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
27170
27171 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27172
27173         * tree.h (CALL_EXPR_ARGS): Delete.
27174         (call_expr_arglist): Delete.
27175         * tree.c (call_expr_arglist): Delete.
27176         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
27177         targetm.fold_builtin.
27178         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
27179         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
27180         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
27181         arglist parameter.  Use CALL_EXPR_ARG.
27182         (picochip_expand_builtin_3op): Likewise.
27183         (picochip_expand_builtin_2opvoid): Likewise.
27184         (picochip_expand_array_get): Likewise.
27185         (picochip_expand_array_put): Likewise.
27186         (picochip_expand_array_testport): Likewise.
27187         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
27188         rather than arglist.
27189         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
27190         CALL_EXPR_ARGS.
27191         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
27192         than TREE_VALUE and TREE_CHAIN.
27193         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
27194         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
27195         the arglist.
27196
27197 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27198
27199         PR bootstrap/42347
27200         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
27201         to have no fallthru edge.
27202
27203         PR middle-end/44102
27204         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
27205         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
27206         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
27207         add BARRIER after previous bb if needed.
27208
27209 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27210
27211         * tree.c (build_function_type_list_1): Remove bogus assert condition.
27212
27213 2010-05-17  Alan Modra  <amodra@gmail.com>
27214
27215         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
27216         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
27217         with copy_reg rtx param.
27218         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
27219         Correct cases where code for ABI_V4 did not initialise the reg
27220         used to access frame.  Also leave frame_reg_rtx as sp for large
27221         frames that save no regs.
27222
27223 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27224
27225         PR middle-end/44133
27226         * tree-sra.c (create_access_replacement): New parameter rename, mark
27227         the replaement for renaming only when it is true.
27228         (get_access_replacement): Pass true in the rename parameter of
27229         create_access_replacement.
27230         (get_unrenamed_access_replacement): New function.
27231         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
27232         replacement declaration from it.
27233
27234 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
27235
27236         * function.c (try_fit_stack_local, add_frame_space): New static
27237         functions.
27238         (assign_stack_local_1): Use them.  Look for opportunities to use
27239         space previously wasted on alignment.
27240         * function.h (struct frame_space): New.
27241         (struct rtl_data): Add FRAME_SPACE_LIST member.
27242         * reload1.c (something_was_spilled): New static variable.
27243         (alter_reg): Set it.
27244         (reload): Test it in addition to testing if the frame size changed.
27245
27246 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
27247
27248         * config/s390/s390.c: Define sane prefetch settings and activate
27249         flag_prefetch_loop_arrays on -O3.
27250         * config/s390/s390.h: Declare that read can use write prefetch.
27251
27252 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27253
27254         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
27255         build.
27256
27257 2010-05-16  Jan Hubicka  <jh@suse.cz>
27258
27259         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
27260         function body; do not check stdarg field of struct function.
27261
27262 2010-05-16  Jan Hubicka  <jh@suse.cz>
27263
27264         * cgraph.c (dump_cgraph_node): Dump versionable flag.
27265         * cgraph.h (cgraph_local_info): Add versionable flag.
27266         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
27267         (ipcp_versionable_function_p): Use it.
27268         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
27269         versionable flag.
27270
27271 2010-05-16  Jan Hubicka  <jh@suse.cz>
27272
27273         * cgraph.c (cgraph_clone_node): Take decl argument and insert
27274         clone into hash when it is different from orig.
27275         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
27276         * cgraph.h (cgraph_clone_node): Update prototype.
27277         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
27278         (lto_cgraph_encoder_delete): Delete body map.
27279         (lto_cgraph_encoder_size): Move to header.
27280         (lto_cgraph_encoder_encode_body_p,
27281         lto_set_cgraph_encoder_encode_body): New.
27282         (lto_output_node): Do not take written_decls argument; output clone_of
27283         pointer.
27284         (add_node_to): Add include_body_argument; call
27285         lto_set_cgraph_encoder_encode_body on master of the clone.
27286         (add_references): Update use of add_node_to.
27287         (compute_ltrans_boundary): Likewise.
27288         (output_cgraph): Do not create written_decls bitmap.
27289         (input_node): Take nodes argument; stream in clone_of correctly.
27290         (input_cgraph_1): Update use of input_node.
27291         * lto-streamer-out.c (lto_output): Use encoder info to decide
27292         what bodies to output.
27293         * ipa-inline.c (cgraph_clone_inlined_nodes,
27294         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
27295         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
27296         (lto_cgraph_encoder_size): Define here.
27297         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
27298         Declare.
27299
27300 2010-05-16  Richard Guenther  <rguenther@suse.de>
27301
27302         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
27303         -fipa-type-escape.
27304         * ipa-type-escape.c (gate_type_escape_vars): Run when
27305         -fipa-struct-reorg runs.
27306         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
27307         * common.opt (fipa-type-escape): Remove.
27308
27309 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
27310
27311         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
27312         (decode_options): Likewise.
27313         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
27314
27315 2010-05-16  Jan Hubicka  <jh@suse.cz>
27316
27317         * ipa.c (function_and_variable_visibility): Also bring local all
27318         aliases.
27319
27320 2010-05-16  Richard Guenther  <rguenther@suse.de>
27321
27322         * alias.c (nonoverlapping_memrefs_p): Remove use of
27323         IPA type-escape information.
27324
27325 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
27326
27327         * c-common.c (c_common_reswords): Add _Static_assert for C.
27328         * c-parser.c (c_token_starts_declaration,
27329         c_parser_next_token_starts_declaration,
27330         c_parser_static_assert_declaration_no_semi,
27331         c_parser_static_assert_declaration): New.
27332         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
27333         Handle static assertions if static_assert_ok.
27334         (c_parser_external_declaration, c_parser_declaration_or_fndef,
27335         c_parser_compound_statement_nostart, c_parser_label,
27336         c_parser_for_statement, c_parser_objc_methodprotolist,
27337         c_parser_omp_for_loop): All callers of
27338         c_parser_declaration_or_fndef changed.
27339         (c_parser_struct_declaration): Handle static assertions.
27340         (c_parser_compound_statement_nostart): Use
27341         c_parser_next_token_starts_declaration and
27342         c_token_starts_declaration to detect start of declarations.
27343         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
27344         Likewise.
27345
27346 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
27347
27348         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27349         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27350         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27351         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27352         (mmix_function_outgoing_value): Rename to...
27353         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
27354         (mmix_function_value_regno_p): Make static.
27355         (mmix_libcall_value): New function.
27356         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
27357         mmix_function_value_regno_p): Remove declaration.
27358
27359 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
27360
27361         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
27362         BUILT_IN_ALLOCA if stack checking is enabled.
27363
27364 2010-05-16  Richard Guenther  <rguenther@suse.de>
27365
27366         * var-tracking.c (vars_copy_1): Inline ...
27367         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
27368         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
27369         (variable_merge_over_cur): Adjust.  Merge asserts.
27370         (variable_merge_over_src): Likewise.
27371         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
27372         (variable_post_merge_new_vals): Merge asserts.
27373         (variable_post_merge_perm_vals): Likewise.
27374         (find_mem_expr_in_1pdv): Likewise.
27375         (dataflow_set_different_value): Remove.
27376         (onepart_variable_different_p): Merge asserts.
27377         (variable_different_p): Likewise.
27378         (dataflow_set_different_1): Inline ...
27379         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
27380         (emit_notes_for_differences_1): Merge asserts.
27381
27382 2010-05-16  Richard Guenther  <rguenther@suse.de>
27383
27384         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
27385         * optabs.c (libfunc_decl_hash): Likewise.
27386         * varasm.c (emutls_decl): Likewise.
27387
27388 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
27389
27390         * c-decl.c: Don't include gimple.h.
27391         (merge_decls): Do not copy gimple_body.
27392
27393 2010-05-15  Jason Merrill  <jason@redhat.com>
27394
27395         * c.opt: Add -fnothrow-opt.
27396
27397 2010-05-15  Jan Hubicka  <jh@suse.cz>
27398
27399         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
27400         analyzed.
27401         * passes.c (ipa_write_summaries): Write all analyzed nodes.
27402
27403 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
27404
27405         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
27406         * Makefile.in: Add it.
27407         Fix all other Makefile dependencies for changes below.
27408         * tree.h: Include it instead of defining VEC primitives here.
27409         * gimple.h: Likewise.
27410         * rtl.h: Likewise.
27411         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
27412         * except.h: Include vecir.h, break dependence on tree.h.
27413
27414         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
27415         Move from here...
27416         * tree-iterator.c: ...to here.
27417         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
27418
27419         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
27420         tm_p.h.
27421         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
27422         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
27423         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
27424         tree-mudflap.h, and target.h.
27425         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
27426         predict.h, tree-inline.h, gimple.h, and langhooks.h.
27427         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
27428         Add FIXME for why gimple.h is still included (should be unnecessary
27429         since GCC 4.5 gimplification unit-at-a-time).
27430         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
27431         * c-pragma.c: Add FIXME for why function.h needs to be included just
27432         for cfun, at front-end level.
27433         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
27434         Do not include ggc.h, but include vecprim.h for VEC(char).
27435         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
27436         Explain why target.h is included.
27437         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
27438         Explain why gimple.h is included.
27439         * c-ppoutput.c: Do not include tm.h.
27440         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
27441         * c-parses.c: Explain why rtl.h is included, and that this (and only
27442         this) is also why tm.h must be included.
27443         Do not include except.h.
27444         * c-lang.c: Do not include ggc.h.
27445
27446 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
27447
27448         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
27449
27450 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
27451
27452         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
27453         unions by default if those structs and unions have no tags.  Do
27454         not condition anonymous struct and unions handling on flag_iso.
27455         Allow anonymous structs and unions for C1X.
27456         (finish_struct): Do not diagnose lack of named fields when
27457         anonymous structs and unions present for C1X.  Accept flexible
27458         array members in structure with anonymous structs or unions but no
27459         directly named fields.
27460         * doc/extend.texi (Unnamed Fields): Update.
27461
27462 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
27463
27464         * gimple.h (compare_field_offset): Rename into...
27465         (gimple_compare_field_offset): ...this.
27466         * gimple.c (compare_field_offset): Rename into...
27467         (gimple_compare_field_offset): ...this.  Compare the full access if
27468         the offset is self-referential.
27469         (gimple_types_compatible_p): Adjust for above renaming.
27470         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
27471         DECL_NONADDRESSABLE_P flag of fields before merging them.
27472
27473 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
27474
27475         * tree.h (ctor_to_list): Delete.
27476         * tree.c (ctor_to_list): Delete.
27477
27478 2010-05-15  Jan Hubicka  <jh@suse.cz>
27479
27480         * ipa-reference.c: Include toplev.h
27481         (is_proper_for_analysis): Only add to all_module_statics
27482         if it is allocated.
27483         (write_node_summary_p, stream_out_bitmap,
27484         ipa_reference_write_optimization_summary,
27485         ipa_reference_read_optimization_summary): New.
27486         (struct ipa_opt_pass_d pass_ipa_reference): Add
27487         optimization summary streaming.
27488         * lto-cgraph.c (referenced_from_this_partition_p,
27489         reachable_from_this_partition_p): New functions.
27490         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
27491         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
27492         * opts.c (decode_options): Enable ipa_reference.
27493         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
27494         * lto-streamer.h (referenced_from_this_partition_p,
27495         reachable_from_this_partition_p): Declare.
27496
27497 2010-05-15  Richard Guenther  <rguenther@suse.de>
27498
27499         PR tree-optimization/44038
27500         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
27501         taking the address of a V_C_E of a constant.
27502
27503 2010-05-14  Jan Hubicka  <jh@suse.cz>
27504
27505         * tree.h (memory_identifier_string): Remove.
27506         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
27507         (ipa_reference_global_vars_info_d): Remove statics_not_read and
27508         statics_not_written.
27509         (ipa_reference_optimization_summary_d): New structure.
27510         (ipa_reference_optimization_summary_t): New type and vector.
27511         (ipa_reference_vars_info_d): Embedd structures instead of using
27512         pointers.
27513         (reference_vars_to_consider): Remove out of GGC space.
27514         (module_statics_escape): Remove.
27515         (global_info_obstack): Rename to ...
27516         (optimization_summary_obstack): ... this one.
27517         (initialization_status_t): Remove.
27518         (memory_identifier_string): Remove.
27519         (get_reference_vars_info): Fix indenting.
27520         (set_reference_vars_info): Likewise.
27521         (get_reference_optimization_summary): New.
27522         (set_reference_optimization_summary): New.
27523         (get_global_reference_vars_info): Remove.
27524         (ipa_reference_get_read_global): Remove.
27525         (ipa_reference_get_written_global): Remove.
27526         (ipa_reference_get_not_read_global): Update.
27527         (ipa_reference_get_not_written_global): Update.
27528         (is_proper_for_analysis): Outlaw addressable.
27529         (propagate_bits): Update for new datastructures.
27530         (analyze_variable): Remove.
27531         (init_function_info): Update for new datastructures.
27532         (clean_function_local_data): Remove.
27533         (clean_function): Remove.
27534         (copy_global_bitmap): Use optimizations_summary_obstack.
27535         (duplicate_node_data): Duplicate optimization summary only.
27536         (remove_node_data): Remove optimization summary only.
27537         (generate_summary): Do not analyze variables; do not compute
27538         module_statics_escape; do not prune solutions by it.
27539         (read_write_all_from_decl): Fix typos in comments.
27540         (propagate): Doscover readonly and nonaddressable first;
27541         update for new datastructures; share global bitmaps.
27542         * ipa-reference.h (ipa_reference_get_read_global,
27543         ipa_reference_get_written_global): Remove.
27544         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
27545         * Makefile.in: Remove ipa-refereference from GT files.
27546
27547 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
27548
27549         PR debug/44112
27550         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
27551         for all SYMBOL_REF_DECLs.
27552
27553 2010-05-14  Jan Hubicka  <jh@suse.cz>
27554
27555         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
27556         (varpool_all_refs_explicit_p): New inline function.
27557         * ipa-reference.c: Update comment.
27558         (module_statics_written): Remove.
27559         (get_static_decl): Remove.
27560         (ipa_init): Do not initialize module_statics_written.
27561         (analyze_function): Likewise.
27562         (generate_summary): Likewise; do not compute module_statics_readonly
27563         and do not update variable flags.
27564         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
27565         * ipa.c: Inlucde flags.h
27566         (cgraph_local_node_p): New.
27567         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
27568         promote functions to local.
27569         (ipa_discover_readonly_nonaddressable_vars): New function.
27570         (function_and_variable_visibility): Use cgraph_local_node_p.
27571         * varpool.c (varpool_finalize_decl): Set force_output for
27572         DECL_PRESERVE_P vars.
27573
27574 2010-05-14  Jan Hubicka  <jh@suse.cz>
27575
27576         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
27577
27578 2010-05-14  Richard Guenther  <rguenther@suse.de>
27579
27580         PR tree-optimization/44119
27581         * tree-ssa-pre.c (eliminate): Properly mark replacement of
27582         a PHI node necessary.
27583
27584 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
27585
27586         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
27587
27588 2010-05-14  Jason Merrill  <jason@redhat.com>
27589
27590         PR c++/44127
27591         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
27592         (gimple_call_set_nothrow): New.
27593         * gimple.c (gimple_build_call_from_tree): Call it.
27594         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
27595
27596         PR c++/44127
27597         * gimplify.c (gimplify_seq_add_stmt): No longer static.
27598         * gimple.h: Declare it.
27599         * gimple.c (gimple_build_eh_filter): No ops.
27600
27601 2010-05-14  Jan Hubicka  <jh@suse.cz>
27602
27603         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
27604         nodes already in queue.
27605         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
27606         re-enqueueing node.
27607
27608 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
27609
27610         PR debug/44136
27611         * cfgexpand.c (expand_debug_expr): If non-memory op0
27612         has BLKmode, return NULL.
27613
27614 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
27615
27616         * config.gcc: Add support for --with-cpu option for bdver1.
27617         * config/i386/i386.h (TARGET_BDVER1): New macro.
27618         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
27619         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27620         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
27621         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27622         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
27623         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
27624         (processor_type): Add PROCESSOR_BDVER1.
27625         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
27626         processor_type in config/i386/i386.h.
27627         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
27628         movaps <reg, reg> instead of movapd <reg, reg> when replacing
27629         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
27630         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
27631         to emit packed xor instead of packed double/packed integer
27632         xor for SSE and AVX when moving a zero value.
27633         * config/i386/sse.md: Add check for
27634         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
27635         movapd/movdqa for SSE and AVX.
27636         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
27637         single logical operations i.e and, or and xor instead of packed double
27638         logical operations for SSE and AVX.
27639         * config/i386/i386-c.c (ix86_target_macros_internal):
27640         Add PROCESSOR_BDVER1.
27641         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
27642         (has_fma4, has_xop): New.
27643         * config/i386/i386.c (bdver1_cost): New variable.
27644         (m_BDVER1): New macro.
27645         (m_AMD_MULTIPLE): Add m_BDVER1.
27646         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
27647         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
27648         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
27649         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
27650         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
27651         x86_tune_sse_partial_reg_dependency,
27652         x86_tune_sse_unaligned_load_optimal,
27653         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
27654         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
27655         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
27656         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
27657         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
27658         Enable/disable for bdver1.
27659         (processor_target_table): Add bdver1_cost.
27660         (cpu_names): Add bdver1.
27661         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
27662          processor_alias_table.
27663         (ix86_expand_vector_move_misalign): Change.
27664         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
27665         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
27666         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
27667         of movupd/movdqu for SSE and AVX.
27668         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
27669         (ix86_tune_adjust_cost): Add code for bdver1.
27670         (standard_sse_constant_opcode): Add check for
27671         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
27672         of packed double xor for SSE and AVX.
27673
27674 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
27675
27676         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
27677         result to unsigned.
27678
27679 2010-05-14  Tristan Gingold  <gingold@adacore.com>
27680
27681         * toplev.c (default_debug_hooks): Remove this variable.
27682         (process_options): Remove assignments to default_debug_hooks.
27683
27684 2010-05-14  Martin Jambor  <mjambor@suse.cz>
27685
27686         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
27687         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
27688         * langhooks.h (struct lang_hooks_for_decls): Removed field
27689         fold_obj_type_ref.
27690         * tree.c (free_lang_data): Remove assignment to
27691         lang_hooks.fold_obj_type_ref.
27692         * tree.def (OBJ_TYPE_REF): Update comment.
27693
27694 2010-05-14  Richard Guenther  <rguenther@suse.de>
27695
27696         PR tree-optimization/44124
27697         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
27698
27699 2010-05-14  Alan Modra  <amodra@gmail.com>
27700
27701         PR target/44075
27702         * config/rs6000/rs6000.c (struct machine_function): Reorder
27703         fields for better packing.  Add lr_save_state.
27704         (rs6000_ra_ever_killed): Return lr_save_state if set.
27705         (rs6000_emit_eh_reg_restore): Set lr_save_state.
27706
27707 2010-05-13  Jan Hubicka  <jh@suse.cz>
27708
27709         * varpool.c (decide_is_variable_needed): Drop code checking
27710         TREE_SYMBOL_REFERENCED.
27711
27712 2010-05-13  Jan Hubicka  <jh@suse.cz>
27713
27714         * final.c (output_addr_const): Do not call mark_decl_referenced.
27715         * cgraphunit.c (process_function_and_variable_attributes): Use
27716         mark_needed_node dirrectly.
27717         (assemble_thunk): Do not call mark_decl_referenced.
27718
27719 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
27720
27721         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
27722
27723 2010-05-13  Jeff Law  <law@redhat.com>
27724
27725         * ira-conflicts.c (print_allocno_conflicts): New function broken out
27726         from...
27727         (print_conflicts): Call print_allocno_conflicts.
27728
27729 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
27730
27731         PR debug/44104
27732         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
27733         if it is NULL.
27734
27735 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
27736
27737         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
27738         t-mingw-w64 or t-mingw-w32 for multilib configuration.
27739         * config/i386/t-mingw-w32: New.
27740         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
27741
27742 2010-05-13  Martin Jambor  <mjambor@suse.cz>
27743
27744         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
27745         gimple-fold.c).
27746         * gimple-fold.c (get_base_binfo_for_type): New function.
27747         (gimple_get_relevant_ref_binfo): Likewise.
27748         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27749         (gimple_fold_obj_type_ref): Likewise.
27750         (fold_gimple_call): Simplify condition for folding virtual calls
27751         and call gimple_fold_obj_type_ref.
27752         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
27753         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27754
27755 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
27756
27757         * config/rs6000/rs6000-protos.h
27758         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
27759         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
27760         (rs6000_debug_mode_dependent_address)
27761         (rs6000_mode_dependent_address_ptr): Likewise.
27762
27763 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
27764
27765         PR debug/43983
27766         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
27767         by SRA.
27768         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
27769         * tree-sra.c (create_access_replacement): Call unshare_expr before
27770         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
27771         * dwarf2out.c: Include tree-flow.h.
27772         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
27773         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
27774         Handle DW_OP_bit_piece.
27775         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
27776         construct_piece_list, adjust_piece_list): New functions.
27777         (add_var_loc_to_decl): Handle SRA optimized variables.
27778         Adjust for var_loc_note to loc field renaming.
27779         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
27780         in VAR_LOCATION note.
27781         (new_loc_descr_op_bit_piece): New function.
27782         (dw_sra_loc_expr): New function.
27783         (dw_loc_list): Use it.  Don't handle the last range after the
27784         loop, handle it inside of the loop.  Adjust for var_loc_note
27785         to loc field renaming.
27786         (add_location_or_const_value_attribute): Only special case
27787         single entry loc lists if loc is NOTE_P.  Adjust for
27788         var_loc_note to loc field renaming.
27789         (dwarf2out_var_location): Don't set newloc->var_loc_note
27790         and newloc->next here.
27791
27792 2010-05-12  Jan Hubicka  <jh@suse.cz>
27793
27794         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
27795         flag.
27796         * cgraph.h (cgraph_only_called_directly_p,
27797         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
27798         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
27799         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
27800         (assemble
27801         * ipa.c (cgraph_remove_unreachable_nodes): Use
27802         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
27803         flags.
27804         * tree-inline.c (copy_bb): Check address_taken flag.
27805         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
27806         externally_visible flag.
27807
27808 2010-05-12  Jason Merrill  <jason@redhat.com>
27809
27810         PR bootstrap/44048
27811         PR target/44099
27812         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
27813         * sdbout.c (plain_type_1): Likewise.
27814         * dwarf2out.c (is_base_type): Likewise.
27815         (gen_type_die_with_usage): Likewise.  Generate
27816         DW_TAG_unspecified_type for any LANG_TYPE.
27817
27818 2010-05-12  Jan Hubicka  <jh@suse.cz>
27819
27820         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
27821         indrect edges too.
27822         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
27823         (cgraph_clone_edge): Update.
27824         (cgraph_node_remove_callees): Remove indirect calls too.
27825         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
27826         (cgraph_create_indirect_edge): Update prototype.
27827         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
27828         is_proper_for_analysis.
27829         (add_new_function, visited_nodes, function_insertion_hook_holder,
27830         get_local_reference_vars_info, mark_address_taken, mark_address,
27831         mark_load, mark_store, check_asm_memory_clobber, check_call,
27832         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
27833         (ipa_init): Do not initialize visited_nodes;
27834         function_insertion_hook_holder.
27835         (analyze_variable): Rewrite.
27836         (analyze_function): Rewrite.
27837         (copy_local_bitmap): Remove.
27838         (duplicate_node_dat): Do not duplicate local info.
27839         (generate_summary): Simplify to only walk cgraph.
27840         (write_node_summary_p, ipa_reference_write_summary,
27841         ipa_reference_read_summary): Remove.
27842         (propagate): Do not remove function insertion;
27843         generate summary.
27844         (pass_ipa_reference): NULLify summary handling fields.
27845         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
27846         (input_edge): Input ecf_flags.
27847         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
27848         (update_indirect_edges_after_inlining): Ignore edges with unknown
27849         param.
27850
27851 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
27852
27853         * implicit-zee.c: New file.
27854         * tree-pass.h (pass_implicit_zee): Declare.
27855         * passes.c (init_optimization_passes): Add zee pass.
27856         * common.opt (fzee): New flag.
27857         * timevar.def (TV_ZEE): Define.
27858         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
27859         and beyond.
27860         * Makefile.in (implicit-zee.o): Add new build file.
27861
27862 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27863             Nathan Froyd  <froydnj@codesourcery.com>
27864
27865         * c-common.c (sync_resolve_params): Remove write-only variable.
27866
27867 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
27868
27869         * target.h (struct gcc_target): Add mode_dependent_address_p field.
27870         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
27871         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
27872         * targhooks.c (default_mode_dependent_address_p): New function.
27873         * targhooks.h (default_mode_dependent_address_p): Declare function.
27874         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
27875         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
27876         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
27877         target hook. Change return type to bool.
27878         * recog.h (mode_dependent_address_p): Change return type to bool.
27879
27880 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27881             Nathan Froyd  <froydnj@codesourcery.com>
27882
27883         * tree-mudflap.c (build_function_type_0, build_function_type_1,
27884         build_function_type_2, build_function_type_3): Remove.
27885         (mudflap_init): Use build_function_type_list.
27886
27887 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27888             Nathan Froyd  <froydnj@codesourcery.com>
27889
27890         * coverage.c (build_fn_info_value): Call build_constructor instead of
27891         build_constructor_from_list.
27892         (build_ctr_info_value): Likewise.
27893         (build_gcov_info): Likewise.
27894
27895 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
27896
27897         * tree.c (build_constructor): Compute TREE_CONSTANT for the
27898         resultant constructor.
27899         (build_constructor_single): Don't set TREE_CONSTANT.
27900         (build_constructor_from_list): Don't compute TREE_CONSTANT.
27901
27902 2010-05-12  Jan Hubicka  <jh@suse.cz>
27903
27904         * cgraph.h (struct varpool_node): Add aux.
27905         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
27906         * varpool.c (varpool_remove_node): Do not remove initializer.
27907         (varpool_reset_queue): Export.
27908         (varpool_finalize_decl): Volatile vars are forced to be output.
27909         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
27910         replaced decl.
27911         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
27912         process_references, varpool_can_remove_if_no_refs): New functions.
27913         (cgraph_remove_unreachable_nodes): Handle variables too.
27914
27915 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
27916
27917         PR target/44088
27918         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
27919
27920 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
27921
27922         PR middle-end/44085
27923         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
27924         change value of ORT_TASK.
27925         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
27926         (omp_notice_threadprivate_variable): New function.
27927         (omp_notice_variable): Call it for threadprivate variables.
27928         If enclosing ctx is a task, print enclosing task rather than
27929         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
27930         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
27931         if task has untied clause.
27932
27933         PR debug/42278
27934         * dwarf2out.c (base_type_die): Don't add name attribute here.
27935         (modified_type_die): Instead of sizetype use
27936         its underlying original type.  If a DW_TAG_base_type doesn't
27937         have name added, add __unknown__.
27938         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
27939         always call force_type_die instead.
27940
27941 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
27942
27943         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
27944         for __stack_chk_guard.
27945
27946 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
27947
27948         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
27949         don't call start_source_file debug hook here...
27950         (finish_options): ... but here, after outputting predefined and
27951         command line defines and undefs.
27952
27953         PR middle-end/44071
27954         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
27955         no fallthru edge.
27956         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
27957         optimizing away empty bb with no successors, move over its
27958         footer chain to fallthru predecessor.
27959         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
27960         (rtl_split_edge): For asm goto call patch_jump_insn even if
27961         splitting fallthru edge.
27962
27963         PR c++/44059
27964         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
27965         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
27966         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
27967         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
27968         on DW.ref.* decls.
27969
27970         PR c++/44062
27971         * c-parser.c (c_parser_expression): Mark LHS of a comma
27972         expression as read if it is a decl, handled component or
27973         COMPOUND_EXPR with that on the RHS.
27974         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
27975         if it is a decl or handled component.
27976
27977 2010-05-11  Jan Hubicka  <jh@suse.cz>
27978
27979         * lto-symtab.c (lto_symtab_free): New function.
27980         * lto-streamer.h (lto_symtab_free): Declare.
27981
27982 2010-05-11  Jan Hubicka  <jh@suse.cz>
27983
27984         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
27985         that if function is needed it is reachable.
27986         (lto_output_node): See if it the function is reachable or referenced.
27987         (output_cgraph): Update call of lto_output_node.
27988         * lto-streamer.h (reachable_from_other_partition_p): Declare.
27989
27990 2010-05-11  Jan Hubicka  <jh@suse.cz>
27991
27992         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
27993         Mark as used.
27994
27995 2010-05-11  Jan Hubicka  <jh@suse.cz>
27996
27997         PR tree-optimize/44063
27998         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
27999         queue.
28000         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28001         limits.
28002         (estimate_function_body_sizes): Compute sizes even when disregarding.
28003
28004 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
28005
28006         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28007
28008 2010-05-11  Jan Hubicka  <jh@suse.cz>
28009
28010         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28011         into every boundary.
28012
28013 2010-05-11  Jan Hubicka  <jh@suse.cz>
28014
28015         * matrix-reorg.c (matrix_reorg): Rebuild edges.
28016
28017 2010-05-11  Jan Hubicka  <jh@suse.cz>
28018
28019         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
28020         lto_streamer_cache_delete): Put nodes into heap.
28021         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
28022         heap.
28023
28024 2010-05-11  Jan Hubicka  <jh@suse.cz>
28025
28026         * cgraphbuild.c (cgraph_rebuild_references): New.
28027         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
28028         out extern inlines.
28029         * cgraph.h (cgraph_rebuild_references): Declare.
28030         * tree-inline.c (tree_function_versioning): Use it.
28031         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
28032
28033 2010-05-11  Jan Hubicka  <jh@suse.cz>
28034
28035         * cgraph.c: Include ipa-utils.h
28036         (cgraph_create_virtual_clone): Update references.
28037         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
28038
28039 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28040
28041         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
28042         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
28043         cache size.
28044
28045 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28046
28047         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
28048
28049 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28050
28051         * gcc.c (execute): For -### don't quote arguments that
28052         contain just alphanumerics and _/-. characters.
28053         * doc/invoke.texi: Document that change for -###.
28054
28055         PR debug/44023
28056         * df-problems.c (struct dead_debug): Add to_rescan field.
28057         (dead_debug_init): Clear to_rescan field.
28058         (dead_debug_finish): Rescan all debug insns in to_rescan
28059         bitmap and free the bitmap.
28060         (dead_debug_insert_before): Instead of rescanning debug insns
28061         immediately queue their rescanning until dead_debug_finish.
28062         (df_note_bb_compute): After dead_debug_add do continue instead
28063         of break.
28064
28065 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
28066
28067         PR debug/44028
28068         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
28069         clear also INSN_REG_USE_LIST.
28070
28071 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28072
28073         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
28074
28075 2010-05-10  Jan Hubicka  <jh@suse.cz>
28076
28077         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
28078         commited change.
28079
28080 2010-05-10  Jan Hubicka  <jh@suse.cz>
28081
28082         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
28083         Allocate encoders.
28084         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
28085         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
28086         (lto_streamer_cache_create): Init alloc pool.
28087         (lto_streamer_cache_delete): Free alloc pool.
28088         * lto-streamer.h: Include alloc pool.
28089         (lto_streamer_cache_d): Use alloc pool.
28090         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
28091
28092 2010-05-10  Jan Hubicka  <jh@suse.cz>
28093
28094         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
28095         * cgraphbuild.c: Include except.h
28096         (record_type_list, record_eh_tables): New function.
28097         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
28098
28099 2010-05-10  Jan Hubicka  <jh@suse.cz>
28100
28101         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
28102         __frame_dummy_init_array_entry, force_to_data): Attribute as used
28103         rather than unused.
28104
28105 2010-05-10  Michael Matz  <matz@suse.de>
28106
28107         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
28108         (can_reassociate_p): Use FLOAT_TYPE_P.
28109         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
28110         (vect_force_simple_reduction): ... this.
28111         * tree-parloops.c (gather_scalar_reductions): Use
28112         vect_force_simple_reduction.
28113         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
28114         vect_is_simple_reduction, add modify argument, if true rewrite
28115         "a-b" into "a+(-b)".
28116         (vect_is_simple_reduction, vect_force_simple_reduction): New
28117         functions.
28118         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
28119
28120 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
28121             Vladimir Makarov  <vmakarov@redhat.com>
28122
28123         PR rtl-optimization/44012
28124         * ira-build.c (remove_unnecessary_allocnos): Nullify
28125         regno_allocno_map of the removed allocno.
28126
28127 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28128
28129         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
28130         to /dev/null.
28131         * configure: Regenerate.
28132
28133 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28134
28135         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
28136         unused.
28137         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
28138         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
28139         support in Sun ld.
28140         * configure: Regenerate.
28141
28142 2010-05-10  Richard Guenther  <rguenther@suse.de>
28143
28144         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
28145         marked if the entry identifier is marked.
28146
28147 2010-05-10  Richard Guenther  <rguenther@suse.de>
28148
28149         * c-common.c (struct c_common_attributes): Add fnspec attribute.
28150         (handle_fnspec_attribute): New function.
28151         * gimple.h (gimple_call_return_flags): Declare.
28152         (gimple_call_arg_flags): Likewise.
28153         * gimple.c (gimple_call_arg_flags): New function.
28154         (gimple_call_return_flags): Likewise.
28155         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
28156         New argument flags.
28157         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
28158         return value flags.
28159         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
28160         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
28161         main work to ...
28162         (make_heapvar_for): ... this new function.
28163         (handle_rhs_call): Handle fnspec attribute argument specifiers.
28164         (handle_lhs_call): Likewise.
28165         (find_func_aliases): Adjust.
28166
28167 2010-05-10  Richard Guenther  <rguenther@suse.de>
28168
28169         PR tree-optimization/44050
28170         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
28171
28172 2010-05-10  Wei Guozhi  <carrot@google.com>
28173
28174         PR target/42879
28175         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
28176
28177 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28178
28179         PR c/10676
28180         * c-typeck.c (lookup_field): Take a type directly.  Update
28181         recursive calls.
28182         (build_component_ref): Update call to lookup_field.
28183         (set_init_label): Use lookup_field to find initialized field.
28184         Handle returned list of fields like a sequence of designators.
28185
28186 2010-05-09  Richard Guenther  <rguenther@suse.de>
28187
28188         PR middle-end/44024
28189         * fold-const.c (tree_single_nonzero_warnv_p): Properly
28190         handle &FUNCTION_DECL.
28191
28192 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28193
28194         PR c/4784
28195         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
28196         structures and unions recursively.
28197         (detect_field_duplicates): Move duplicate detection with a hash to
28198         detect_field_duplicates_hash.  Always use a hash if anonymous
28199         structures or unions are present.
28200         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
28201         give errors.
28202
28203 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
28204
28205         PR target/44046
28206         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
28207         detect Atom, Core 2 and Core i7.
28208
28209 2010-05-09  Richard Guenther  <rguenther@suse.de>
28210
28211         * gcc.c (store_arg): Handle temporary file deletion for
28212         joined arguments.
28213
28214 2010-05-09  Richard Guenther  <rguenther@suse.de>
28215
28216         PR middle-end/44043
28217         * ipa-inline.c (estimate_function_body_sizes): Return after
28218         disregarding inline limits.
28219
28220 2010-05-09  Richard Guenther  <rguenther@suse.de>
28221
28222         * gcc.c (store_arg): Revert last change.
28223
28224 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
28225
28226         PR middle-end/28685
28227         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
28228         (optimize_ops_list): Call it.
28229
28230 2010-05-08  Richard Guenther  <rguenther@suse.de>
28231
28232         PR tree-optimization/44030
28233         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
28234         NECESSARY flag if we propagate from a inserted expression.
28235
28236 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
28237
28238         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
28239         domain types as equal if they are both PLACEHOLDER_EXPRs.
28240
28241 2010-05-08  Richard Guenther  <rguenther@suse.de>
28242
28243         * lto-wrapper.c (run_gcc): Remove linker output from
28244         command line for LTRANS invocation.
28245
28246 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
28247
28248         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
28249         lto-macho as lto_binary_reader.
28250         * target.h (struct gcc_target): New hooks lto_start and lto_end.
28251         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
28252         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
28253         in lto_start and lto_end calls.
28254         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
28255         magic numbers.
28256         (scan_prog_file): Update is_elf_or_coff call.
28257         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
28258
28259         * collect2.c (main): Fix enum comparison.
28260
28261         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
28262         Add prototypes.
28263         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
28264         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
28265         and TARGET_ASM_LTO_END.
28266         * darwin.c: Include obstack.h and lto-streamer.h.
28267         (lto_section_names_offset, lto_section_names_obstack,
28268         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
28269         global variables.
28270         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
28271         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
28272         to a temporary file.
28273         (darwin_asm_lto_end): New function.  Restore asm_out_file.
28274         (darwin_asm_named_section): For LTO sections, replace the name with
28275         the offset of the section name in a string table, and build this
28276         table.
28277         (darwin_file_start): Initialize global vars for LTO support.
28278         (darwin_file_end): If output to asm_out_file was redirected, append it
28279         to the proper asm_out_file here.  Add the section names section.
28280
28281 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
28282
28283         * c-pragma.c (pending_weak_d, pending_weak): New.
28284         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
28285         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
28286         handle_pragma_weak): Update the uses of pending_weaks.
28287
28288 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28289
28290         PR documentation/44016
28291         * doc/standards.texi (Standards): Link to unversioned
28292         cxx0x_status.html page.
28293
28294 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
28295
28296         PR target/43708
28297         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
28298         in addition to TREE_USED, to avoid "set but unused" warnings.
28299
28300 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28301
28302         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
28303         (is_loop_prefetching_profitable): Do not insert prefetches
28304         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
28305         times the prefetch ahead distance.
28306
28307 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28308
28309         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
28310         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
28311         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
28312         the unroll_factor.
28313
28314 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
28315
28316         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
28317         a diagnostic info when the insn-to-mem ratio is too small.
28318
28319 2010-05-07  Richard Guenther  <rguenther@suse.de>
28320
28321         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
28322         the linker plugin.
28323         (store_arg): Queue temp_filename for deletion instead of
28324         the whole argument.
28325
28326 2010-05-07  Richard Guenther  <rguenther@suse.de>
28327
28328         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
28329         (run_gcc): Handle LTRANS phase invocation.
28330         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
28331
28332 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
28333
28334         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
28335         this is also meaningful on PARM_DECLs and RESULT_DECLs.
28336
28337 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28338
28339         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
28340
28341 2010-05-07  Richard Guenther  <rguenther@suse.de>
28342
28343         PR tree-optimization/44020
28344         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
28345         code when PRE is not yet initialized.
28346
28347 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28348
28349         * config/mips/dbxmdebug.h: Remove.
28350         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
28351
28352 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
28353
28354         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
28355         with null pointer and also warn about ordered comparison of zero with
28356         pointer if -Wextra.
28357
28358 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
28359
28360         * graphite-blocking.c
28361         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
28362         * graphite-clast-to-gimple.c
28363         (clast_to_gcc_expression): Same.
28364         (precision_for_value): Same.
28365         (precision_for_interval): Same.
28366         (gcc_type_for_interval): Same.
28367         (graphite_create_new_guard): Same.
28368         (compute_bounds_for_level): Same.
28369         (graphite_create_new_loop_guard): Same.
28370         * graphite-interchange.c
28371         (build_linearized_memory_access): Same.
28372         (pdr_stride_in_loop): Same.
28373         (memory_strides_in_loop_1): Same.
28374         (memory_strides_in_loop): Same.
28375         (extend_scattering): Same.
28376         (psct_scattering_dim_for_loop_depth): Same.
28377         (pbb_number_of_iterations): Same.
28378         * graphite-poly.h
28379         (debug_iteration_domains): Same.
28380         * graphite-ppl.c
28381         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
28382         (ppl_set_inhomogeneous_gmp): Same.
28383         (ppl_strip_loop): Same.
28384         (ppl_lexico_compare_linear_expressions): Same.
28385         (ppl_read_polyhedron_matrix): Same.
28386         (ppl_max_for_le_pointset): Same.
28387         * graphite-ppl.h
28388         (ppl_read_polyhedron_matrix): Same.
28389         (tree_int_to_gmp): Same.
28390         (gmp_cst_to_tree): Same.
28391         (ppl_set_inhomogeneous): Same.
28392         (ppl_set_inhomogeneous_tree): Same.
28393         (ppl_set_coef): Same.
28394         (ppl_set_coef_tree): Same.
28395         * graphite-sese-to-poly.c
28396         (build_pbb_scattering_polyhedrons): Same.
28397         (build_scop_scattering): Same.
28398         (scan_tree_for_params_right_scev): Same.
28399         (scan_tree_for_params): Same.
28400         (find_params_in_bb): Same.
28401         (find_scop_parameters): Same.
28402         (add_upper_bounds_from_estimated_nit): Same.
28403         (build_loop_iteration_domains): Same.
28404         (add_condition_to_domain): Same.
28405         (pdr_add_memory_accesses): Same.
28406
28407 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
28408
28409         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
28410         CLooG's value_* macros to their respective mpz_* counterparts.
28411         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
28412         (graphite_create_new_loop_guard): Same.
28413         * graphite-interchange.c (build_linearized_memory_access): Same.
28414         (pdr_stride_in_loop): Same.
28415         (memory_strides_in_loop_1): Same.
28416         (1st_interchange_profitable_p): Same.
28417         * graphite-poly.c (extend_scattering): Same.
28418         (psct_scattering_dim_for_loop_depth): Same.
28419         (pbb_number_of_iterations): Same.
28420         (pbb_number_of_iterations_at_time): Same.
28421         * graphite-poly.h (new_1st_loop): Same.
28422         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
28423         (oppose_constraint): Same.
28424         (insert_constraint_into_matrix): Same.
28425         (ppl_set_inhomogeneous_gmp): Same.
28426         (ppl_set_coef_gmp): Same.
28427         (ppl_strip_loop): Same.
28428         (ppl_lexico_compare_linear_expressions): Same.
28429         (ppl_max_for_le_pointset): Same.
28430         (ppl_min_for_le_pointset): Same.
28431         (ppl_build_realtion): Same.
28432         * graphite-ppl.h (gmp_cst_to_tree): Same.
28433         (ppl_set_inhomogeneous): Same.
28434         (ppl_set_inhomogeneous_tree): Same.
28435         (ppl_set_coef): Same.
28436         (ppl_set_coef_tree): Same.
28437         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
28438         (build_scop_scattering): Same.
28439         (add_value_to_dim): Same.
28440         (scan_tree_for_params_right_scev): Same.
28441         (scan_tree_for_params_int): Same.
28442         (scan_tree_for_params): Same.
28443         (find_params_in_bb): Same.
28444         (find_scop_parameters): Same.
28445         (add_upper_bounds_from_estimated_nit): Same.
28446         (build_loop_iteration_domains): Same.
28447         (create_linear_expr_from_tree): Same.
28448         (add_condition_to_domain): Same.
28449         (pdr_add_memory_accesses): Same.
28450
28451 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
28452             Jason Merrill  <jason@redhat.com>
28453
28454         * c-common.c (c_common_reswords): Add nullptr.
28455         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
28456         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
28457         (gen_type_die_with_usage): Likewise.
28458         * dbxout.c (dbxout_type): Likewise.
28459         * sdbout.c (plain_type_1): Likewise.
28460
28461 2010-05-06  Jason Merrill  <jason@redhat.com>
28462
28463         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
28464         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
28465         ret appropriately.
28466         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
28467
28468         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
28469         stripping WITH_SIZE_EXPR.
28470         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
28471         change.
28472
28473 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28474
28475         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
28476         list of obsolete configurations.
28477         Disabled check for obsolete configurations.
28478         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
28479         Removed support for previous versions.
28480         * config/mips/iris.h: Removed.
28481         * config/mips/iris5.h: Removed.
28482         * config/mips/iris6.h: Merged old iris.h contents.
28483         (TARGET_IRIX): Removed.
28484         (DRIVER_SELF_SPECS): Removed mabi=32.
28485         (IDENT_ASM_OP): Removed undef.
28486         (STARTFILE_SPEC): Removed mabi=32.
28487         (ENDFILE_SPEC): Likewise.
28488         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
28489         (MACHINE_TYPE): Update for IRIX 6.5.
28490         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
28491         TARGET_IRIX by TARGET_IRIX6.
28492         (mips_file_start): Likewise.
28493         (mips_output_external): Remove IRIX 5/6 O32 support.
28494         (mips_output_function_prologue): Likewise.
28495         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
28496         TARGET_IRIX6.
28497         (TARGET_CPU_CPP_BUILTINS): Likewise.
28498         (TARGET_IRIX): Removed.
28499         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
28500         (MULTILIB_DIRNAMES): Removed 32.
28501         (MULTILIB_OSDIRNAMES): Removed ../lib.
28502         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
28503         (Specific, mips-sgi-irix5): Document removal.
28504         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
28505         Remove references to older IRIX 6 releases and the O32 ABI.
28506
28507 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
28508
28509         PR bootstrap/43994
28510         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
28511         instead of DF_REF_REAL_REG.
28512
28513 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
28514
28515         PR target/43888
28516         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
28517         handling to still return true for x64 targets.
28518
28519 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
28520
28521         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
28522
28523 2010-05-06  Jan Hubicka  <jh@suse.cz>
28524
28525         PR tree-optimization/43791
28526         * ipa-inline.c (update_caller_keys): Remove bogus
28527         disregard_inline_limits check.
28528
28529 2010-05-06  Michael Matz  <matz@suse.de>
28530
28531         PR tree-optimization/43984
28532         * tree-ssa-pre.c (inserted_phi_names): Remove.
28533         (inserted_exprs): Change to bitmap.
28534         (create_expression_by_pieces): Set bits, don't append to vector.
28535         (insert_into_preds_of_block): Don't handle inserted_phi_names.
28536         (eliminate): Don't look at inserted_phi_names, remove deleted
28537         insns from inserted_exprs.
28538         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
28539         (init_pre, fini_pre): Allocate and free bitmaps.
28540         (execute_pre): Insert insns on edges before elimination.
28541
28542 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
28543
28544         * tree.c (initializer_zerop): Handle STRING_CST.
28545
28546 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28547
28548         PR 40989
28549         * doc/invoke.texi (Wimplicit): Document as C only.
28550         * opts.c (common_handle_option): Add argument kind.
28551         (handle_option): Rename as read_cmdline_option. Factor out code to...
28552         (handle_option): ... here. New.
28553         (handle_options): Rename as read_cmdline_options.
28554         (decode_options): Update call.
28555         (set_option): Use option index instead of option pointer. Classify
28556         diagnostics correctly.
28557         (enable_warning_as_error): Call handle_option.
28558         * opts.h (set_option): Update declaration.
28559         (handle_option): Declare.
28560         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
28561         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
28562         * c-opts.c (set_Wimplicit): Delete.
28563         (c_family_lang_mask): New static constant.
28564         (c_common_handle_option): Add argument kind. Use handle_option
28565         instead of set_Wimplicit.
28566         (c_common_post_options): warn_implicit and warn_implicit_int
28567         are disabled by default.
28568         * c-common.c (warn_implicit): Do not define here.
28569         * c-common.h (warn_implicit): Do not declare here.
28570         (c_common_handle_option): Update declaration.
28571         * lto-opts.c (lto_reissue_options): Update call to set_option.
28572
28573 2010-05-06  Richard Guenther  <rguenther@suse.de>
28574
28575         PR tree-optimization/43571
28576         * domwalk.c (walk_dominator_tree): Walk the dominator
28577         sons in more optimal order.
28578
28579 2010-05-06  Richard Guenther  <rguenther@suse.de>
28580
28581         PR tree-optimization/43934
28582         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
28583         (stmt_cost): Likewise.
28584         (extract_true_false_args_from_phi): New helper.
28585         (determine_max_movement): For PHI nodes verify we can hoist them
28586         and compute their cost.
28587         (determine_invariantness_stmt): Handle PHI nodes.
28588         (move_computations_stmt): Likewise.  Hoist PHI nodes in
28589         if-converted form using COND_EXPRs.
28590         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
28591         (tree_ssa_lim): Likewise.
28592         * tree-flow.h (tree_ssa_lim): Adjust prototype.
28593         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
28594
28595 2010-05-06  Richard Guenther  <rguenther@suse.de>
28596
28597         PR tree-optimization/43987
28598         * tree-ssa-structalias.c (could_have_pointers): For possibly
28599         address-taken variables force pointers to be recorded.
28600         (create_variable_info_for_1): Likewise.
28601         (push_fields_onto_fieldstack): Pass in wheter all fields
28602         must have pointers.
28603         (find_func_aliases): Query types instead of vars whether
28604         they contain pointers where appropriate.
28605
28606 2010-05-06  Jan Hubicka  <jh@suse.cz>
28607
28608         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
28609         (record_reference, mark_address, mark_load, mark_store): Record
28610         references.
28611         (record_references_in_initializer): Update call of record_references.
28612         (rebuild_cgraph_edges): Remove all references before rebuiding.
28613         * cgraph.c (cgraph_create_node): Clear ref list.
28614         (cgraph_remove_node): Remove references.
28615         (dump_cgraph_node): Dump references.
28616         (cgraph_clone_node): Clone references.
28617         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
28618         (struct cgraph_node, varpool_node): Add ref_lst.
28619         * ipa-ref.c: New file.
28620         * ipa-ref.h: New file.
28621         * ipa-ref-inline.h: New file.
28622         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
28623         (referenced_from_other_partition_p): New function.
28624         (lto_output_varpool_node): Take set arugment; call
28625         referenced_from_other_partition.
28626         (lto_output_ref): New.
28627         (add_references): New.
28628         (output_refs): New.
28629         (output_cgraph): Compute boundary based on references; output refs.
28630         (output_varpool): Accept cgraph_node_set argument.
28631         (input_ref): New.
28632         (input_refs): New.
28633         (input_cgraph): Call input_refs.
28634         * lto-section-in.c (lto_section_name): Add refs.
28635         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
28636         (ipa-ref.o): New file.
28637         * varpool.c (varpool_node): Clear ipa ref list.
28638         (varpool_remove_node): Remove references.
28639         (dump_varpool_node): Dump references.
28640         (varpool_assemble_decl): Only compile finalized ones.
28641         (varpool_extra_name_alias): Initialize ref list.
28642         * lto-streamer.c (lto-get_section_name): Add .refs section.
28643         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
28644         (referenced_from_other_partition_p): Declared.
28645
28646 2010-05-06  Ira Rosen  <irar@il.ibm.com>
28647
28648         PR tree-optimization/43901
28649         * tree-vect-stmts.c (vectorizable_call): Assert that vector
28650         type is not NULL if it's transformation phase, and return
28651         FALSE if it's analysis.
28652         (vectorizable_conversion, vectorizable_operation,
28653         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
28654
28655 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
28656
28657         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28658         Delete.
28659         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28660         New define.
28661         * config/mips/mips-protos.h
28662         (mips_small_register_classes_for_mode_p): Delete prototype.
28663
28664 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
28665
28666         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
28667         * config/arm/arm.c (multiple_operation_profitable_p,
28668         compute_offset_order): New static functions.
28669         (load_multiple_sequence, store_multiple_sequence): Use them.
28670         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
28671         memory offsets, not register numbers.
28672         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
28673
28674 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
28675
28676         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
28677         (get_pending_sizes, put_pending_size, put_pending_sizes):
28678         Update the uses of pending_sizes.
28679         * c-decl.c (store_parm_decls): Likewise.
28680         * c-tree.h (struct c_arg_info): Likewise.
28681         * tree.h: Update the prototype for get_pending_sizes and
28682         put_pending_sizes.
28683
28684 2010-05-05  Jason Merrill  <jason@redhat.com>
28685
28686         PR debug/43370
28687         * c-common.c (handle_aligned_attribute): Respect
28688         ATTR_FLAG_TYPE_IN_PLACE.
28689
28690         PR testsuite/43758
28691         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
28692         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
28693         (TARGET_INITIALIZER): Use it.
28694         * c-common.c (attribute_takes_identifier_p): Call it.
28695         * c-common.h: Update prototype.
28696         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
28697         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
28698
28699 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
28700
28701         PR debug/43950
28702         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
28703         DW_ID_down_case for Fortran compilation units.
28704
28705 2010-05-05  Jan Hubicka  <jh@suse.cz>
28706
28707         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
28708         handle aliases.
28709
28710 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
28711
28712         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
28713         a variable-sized RESULT_DECL.
28714
28715 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
28716
28717         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
28718
28719 2010-05-05  Jason Merrill  <jason@redhat.com>
28720
28721         PR c++/43787
28722         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
28723         returns GS_OK.
28724         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
28725
28726 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
28727             Jakub Jelinek  <jakub@redhat.com>
28728
28729         PR debug/43478
28730         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
28731         (dead_debug_init, dead_debug_finish): New functions.
28732         (dead_debug_add, dead_debug_insert_before): Likewise.
28733         (df_note_bb_compute): Initialize a dead_debug object, add dead
28734         debug uses to it, insert debug bind insns before death insns,
28735         reset debug insns that refer to pending uses at the end.
28736         * rtl.h (make_debug_expr_from_rtl): New prototype.
28737         * varasm.c (make_debug_expr_from_rtl): New function.
28738
28739 2010-05-05  Jan Hubicka  <jh@suse.cz>
28740
28741         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
28742         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
28743         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
28744         lto_varpool_encoder_deref, lto_varpool_encoder_size,
28745         lto_varpool_encoder_encode_initializer_p,
28746         lto_set_varpool_encoder_encode_initializer): New functions.
28747         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
28748         call output_varpool.
28749         (input_varpool_node): Do not always set analyzed.
28750         (input_cgraph_1): Return vector of cgraph nodes.
28751         (input_varpool_1): Return vector of varpools.
28752         (input_cgraph): Free the vectors.
28753         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
28754         output only initializers needed.
28755         (lto_output): Only call output_cgraph.
28756         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
28757         * lto-section-out.c (lto_new_out_decl_state): Initialize
28758         state->varpool_node_encoder.
28759         * lto-streamer.h (lto_varpool_encoder_d): New.
28760         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
28761         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
28762         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
28763         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
28764         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
28765         Declare.
28766         (output_varpool, input_varpool): Remove declarations.
28767
28768 2010-05-05  Jan Hubicka  <jh@suse.cz>
28769
28770         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
28771         with body can prevail.
28772
28773 2010-05-05  Jan Hubicka  <jh@suse.cz>
28774
28775         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
28776         size.
28777
28778 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28779
28780         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
28781
28782         * gengtype.h (erro_at_line): Constify pos argument.
28783
28784         * gengtype.c: Include hashtab.h.
28785         (enum gc_used): Document GC_MAYBE_POINTED_TO.
28786         (error_at_line): Constify pos argument.
28787         (do_typedef): Initialize p->opt field.
28788         (get_file_gtfilename): Fix comment typo.
28789         (struct walk_type_data): Constify line field.
28790         (get_output_file_for_structure): New function.
28791         (write_local_func_for_structure): Constify orig_s argument.
28792         Use get_output_file_for_structure.
28793         (write_func_for_structure): Use get_output_file_for_structure.
28794         (INDENT): New define.
28795         (dump_pair, dump_type, dump_type_list, dump_typekind)
28796         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
28797         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
28798         functions.
28799         (seen_types): New variable.
28800         (main): New variable do_dump.  Process "-d" command line option.
28801         Call dump_everything if dump requested.
28802
28803 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
28804
28805         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
28806         in a temporary instead of invoking the macro multiple times.
28807         (track_expr_p): Likewise.
28808
28809 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
28810
28811         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
28812         per new semantics.
28813         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
28814         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
28815         conditions for printing notes.
28816         * common.opt (-Wcoverage-mismatch): Allow negative, default to
28817         true, update documentation.
28818         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
28819
28820 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
28821
28822         PR c/43981
28823         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
28824         on dimen.
28825
28826 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
28827
28828         PR target/43799
28829         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
28830         (*sse_prologue_save_insn1): Likewise.
28831         (SSE prologue save splitter): Likewise.
28832
28833 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
28834
28835         * tree.c (free_lang_data_in_one_sizepos): New inline function.
28836         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
28837         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
28838         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
28839         all decls.  Call it on DECL_FIELD_OFFSET of fields.
28840         (find_decls_types_r): Follow DECL_VALUE_EXPR.
28841         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
28842
28843 2010-05-04  Martin Jambor  <mjambor@suse.cz>
28844
28845         * tree-sra.c (build_access_from_expr_1): The first parameter type
28846         changed to simple tree.
28847         (build_access_from_expr): Likewise, gsi parameter was eliminated.
28848         (scan_assign_result): Renamed to assignment_mod_result, enum elements
28849         renamed as well.
28850         (build_accesses_from_assign): Removed all parameters except for a
28851         simple gimple statement.  Now returns a simple bool.
28852         (scan_function): All non-analysis parts moved to separate functions
28853         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
28854         parameters and updated both callers.
28855         (sra_modify_expr): Removed parameter data.
28856         (sra_modify_function_body): New function.
28857         (perform_intra_sra): Call sra_modify_function_body to modify the
28858         function body.
28859         (replace_removed_params_ssa_names): Parameter data changed into
28860         adjustments vector.
28861         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
28862         changed the parameter dont_convert to convert with the opposite
28863         meaning.
28864         (sra_ipa_modify_assign): Parameter data changed into adjustments
28865         vector, return value changed to bool.
28866         (ipa_sra_modify_function_body): New function.
28867         (sra_ipa_reset_debug_stmts): Updated a comment.
28868         (modify_function): Use ipa_sra_modify_function_body to modify function
28869         body.
28870
28871 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
28872
28873         PR middle-end/43671
28874         * alias.c (true_dependence): Handle the same VALUE in x and mem.
28875         (canon_true_dependence): Likewise.
28876         (write_dependence_p): Likewise.
28877
28878 2010-05-04  Jan Hubicka  <jh@suse.cz>
28879
28880         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
28881         * cgraphbuild.c: Include ipa-utils.h
28882         (record_reference_ctx): New struct.
28883         (record_reference): Simplify to work on initializers; not statements.
28884         (mark_address, mark_load, mark_store): New.
28885         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
28886         walk PHI nodes too.
28887         (record_references_in_initializer): Update use of record_reference.
28888         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
28889         walk PHI nodes too.
28890
28891 2010-05-04  Jan Hubicka  <jh@suse.cz>
28892
28893         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
28894         node will be removed anyway.
28895         (lto_varpool_replace_node): Allow also unanalyzed nodes;
28896         relink aliases of node into prevailing node.
28897         * varpool.c (varpool_remove_node): Remove aliases properly;
28898         when removing node, remove all its aliases too; remove DECL_INITIAL
28899         of removed node; ggc_free the varpool node.
28900
28901 2010-05-04  Richard Guenther  <rguenther@suse.de>
28902
28903         PR tree-optimization/43879
28904         * tree-ssa-structalias.c (alias_get_name): Use
28905         DECL_ASSEMBLER_NAME if available.
28906         (create_function_info_for): Return the varinfo node.
28907         (ipa_pta_execute): Associate same-body aliases and extra names
28908         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
28909
28910 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
28911
28912         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
28913
28914 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
28915
28916         PR bootstrap/43964
28917         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
28918         only if HONOR_REG_ALLOC_ORDER is not defined.
28919
28920 2010-05-04  Richard Guenther  <rguenther@suse.de>
28921
28922         PR tree-optimization/43949
28923         * tree-vrp.c (extract_range_from_binary_expr): Only handle
28924         TRUNC_MOD_EXPR.
28925
28926 2010-04-26  Jason Merrill  <jason@redhat.com>
28927
28928         * c.opt (-fstrict-enums): New.
28929         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
28930
28931 2010-05-03  David Ung  <davidu@mips.com>
28932             James E. Wilson  <wilson@codesourcery.com>
28933
28934         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
28935         emit the trap instruction before the divide for TUNE_74K.
28936
28937 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
28938
28939         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
28940         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
28941         based on the above, for new target hook.
28942
28943         * hooks.c (hook_bool_mode_true): New generic hook.
28944         * hooks.h (hook_bool_mode_true): Add prototype.
28945
28946         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
28947         target hook.
28948         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
28949         target hook, set to hook_bool_mode_false.
28950         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
28951         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
28952         with targetm.small_register_classes_for_mode_p.
28953         (find_reusable_reload): Likewise.
28954         (combine_reloads): Likewise.
28955         * reload1.c (reload_as_needed): Likewise.
28956         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
28957         * ifcvt.c (noce_process_if_block, check_cond_move_block,
28958         dead_or_predicable): Likewise.
28959         * regmove.c (optimize_reg_copy_1): Likewise.
28960         * calls.c (prepare_call_address): Likewise.
28961         (precompute_register_parameters): Likewise.
28962
28963         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
28964         hook definition.
28965         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
28966         implementation of the hook that considers all register classes
28967         small except for SH64.
28968         (sh_override_options): Use the new hook.
28969         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
28970         Add prototype.
28971
28972         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
28973         hook definition.
28974         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
28975         implementation of the hook that considers all register classes
28976         small for THUMB1.
28977         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
28978         Add prototype.
28979
28980         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
28981         hook definition.
28982         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
28983         implementation of the hook that considers all register classes
28984         small for MIPS16.
28985         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
28986         Add prototype.
28987
28988         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
28989         hook definition.
28990         * config/m32c/m32c.h: Likewise.
28991         * config/pdp11/pdp11.h: Likewise.
28992         * config/avr/avr.h: Likewise.
28993         * config/xtensa/xtensa.h: Likewise.
28994         * config/m68hc11/m68hc11.h: Likewise.
28995         * config/mn10300/mn10300.h: Likewise.
28996         * config/mcore/mcore.h: Likewise.
28997         * config/h8300/h8300.h: Likewise.
28998         * config/bfin/bfin.h: Likewise.
28999
29000         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29001         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29002
29003 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
29004
29005         * double-int.h (tree_to_double_int): Remove macro.
29006         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29007         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29008         (tree_to_double_int): New function.
29009         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29010         Move ...
29011         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29012
29013 2010-05-03  Richard Guenther  <rguenther@suse.de>
29014
29015         PR tree-optimization/43971
29016         * tree-ssa-structalias.c (get_constraint_for_1): Fix
29017         constraints in the !flag_delete_null_pointer_checks case.
29018
29019 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
29020
29021         PR debug/43972
29022         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
29023         result mode matches original rtl mode.
29024
29025 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
29026
29027         PR target/43888
29028         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
29029
29030 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29031
29032         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
29033         when processing flag options.
29034
29035 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29036
29037         * gcov-iov.c (main): Change format string placeholder
29038         from %#08x to 0x%08x.
29039         * genchecksum.c (dosum): Change format string placeholder
29040         from %#02x to 0x%02x.
29041
29042 2010-05-02  Richard Guenther  <rguenther@suse.de>
29043
29044         PR tree-optimization/43879
29045         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
29046
29047 2010-05-02  Bruno Haible  <bruno@clisp.org>
29048
29049         * doc/extend.texi (Function Attributes): Fix a typo.
29050
29051 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29052
29053         Revert:
29054         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
29055         placeholder from 0x%x to %#x.
29056         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29057         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29058         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29059         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29060         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29061         * config/i386/i386.c (ix86_target_string): Ditto.
29062         * config/i386/i386.c (output_pic_addr_const): Ditto.
29063         (print_operand): Ditto.
29064
29065 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29066
29067         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
29068         placeholder from 0x%x to %#x.
29069         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
29070         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
29071         (ASM_OUTPUT_DEBUG_DATA): Ditto.
29072         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
29073         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
29074         * optc-gen.awk: Ditto.
29075         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
29076         (HOST_WIDE_INT_PRINT_HEX): Ditto.
29077         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
29078         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29079
29080 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29081
29082         * target.h (struct calls): Add function_value_regno_p field.
29083         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
29084         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
29085         * targhooks.c (default_function_value_regno_p): New function.
29086         * targhooks.h (default_function_value_regno_p): Declare function.
29087         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
29088         * builtins.c. (apply_result_size): (Ditto.).
29089         * combine.c. (likely_spilled_retval_p): (Ditto.).
29090         * mode-switching.c. Include 'target.h'.
29091         (create_pre_exit): Use function_value_regno_p hook.
29092         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
29093         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
29094         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
29095
29096         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
29097         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
29098         (ix86_function_value_regno_p): Declare as static, change argument
29099         type to const unsigned int.
29100         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
29101
29102 2010-05-01  Richard Guenther  <rguenther@suse.de>
29103
29104         PR tree-optimization/43949
29105         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
29106         types.
29107         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
29108
29109 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29110
29111         * rtl.h (CONST_DOUBLE_P): Define.
29112         (rtx_to_double_int): Declare.
29113         * emit-rtl.c (rtx_to_double_int): New function.
29114         * dwarf2out.c (insert_double): New function.
29115         (loc_descriptor, add_const_value_attribute): Clean up, use
29116         rtx_to_double_int and insert_double functions.
29117
29118 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
29119
29120         * doc/extend.texi (Inline): Add missing return keyword to examples.
29121         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
29122         "command-line".
29123
29124 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
29125
29126         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
29127         the variable part of the offset as well.  Use highest_pow2_factor for
29128         all alignment checks.
29129
29130 2010-04-30  Richard Guenther  <rguenther@suse.de>
29131
29132         PR tree-optimization/43879
29133         * tree-ssa-structalias.c (type_could_have_pointers): Functions
29134         can have pointers.
29135
29136 2010-04-30  Jan Hubicka  <jh@suse.cz>
29137
29138         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
29139         varpool.
29140         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
29141
29142 2010-04-30  Jan Hubicka  <jh@suse.cz>
29143
29144         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
29145         New.
29146         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
29147         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
29148         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
29149         cgraph_node_set_needs_ltrans_p): Remove.
29150
29151 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29152
29153         * sdbout.c: Include vec.h, do not include varray.h.
29154         (deferred_global_decls, sdbout_global_decl,
29155         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
29156         * toplev.c: Do not include varray.h.
29157         (dump_memory_report): Do not dump VARRAY statistics.
29158         * gengtype.c (open_base_file): Ignore varray.h.
29159         * Makefile.in: Update for abovementioned changes.
29160         Remove all traces of varray.c and varray.h.
29161         * varray.c: Remove file.
29162         * varray.h: Remove file.
29163
29164 2010-04-30  Jan Hubicka  <jh@suse.cz>
29165
29166         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
29167         references.
29168
29169 2010-04-30  Jan Hubicka  <jh@suse.cz>
29170
29171         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
29172         needed.
29173
29174 2010-04-30  Richard Guenther  <rguenther@suse.de>
29175
29176         * tree-ssa-structalias.c (get_constraint_for_1): Generate
29177         constraints for CONSTRUCTOR.
29178
29179 2010-04-30  Richard Guenther  <rguenther@suse.de>
29180
29181         PR lto/43946
29182         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
29183         first after all lowering passes.
29184
29185 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29186
29187         * toplev.c: Include varray.h for statistics dumping.
29188         * tree.h: Do not declare varray_head_tag.
29189         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
29190         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
29191         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
29192         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
29193         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
29194         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
29195         c-common.c, c-common.h, reg-stack.c, basic-block.h,
29196         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
29197         include varray.h.
29198         * Makefile.in: Update for abovementioned changes.
29199
29200 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
29201
29202         PR debug/43942
29203         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
29204
29205 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29206
29207         * config/picochip/picochip.c (picochip_legitimize_address): Define.
29208         Use this function to do machine-specific conversion.
29209         (picochip_legitimize_reload_address): Likewise.
29210         (picochip_legitimate_address_p): Check valid base register only if
29211         strict.
29212         (picochip_check_conditional_copy): Check for modw only if opnd is
29213         register.
29214         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
29215         to call the function in c.
29216         * config/picochip/picochip-protos.h
29217         (picochip_legitimize_reload_address): Define.
29218         * config/picochip/picochip.md (supported_compare1): Define.
29219
29220 2010-04-30  Jan Hubicka  <jh@suse.cz>
29221
29222         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
29223         (cgraph_global_info): Remove inlined.
29224         (LTO_cgraph_tag_names): Remove.
29225         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
29226         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
29227         simplify cgraph tags and document.
29228         (lto_output_node): Use only LTO_cgraph_unavail_node and
29229         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
29230         for_functions_valid, global info, process and output flags.
29231         (input_overwrite_node): Initialize estimated stack size and
29232         estimated growth.  Do not read flags we no longer store.
29233         (input_node): Likewise do not read info no longer stored.
29234         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
29235         flag.
29236
29237 2010-04-30  Richard Guenther  <rguenther@suse.de>
29238
29239         PR tree-optimization/43879
29240         * tree-ssa-structalias.c (get_constraint_for_1): Properly
29241         handle non-zero initializers.
29242
29243 2010-04-30  Richard Guenther  <rguenther@suse.de>
29244
29245         * builtins.c (fold_builtin_1): Delete free (0).
29246
29247 2010-04-29  Jan Hubicka  <jh@suse.cz>
29248
29249         * gengtype.c (open_base_files): Add lto-streamer.h
29250         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
29251         (pass_ipa_cp): GGC collect.
29252         * toplev. (compile_file): Do not output symbols.
29253         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
29254         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
29255         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
29256         * lto-section-in.c: Include ggc.h
29257         (lto_new_in_decl_state): Alloc in GGC.
29258         (lto_delete_in_decl_state): Likewise.
29259         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
29260         Collect.
29261
29262 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
29263
29264         PR target/42895
29265         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
29266         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
29267         (HONOR_REG_ALLOC_ORDER): Describe new macro.
29268         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
29269         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
29270         account only if HONOR_REG_ALLOC_ORDER is not defined.
29271         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
29272         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
29273
29274 2010-04-29  Jon Grant  <04@jguk.org>
29275
29276         * collect2.c (vflag): Change type from int to bool.
29277         (debug): Likewise.
29278         (helpflag): New global bool.
29279         (main): Set vflag and debug with boolean, not integer truth values.
29280         Accept new "--help" option and output usage text if found.
29281         * collect2.h (vflag): Update prototype.
29282         (debug): Likewise.
29283
29284 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
29285
29286         PR bootstrap/43936
29287         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
29288
29289 2010-04-29  Richard Guenther  <rguenther@suse.de>
29290
29291         PR bootstrap/43935
29292         * plugin.h (invoke_plugin_callbacks): Annotate arguments
29293         with ATTRIBUTE_UNUSED.
29294
29295 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
29296
29297         PR target/43921
29298         * config/i386/i386.c (get_some_local_dynamic_name): Replace
29299         INSN_P with NONDEBUG_INSN_P.
29300         (distance_non_agu_define): Likewise.
29301         (distance_agu_use): Likewise.
29302
29303 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
29304
29305         From Dominique d'Humieres  <dominiq@lps.ens.fr>
29306         PR bootstrap/43858
29307         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
29308         test_set.
29309
29310 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
29311
29312         * plugin.h (invoke_plugin_callbacks): New inline function.
29313         * plugin.c (flag_plugin_added): New global flag.
29314         (add_new_plugin): Initialize above flag.
29315         (invoke_plugin_callbacks): Rename to ...
29316         (invoke_plugin_callbacks_full): ... this.
29317
29318 2010-04-28  Jan Hubicka  <jh@suse.cz>
29319
29320         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
29321         (lto_varpool_replace_node): New.
29322         (lto_symtab_resolve_symbols): Resolve varpool nodes.
29323         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
29324         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
29325         * cgraph.h (varpool_node_ptr): New type.
29326         (varpool_node_ptr): New vector.
29327         (varpool_node_set_def): New structure.
29328         (varpool_node_set): New type.
29329         (varpool_node_set): New vector.
29330         (varpool_node_set_element_def): New structure.
29331         (varpool_node_set_element, const_varpool_node_set_element): New types.
29332         (varpool_node_set_iterator): New type.
29333         (varpool_node): Add prev pointers, add used_from_other_partition,
29334         in_other_partition.
29335         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
29336         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
29337         varpool_get_node, varpool_remove_node): Declare.
29338         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
29339         varpool_node_set_size): New inlines.
29340         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
29341         * tree-pass.h (varpool_node_set_def): Forward declare.
29342         (ipa_opt_pass_d): Summary writting takes vnode sets too.
29343         (ipa_write_optimization_summaries): Update prototype.
29344         * ipa-cp.c (ipcp_write_summary): Update.
29345         * ipa-reference.c (ipa_reference_write_summary): Update.
29346         * lto-cgraph.c (lto_output_varpool_node): New static function.
29347         (output_varpool): New function.
29348         (input_varpool_node): New static function.
29349         (input_varpool_1): New function.
29350         (input_cgraph): Input varpool.
29351         * ipa-pure-const.c (pure_const_write_summary): Update.
29352         * lto-streamer-out.c (lto_output): Update, output varpool too.
29353         (write_global_stream): Kill WPA hack.
29354         (produce_asm_for_decls): Update.
29355         (output_alias_pair_p): Handle variables.
29356         (output_unreferenced_globals): Output only needed partition of varpool.
29357         * ipa-inline.c (inline_write_summary): Update.
29358         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
29359         cgraph.
29360         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
29361         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
29362         varpool_node_set_new, varpool_node_set_add,
29363         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
29364         debug_varpool_node_set): New functions.
29365         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
29366         (execute_one_pass): Process new decls too.
29367         (ipa_write_summaries_2): Pass around vsets.
29368         (ipa_write_summaries_1): Likewise.
29369         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
29370         to add.
29371         (ipa_write_optimization_summaries_1): Pass around vsets.
29372         (ipa_write_optimization_summaries): Likewise.
29373         * varpool.c (varpool_get_node): New.
29374         (varpool_node): Update doubly linked lists.
29375         (varpool_remove_node): New.
29376         (dump_varpool_node): More dumping.
29377         (varpool_enqueue_needed_node): Update doubly linked lists.
29378         (decide_is_variable_needed): Kill ltrans hack.
29379         (varpool_finalize_decl): Kill lto hack.
29380         (varpool_assemble_decl): Skip decls in other partitions.
29381         (varpool_assemble_pending_decls): Update doubly linkes lists.
29382         (varpool_empty_needed_queue): Likewise.
29383         (varpool_extra_name_alias): Likewise.
29384         * lto-streamer.c (lto_get_section_name): Add vars section.
29385         * lto-streamer.h (lto_section_type): Update.
29386         (output_varpool, input_varpool): Declare.
29387
29388 2010-04-28  Mike Stump  <mikestump@comcast.net>
29389
29390         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
29391
29392 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29393
29394         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
29395         record or union type with RECORD_OR_UNION_TYPE_P predicate.
29396         (lto_input_ts_type_tree_pointers): Likewise.
29397         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
29398         (lto_output_ts_type_tree_pointers): Likewise.
29399
29400 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29401
29402         Uniquization of constants at the Tree level
29403         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
29404         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
29405         bit to the end.
29406         (tree_output_constant_def): Declare.
29407         * gimplify.c (gimplify_init_constructor): When using block copy, first
29408         uniquize the constant constructor on the RHS.
29409         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
29410         DECL_IN_CONSTANT_POOL flag.
29411         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
29412         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
29413         constant pool.
29414         (assemble_variable): Deal with symbols belonging to the tree constant
29415         pool.
29416         (get_constant_section): Add ALIGN parameter and simplify.
29417         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
29418         (assemble_constant_contents): Use the expression of the VAR_DECL.
29419         (output_constant_def_contents): Use the alignment of the VAR_DECL.
29420         (tree_output_constant_def): New global function.
29421         (mark_constant): Use the expression of the VAR_DECL.
29422         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
29423         its expression.
29424         (output_object_block): Likewise and assemble the expression.
29425
29426 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
29427
29428         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
29429         hash_tree, eq_tree): New tree hash table.
29430         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
29431         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
29432         lto_orig_address_remove): Reimplement.
29433
29434 2010-04-28  Xinliang David Li  <davidxl@google.com>
29435
29436         PR c/42643
29437         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
29438         (compute_uninit_opnds_pos): New function.
29439         (is_non_loop_exit_postdominating): New function.
29440         (compute_control_dep_chain): New function.
29441         (find_pdom): New function.
29442         (convert_control_dep_chain_into_preds): New function.
29443         (find_predicates): New function.
29444         (find_control_equiv_block): New function.
29445         (collect_phi_def_edges): New function.
29446         (find_def_preds): New function.
29447         (find_dom): New function.
29448         (dump_predicates): New function.
29449         (get_cmp_code): New function.
29450         (is_value_included_in): New function.
29451         (find_matching_predicate_in_rest_chains): New function.
29452         (use_pred_not_overlap_with_undef_path_pred): New function.
29453         (is_use_properly_guarded): New function.
29454         (normalize_cond_1): New function.
29455         (is_and_or_or): New function.
29456         (normalize_cond): New function.
29457         (is_gcond_subset_of): New function.
29458         (is_subset_of_any): New function.
29459         (is_or_set_subset_of): New function.
29460         (is_and_set_subset_of): New function.
29461         (is_norm_cond_subset_of): New function.
29462         (is_pred_expr_subset_of): New function.
29463         (is_pred_chain_subset_of): New function.
29464         (is_included_in): New function.
29465         (is_superset_of): New function.
29466         (find_uninit_use): New function.
29467         (warn_uninitialized_phi): New function.
29468         (compute_possibly_undefined_names): New function.
29469         (ssa_undefined_value_p): New function.
29470         (execute_late_warn_uninitialized): New function.
29471         * tree-ssa.c (ssa_undefined_value_p): Removed.
29472         (warn_uninit): Changed to extern.
29473         (warn_uninitialized_phi): Removed.
29474         (warn_uninitialized_vars): Changed to extern.
29475         (execute_late_warn_uninitialized): Removed
29476         * tree-flow.h: Add new prototypes.
29477         * timevar.def: Add new time variable.
29478         * Makefile.in: Add new build file.
29479
29480 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
29481
29482         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
29483         type if available.
29484
29485 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29486
29487         PR target/22224
29488         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
29489
29490 2010-04-28  Martin Jambor  <mjambor@suse.cz>
29491
29492         * cgraph.h (struct cgraph_node): New field indirect_calls.
29493         (struct cgraph_indirect_call_info): New type.
29494         (struct cgraph_edge): Removed field indirect_call. New fields
29495         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
29496         (cgraph_create_indirect_edge): Declare.
29497         (cgraph_make_edge_direct): Likewise.
29498         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
29499         * ipa-prop.h (struct ipa_param_call_note): Removed.
29500         (struct ipa_node_params): Removed field param_calls.
29501         (ipa_create_all_structures_for_iinln): Declare.
29502         * cgraph.c: Described indirect edges and uids in initial comment.
29503         (cgraph_add_edge_to_call_site_hash): New function.
29504         (cgraph_edge): Search also among the indirect edges, use
29505         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
29506         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
29507         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
29508         site hash.
29509         (initialize_inline_failed): Assign a reason to indirect edges.
29510         (cgraph_create_edge_1): New function.
29511         (cgraph_create_edge): Moved some functionality to
29512         cgraph_create_edge_1.
29513         (cgraph_create_indirect_edge): New function.
29514         (cgraph_edge_remove_callee): Add an assert checking for
29515         non-indirectness.
29516         (cgraph_edge_remove_caller): Special-case indirect edges.
29517         (cgraph_remove_edge): Likewise.
29518         (cgraph_set_edge_callee): New function.
29519         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
29520         (cgraph_make_edge_direct): New function.
29521         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
29522         the declaration of the call statement matches.
29523         (cgraph_node_remove_callees): Special-case indirect edges.
29524         (cgraph_clone_edge): Likewise.
29525         (cgraph_clone_node): Clone also the indirect edges.
29526         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
29527         indirect_call, dump count of indirect_calls edges.
29528         * ipa-prop.c (iinlining_processed_edges): New variable.
29529         (ipa_note_param_call): Create indirect edges instead of
29530         creating notes.  New parameter node.
29531         (ipa_analyze_call_uses): New parameter node, pass it on to
29532         ipa_note_param_call.
29533         (ipa_analyze_stmt_uses): Likewise.
29534         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
29535         (print_edge_addition_message): Work on edges rather than on notes.
29536         (update_call_notes_after_inlining): Likewise, renamed to
29537         update_indirect_edges_after_inlining.
29538         (ipa_create_all_structures_for_iinln): New function.
29539         (ipa_free_node_params_substructures): Do not free notes.
29540         (ipa_edge_duplication_hook): Propagate bits within
29541         iinlining_processed_edges bitmap.
29542         (ipa_node_duplication_hook): Do not duplicate notes.
29543         (free_all_ipa_structures_after_ipa_cp): Renamed to
29544         ipa_free_all_structures_after_ipa_cp.
29545         (free_all_ipa_structures_after_iinln): Renamed to
29546         ipa_free_all_structures_after_iinln.
29547         (ipa_write_param_call_note): Removed.
29548         (ipa_read_param_call_note): Removed.
29549         (ipa_write_indirect_edge_info): New function.
29550         (ipa_read_indirect_edge_info): Likewise.
29551         (ipa_write_node_info): Do not stream notes, do stream information
29552         in indirect edges.
29553         (ipa_read_node_info): Likewise.
29554         (lto_ipa_fixup_call_notes): Removed.
29555         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
29556         * ipa-inline.c (pass_ipa_inline): Likewise.
29557         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
29558         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
29559         * tree-inline.c (copy_bb): Removed an unnecessary double check for
29560         is_gimple_call.
29561         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
29562         edges.
29563         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
29564         (output_cgraph): Stream also indirect edges.
29565         (lto_output_edge): Added capability to stream indirect edges.
29566         (input_edge): Likewise.
29567         (input_cgraph_1): Likewise.
29568         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
29569         of indirect edges.
29570
29571 2010-04-28  Richard Guenther  <rguenther@suse.de>
29572
29573         PR tree-optimization/43879
29574         PR tree-optimization/43909
29575         * tree-ssa-structalias.c (struct variable_info): Add
29576         only_restrict_pointers flag.
29577         (new_var_info): Initialize it.  Increment stats.total_vars here.
29578         (create_function_info_for): Do not increment stats.total_vars here.
29579         (get_function_part_constraint): Fix build with C++.
29580         (insert_into_field_list): Remove.
29581         (push_fields_onto_fieldstack): Properly merge fields.
29582         (create_variable_info_for): Split and simplify.
29583         (create_variable_info_for_1): New piece.
29584         (intra_create_variable_infos): Properly make restrict constraints
29585         from parameters.
29586
29587 2010-04-28  Richard Guenther  <rguenther@suse.de>
29588
29589         PR c++/43880
29590         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
29591
29592 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29593             Jan Hubicka  <hubicka@ucw.cz>
29594
29595         * doc/invoke.texi (-Wsuggest-attribute=const,
29596         -Wsuggest-attribute=pure): Document.
29597         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
29598         (function_always_visible_to_compiler_p,
29599         suggest_attribute, warn_function_pure, warn_function_const):
29600         New functions.
29601         (check_call): Improve debug info.
29602         (analyze_function): Do not check availability.
29603         (add_new_function): Check availability.
29604         (propagate): Output warnings.
29605         (skip_function_for_local_pure_const): New function.
29606         (local_pure_const): Use it; output warnings.
29607         * common.opt (Wsuggest-attribute=const,
29608         Wsuggest-attribute=pure): New.
29609
29610 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
29611
29612         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
29613         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
29614         or DW_CFA_def_cfa_offset{,_sf}.
29615
29616 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29617
29618         * tree.h: Fix truncated long macros.
29619
29620 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
29621
29622         * collect2.c (TARGET_64BIT): Redefine to target's default.
29623         * tlink.c: Likewise.
29624         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
29625         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
29626         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
29627         for underscoring __USER_LABEL_PREFIX__.
29628         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
29629         (SUB_LINK_ENTRY32): New.
29630         (SUB_LINK_ENTRY64): New.
29631         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
29632         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
29633         (SUB_LINK_ENTRY64): New.
29634         (SUB_LINK_ENTRY): New.
29635         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
29636         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
29637         x64 target is choosen.
29638         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
29639         * configure: Regenerated.
29640         * configure.ac (leading-mingw64-underscores): Option added.
29641
29642 2010-04-27  Jan Hubicka  <jh@suse.cz>
29643
29644         * doc/invoke.texi (-fipa-profile): Document.
29645         * opts.c (decode_options): Enable ipa-profile at -O1.
29646         * timevar.def (TV_IPA_PROFILE): Define.
29647         * common.opt (fipa-profile): Add.
29648         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
29649         flag for clones.
29650         (cgraph_propagate_frequency): Handle only local ones.
29651         * tree-pass.h (pass_ipa_profile): Declare.
29652         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
29653         (pass_ipa_profile): Use TV_IPA_PROFILE.
29654         * ipa.c (ipa_profile): New function.
29655         (gate_ipa_profile): Likewise.
29656         (pass_ipa_profile): New global variable.
29657         * passes.c (pass_ipa_profile): New.
29658
29659 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
29660
29661         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
29662
29663 2010-04-27  Martin Jambor  <mjambor@suse.cz>
29664
29665         PR middle-end/43812
29666         * ipa.c (dissolve_same_comdat_group_list): New function.
29667         (function_and_variable_visibility): Call
29668         dissolve_same_comdat_group_list when comdat group contains external or
29669         newly local nodes.
29670         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
29671         lists are circular and that they contain only DECL_ONE_ONLY nodes.
29672
29673 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29674
29675         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
29676         (const_hash_1) <VECTOR_CST>: New case.
29677         (compare_constant) <VECTOR_CST>: Likewise.
29678         <ADDR_EXPR>: Deal with LABEL_REFs.
29679         (copy_constant) <VECTOR_CST>: New case.
29680
29681 2010-04-27  Jan Hubicka  <jh@suse.cz>
29682
29683         * cgraph.c (cgraph_propagate_frequency): New function.
29684         * cgraph.h (cgraph_propagate_frequency): Declare.
29685         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
29686         cgraph_propagate_frequency.
29687
29688 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
29689
29690         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
29691
29692 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
29693
29694         PR target/40657
29695         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
29696         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
29697         here to determine which regs to push and how much stack to reserve.
29698
29699 2010-04-27  Jie Zhang  <jie@codesourcery.com>
29700
29701         * doc/gimple.texi (gimple_statement_with_ops): Remove
29702         addresses_taken field.
29703         (gimple_statement_with_memory_ops): Likewise.
29704
29705 2010-04-27  Jan Hubicka  <jh@suse.cz>
29706
29707         * tree-inline.c (eni_inlining_weights): Remove.
29708         (estimate_num_insns): Special case more builtins.
29709
29710 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
29711
29712         PR c/32207
29713         * c-typeck.c (build_binary_op): Move forward check for comparison
29714         pointer with null pointer constant and adjust the diagnostic message.
29715
29716 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
29717
29718         PR lto/42776
29719         * configure.ac (gcc_cv_as_section_has_align): Set if installed
29720         binutils supports extended .section directive needed by LTO, or
29721         warn if older binutils found.
29722         (LTO_BINARY_READER): New AC_SUBST'd variable.
29723         (LTO_USE_LIBELF): Likewise.
29724         * config.gcc (lto_binary_reader): New target-specific configure
29725         variable.
29726         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
29727         (LTO_USE_LIBELF): Likewise.
29728         * configure: Regenerate.
29729
29730         * collect2.c (is_elf): Rename from this ...
29731         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
29732          object files in addition to ELF-formatted ones.
29733         (scan_prog_file): Caller updated.  Also allow for LTO info marker
29734         symbol to be prefixed or not by an extra underscore.
29735
29736         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
29737         * config/i386/winnt.c: Also #include lto-streamer.h
29738         (i386_pe_asm_named_section): Specify 1-byte section alignment for
29739         LTO named sections.
29740         (i386_pe_asm_output_aligned_decl_common): Add comment.
29741         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
29742
29743 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
29744
29745         PR target/43889
29746         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
29747         Add missing earlyclobber for second alternative.
29748
29749 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
29750
29751         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
29752         bits for artificial defs at the top of the block.
29753         * fwprop.c (single_def_use_enter_block): Don't call it.
29754
29755 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
29756
29757         PR 43715
29758         * configure.ac: Use "$gcc_cv_nm -g" on darwin
29759         instead of "$gcc_cv_objdump -T".
29760         Use "-undefined dynamic_lookup" on darwin.
29761         * configure: Regenerate.
29762
29763 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
29764
29765         PR c/43893
29766         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
29767
29768 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29769
29770         * c-parser.c (struct c_token): Move location field up.
29771         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
29772         (struct c_declspecs): Convert typespec_word, storage_class, and
29773         default_int_p into bitfields.
29774         (struct c_declarator): Move loc field up.
29775
29776 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29777
29778         * cfgloop.h (struct loop): Move can_be_parallel field up.
29779         * ipa-prop.h (struct ip_node_params): Move bitfields up.
29780         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
29781         down.
29782         (struct iv_cand): Convert pos field into a bitfield.
29783         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
29784         field up.
29785         (struct _stmt_vec_info): Shuffle fields for better packing.
29786
29787 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
29788
29789         * varasm.c (IN_NAMED_SECTION): Remove guard.
29790         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
29791         (IN_NAMED_SECTION_P): ...this.
29792         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
29793         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
29794
29795 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
29796
29797         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
29798         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
29799         of shadowing it.  Fix comments.
29800
29801 2010-04-26  Jan Hubicka  <jh@suse.cz>
29802
29803         * cgraph.c (cgraph_create_node): Set node frequency to normal.
29804         (cgraph_clone_node): Copy function frequency.
29805         * cgraph.h (node_frequency): New enum
29806         (struct cgraph_node): Add.
29807         * final.c (rest_of_clean_state): Update.
29808         * lto-cgraph.c (lto_output_node): Output node frequency.
29809         (input_overwrite_node): Input node frequency.
29810         * tre-ssa-loop-ivopts (computation_cost): Update.
29811         * lto-streamer-out.c (output_function): Do not output function
29812         frequency.
29813         * predict.c (maybe_hot_frequency_p): Update and handle functions
29814         executed once.
29815         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
29816         attribute lookup.
29817         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
29818         (compute_function_frequency): Set noreturn functions to be executed
29819         once.
29820         (choose_function_section): Update.
29821         * lto-streamer-in.c (input_function): Do not input function frequency.
29822         * function.c (allocate_struct_function): Do not initialize function
29823         frequency.
29824         * function.h (function_frequency): Remove.
29825         (struct function): Remove function frequency.
29826         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
29827         (try_update): Update.
29828         * tree-inline.c (initialize_cfun): Do not update function frequency.
29829         * passes.c (pass_init_dump_file): Update.
29830         * i386.c (ix86_compute_frame_layout): Update.
29831         (ix86_pad_returns): Update.
29832
29833 2010-04-26  Jie Zhang  <jie@codesourcery.com>
29834
29835         PR tree-optimization/43833
29836         * tree-vrp.c (range_int_cst_p): New.
29837         (range_int_cst_singleton_p): New.
29838         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
29839         when both operands are constants.  Use range_int_cst_p in
29840         BIT_IOR_EXPR case.
29841
29842 2010-04-26  Jan Hubicka  <jh@suse.cz>
29843
29844         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
29845
29846 2010-04-26  Richard Guenther  <rguenther@suse.de>
29847
29848         PR lto/43080
29849         * gimple.c (gimple_decl_printable_name): Deal gracefully
29850         with a NULL DECL_NAME.
29851
29852 2010-04-26  Richard Guenther  <rguenther@suse.de>
29853
29854         PR lto/42425
29855         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
29856         if emitting debug information and it is either a function
29857         or a namespace decl.
29858
29859 2010-04-26  Ira Rosen  <irar@il.ibm.com>
29860
29861         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
29862         determine if the statement is vectorizable, and a macro to access it.
29863         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29864         Skip statements that can't be vectorized. If the analysis fails,
29865         mark the statement as unvectorizable if vectorizing basic block.
29866         (vect_compute_data_refs_alignment): Likewise.
29867         (vect_verify_datarefs_alignment): Skip statements marked as
29868         unvectorizable. Add print.
29869         (vect_analyze_group_access): Skip statements that can't be
29870         vectorized. If the analysis fails, mark the statement as
29871         unvectorizable if vectorizing basic block.
29872         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
29873         * tree-vect-stmts.c (vectorizable_store): Fix the number of
29874         generated stmts for SLP.
29875         (new_stmt_vec_info): Initialize the new field.
29876         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
29877         statements marked as unvectorizable.
29878
29879 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
29880
29881         * c-common.c (flag_isoc1x): New.
29882         (flag_isoc99): Update comment.
29883         * c-common.h (flag_isoc1x): New.
29884         (flag_isoc99): Update comment.
29885         * c-cppbuiltin.c (builtin_define_float_constants): Also define
29886         __<type>_DECIMAL_DIG__.
29887         * c-opts.c (set_std_c1x): New.
29888         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
29889         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
29890         * c.opt (-std=c1x, -std=gnu1x): New options.
29891         * doc/cpp.texi: Mention -std=c1x.
29892         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
29893         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
29894         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
29895         * doc/standards.texi: Mention C1X.
29896         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
29897         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
29898         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
29899         Define for C1X.
29900
29901 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
29902
29903         * config/i386/gmon-sol2.c (_mcleanup): Change format string
29904         placeholder from 0x%x to %#x.
29905         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29906         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29907         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29908         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29909         * config/i386/i386.c (ix86_target_string): Ditto.
29910         (output_pic_addr_const): Ditto.
29911         (print_operand): Ditto.
29912
29913 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
29914
29915         * combine.c (find_split_point): Add third argument.  Use it
29916         to find nested multiply-accumulate instructions.  Adjust calls.
29917         (try_combine): Adjust call to find_split_point.
29918
29919 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
29920
29921         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
29922
29923 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
29924
29925         PR tree-optimization/41442
29926         * fold-const.c (merge_truthop_with_opposite_arm): New function.
29927         (fold_binary_loc): Call it.
29928
29929 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29930
29931         * toplev.c (general_init): Set default for fdiagnostics-show-option.
29932         * opts.c (common_handle_option): Allow disabling it.
29933         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
29934
29935 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
29936
29937         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
29938         between modes if both types are integral.
29939
29940 2010-04-23  Richard Guenther  <rguenther@suse.de>
29941
29942         PR tree-optimization/43572
29943         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
29944
29945 2010-04-23  Richard Guenther  <rguenther@suse.de>
29946
29947         PR lto/43455
29948         * tree-inline.c (tree_can_inline_p): Also check compatibility
29949         of return types.
29950
29951 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29952
29953         PR tree-optimization/43846
29954         * tree-sra.c (struct access): New flag grp_assignment_read.
29955         (build_accesses_from_assign): Set grp_assignment_read.
29956         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
29957         (enum mark_read_status): New type.
29958         (analyze_access_subtree): Propagate grp_assignment_read, create
29959         accesses also if both direct_read and root->grp_assignment_read.
29960
29961 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29962
29963         PR middle-end/43835
29964         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
29965         function does not have type attributes.
29966
29967 2010-04-23  Richard Guenther  <rguenther@suse.de>
29968
29969         PR lto/42653
29970         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
29971         of FUNCTION_DECLs.
29972
29973 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29974
29975         * sese.h (create_if_region_on_edge): Remove.
29976
29977         * sese.c (create_if_region_on_edge): Make static.
29978
29979         * tree-inline.c: Do not include ggc.h.
29980
29981         * expr.c: Do not include ggc.h.
29982
29983         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
29984         dependencies.
29985
29986 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
29987
29988         PR target/43744
29989         * config/sh/sh.c (find_barrier): Don't emit a constant pool
29990         in the middle of insns for casesi_worker_2.
29991
29992 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
29993
29994         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
29995
29996 2010-04-22  Ira Rosen  <irar@il.ibm.com>
29997
29998         PR tree-optimization/43842
29999         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30000         loop unrolling in update of exit phis. Fix comment.
30001         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30002         least two reduction statements in the loop before starting SLP
30003         analysis.
30004
30005 2010-04-22  Nick Clifton  <nickc@redhat.com>
30006
30007         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30008
30009 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
30010
30011         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30012         to simplify a + ~a.
30013
30014 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30015
30016         * tree-parloops.c (loop_parallel_p): New argument
30017         parloop_obstack.  Pass it down.
30018         (parallelize_loops): New variable parloop_obstack.  Initialize it,
30019         pass it down, free it.
30020
30021         * tree-loop-linear.c (linear_transform_loops): Pass down
30022         lambda_obstack.
30023
30024         * tree-data-ref.h (lambda_compute_access_matrices): New argument
30025         of type struct obstack *.
30026
30027         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
30028         scratch_obstack.  Initialize it, pass down, free it.
30029
30030         * lambda.h (lambda_loop_new): Remove.
30031         (lambda_matrix_new, lambda_matrix_inverse)
30032         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
30033         argument of type struct obstack *.
30034
30035         * lambda-trans.c (lambda_trans_matrix_new): New argument
30036         lambda_obstack.  Pass it down, use obstack allocation for ret.
30037         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
30038         it down.
30039
30040         * lambda-mat.c (lambda_matrix_get_column)
30041         (lambda_matrix_project_to_null): Remove.
30042         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
30043         allocation for mat.
30044         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
30045         lambda_obstack.
30046
30047         * lambda-code.c (lambda_loop_new): New function.
30048         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
30049         (lambda_compute_auxillary_space, lambda_compute_target_space)
30050         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
30051         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
30052         (build_access_matrix): New argument lambda_obstack.  Use obstack
30053         allocation for am.
30054         (lambda_compute_step_signs, lambda_compute_access_matrices): New
30055         argument lambda_obstack.  Pass it down.
30056
30057 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30058
30059         * optabs.h (expand_widening_mult): Declare.
30060
30061 2010-04-22  Richard Guenther  <rguenther@suse.de>
30062
30063         PR tree-optimization/43845
30064         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
30065         lookup the CALL_EXPR function and arguments.
30066
30067 2010-04-22  Nick Clifton  <nickc@redhat.com>
30068
30069         * config/stormy16/stormy16.c
30070         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
30071         * config/stormy16/stormy16.h: Tidy up formatting.
30072         (DONT_USE_BUILTIN_SETJMP): Remove definition.
30073         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
30074         (ineqbranchsi): Delete pattern.
30075         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
30076         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
30077         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
30078         stormy16-lib2-ucmpsi2.c.
30079
30080 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30081
30082         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
30083         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
30084         extra set merge_set_noclobber, and use it to relax the final test
30085         slightly.
30086         * df.h (df_simulate_find_noclobber_defs): Declare.
30087         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
30088         conditional defs.
30089         (df_simulate_find_noclobber_defs): New function.
30090
30091 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
30092
30093         * config/i386/i386.md: Use {} around multi-line preparation statements.
30094
30095 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30096
30097         * c-tree.h (push_init_level, pop_init_level, set_init_index)
30098         (process_init_element): New argument of type struct obstack *.
30099
30100         * c-typeck.c (push_init_level, pop_init_level, set_designator)
30101         (set_init_index, set_init_label, set_nonincremental_init)
30102         (set_nonincremental_init_from_string, find_init_member)
30103         (output_init_element, output_pending_init_elements)
30104         (process_init_element): New argument braced_init_obstack.  Pass it
30105         down.
30106         (push_range_stack, add_pending_init): New argument
30107         braced_init_obstack.  Use obstack allocation.
30108
30109         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
30110         braced_init_obstack.  Pass it down.
30111         (c_parser_braced_init): New variables ret, braced_init_obstack.
30112         Initialize obstack, pass it down and finally free it.
30113
30114 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30115
30116         PR middle-end/29274
30117         * tree-pass.h (pass_optimize_widening_mul): Declare.
30118         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
30119         gate_optimize_widening_mul): New static functions.
30120         (pass_optimize_widening_mul): New.
30121         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
30122         <case MULT_EXPR>: Remove support for widening multiplies.
30123         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
30124         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
30125         simplify_gen_unary rather than directly building extensions.
30126         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
30127         WIDEN_MULT_EXPR.
30128         * expmed.c (expand_widening_mult): New function.
30129         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
30130
30131 2010-04-21  Jan Hubicka  <jh@suse.cz>
30132
30133         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
30134         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
30135         * lto-wpa-fixup.c: Remove.
30136         * Makefile.in (lto-wpa-fixup.o): Remove.
30137         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
30138         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
30139         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
30140
30141 2010-04-21  Jan Hubicka  <jh@suse.cz>
30142
30143         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
30144         add write_optimization_summary, read_optimization_summary.
30145         (ipa_write_summaries_of_cgraph_node_set): Remove.
30146         (ipa_write_optimization_summaries): Declare.
30147         (ipa_read_optimization_summaries): Declare.
30148         * ipa-cp.c (pass_ipa_cp): Update.
30149         * ipa-reference.c (pass_ipa_reference): Update.
30150         * ipa-pure-const.c (pass_ipa_pure_const): Update.
30151         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
30152         Update.
30153         * ipa-inline.c (pass_ipa_inline): Update.
30154         * ipa.c (pass_ipa_whole_program): Update.
30155         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
30156         * passes.c (ipa_write_summaries_1): Do not test wpa.
30157         (ipa_write_optimization_summaries_1): New.
30158         (ipa_write_optimization_summaries): New.
30159         (ipa_read_summaries): Do not test ltrans.
30160         (ipa_read_optimization_summaries_1): New.
30161         (ipa_read_optimization_summaries): New.
30162
30163 2010-04-21  Jan Hubicka  <jh@suse.cz>
30164
30165         * lto-cgraph.c (lto_output_node): Do not output comdat groups
30166         for boundary nodes.
30167         (output_cgraph): Do not arrange comdat groups for boundary nodes.
30168
30169 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30170
30171         PR debug/40040
30172         * dwarf2out.c (add_name_and_src_coords_attributes): Add
30173         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
30174
30175 2010-04-21  Jan Hubicka  <jh@suse.cz>
30176
30177         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
30178
30179 2010-04-21  Jan Hubicka  <jh@suse.cz>
30180
30181         * varpool.c (decide_is_variable_needed): Variable is always needed
30182         during ltrans.
30183
30184 2010-04-21  Jan Hubicka  <jh@suse.cz>
30185
30186         * opts.c (decode_options): Enable pure-const pass for whopr.
30187
30188 2010-04-21  Jan Hubicka  <jh@suse.cz>
30189
30190         * cgraph.c (dump_cgraph_node): Dump also assembler name.
30191         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
30192         at WPA dumping.
30193         (cgraph_decide_inlining): Do not expect callee to be removed in all
30194         cases.
30195
30196 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
30197
30198         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
30199
30200 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30201
30202         * config/i386/i386.md (x86_shrd): Add athlon_decode and
30203         amdfam10_decode attributes.
30204
30205 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30206
30207         PR middle-end/43570
30208         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
30209         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
30210         (lower_copyprivate_clauses): Use private var in outer
30211         context instead of original var.  Make sure the types
30212         are correct for VLAs.
30213
30214 2010-04-21  Richard Guenther  <rguenther@suse.de>
30215
30216         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
30217         to non-pointer objects.
30218
30219 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30220
30221         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
30222         last chain entry if it starts with the still current label.
30223         (add_location_or_const_value_attribute): Check that
30224         loc_list->first->next is NULL instead of comparing ->first with ->last.
30225         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
30226         to add_var_loc_to_decl.
30227
30228         * dwarf2out.c (output_call_frame_info): For dw_cie_version
30229         >= 4 add also address size and segment size fields into CIE header.
30230
30231         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
30232         long as address size is the same as sizeof (void *) and
30233         segment size is 0.
30234         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
30235         address size or segment size is unexpected, return DW_EH_PE_omit.
30236         (classify_object_over_fdes): If get_cie_encoding returned
30237         DW_EH_PE_omit, return -1.
30238         (init_object): If classify_object_over_fdes returned -1,
30239         pretend there were no FDEs at all.
30240
30241 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30242
30243         * config/i386/i386.md (bswap<mode>2): Macroize expander from
30244         bswap{si,di}2 using SWI48 mode iterator.
30245         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
30246         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
30247         set modrm attribute of bswap insn to 0 and remove length attribute.
30248         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
30249         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
30250         set mode attribute to <MODE> and remove length attribute.
30251
30252 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
30253
30254         PR rtl-optimization/43520
30255         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
30256         zero available registers.
30257
30258 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30259
30260         * builtins.c (fold_builtin_cproj): Fold more cases.
30261
30262 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30263
30264         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
30265         (fold_builtin_1): Fold builtin cproj.
30266         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
30267         Use ATTR_CONST_NOTHROW_LIST.
30268
30269 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
30270
30271         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
30272         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
30273         ffsi2_no_cmove for !TARGET_CMOVE.
30274         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
30275         (ffssi2): Remove expander.
30276         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
30277         mode iterator.
30278         (ctz<mode>2): Ditto from ctz{si,di}2.
30279         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
30280         mode iterator.
30281         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
30282         mode iterator.
30283
30284 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
30285
30286         * dwarf2out.c (AT_linkage_name): Define.
30287         (clone_as_declaration): Handle DW_AT_linkage_name.
30288         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
30289         of DW_AT_MIPS_linkage_name.
30290         (move_linkage_attr): Likewise.
30291         (dwarf2out_finish): Likewise.
30292
30293 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
30294
30295         PR middle-end/41952
30296         * fold-const.c (fold_comparison): New folding rule.
30297
30298 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
30299
30300         * double-int.h (double_int_setbit): Declare.
30301         * double-int.c (double_int_setbit): New function.
30302         * rtl.h (immed_double_int_const): Declare.
30303         * emit-rtl.c (immed_double_int_const): New function.
30304         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
30305         and immed_double_int_const functions.
30306         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
30307         expand_copysign_bit): (Ditto.).
30308         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
30309         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
30310         * dojump.c (prefer_and_bit_test): (Ditto.).
30311         * expr.c (convert_modes, reduce_to_bit_field_precision,
30312         const_vector_from_tree): (Ditto.).
30313         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30314
30315 2010-04-20  Jan Hubicka  <jh@suse.cz>
30316
30317         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
30318         (dump_cgraph_node): Dump new flags.
30319         * cgraph.h (struct cgraph_node): Add flags
30320         reachable_from_other_partition and in_other_partition.
30321         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
30322         other partition can not be removed.
30323         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
30324         the other partition must be output; silence sanity checking on
30325         leaking functions bodies from other paritition.
30326         * lto-cgraph.c (reachable_from_other_partition_p): New function.
30327         (lto_output_node): Output new flags; do not sanity check that inline
30328         clones are output; drop lto_forced_extern_inline_p code; do not mock
30329         visibility flags at partition boundaries.
30330         (add_node_to): New function.
30331         (output_cgraph): Use it to sort functions so masters appear before
30332         clones.
30333         (input_overwrite_node): Input new flags.
30334         * passes.c (ipa_write_summaries): Do not call
30335         lto_new_extern_inline_states.
30336         * lto-section-out.c (forced_extern_inline,
30337         lto_new_extern_inline_states lto_delete_extern_inline_states,
30338         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
30339         * lto-streamer.h (lto_new_extern_inline_states,
30340         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
30341         lto_forced_extern_inline_p): Kill.
30342
30343 2010-04-20  Richard Guenther  <rguenther@suse.de>
30344
30345         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
30346         from vars that can have pointers.
30347         (process_constraint): Dump useless constraints.
30348
30349 2010-04-20  Richard Guenther  <rguenther@suse.de>
30350
30351         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
30352         (dump_sa_points_to_info): Remove asserts.
30353         (init_base_vars): nothing_id isn't an escape point nor does it
30354         have pointers.
30355
30356 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
30357
30358         * tree.h (TYPE_REF_IS_RVALUE): Define.
30359         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
30360         should_move_die_to_comdat, prune_unused_types_walk): Handle
30361         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
30362         (modified_type_die, gen_reference_type_die): Emit
30363         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
30364         if TYPE_REF_IS_RVALUE and -gdwarf-4.
30365
30366 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30367
30368         PR target/43635
30369         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
30370         calls for -fpic -m31 if they have been sibcall optimized.
30371
30372 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
30373
30374         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
30375         ar.lc fixed and call-used.
30376
30377         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
30378
30379 2010-04-19  Jan Hubicka  <jh@suse.cz>
30380
30381         * opts.c (decode_options): Disable whpr incompatible passes.
30382         * lto/lto.c (lto_1_to_1_map): Skip clones.
30383         (read_cgraph_and_symbols): Do not mark everything as needed.
30384         (do_whole_program_analysis): Do map only after optimizing;
30385         set proper cgraph_state; use passmanager.
30386
30387 2010-04-19  DJ Delorie  <dj@redhat.com>
30388
30389         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
30390         POINTER_PLUS_EXPR and fix them.
30391
30392 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
30393
30394         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
30395         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
30396         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
30397         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
30398         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
30399         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
30400         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
30401         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
30402         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
30403         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
30404         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
30405
30406 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
30407
30408         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
30409         (check_cond_move_block): Likewise.
30410         (cond_move_process_if_block): Likewise.
30411         (noce_find_if_block): Improve formatting.
30412         (find_if_header): Pass 0 to memset and tweak conditions.
30413         (cond_exec_find_if_block): Fix long lines and tweak conditions.
30414
30415 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
30416
30417         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
30418         for -gdwarf-4.
30419
30420         PR middle-end/43337
30421         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
30422         with non-local decl doesn't need chain.
30423
30424 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
30425
30426         * ira-color.c (allocno_reload_assign): Avoid accumulating
30427         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
30428
30429 2010-04-19  Martin Jambor  <mjambor@suse.cz>
30430
30431         * gimple.h (create_tmp_reg): Declare.
30432         * gimplify.c (create_tmp_reg): New function.
30433         (gimplify_return_expr): Use create_tmp_reg.
30434         (gimplify_omp_atomic): Likewise.
30435         (gimple_regimplify_operands): Likewise.
30436         * tree-dfa.c (make_rename_temp): Likewise.
30437         * tree-predcom.c (predcom_tmp_var): Likewise.
30438         (reassociate_to_the_same_stmt): Likewise.
30439         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
30440         (get_replaced_param_substitute): Likewise.
30441         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30442         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
30443         * tree-ssa-pre.c (get_representative_for): Likewise.
30444         (create_expression_by_pieces): Likewise.
30445         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
30446         (create_tailcall_accumulator): Likewise.
30447
30448 2010-04-19  Martin Jambor  <mjambor@suse.cz>
30449
30450         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
30451         new_stmt.
30452         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
30453
30454 2010-04-19  Richard Guenther  <rguenther@suse.de>
30455
30456         PR tree-optimization/43796
30457         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
30458         from SCEV in the lattice.
30459         (vrp_visit_phi_node): Dump change.
30460
30461 2010-04-19  Richard Guenther  <rguenther@suse.de>
30462
30463         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
30464         * configure: Re-generated.
30465
30466 2010-04-19  Richard Guenther  <rguenther@suse.de>
30467
30468         PR tree-optimization/43783
30469         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
30470         constant ARRAY_REF operands two and three if possible.
30471
30472 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
30473
30474         PR target/43766
30475         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
30476
30477 2010-04-19  Jie Zhang  <jie@codesourcery.com>
30478
30479         PR target/43662
30480         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
30481
30482 2010-04-19  Ira Rosen  <irar@il.ibm.com>
30483
30484         PR tree-optimization/37027
30485         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
30486         and macro to access it.
30487         (vectorizable_reduction): Add argument.
30488         (vect_get_slp_defs): Likewise.
30489         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
30490         statements for possible use in SLP.
30491         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
30492         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
30493         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
30494         add new argument.
30495         (vectorizable_reduction): Likewise.
30496         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
30497         vect_get_slp_defs.
30498         (vectorizable_type_demotion, vectorizable_type_promotion,
30499         vectorizable_store): Likewise.
30500         (vect_analyze_stmt): Update call to vectorizable_reduction.
30501         (vect_transform_stmt): Likewise.
30502         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
30503         (vect_build_slp_tree): Fix indentation. Check that there are no loads
30504         from different interleaving chains in same node.
30505         (vect_slp_rearrange_stmts): New function.
30506         (vect_supported_load_permutation_p): Allow load permutations for
30507         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
30508         inside SLP nodes if necessary.
30509         (vect_analyze_slp_instance): Handle reductions.
30510         (vect_analyze_slp): Try to build SLP instances originating from groups
30511         of reductions.
30512         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
30513         (vect_get_constant_vectors): Create initial vectors for reductions
30514         according to reduction code. Add new argument.
30515         (vect_get_slp_defs): Add new argument, pass it to
30516         vect_get_constant_vectors.
30517         (vect_schedule_slp_instance): Remove SLP tree root statements.
30518
30519 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
30520
30521         * tree.h (ENUM_IS_SCOPED): Define.
30522         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
30523         for ENUM_IS_SCOPED enums.
30524
30525 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
30526
30527         * fold-const.c (fold_comparison): Use ssizetype.
30528         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
30529         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
30530         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
30531         * tree-object-size.c (compute_object_sizes): Use size_type_node.
30532
30533         * tree.h (initialize_sizetypes): Remove parameter.
30534         (build_common_tree_nodes): Remove second parameter.
30535         * stor-layout.c (initialize_sizetypes): Remove parameter.
30536         Always create an unsigned type.
30537         (set_sizetype): Assert that the passed type is unsigned and simplify.
30538         * tree.c (build_common_tree_nodes): Remove second parameter.
30539         Adjust call to initialize_sizetypes.
30540         * c-decl.c (c_init_decl_processing): Remove second argument in call to
30541         build_common_tree_nodes.
30542
30543 2010-04-18  Matthias Klose  <doko@ubuntu.com>
30544
30545         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
30546
30547 2010-04-18  Ira Rosen  <irar@il.ibm.com>
30548
30549         PR tree-optimization/43771
30550         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
30551         load permutation doesn't have gaps.
30552
30553 2010-04-18  Jan Hubicka  <jh@suse.cz>
30554
30555         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
30556         (sse_prologue_save_insn expander): Use new pattern.
30557         (sse_prologue_save_insn1): New pattern and splitter.
30558         (sse_prologue_save_insn): Update to deal also with 64bit aligned
30559         blocks.
30560         * i386.c (setup_incoming_varargs_64): Do not compute jump
30561         destination here.
30562         (ix86_gimplify_va_arg): Update alignment needed.
30563         (ix86_local_alignment): Do not align all local arrays to 128bit.
30564
30565 2010-04-17  Jan Hubicka  <jh@suse.cz>
30566
30567         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
30568
30569 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30570
30571         * arm.md (negdi2): Remove redundant code to force values into a
30572         register.
30573
30574 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30575
30576         * arm/bpabi.S: Add EABI alignment attributes to objects.
30577         * arm/bpabi-v6m.S: Likewise.
30578         * arm/crti.asm: Likewise.
30579         * arm/crtn.asm: Likewise.
30580         * arm/lib1funcs.asm: Likewise.
30581         * arm/libunwind.S: Likewise.
30582
30583 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
30584
30585         * arm-protos.h (tune_params): New structure.
30586         * arm.c (current_tune): New variable.
30587         (arm_constant_limit): Delete.
30588         (struct processors): Add pointer to the tune parameters.
30589         (arm_slowmul_tune): New tuning option.
30590         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
30591         (all_cores): Adjust to pick up the tuning model.
30592         (arm_constant_limit): New function.
30593         (arm_override_options): Select the appropriate tuning model.  Delete
30594         initialization of arm_const_limit.
30595         (arm_split_constant): Use the new constant-limit model.
30596         (arm_rtx_costs): Pick up the current tuning model.
30597         * arm.md (is_strongarm, is_xscale): Delete.
30598         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
30599         for Xscale variant architectures.
30600         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
30601
30602 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30603
30604         * config/arm/arm.c (arm_gen_constant): Remove unused variable
30605         can_shift.
30606         (arm_rtx_costs_1): Remove unused variable extra_cost.
30607         (arm_unwind_emit_set): Use variable offset.
30608         (thumb1_output_casesi): Remove unused variable flags.
30609
30610 2010-04-16  Jeff Law  <law@redhat.com>
30611
30612         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
30613         needing assignment rather than doing a two-phase assignment.  Remove
30614         unused variable 'm'.
30615
30616 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30617
30618         PR bootstrap/43767
30619         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
30620
30621 2010-04-16  Doug Kwan  <dougkwan@google.com>
30622
30623         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
30624         (next_operand_entry_id): New static variable.
30625         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
30626         (add_to_ops_vec): Assigned unique ID to operand entry.
30627         (struct oecount_s): New field ID.
30628         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
30629         (undistribute_ops_list): Assign unique IDs to oecounts.
30630         (init_reassoc): reset next_operand_entry_id.
30631
30632 2010-04-16  Doug Kwan  <dougkwan@google.com>
30633
30634         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
30635         missing left parenthesis.
30636
30637 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
30638
30639         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
30640         *btdi_rex64 using SWI48 mode iterator.
30641         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
30642         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
30643         *jcc_btdi_mask_rex64.
30644
30645 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
30646
30647         * double-int.h (tree_to_double_int): Convert to macro.
30648         * double-int.c (tree_to_double_int): Remove.
30649
30650 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30651
30652         PR debug/43762
30653         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
30654         with want_address 2 and in case a single element list might be
30655         possible, call it again with want_address 0.
30656
30657 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30658
30659         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
30660         case 'W' print operands for HI mode.
30661         * config/h8300/h8300.h (Y0, Y2) : New constraints.
30662         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
30663         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
30664         * config/h8300/predicate.md (bit_register_indirect_operand): New.
30665
30666         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
30667
30668         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
30669         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
30670         #xx:3 and #xx:4 mode.
30671
30672         * config/h8300/h8300.md (inverted load with HImode dest): Add
30673         support for H8300SX.
30674
30675         * config/h8300/predicate.md (bit_operand): Allow immediate values that
30676         satisfy 'U' constraint.
30677
30678 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30679
30680         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
30681         * configure: Regenerate.
30682         * config.in: Regenerate.
30683         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
30684         works.
30685
30686 2010-04-16  Richard Guenther  <rguenther@suse.de>
30687
30688         * tree.h (struct tree_decl_minimal): Move pt_uid ...
30689         (struct tree_decl_common): ... here.
30690         (DECL_PT_UID): Adjust.
30691         (SET_DECL_PT_UID): Likewise.
30692         (DECL_PT_UID_SET_P): Likewise.
30693
30694 2010-04-16  Richard Guenther  <rguenther@suse.de>
30695
30696         PR tree-optimization/43572
30697         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
30698         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
30699         * tree-flow.h (is_call_clobbered): Remove.
30700         * tree-flow-inline.h (is_call_clobbered): Likewise.
30701         * tree-dfa.c (dump_variable): Do not dump call clobber state.
30702         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
30703         (execute_return_slot_opt): Adjust.
30704         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
30705         check for call clobbered vars here.
30706         (find_tail_calls): Move tailcall verification to the
30707         proper place.
30708
30709 2010-04-16  Diego Novillo  <dnovillo@google.com>
30710
30711         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
30712
30713 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
30714
30715         PR target/40603
30716         * config/arm/arm.md (cbranchqi4): New pattern.
30717         * config/arm/predicates.md (const0_operand,
30718         cbranchqi4_comparison_operator): New predicates.
30719
30720 2010-04-16  Richard Guenther  <rguenther@suse.de>
30721
30722         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
30723         (dump_gimple_stmt): Likewise.
30724
30725 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
30726
30727         * recog.h (struct recog_data): New field is_operator.
30728         (struct insn_operand_data): New field is_operator.
30729         * recog.c (extract_insn): Set recog_data.is_operator.
30730         * genoutput.c (output_operand_data): Emit code to set the
30731         is_operator field.
30732         * reload.c (find_reloads): Use it rather than testing for an
30733         empty constraint string.
30734
30735         PR target/41514
30736         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
30737         If the previous insn is a cbranchsi4_insn with the same arguments,
30738         omit the compare instruction.
30739
30740         * config/arm/arm.md (addsi3_cbranch): If destination is a high
30741         register, inputs must be low registers and we need a low register
30742         scratch.  Handle alternative 2 like alternative 3.
30743
30744 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30745
30746         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
30747         don't call get_addr on both.  If one expression is a VALUE and
30748         the other a REG, check VALUE's locs if the REG isn't among them.
30749
30750 2010-04-16  Christian Bruel  <christian.bruel@st.com>
30751
30752         * config/sh/sh.h (sh_frame_pointer_required): New function.
30753         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
30754         (flag_omit_frame_pointer) Set.
30755         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
30756         (rounded_frame_size): Adjust size with outgoing_args_size.
30757         (sh_set_return_address): Must return from stack pointer.
30758         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
30759         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
30760         (ACCUMULATE_OUTGOING_ARGS): Define.
30761         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
30762         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
30763
30764 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30765
30766         PR target/43471
30767         * config/sh/sh.c (sh_legitimize_reload_address): Use
30768         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
30769         Remove a unneeded check for offset_base.
30770
30771 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
30772
30773         * configure: Regenerated.
30774
30775 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30776
30777         * config/s390/s390.c (s390_call_save_register_used): Switch back
30778         to HARD_REGNO_NREGS.
30779
30780 2010-04-15  Richard Guenther  <rguenther@suse.de>
30781
30782         * alias.c (alias_set_subset_of): Handle alias-set zero
30783         child properly.
30784
30785 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
30786             Julian Brown  <julian@codesourcery.com>
30787
30788         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
30789         alternatives according to use of high and low regs.
30790         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
30791         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
30792         optimizing for size on Thumb-2.
30793
30794 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
30795
30796         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
30797
30798 2010-04-15  Richard Guenther  <rguenther@suse.de>
30799
30800         * tree-ssa-structalias.c (struct variable_info): Add
30801         is_fn_info flag.
30802         (new_var_info): Initialize it.
30803         (dump_constraints): Support printing last added constraints.
30804         (debug_constraints): Adjust.
30805         (dump_constraint_graph): Likewise.
30806         (make_heapvar_for): Check for NULL cfun.
30807         (get_function_part_constraint): New function.
30808         (get_fi_for_callee): Likewise.
30809         (find_func_aliases): Properly implement IPA PTA constraints.
30810         (process_ipa_clobber): New function.
30811         (find_func_clobbers): Likewise.
30812         (insert_into_field_list_sorted): Remove.
30813         (create_function_info_for): Properly allocate vars for IPA mode.
30814         Do not use insert_into_field_list_sorted.
30815         (create_variable_info_for): Properly generate constraints for
30816         global vars in IPA mode.
30817         (dump_solution_for_var): Always dump the solution.
30818         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
30819         (find_what_var_points_to): Adjust.
30820         (pt_solution_set): Change.
30821         (pt_solution_ior_into): New function.
30822         (pt_solution_empty_p): Export.
30823         (pt_solution_includes_global): Adjust.
30824         (pt_solution_includes_1): Likewise.
30825         (pt_solutions_intersect_1): Likewise.
30826         (dump_sa_points_to_info): Check some invariants.
30827         (solve_constraints): Move constraint dumping ...
30828         (compute_points_to_sets): ... here.
30829         (ipa_pta_execute): ... and here.
30830         (compute_may_aliases): Do not re-compute points-to info
30831         locally if IPA info is available.
30832         (ipa_escaped_pt): New global var.
30833         (ipa_pta_execute): Properly implement IPA PTA.
30834         * tree-into-ssa.c (dump_decl_set): Support dumping
30835         decls not in referenced-vars.
30836         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
30837         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
30838         (dump_points_to_solution): Likewise.
30839         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
30840         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
30841         (remap_gimple_stmt): Reset call clobber/use information if necessary.
30842         (copy_decl_to_var): Copy DECL_PT_UID.
30843         (copy_result_decl_to_var): Likewise.
30844         * tree.c (make_node_stat): Initialize DECL_PT_UID.
30845         (copy_node_stat): Copy it.
30846         * tree.h (DECL_PT_UID): New macro.
30847         (SET_DECL_PT_UID): Likewise.
30848         (DECL_PT_UID_SET_P): Likewise.
30849         (struct tree_decl_minimal): Add pt_uid member.
30850         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
30851         (pt_solution_empty_p): Declare.
30852         (pt_solution_set): Adjust.
30853         (ipa_escaped_pt): Declare.
30854         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
30855         * gimple-pretty-print.c (pp_points_to_solution): New function.
30856         (dump_gimple_call): Dump call clobber/use information.
30857         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
30858         * tree-pass.h (TDF_ALIAS): New dump option.
30859         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
30860         * doc/invoke.texi (-fipa-pta): Update documentation.
30861
30862 2010-04-15  Richard Guenther  <rguenther@suse.de>
30863
30864         * Makefile.in (OBJS-common): Add gimple-fold.o.
30865         (gimple-fold.o): New rule.
30866         * tree.h (maybe_fold_offset_to_reference,
30867         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
30868         prototypes ...
30869         * gimple.h: ... here.
30870         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
30871         may_propagate_address_into_dereference): Move prototypes ...
30872         * gimple.h: ... here.
30873         * tree-ssa-ccp.c (get_symbol_constant_value,
30874         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
30875         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
30876         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
30877         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
30878         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
30879         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
30880         gimplify_and_update_call_from_tree): Move ...
30881         * gimple-fold.c: ... here.  New file.
30882         (ccp_fold_builtin): Rename to ...
30883         (gimple_fold_builtin): ... this.
30884         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
30885
30886 2010-04-15  Richard Guenther  <rguenther@suse.de>
30887
30888         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
30889         fit_double_type, force_fit_type_double, add_double_with_sign,
30890         neg_double, mul_double_with_sign, lshift_double, rshift_double,
30891         lrotate_double, rrotate_double, div_and_round_double): Move ...
30892         * double-int.c: ... here.
30893         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
30894         add_double, neg_double, mul_double_with_sign, mul_double,
30895         lshift_double, rshift_double, lrotate_double, rrotate_double,
30896         div_and_round_double): Move prototypes ...
30897         * double-int.h: ... here.
30898
30899 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
30900
30901         PR target/43742
30902         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
30903         matching constraints to ensure inputs match the output.
30904
30905 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30906
30907         PR target/43742
30908         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
30909         in an input-only operand.
30910
30911 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
30912
30913         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
30914         (double_int_not, double_int_lshift, double_int_rshift): Declare.
30915         (double_int_negative_p): Convert to static inline function.
30916         * double-int.c (double_int_lshift, double_int_lshift): New functions.
30917         (double_int_negative_p): Remove.
30918         * tree.h (lshift_double, rshift_double):
30919         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
30920         * fold-const.c (fold_convert_const_int_from_real,
30921         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
30922         (lshift_double): Change type of arith argument to bool.
30923         (rshift_double): Change type of arith argument to bool. Correct
30924         comment.
30925         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30926
30927 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
30928
30929         PR target/21803
30930         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
30931         at the start and end of the then/else blocks, and omit them from the
30932         conversion.
30933         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
30934         argument; all callers changed.  Pass zero to old_insns_match_p instead.
30935         (flow_find_head_matching_sequence): New function.
30936         (old_insns_match_p): Check REG_EH_REGION notes for calls.
30937         * basic-block.h (flow_find_cross_jump,
30938         flow_find_head_matching_sequence): Declare functions.
30939
30940 2010-04-14  Jason Merrill  <jason@redhat.com>
30941
30942         PR c++/36625
30943         * c-common.c (attribute_takes_identifier_p): New fn.
30944         * c-common.h: Declare it.
30945
30946 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30947
30948         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
30949         splitter condition.
30950         (*udivmod<mode>4): Ditto.
30951
30952 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30953
30954         * config/i386/i386.md (maxmin_int): Rename code attribute from
30955         maxminiprefix and update all users.
30956         (maxmin_float): Ditto from maxminfprefix.
30957         (logic): Ditto from logicprefix.
30958         (absneg_mnemonic): Ditto from absnegprefix.
30959         * config/i386/mmx.md: Update all users of maxminiprefix,
30960         maxminfprefix and logicprefix for rename.
30961         * config/i386/sse.md: Ditto.
30962         * config/i386/sync.md (sync_<code><mode>): Update for
30963         logicprefix rename.
30964
30965 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30966
30967         PR 42966
30968         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
30969         warnings converted to errors.
30970
30971 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30972
30973         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
30974         used insn_type variable.
30975         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
30976         to avoid set-but-not-used warning.
30977
30978 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30979
30980         * df-core.c (df_ref_debug): Change format string placeholder
30981         from 0x%x to %#x.
30982         * dwarf2asm.c (dw2_asm_output_data_raw,
30983         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
30984         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
30985         * dwarf2out.c (output_cfi, output_cfi_directive,
30986         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
30987         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
30988         Ditto.
30989         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
30990         * print-rtl.c (print_rtx): Ditto.
30991
30992 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
30993
30994         PR middle-end/42694
30995         * builtins.c (expand_builtin_pow_root): New function to expand pow
30996         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
30997         series of sqrt and cbrt calls under -ffast-math.
30998         (expand_builtin_pow): Call it.
30999
31000 2010-04-14  Michael Matz  <matz@suse.de>
31001
31002         PR tree-optimization/42963
31003         * tree-cfg.c (touched_switch_bbs): New static variable.
31004         (group_case_labels_stmt): New function broken out from ...
31005         (group_case_labels): ... here, use the above.
31006         (start_recording_case_labels): Allocate touched_switch_bbs.
31007         (end_recording_case_labels): Deallocate it, call
31008         group_case_labels_stmt.
31009         (gimple_redirect_edge_and_branch): Remember index of affected BB.
31010
31011 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31012
31013         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31014         from insn template.
31015
31016 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31017
31018         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31019
31020 2010-04-13  Jan Hubicka  <jh@suse.cz>
31021
31022         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
31023         of optimized out static functions.
31024         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
31025         cost computation.  Also sanity check for overflows.
31026         (update_caller_keys): Update cgraph_edge_badness call; properly
31027         update fibheap and sanity check that it is up to date.
31028         (add_new_edges_to_heap): Update cgraph_edge_badness.
31029         (cgraph_decide_inlining_of_small_function): Likewise;
31030         add sanity checking that badness in heap is up to date;
31031         improve dumping of reason; Update badness of calls to the
31032         offline copy of function currently inlined; dump badness
31033         of functions not inlined because of unit growth limits.
31034
31035 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31036
31037         PR middle-end/32628
31038         * c-common.c (pointer_int_sum): Disregard overflow that occured only
31039         because of sign-extension change when converting to sizetype here...
31040         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
31041
31042         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
31043         the folding to constants.  Remove redundant final conversion.
31044         (fold_binary) <associate>: Do not associate if the re-association of
31045         constants alone overflows.
31046         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
31047         to the end of the list.
31048         (multiple_of_p) <COND_EXPR>: New case.
31049
31050 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31051
31052         * opt-functions.awk (opt_sanitized_name): New.
31053         (opt_enum): New.
31054         * optc-gen.awk: Use it
31055         * opth-gen.awk: Use it.
31056
31057 2010-04-13  Martin Jambor  <mjambor@suse.cz>
31058
31059         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
31060         (sra_modify_assign): Delete stmts loading dead data even if racc has no
31061         children.  Call replace_uses_with_default_def_ssa_name to handle
31062         SSA_NAES on lhs.
31063
31064 2010-04-13  Michael Matz  <matz@suse.de>
31065
31066         PR middle-end/43730
31067         * builtins.c (expand_builtin_interclass_mathfn): Also create
31068         a register if the predicate doesn't match.
31069
31070 2010-04-13  Diego Novillo  <dnovillo@google.com>
31071
31072         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
31073         * c-pch.c: Include timevar.h.
31074         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
31075         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
31076         * ggc-common.c: Include timevar.h.
31077         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
31078         * timevar.def (TV_PCH_SAVE): Define.
31079         (TV_PCH_CPP_SAVE): Define.
31080         (TV_PCH_PTR_REALLOC): Define.
31081         (TV_PCH_PTR_SORT): Define.
31082         (TV_PCH_RESTORE): Define.
31083         (TV_PCH_CPP_RESTORE): Define.
31084
31085 2010-04-13  Michael Matz  <matz@suse.de>
31086
31087         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
31088         into MINUS_EXPRs.
31089         (can_reassociate_p): New function.
31090         (break_up_subtract_bb, reassociate_bb): Use it.
31091
31092 2010-04-13  Richard Guenther  <rguenther@suse.de>
31093
31094         PR bootstrap/43737
31095         * builtins.c (c_readstr): Fix assert.
31096
31097 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
31098
31099         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
31100         when generating cltd insn.
31101
31102         (*ashl<mode>3_1): Remove special handling for register operand 2.
31103         (*ashlsi3_1_zext): Ditto.
31104         (*ashlhi3_1): Ditto.
31105         (*ashlhi3_1_lea): Ditto.
31106         (*ashlqi3_1): Ditto.
31107         (*ashlqi3_1_lea): Ditto.
31108         (*<shiftrt_insn><mode>3_1): Ditto.
31109         (*<shiftrt_insn>si3_1_zext): Ditto.
31110         (*<shiftrt_insn>qi3_1_slp): Ditto.
31111         (*<rotate_insn><mode>3_1): Ditto.
31112         (*<rotate_insn>si3_1_zext): Ditto.
31113         (*<rotate_insn>qi3_1_slp): Ditto.
31114
31115 2010-04-13  Richard Guenther  <rguenther@suse.de>
31116
31117         * tree-ssa-structalias.c (callused_id): Remove.
31118         (call_stmt_vars): New.
31119         (get_call_vi): Likewise.
31120         (lookup_call_use_vi): Likewise.
31121         (lookup_call_clobber_vi): Likewise.
31122         (get_call_use_vi): Likewise.
31123         (get_call_clobber_vi): Likewise.
31124         (make_transitive_closure_constraints): Likewise.
31125         (handle_const_call): Adjust to do per-call call-used handling.
31126         (handle_pure_call): Likewise.
31127         (find_what_var_points_to): Remove general callused handling.
31128         (init_base_vars): Likewise.
31129         (init_alias_vars): Initialize call_stmt_vars.
31130         (compute_points_to_sets): Process call-used and call-clobbered
31131         vars for call statements.
31132         (delete_points_to_sets): Free call_stmt_vars.
31133
31134 2010-04-13  Richard Guenther  <rguenther@suse.de>
31135
31136         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31137         Only add RW dependence for dependence distance zero.
31138         Adjust maximal vectorization factor according to dependences.
31139         Move alignment handling ...
31140         (vect_find_same_alignment_drs): ... here.  New function.
31141         (vect_analyze_data_ref_dependences): Adjust.
31142         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
31143         (vect_analyze_data_refs): Adjust minimal vectorization factor
31144         according to data references.
31145         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
31146         dependences before determining the vectorization factor.
31147         Analyze alignment after determining the vectorization factor.
31148         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
31149         dependences before alignment.
31150         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
31151         Adjust prototype.
31152         (vect_analyze_data_refs): Likewise.
31153         (MAX_VECTORIZATION_FACTOR): New define.
31154
31155 2010-04-13  Duncan Sands  <baldrick@free.fr>
31156
31157         * except.h (lang_eh_type_covers): Remove.
31158         * except.c (lang_eh_type_covers): Likewise.
31159
31160 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31161             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31162
31163         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
31164         * config/s390/s390.c: Replace UNTIS_PER_WORD with
31165         UNITS_PER_LONG where it is ABI relevant.
31166         (s390_return_addr_rtx): Likewise.
31167         (s390_back_chain_rtx): Likewise.
31168         (s390_frame_area): Likewise.
31169         (s390_frame_info): Likewise.
31170         (s390_initial_elimination_offset): Likewise.
31171         (save_gprs): Likewise.
31172         (s390_emit_prologue): Likewise.
31173         (s390_emit_epilogue): Likewise.
31174         (s390_function_arg_advance): Likewise.
31175         (s390_function_arg): Likewise.
31176         (s390_va_start): Likewise.
31177         (s390_gimplify_va_arg): Likewise.
31178         (s390_function_profiler): Likewise.
31179         (s390_optimize_prologue): Likewise.
31180         (s390_rtx_costs): Likewise.
31181         (s390_secondary_reload): Likewise.
31182         (s390_promote_function_mode): Likewise.
31183         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
31184         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
31185         registers available.
31186         (s390_unwind_word_mode): New function.
31187         (s390_function_value): Split 64 bit values into register pair if
31188         used as return value.
31189         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
31190         function call parameters.  Handle parallels.
31191         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
31192         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
31193         (DWARF_CIE_DATA_ALIGNMENT): New macro.
31194         (s390_expand_setmem): Remove unused variable src_addr.
31195         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
31196         deal with 64 bit registers.
31197         * config/s390/s390.h: Define __zarch__ predefined macro.
31198         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
31199         (UNITS_PER_LONG): New macro.
31200         * libjava/include/s390-signal.h: Define extended ucontext
31201         structure containing the upper halfs of the 64 bit registers.
31202
31203 2010-04-13  Simon Baldwin  <simonb@google.com>
31204
31205         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
31206
31207 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31208
31209         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
31210         rvalue on the RHS if the LHS is of a non-renamable type.
31211         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
31212
31213 2010-04-13  Matthias Klose  <doko@ubuntu.com>
31214
31215         * gcc.c (cc1_options): Handle -iplugindir before processing
31216         the cc1 spec. Only add -iplugindir once.
31217         (cpp_unique_options): Add -iplugindir option if -fplugin* options
31218         found.
31219         * common.opt (iplugindir): Remove `Separate' property, initialize.
31220         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
31221         option.
31222         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
31223         (distclean): Remove plugin dir.
31224         * doc/invoke.texi: Document -iplugindir.
31225
31226 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
31227
31228         * doc/plugins.texi (Loading Plugins): Document short
31229         -fplugin=foo option.
31230         (Plugin API): Mention default_plugin_dir_name function.
31231
31232         * gcc.c (find_file_spec_function): Add new declaration.
31233         (static_spec_func): Use it for "find-file".
31234         (find_file_spec_function): Add new function.
31235         (cc1_options): Add -iplugindir option if -fplugin* options found.
31236
31237         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
31238
31239         * plugin.c (add_new_plugin): Updated comment, and handle short
31240         plugin name.
31241         (default_plugin_dir_name): Added new function.
31242
31243         * common.opt (iplugindir): New option to set the plugin directory.
31244
31245 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
31246
31247         * config/i386/i386.md (any_rotate): New code iterator.
31248         (rotate_insn): New code attribute.
31249         (rotate): Ditto.
31250         (SWIM124): New mode iterator.
31251         (<rotate_insn>ti3): New expander.
31252         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
31253         any_rotate code iterator.
31254         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
31255         using any_rotate code iterator and SWIM124 mode iterator.
31256         (ix86_rotlti3): New insn_and_split pattern.
31257         (ix86_rotrti3): Ditto.
31258         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
31259         ix86_rotl{di,ti}3 patterns.
31260         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
31261         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
31262         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
31263         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
31264         code iterator and SWI mode iterator.
31265         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
31266         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
31267         code iterator.
31268         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
31269         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
31270         (bswap rotatert splitter): Add splitter.
31271         (bswap splitter): Macroize splitter using any_rotate code iterator.
31272         Add insn predicate to split only for TARGET_USE_XCHGB or when
31273         optimizing function for size.
31274
31275 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31276
31277         * config/pa/pa.c (emit_move_sequence): Remove use of
31278         deleted variable flag_argument_noalias.
31279
31280 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31281
31282         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
31283         configurations.
31284         Add to unsupported targets list.
31285         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
31286         sparc*-sun-solaris2.[567]* from target lists.
31287         * configure: Regenerate.
31288         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
31289         removal.
31290         Remove Solaris 7 patch references.
31291         (Specific, sparc-sun-solaris2.7): Removed.
31292         (sparc-sun-solaris2*): Update Solaris 7 example.
31293         (sparc64-*-solaris2*): Likewise.
31294
31295 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31296
31297         * config.build (alpha*-dec-osf4*): Remove.
31298         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
31299         of obsolete configurations.
31300         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
31301         support.
31302         * config/alpha/t-osf4: Renamed to ...
31303         * config/alpha/t-osf5: ... this.
31304         * config/alpha/osf.h: Renamed to ...
31305         * config/alpha/osf5.h: ... this.
31306         Merged old osf5.h contents.
31307         Update comments.
31308         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
31309         (EXTRA_SPECS): Removed.
31310         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
31311         reflect removal of Tru64 UNIX V4.0/V5.0 support.
31312         Document that.
31313
31314 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31315
31316         * doc/contrib.texi (Contributors, Rainer Orth): Update.
31317
31318 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
31319
31320         PR/43702
31321         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
31322         __thiscall convention.
31323
31324 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31325
31326         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
31327         orig_base.
31328         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
31329
31330 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
31331
31332         * function.c (assign_parms_initialize_all): Add unused attribute
31333         to fntype.
31334
31335 2010-04-12  Richard Guenther  <rguenther@suse.de>
31336
31337         * gsstruct.def (GSS_CALL): New.
31338         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
31339         * gimple.h: Include tree-ssa-alias.h.
31340         (struct gimple_statement_call): New.
31341         (union gimple_statement_struct_d): Add gimple_call member.
31342         (gimple_call_reset_alias_info): Declare.
31343         (gimple_call_use_set): New function.
31344         (gimple_call_clobber_set): Likewise.
31345         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
31346         * gimple.c (gimple_call_reset_alias_info): New function.
31347         (gimple_build_call_1): Call it.
31348         * lto-streamer-in.c (input_gimple_stmt): Likewise.
31349         * tree-inline.c (remap_gimple_stmt): Likewise.
31350         (expand_call_inline): Remove callused handling.
31351         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
31352         * tree-dfa.c (dump_variable): Likewise.
31353         * tree-parloops.c (parallelize_loops): Likewise.
31354         * tree-ssa.c (init_tree_ssa): Likewise.
31355         (delete_tree_ssa): Likewise.
31356         * tree-flow-inline.h (is_call_used): Remove.
31357         * tree-flow.h (struct gimple_df): Remove callused member.
31358         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
31359         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
31360         (ref_maybe_used_by_call_p_1): Simplify.
31361         (call_may_clobber_ref_p_1): Likewise.
31362         * tree-ssa-structalias.c (compute_points_to_sets): Set
31363         the call stmt used and clobbered sets.
31364         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
31365         (find_tail_calls): Verify the tail call.
31366
31367 2010-04-12  Richard Guenther  <rguenther@suse.de>
31368
31369         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
31370         single-iteration always-inline inlining.
31371         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
31372         (cgraph_decide_inlining): Do not handle always-inline specially.
31373         (try_inline): Remove always-inline cycle detection special case.
31374         Do not recurse on always-inlines.
31375         (cgraph_early_inlining): Do not iterate if not optimizing.
31376         (cgraph_gate_early_inlining): remove.
31377         (pass_early_inline): Run unconditionally.
31378         (gate_cgraph_decide_inlining): New function.
31379         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
31380         not inlining or optimizing.
31381         (cgraph_decide_inlining_of_small_functions): Also consider
31382         always-inline functions.
31383         (cgraph_default_inline_p): Return true for nodes which should
31384         disregard inline limits.
31385         (estimate_function_body_sizes): Assume zero size and time for
31386         nodes which are marked as disregarding inline limits.
31387         (cgraph_decide_recursive_inlining): Do not perform recursive
31388         inlining on always-inline nodes.
31389
31390 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
31391
31392         PR bootstrap/43699
31393         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
31394         for exprs satisfying handled_component_p.
31395
31396 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
31397
31398         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
31399         non-constant aggregate elements.
31400
31401         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
31402         is a real initialization.
31403
31404 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
31405
31406         PR c/36774
31407         * c-decl.c (start_function): Move forward check for nested function.
31408
31409 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
31410
31411         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
31412         * config/sh/sh.c: Include reload.h.
31413         (sh_legitimize_reload_address): New.
31414         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
31415         sh_legitimize_reload_address.
31416
31417 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31418
31419         * config/sh/sh.md (*movqi_pop): New insn pattern.
31420         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
31421
31422 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31423
31424         * config/i386/i386.md (any_shiftrt): New code iterator.
31425         (shiftrt_insn): New code attribute.
31426         (shiftrt): Ditto.
31427         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
31428         using any_shiftrt code iterator.
31429         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
31430         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
31431         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
31432         pattern from corresponding peephole2 patterns.
31433         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
31434         using any_shiftrt code iterator.
31435         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
31436         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
31437         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
31438         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
31439         *{ashr,lshr}<mode>3_cmp_zext.
31440         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
31441
31442 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31443
31444         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
31445         scratch register.
31446         (*lshr<mode>3_cconly): Ditto.
31447
31448 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
31449
31450         * config/i386/i386.md (lshr<mode>3): Macroize expander from
31451         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31452         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31453         pattern from *lshr{di,ti}3_1 and corresponding splitters using
31454         DWI mode iterator.
31455         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31456         from corresponding peephole2 patterns.
31457         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
31458         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
31459         and *lshrdi3_1_rex64 using SWI mode iterator.
31460         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
31461         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
31462         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
31463         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
31464         and *lshrdi3_cmp_rex64 using SWI mode iterator.
31465         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
31466         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
31467         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
31468         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
31469         SWI mode iterator.
31470
31471 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
31472
31473         * config/i386/i386.md (ashr<mode>3): Macroize expander from
31474         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31475         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31476         pattern from *ashr{di,ti}3_1 and corresponding splitters using
31477         DWI mode iterator.
31478         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31479         from corresponding peephole2 patterns.
31480         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
31481         (ashrsi3_cvt): Rename from ashrsi3_31.
31482         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
31483         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
31484         and x86_64_shift_adj_3 using SWI48 mode iterator.
31485         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
31486         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
31487         and *ashrdi3_1_rex64 using SWI mode iterator.
31488         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
31489         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
31490         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
31491         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
31492         and *ashrdi3_cmp_rex64 using SWI mode iterator.
31493         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
31494         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
31495         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
31496         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
31497         SWI mode iterator.
31498         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
31499         * config/i386/i386.c (ix86_split_ashr): Update for renamed
31500         x86_shift<mode>_adj_3 expanders.
31501
31502 2010-04-10  Wei Guozhi  <carrot@google.com>
31503
31504         PR target/42601
31505         * config/arm/arm.c (arm_pic_static_addr): New function.
31506         (legitimize_pic_address): Call arm_pic_static_addr when it detects
31507         a static symbol.
31508         (arm_output_addr_const_extra): Output expression for new pattern.
31509         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
31510
31511 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
31512
31513         * ira-costs.c (record_reg_classes): Ignore alternatives that are
31514         not enabled.
31515
31516         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
31517         * web.c: Include "insn-config.h" and "recog.h".
31518         (union_match_dups): New function.
31519         (web_main): Call it.
31520         (union_defs): Don't try to recognize match_dups.
31521
31522         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
31523         if doing so would replace the entire pattern.
31524
31525 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
31526
31527         PR target/43707
31528         PR target/43709
31529         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
31530         and splitter pattern.  Change splitter operand 1 predicate to
31531         nonmemory_operand.
31532
31533 2010-04-09  Martin Jambor  <mjambor@suse.cz>
31534
31535         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
31536         lattices are addresses of CONST_DECLs with the same initial value.
31537         (ipcp_print_all_lattices): Print values of CONST_DECLs.
31538         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
31539
31540 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
31541             Bernd Schmidt  <bernds@codesourcery.com>
31542
31543         * loop-invariant.c (replace_uses): New static function.
31544         (move_invariant_reg): Use it to ensure we can replace the uses.
31545
31546 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
31547
31548         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
31549         function template.
31550         (picochip_override_options): Enable section anchors only above -O1.
31551         (picochip_reorg): Fixed a couple of build warnings.
31552
31553 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31554
31555         * configure.ac (plugin -rdynamic test): Log result.
31556         * configure: Regenerate.
31557         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
31558         (RDYNAMIC_SPEC): Define.
31559         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
31560
31561 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31562
31563         * configure.ac: Determine Sun ld version numbers.
31564         (comdat_group): Restrict GNU ld version checks to gld.
31565         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
31566         (enable_comdat): Support --enable-comdat.
31567         * configure: Regenerate.
31568         * doc/install.texi (Configuration): Document --enable-comdat.
31569
31570 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31571
31572         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
31573         * config/sol2-gld.h: ... here.
31574         * config.gcc (sparc*-*-solaris2*): Reflect this.
31575         (i[34567]86-*-solaris2*): Use it.
31576
31577 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
31578
31579         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
31580         setup_clocks_p.
31581         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
31582
31583 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31584
31585         PR 42965
31586         * diagnostic.c (diagnostic_initialize): Initialize
31587         some_warnings_are_errors.
31588         (diagnostic_finish): New.
31589         (diagnostic_action_after_output): Call it before exiting.
31590         (diagnostic_report_diagnostic): Do not print message here. Set
31591         some_warnings_are_errors.
31592         * diagnostic.h (diagnostic_context): Delete
31593         issue_warnings_are_errors_message. Add some_warnings_are_errors.
31594         (diagnostic_finish): Declare.
31595         * toplev.c (toplev_main): Call it before exit.
31596
31597 2010-04-09  Jason Merrill  <jason@redhat.com>
31598
31599         PR c++/42623
31600         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
31601         for incomplete type.
31602
31603         PR c++/41788
31604         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
31605         based on a warning flag.
31606
31607 2010-04-09  Richard Guenther  <rguenther@suse.de>
31608
31609         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
31610
31611 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
31612
31613         PR bootstrap/43684
31614         * varasm.c (default_assemble_visibility): Wrap vars that are
31615         set, but unused, by targets without GAS.
31616         * config/rs6000/rs6000.c (paired_emit_vector_compare):
31617         Remove set, but unused, vars.
31618         (rs6000_legitimize_tls_address): Likewise.
31619         (altivec_expand_dst_builtin): Likewise.
31620         * config/darwin.c (machopic_classify_symbol): Likewise.
31621         (machopic_indirection_name): Likewise.
31622
31623 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
31624
31625         * config/i386/i386.md (DWI): New mode iterator.
31626         (S): New mode attribute.
31627         (shift_operand): Ditto.
31628         (shift_immediate_operand): Ditto.
31629         (ashl_input_operand): Ditto.
31630         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
31631         using SDWIM mode iterator.
31632         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
31633         pattern from *ashl{di,ti}3_1 and corresponding splitters using
31634         DWI mode iterator.
31635         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
31636         from corresponding peephole2 patterns.
31637         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
31638         and x86_64_shift_adj_1 using SWI48 mode iterator.
31639         (x86_shift<mode>_adj_2): Ditto.
31640         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
31641         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
31642         using SWI48 mode iterator.
31643         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
31644         *ashldi3_cmp_rex64 using SWI mode iterator.
31645         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
31646         *ashldi3_cconly_rex64 using SWI mode iterator.
31647         * config/i386/i386.c (ix86_split_ashl): Update for renamed
31648         x86_shift<mode>_adj_{1,2}.
31649         (ix86_split_ashr): Ditto.
31650         (ix86_split_lshr): Ditto.
31651
31652 2010-04-09  Richard Guenther  <rguenther@suse.de>
31653
31654         * target.h (builtin_conversion): Pass in input and output types.
31655         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
31656         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
31657         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
31658         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
31659
31660         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
31661         Handle AVX modes.
31662         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
31663
31664 2010-04-09  Richard Guenther  <rguenther@suse.de>
31665
31666         PR target/43152
31667         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
31668
31669 2010-04-09  Richard Guenther  <rguenther@suse.de>
31670
31671         * tree-vectorizer.h (struct _stmt_vec_info): Document
31672         that vectype is the type of the LHS.
31673         (supportable_widening_operation, supportable_narrowing_operation):
31674         Get both input and output vector types as arguments.
31675         (vect_is_simple_use_1): Declare.
31676         (get_same_sized_vectype): Likewise.
31677         * tree-vect-loop.c (vect_determine_vectorization_factor):
31678         Set STMT_VINFO_VECTYPE to the vector type of the def.
31679         (vectorizable_reduction): Adjust.
31680         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
31681         Adjust.  Specify the output vector type.
31682         (vect_pattern_recog_1): Adjust.
31683         * tree-vect-stmts.c (get_same_sized_vectype): New function.
31684         (vectorizable_call): Adjust.
31685         (vectorizable_conversion): Likewise.
31686         (vectorizable_operation): Likewise.
31687         (vectorizable_type_demotion): Likewise.
31688         (vectorizable_type_promotion): Likewise.
31689         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
31690         the def.
31691         (vect_is_simple_use_1): New function.
31692         (supportable_widening_operation): Get both input and output
31693         vector types.
31694         (supportable_narrowing_operation): Likewise.
31695         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
31696
31697 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
31698
31699         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
31700         __thiscall and _thiscall as predefined macros.
31701         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
31702         thiscall attribute handling.
31703         (ix86_comp_type_attributes): Likewise.
31704         (ix86_function_regparm): Likewise.
31705         (ix86_return_pops_args): Likewise.
31706         (init_cumulative_args): Likewise.
31707         (find_drap_reg): Likewise.
31708         (ix86_static_chain): Likewise.
31709         (x86_this_parameter): Likewise.
31710         (x86_output_mi_thunk): Likewise.
31711         (ix86_attribute_table): Add description for thiscall attribute.
31712         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
31713         * doc/extend.texi: Add documentation for thiscall.
31714
31715 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31716
31717         PR c++/28584
31718         * c.opt (Wint-to-pointer-cast): Available in C++.
31719         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
31720
31721 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
31722
31723         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
31724         * calls.c (expand_call): Pass the function type to aggregate_value_p.
31725         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
31726         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
31727         function type instead.  Reorder and simplify checks.
31728
31729         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
31730
31731 2010-04-08  Jing Yu  <jingyu@google.com>
31732             Zdenek Dvorak  <ook@ucw.cz>
31733
31734         PR tree-optimization/42720
31735         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
31736         loop unswitch conditions here from ...
31737         (tree_unswitch_single_loop): ... here.
31738
31739 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31740
31741         * tree-if-conv.c: Fix comments and simplify logic.
31742
31743 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31744
31745         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
31746         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
31747         (main_tree_if_conversion): Update call to tree_if_conversion.
31748
31749 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31750
31751         PR 42485
31752         * doc/invoke.texi (-b,-V): Delete.
31753         * doc/tm.texi: Do not mention -b.
31754         * gcc.c (display_help): Delete -b and -V.
31755         (process_command): Delete -b and -V.
31756         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
31757
31758 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
31759             Wolfgang Gellerich  <gellerich@de.ibm.com>
31760
31761         Implement target hook for loop unrolling
31762         * target.h (loop_unroll_adjust): Add a new target hook function.
31763         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
31764         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
31765         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
31766         (s390_loop_unroll_adjust): Implement the new target hook for s390.
31767         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
31768         target hook.
31769         (decide_unroll_stupid): Likewise.
31770
31771 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31772
31773         PR target/43643
31774         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
31775
31776 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31777
31778         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
31779         (Specific, *-*-solaris2*): Likewise.
31780         Don't prefer Sun as over GNU as.
31781
31782 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
31783
31784         * config/s390/s390.c (override_options): Adjust the z10 defaults
31785         for max-unroll-times, max-completely-peeled-insns
31786         and max-completely-peel-times.
31787
31788 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31789
31790         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
31791         instructions for z10.
31792         (s390_expand_setmem): Likewise.
31793         (s390_expand_cmpmem): Likewise.
31794
31795 2010-04-08  Richard Guenther  <rguenther@suse.de>
31796
31797         PR tree-optimization/43679
31798         * tree-ssa-pre.c (eliminate): Only propagate copies.
31799
31800 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
31801
31802         PR bootstrap/43681
31803         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
31804         set but not used variable warning.
31805
31806 2010-04-08  Wei Guozhi  <carrot@google.com>
31807
31808         PR target/41653
31809         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
31810         (arm_size_rtx_costs): Call the new function when optimized for size.
31811
31812 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
31813
31814         PR debug/43670
31815         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
31816         op0 is not a MEM, just return NULL instead of assertion
31817         failure.
31818         (discover_nonconstant_array_refs): Don't walk debug stmts.
31819
31820 2010-04-08  Doug Kwan  <dougkwan@google.com>
31821
31822         * configure.ac: Recognize gold and do not use its version number
31823         to test ld features.
31824         * configure: Regenerate.
31825
31826 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
31827
31828         PR middle-end/40815
31829         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
31830         (negate_value): Move code to push elements to broken_up_substracts ...
31831         (eliminate_plus_minus_pair): ... here.  Push operands that have no
31832         negative pair to plus_negates.
31833         (repropagate_negates, init_reassoc, fini_reassoc): Update.
31834
31835 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31836
31837         * doc/install.texi (Configuration): Move description of
31838         --enable-lto, --with-libelf*, --enable-gold from Java section to
31839         general section.
31840
31841         * doc/generic.texi (Working with declarations)
31842         (Function Properties, C and C++ Trees): Fix typos.
31843         * doc/sourcebuild.texi (Top Level): Likewise.
31844
31845 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31846
31847         PR c/18624
31848         * tree.h (DECL_READ_P): Define.
31849         (struct tree_decl_common): Add decl_read_flag.
31850         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
31851         a set but not used warning.
31852         (merge_decls): Merge DECL_READ_P flag.
31853         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
31854         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
31855         * c-common.c (handle_used_attribute, handle_unused_attribute):
31856         Likewise.
31857         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
31858         New prototypes.
31859         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
31860         New functions.
31861         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
31862         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
31863         c_parser_binary_expression, c_parser_cast_expression,
31864         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
31865         Call default_function_array_read_conversion instead of
31866         default_function_array_conversion where needed.
31867         (c_parser_unary_expression, c_parser_conditional_expression,
31868         c_parser_postfix_expression_after_primary, c_parser_initelt):
31869         Likewise.  Call mark_exp_read where needed.
31870         (c_parser_statement_after_labels, c_parser_asm_operands,
31871         c_parser_typeof_specifier, c_parser_sizeof_expression,
31872         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
31873         where needed.
31874         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
31875         New.
31876         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
31877         (warn_unused_but_set_parameter): Default to warn_unused
31878         && extra_warnings.
31879         * doc/invoke.texi: Document -Wunused-but-set-variable and
31880         -Wunused-but-set-parameter.
31881
31882         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
31883         used count variable.
31884         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
31885         when operandN variables aren't used in the body of the expander
31886         or splitter.
31887         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
31888         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
31889         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
31890         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
31891         FOR_EACH_IMM_USE_ON_STMT): Likewise.
31892         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
31893         * tree.c (PROCESS_ARG): Likewise.
31894
31895 2010-04-07  Simon Baldwin  <simonb@google.com>
31896
31897         * diagnostic.h (diagnostic_override_option_index): New macro to
31898         set a diagnostic's option_index.
31899         * c-tree.h (c_cpp_error): Add warning reason argument.
31900         * opts.c (_warning_as_error_callback): New.
31901         (register_warning_as_error_callback): Store callback for
31902         warnings enabled via enable_warning_as_error.
31903         (enable_warning_as_error): Call callback, minor code tidy.
31904         * opts.h (register_warning_as_error_callback): Declare.
31905         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
31906         response to -Werror=.
31907         (c_common_init_options): Register warning_as_error_callback in opts.c.
31908         * common.opt: Add -Wno-cpp option.
31909         * c-common.c (struct reason_option_codes_t): Map cpp warning
31910         reason codes to gcc option indexes.
31911         * (c_option_controlling_cpp_error): New function, lookup the gcc
31912         option index for a cpp warning reason code.
31913         * (c_cpp_error): Add warning reason argument, call
31914         c_option_controlling_cpp_error for diagnostic_override_option_index.
31915         * doc/invoke.texi: Document -Wno-cpp.
31916
31917 2010-04-07  Richard Guenther  <rguenther@suse.de>
31918
31919         * ipa-reference.c (mark_load): Use get_base_address.
31920         (mark_store): Likewise.
31921
31922         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
31923         inserting GIMPLE_NOPs into the IL.
31924         * tree-ssa-structalias.c (get_constraint_for_component_ref):
31925         Explicitly strip handled components and indirect references.
31926
31927         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
31928         folding address expressions.
31929         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
31930         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
31931         operand_equal_p to compare decls.
31932         (ptr_deref_may_alias_decl_p): Likewise.
31933         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
31934         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
31935         Handle reversed comparison ops.
31936         * tree-sra.c (asm_visit_addr): Use get_base_address.
31937         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
31938         * ipa-reference.c (mark_address): Use get_base_address.
31939
31940 2010-04-07  Richard Guenther  <rguenther@suse.de>
31941
31942         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
31943         Propagate constants everywhere.
31944
31945 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31946
31947         PR debug/43516
31948         * tree.c (MAX_INT_CACHED_PREC): Define.
31949         (nonstandard_integer_type_cache): New array.
31950         (build_nonstandard_integer_type): Cache results for precision
31951         <= MAX_INT_CACHED_PREC.
31952
31953 2010-04-07  Richard Guenther  <rguenther@suse.de>
31954
31955         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
31956         -fargument-noalias-global, -fargument-noalias-anything): Remove.
31957         * common.opt: Likewise.
31958         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
31959         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
31960         (nonoverlapping_memrefs_p): Likewise.
31961         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
31962         * opts.c (common_handle_option): Handle OPT_fargument_alias,
31963         OPT_fargument_noalias, OPT_fargument_noalias_anything and
31964         OPT_fargument_noalias_global for backward compatibility.
31965
31966 2010-04-07  Richard Guenther  <rguenther@suse.de>
31967
31968         PR tree-optimization/43270
31969         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
31970         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
31971         * tree-ssa-pre.c (phi_translate_1): Adjust.
31972         (fully_constant_expression): Split out vn_reference handling to ...
31973         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
31974         Fold reads from constant strings.
31975         (vn_reference_lookup): Handle fully constant references.
31976         (vn_reference_lookup_pieces): Likewise.
31977         * Makefile.in (expmed.o-warn): Add -Wno-error.
31978
31979 2010-04-07  Martin Jambor  <mjambor@suse.cz>
31980
31981         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
31982
31983 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
31984
31985         PR driver/41594
31986         * gcc.c: Add -static-libstdc++ to list of recognized options.
31987
31988 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31989
31990         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
31991
31992 2010-04-07  Richard Guenther  <rguenther@suse.de>
31993
31994         PR middle-end/42617
31995         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
31996         bases build simple mem attributes to retain points-to information.
31997
31998 2010-04-07  Richard Guenther  <rguenther@suse.de>
31999
32000         PR middle-end/42617
32001         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32002         preserve points-to related information.
32003
32004 2010-04-07  Richard Guenther  <rguenther@suse.de>
32005
32006         PR middle-end/42617
32007         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32008         discard plain indirect references.
32009         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32010         * tree.c (tree_nop_conversion): Likewise.
32011
32012 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
32013
32014         PR debug/43628
32015         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32016
32017 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
32018
32019         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
32020         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
32021
32022 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32023
32024         * tree-if-conv.c: Fix indentation and comments.
32025
32026 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32027
32028         * tree-if-conv.c: Sort static functions in topological order.
32029
32030 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32031
32032         * tree-if-conv.c: Fix indentation and comments.
32033
32034 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32035
32036         PR middle-end/43519
32037         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
32038         lang_hooks.types.type_for_size instead of
32039         build_nonstandard_integer_type.
32040         When converting an unsigned type to signed, double its precision.
32041         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
32042         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
32043         (graphite_create_new_loop_guard): When ub + 1 wraps around,
32044         use lb <= ub.
32045
32046 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32047
32048         PR middle-end/43519
32049         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
32050         POINTER_PLUS_EXPR for pointer types.
32051
32052 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32053
32054         PR middle-end/43519
32055         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
32056         * graphite-clast-to-gimple.c: Include langhooks.h.
32057         (max_signed_precision_type): New.
32058         (max_precision_type): Takes two types as arguments.
32059         (precision_for_value): New.
32060         (precision_for_interval): New.
32061         (gcc_type_for_interval): New.
32062         (gcc_type_for_value): New.
32063         (gcc_type_for_clast_term): New.
32064         (gcc_type_for_clast_red): New.
32065         (gcc_type_for_clast_bin): New.
32066         (gcc_type_for_clast_expr): Split up into several functions.
32067         (gcc_type_for_clast_eq): Rewritten.
32068         (compute_bounds_for_level): New.
32069         (compute_type_for_level_1): New.
32070         (compute_type_for_level): New.
32071         (gcc_type_for_cloog_iv): Removed.
32072         (gcc_type_for_iv_of_clast_loop): Rewritten.
32073         (graphite_create_new_loop): Compute the lower and upper bound types
32074         with gcc_type_for_clast_expr.
32075         (graphite_create_new_loop_guard): Same.
32076         (find_cloog_iv_in_expr): Removed.
32077         (compute_cloog_iv_types_1): Removed.
32078         (compute_cloog_iv_types): Removed.
32079         (gloog): Do not call compute_cloog_iv_types.
32080         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
32081         GBB_CLOOG_IV_TYPES.
32082         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
32083         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
32084         (GBB_CLOOG_IV_TYPES): Removed.
32085
32086 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32087
32088         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
32089         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
32090         (detect_commutative_reduction): Same.
32091
32092 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32093
32094         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
32095         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
32096         argument.
32097         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
32098         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
32099         (rewrite_commutative_reductions_out_of_ssa): Same.
32100         * passes.c (execute_function_todo): Call verify_ssa for every pass
32101         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
32102         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
32103         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
32104         with an extra argument.
32105         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
32106         verify_ssa only when the extra argument is true.
32107         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
32108         with an extra argument.
32109         (tree_transform_and_unroll_loop): Same.
32110
32111 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32112
32113         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
32114         for all the passes of the LNO having LOOP_CLOSED_SSA.
32115         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
32116         * tree-loop-distribution.c (pass_loop_distribution): Same.
32117         * tree-pass.h (TODO_verify_loops): Removed.
32118         * tree-ssa-loop.c (pass_tree_loop_init): Same.
32119         (pass_lim): Same.
32120         (pass_tree_unswitch): Same.
32121         (pass_predcom): Same.
32122         (pass_vectorize): Same.
32123         (pass_linear_transform): Same.
32124         (pass_graphite_transforms): Same.
32125         (pass_iv_canon): Same.
32126         (pass_complete_unroll): Same.
32127         (pass_complete_unrolli): Same.
32128         (pass_parallelize_loops): Same.
32129         (pass_loop_prefetch): Same.
32130         (pass_iv_optimize): Same.
32131
32132 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
32133
32134         PR middle-end/32824
32135         * passes.c (init_optimization_passes): Move pass_lim before
32136         pass_copy_prop and pass_dce_loop.
32137
32138 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32139
32140         PR target/43667
32141         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
32142         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
32143         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
32144         MULTI_* defines for 4 argument vpermil2p* builtins.
32145
32146 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32147
32148         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
32149         * config/i386/i386.c (x86_maybe_negate_const_int): New.
32150         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
32151         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
32152         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
32153         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
32154         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
32155         Use x86_maybe_negate_const_int to output insn mnemonic.
32156         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
32157         check from instruction predicate.  Update comments.
32158         * config/i386/sync.md (sync_add<mode>): Use
32159         x86_maybe_negate_const_int to output insn mnemonic.
32160
32161 2010-04-06  Jan Hubicka  <jh@suse.cz>
32162
32163         PR tree-optimization/42906
32164         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
32165         IGNORE_SELF argument.  Set visited_control_parents for fully
32166         processed BBs.
32167         (find_obviously_necessary_stmts): Update call of
32168         mark_control_dependent_edges_necessary.
32169         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
32170
32171 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32172
32173         * config/i386/i386.md: Remove comment about 'e' and 'E'
32174         operand modifier.
32175
32176 2010-04-06  Richard Guenther  <rguenther@suse.de>
32177
32178         PR tree-optimization/43627
32179         * tree-vrp.c (extract_range_from_unary_expr): Widenings
32180         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
32181         not varying.
32182
32183 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32184
32185         * BASE-VER: Change to 4.6.0.
32186
32187         PR target/43638
32188         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
32189         handling.
32190
32191 2010-04-06  Richard Guenther  <rguenther@suse.de>
32192
32193         PR middle-end/43661
32194         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
32195
32196 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32197
32198         * doc/invoke.texi (Optimize Options): Document that LTO
32199         won't remove object access purely due to incompatible
32200         declarations.
32201
32202 2010-04-04  Matthias Klose  <doko@ubuntu.com>
32203
32204         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
32205         Initialize variable.
32206
32207 2010-04-03  Richard Guenther  <rguenther@suse.de>
32208
32209         PR middle-end/42509
32210         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
32211         require a non-NULL MEM_OFFSET.
32212
32213 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
32214
32215         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
32216         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
32217         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
32218         config/alpha/predicates.md, config/arm/arm.md,
32219         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
32220         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
32221         config/darwin9.h, config/darwin.c, config/darwin.h,
32222         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
32223         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
32224         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
32225         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
32226         config/mips/mips.md, config/mn10300/mn10300.c,
32227         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
32228         config/rs6000/aix.h, config/rs6000/dfp.md,
32229         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
32230         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
32231         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
32232         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
32233         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
32234         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
32235         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
32236         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
32237         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
32238         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
32239         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
32240         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
32241         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
32242         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
32243         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
32244         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
32245         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
32246         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
32247         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
32248         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
32249         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
32250         opt-functions.awk, opth-gen.awk, params.def, passes.c,
32251         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
32252         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
32253         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
32254         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
32255         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
32256         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
32257         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
32258         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
32259         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
32260         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
32261         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
32262         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
32263         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
32264         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
32265
32266 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32267
32268         PR other/43620
32269         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
32270         * aclocal.m4: Regenerate.
32271
32272 2010-04-02  Richard Guenther  <rguenther@suse.de>
32273
32274         PR tree-optimization/43629
32275         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
32276         if we have seen a constant value.
32277
32278 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
32279
32280         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
32281
32282 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
32283
32284         PR target/43469
32285         * arm.c (legitimize_tls_address): Adjust call to
32286         gen_tls_load_dot_plus_four.
32287         (arm_note_pic_base): New function.
32288         (arm_cannot_copy_insn_p): Use it.
32289         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
32290         constraint.
32291
32292 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32293
32294         PR bootstrap/43531
32295
32296         Revert:
32297         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32298
32299         * Makefile.in ($(out_object_file)): Depend on
32300         gt-$(basename $(notdir $(out_file))).h.
32301
32302 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
32303
32304         * config.gcc (lm32-*-rtems*): Add t-lm32.
32305
32306 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
32307
32308         * config.gcc: Add lm32-*-rtems*.
32309         * config/lm32/rtems.h: New file.
32310
32311 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
32312
32313         PR target/42609
32314         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
32315
32316 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
32317
32318         * dwarf2out.c (output_compilation_unit_header): For
32319         -gdwarf-4 use version 4 instead of version 3.
32320         (output_line_info): For version 4 and above emit additional
32321         maximum ops per insn header field.
32322         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
32323
32324         * dwarf2out.c (is_c_family, is_java): Remove.
32325         (lower_bound_default): New function.
32326         (add_bound_info, gen_descr_array_type_die): Use it.
32327
32328 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
32329
32330         PR debug/43325
32331         * dwarf2out.c (gen_variable_die): Allow debug info for variable
32332         re-declaration when it happens in a function.
32333
32334 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
32335
32336         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
32337         (cgraph_remove_function_insertion_hook): Same.
32338         (cgraph_call_function_insertion_hooks): Same.
32339
32340 2010-04-01  Richard Guenther  <rguenther@suse.de>
32341
32342         PR middle-end/43614
32343         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
32344         and TREE_THIS_VOLATILE.
32345         (copy_ref_info): Likewise.
32346         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
32347         * tree.c (build6_stat): Ignore side-effects of all but arg5
32348         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
32349         TARGET_MEM_REF.
32350
32351 2010-04-01  Richard Guenther  <rguenther@suse.de>
32352
32353         PR tree-optimization/43607
32354         * ipa-type-escape.c (check_call): Do not access non-existing
32355         arguments.
32356
32357 2010-04-01  Richard Guenther  <rguenther@suse.de>
32358
32359         PR middle-end/43602
32360         Revert
32361         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
32362                     Jack Howarth  <howarth@bromo.med.uc.edu>
32363
32364         * tree-profile.c (tree_init_ic_make_global_vars): Make static
32365         variables TLS.
32366
32367 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32368
32369         * doc/install.texi (Prerequisites): Document libelf usability on
32370         IRIX 5/6 and Solaris 2.
32371         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
32372         Update GNU as, GNU ld requirements.
32373         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
32374         Document Sun Studio compiler download.
32375         Update and simplify as, ld recommendations.
32376         (Specific, *-*-solaris2.7): Note obsoletion, removal.
32377
32378 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32379
32380         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
32381         with_tune_32 to pentium4.
32382
32383 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
32384
32385         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
32386
32387 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32388
32389         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
32390         obsoletion, removal.
32391         Update IDO URL.
32392         Document GNU as requirement.
32393         Update configure requirements.
32394         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
32395         Recomment IRIX 6.5.18+.
32396         Document IDF/IDL requirement.
32397         Document GNU as requirement.
32398         Document GNU ld bootstrap failure.
32399         Remove freeware.sgi.com reference.
32400
32401 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32402
32403         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
32404         UNIX V4.0, V5.0 obsoletion, removal.
32405         Remove --with-gc=simple reference.
32406         Update VM requirements during bootstrap.
32407         Remove -oldas bootstrap description.
32408         Update binutils reference.
32409         Remove comparison failure note.
32410
32411 2010-03-31  Richard Guenther  <rguenther@suse.de>
32412             Zdenek Dvorak  <ook@ucw.cz>
32413             Sebastian Pop  <sebastian.pop@amd.com>
32414
32415         PR middle-end/43464
32416         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
32417         with multiple arguments.
32418         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
32419
32420 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32421
32422         * graphite-dependences.c (print_pddr): Call print_pdr with an
32423         extra argument.
32424         * graphite-poly.c (debug_pdr): Add an extra argument for the
32425         verbosity level.
32426         (print_pdr): Same.
32427         (print_pbb_domain): Same.
32428         (print_pbb): Same.
32429         (print_scop_context): Same.
32430         (print_scop): Same.
32431         (print_cloog): Same.
32432         (debug_pbb_domain): Same.
32433         (debug_pbb): Same.
32434         (print_pdrs): Same.
32435         (debug_pdrs): Same.
32436         (debug_scop_context): Same.
32437         (debug_scop): Same.
32438         (debug_cloog): Same.
32439         (print_scop_params): Same.
32440         (debug_scop_params): Same.
32441         (print_iteration_domain): Same.
32442         (print_iteration_domains): Same.
32443         (debug_iteration_domain): Same.
32444         (debug_iteration_domains): Same.
32445         (print_scattering_function): Same.
32446         (print_scattering_functions): Same.
32447         (debug_scattering_function): Same.
32448         (debug_scattering_functions): Same.
32449         * graphite-poly.h (debug_pdr): Update declaration.
32450         (print_pdr): Same.
32451         (print_pbb_domain): Same.
32452         (print_pbb): Same.
32453         (print_scop_context): Same.
32454         (print_scop): Same.
32455         (print_cloog): Same.
32456         (debug_pbb_domain): Same.
32457         (debug_pbb): Same.
32458         (print_pdrs): Same.
32459         (debug_pdrs): Same.
32460         (debug_scop_context): Same.
32461         (debug_scop): Same.
32462         (debug_cloog): Same.
32463         (print_scop_params): Same.
32464         (debug_scop_params): Same.
32465         (print_iteration_domain): Same.
32466         (print_iteration_domains): Same.
32467         (debug_iteration_domain): Same.
32468         (debug_iteration_domains): Same.
32469         (print_scattering_function): Same.
32470         (print_scattering_functions): Same.
32471         (debug_scattering_function): Same.
32472         (debug_scattering_functions): Same.
32473
32474 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32475
32476         * graphite-poly.c (print_scattering_function_1): New.
32477         (print_scattering_function): Call it.
32478         (print_scop_params): Remove spaces at the end of lines.
32479         (print_cloog): New.
32480         (debug_cloog): New.
32481         * graphite-poly.h (print_cloog): Declared.
32482         (debug_cloog): Declared.
32483
32484 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32485
32486         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
32487         in loop->header.
32488         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
32489         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
32490         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
32491         to switch between adding the IV bump in loop->latch or in loop->header.
32492
32493 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
32494
32495         * graphite-poly.c (print_scattering_function): Pretty print following
32496         the scoplib format.
32497         (print_pdr): Same.
32498         (print_pbb_domain): Same.
32499         (dump_gbb_cases): Same.
32500         (dump_gbb_conditions): Same.
32501         (print_pdrs): Same.
32502         (print_pbb): Same.
32503         (print_scop_params): Same.
32504         (print_scop_context): Same.
32505         (print_scop): Same.
32506         (print_pbb_body): New.
32507         (lst_indent_to): New.
32508         (print_lst): Start new lines with a #.
32509         * graphite-poly.h (pbb_bb): New.
32510         (pbb_index): Use pbb_bb.
32511         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
32512         disjuncts.
32513         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
32514
32515 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
32516
32517         * dwarf2out.c (size_of_die): For -gdwarf-4 use
32518         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
32519         and 0 instead of 1 for dw_val_class_flag.
32520         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
32521         dw_val_class_range_list, dw_val_class_loc_list,
32522         dw_val_class_lineptr and dw_val_class_macptr, use
32523         DW_FORM_flag_present for dw_val_class_flag and
32524         DW_FORM_exprloc for dw_val_class_loc.
32525         (output_die): For -gdwarf-4 print dw_val_class_loc
32526         size as uleb128 instead of 1 or 2 bytes and don't print
32527         anything for dw_val_class_flag.
32528
32529         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
32530         instead of cselib_lookup following by tweaking locs->setting_insn.
32531
32532         PR bootstrap/43596
32533         * cselib.c (cselib_process_insn): Clear cselib_current_insn
32534         even before returning from label, setjmp call or volatile asm
32535         handling.
32536
32537 2010-03-31  Richard Guenther  <rguenther@suse.de>
32538
32539         PR middle-end/43600
32540         * cgraphunit.c (cgraph_output_in_order): Do not allocate
32541         temporary data on stack.
32542
32543 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32544
32545         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
32546         (PUSHSECTION_ASM_OP): Remove.
32547         (POPSECTION_ASM_OP): Remove.
32548         (PUSHSECTION_FORMAT): Remove.
32549         * config/sol2.h (PUSHSECTION_FORMAT): Define.
32550         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
32551         * config/sol2.c (solaris_output_init_fini): Use it.
32552
32553 2010-03-31  Jie Zhang  <jie@codesourcery.com>
32554
32555         PR 43574
32556         * opt-functions.awk (var_type_struct): Use signed char type
32557         for simple variables.
32558
32559 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32560
32561         * config/sol2.c: Include output.h.
32562         (solaris_assemble_visibility): New function.
32563         * config/t-sol2 (sol2.o): Add output.h dependency.
32564         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
32565         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
32566         Redefine.
32567
32568 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
32569
32570         PR target/43580
32571         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
32572         V2SImode or XFmode on PRE_DEC.
32573
32574         PR debug/43557
32575         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
32576         BLKmode.
32577
32578 2010-03-31  Jie Zhang  <jie@codesourcery.com>
32579
32580         PR 43562
32581         * reload.h (caller_save_initialized_p): Declare.
32582         * toplev.c (backend_init_target): Don't call
32583         init_caller_save but set caller_save_initialized_p to false.
32584         * caller-save.c (caller_save_initialized_p): Define.
32585         (init_caller_save): Check caller_save_initialized_p.
32586         * ira.c (ira): Call init_caller_save if flag_caller_saves.
32587
32588 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32589
32590         PR target/39048
32591         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
32592         and soft-fp/t-softfp to tmake_file.
32593         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
32594         (LIBGCC2_TF_CEXT): Define.
32595         (TF_SIZE): Define.
32596
32597 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
32598
32599         PR debug/42977
32600         * cselib.c (n_useless_values): Document handling of debug locs.
32601         (n_useless_debug_values, n_debug_values): New variables.
32602         (new_elt_loc_list): Don't add to debug values, keep count.
32603         (promote_debug_loc): New.
32604         (cselib_reset_table): Zero new variables.
32605         (entry_and_rtx_equal_p): Promote debug locs.
32606         (discard_useless_locs): Increment n_useless_debug_values for
32607         debug values.
32608         (remove_useless_values): Adjust n_useless_values and n_debug_values
32609         with n_useless_debug_values.
32610         (add_mem_for_addr): Promote debug locs.
32611         (cselib_lookup_mem): Likewise.
32612         (cselib_lookup_addr): Renamed to...
32613         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
32614         (cselib_log_lookup): ... this.  Turn into...
32615         (cselib_lookup_addr): ... new wrapper.
32616         (cselib_lookup_from_insn): New.
32617         (cselib_invalidate_regno): Increment n_useless_debug_values for
32618         debug values.
32619         (cselib_invalidate_mem): Likewise.
32620         (cselib_process_insn): Take n_deleted and n_debug_values into
32621         account to guard remove_useless_value call.
32622         (cselib_finish): Zero n_useless_debug_values.
32623         * cselib.h (cselib_lookup_from_insn): Declare.
32624         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
32625         (sched_analyze_2): Likewise.
32626
32627 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
32628
32629         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
32630         functions.
32631         (adjust_mems): Replace narrowing SUBREG of expression containing
32632         just PLUS, MINUS, MULT and ASHIFT of registers and constants
32633         with operations in the narrower mode.
32634
32635         PR debug/43593
32636         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
32637         regs_invalidated_by_call instead all call_used_reg_set registers.
32638
32639 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
32640
32641         PR middle-end/43430
32642         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
32643         pointer comparisons with types_compatible_p.
32644         * tree-vect-stmts.c (vectorizable_call): Same.
32645         (vectorizable_condition): Same.
32646
32647 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32648
32649         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
32650         stack check if the mask would be zero.
32651
32652 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
32653             Jack Howarth  <howarth@bromo.med.uc.edu>
32654
32655         * tree-profile.c (tree_init_ic_make_global_vars): Make static
32656         variables TLS.
32657
32658 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
32659
32660         PR other/25232
32661         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
32662         and __unordtf2.
32663         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
32664         Include ___unordxf2 and ___unordtf2.
32665         * config/i386/libgcc-glibc.ver: Do not define inheritance from
32666         GCC_4.4.0 here.
32667
32668 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
32669
32670         * config/lm32/t-lm32: New file.
32671         * config.gcc: Use the above file when targetting lm32.
32672
32673 2010-03-28  Duncan Sands  <baldrick@free.fr>
32674
32675         * Makefile.in (PLUGIN_HEADERS): Add except.h.
32676
32677 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
32678
32679         PR middle-end/43431
32680         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
32681         Improve vectorization cost model diagnostic.
32682
32683 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
32684
32685         PR middle-end/43436
32686         * tree-vect-data-refs.c (vect_analyze_data_refs): When
32687         compute_data_dependences_for_loop returns false, early exit
32688         and output an extra diagnostic for the failed data reference
32689         analysis.
32690
32691 2010-03-29  Richard Guenther  <rguenther@suse.de>
32692
32693         PR tree-optimization/43560
32694         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
32695         (can_sm_ref_p): Treat stores to readonly locations as trapping.
32696
32697 2010-03-29  Jie Zhang  <jie@codesourcery.com>
32698
32699         PR 43564
32700         * toplev.c (process_options): Set optimization_default_node
32701         and optimization_current_node.
32702         * opts.c (decode_options): Don't set optimization_default_node
32703         and optimization_current_node.
32704
32705 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
32706
32707         * config/rtems.h: Abandon -qrtems_debug.
32708
32709 2010-03-28  Jan Hubicka  <jh@suse.cz>
32710
32711         PR tree-optimization/43505
32712         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
32713         map should not be copied.
32714
32715 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32716
32717         PR middle-end/41674
32718         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
32719         cdtors, set DECL_PRESERVE_P.
32720         * ipa.c (cgraph_externally_visible_p): Return true if declaration
32721         should be preseved.
32722
32723 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
32724
32725         PR tree-optimization/43528
32726         * stor-layout.c (place_field): Check that constant fits into
32727         unsigned HWI when skipping calculation of MS bitfield layout.
32728
32729 2010-03-27  Jan Hubicka  <jh@suse.cz>
32730
32731         PR middle-end/43391
32732         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
32733         notice_global_symbol work.
32734
32735 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
32736
32737         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
32738         instead of dwarf2out_decl.
32739         (struct var_loc_node): Remove section_label field.
32740         (dwarf2out_function_decl): New function.
32741         (dwarf2out_var_location): Don't set section_label field.
32742         (dwarf2out_begin_function): Don't empty decl_loc_table here.
32743
32744 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
32745
32746         PR tree-optimization/43544
32747         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
32748         First argument for builtin vectorized function hook is now a
32749         tree to be able to distinguish between machine specific and
32750         standard builtins.
32751         * targhooks.c (default_builtin_vectorized_function): Ditto.
32752         * targhooks.h (default_builtin_vectorized_function): Ditto.
32753         * target.h (struct gcc_target): Ditto.
32754         * tree-vect-stmts.c (vectorizable_function): Ditto.
32755         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
32756         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
32757         Ditto.
32758
32759 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
32760
32761         PR c/43381
32762         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
32763         nested binding iff it is a FUNCTION_DECL.
32764         (store_parm_decls_newstyle): Pass nested=true to bind for
32765         FUNCTION_DECLs amongst parameters.
32766
32767 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
32768
32769         * var-tracking.c (vt_expand_loc_callback): Don't run
32770         cselib_expand_value_rtx_cb in dummy mode if
32771         cselib_dummy_expand_value_rtx_cb returned false.
32772
32773         * var-tracking.c (emit_note_insn_var_location): For one part
32774         notes with offset 0, don't add EXPR_LIST around the location.
32775         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
32776         add_location_or_const_value_attribute): Adjust for that change.
32777
32778         PR debug/43540
32779         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
32780         into first operand and location into second.
32781         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
32782         dw_cfi_oprnd_loc for DW_CFA_expression.
32783         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
32784         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
32785         assume first argument is regnum and second argument is location.
32786
32787 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
32788
32789         PR target/42113
32790         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
32791         of scratch register to DImode.  Split to DImode comparison operator.
32792         Use SImode subreg of scratch register in the multiplication.
32793         (*cmp_sadd_sidi): Ditto.
32794         (*cmp_ssub_si): Ditto.
32795         (*cmp_ssub_sidi): Ditto.
32796
32797 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
32798
32799         PR target/43524
32800         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
32801         Remove invalid assert and wrong comment.
32802
32803 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
32804
32805         PR debug/43516
32806         * flags.h (final_insns_dump_p): New extern.
32807         * final.c (final_insns_dump_p): New variable.
32808         (rest_of_clean_state): Set it before -fdump-final-insns=
32809         dumping, clear afterwards.
32810         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
32811         MEM_ALIAS_SET on MEMs.
32812
32813 2010-03-26  David S. Miller  <davem@davemloft.net>
32814
32815         * configure.ac: Fix sparc GOTDATA_OP bug check.
32816         * configure: Rebuild.
32817
32818 2010-03-26  Alan Modra  <amodra@gmail.com>
32819
32820         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
32821
32822 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32823
32824         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
32825         TLS_SECTION_ASM_FLAG.
32826
32827 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
32828
32829         PR bootstrap/43511
32830         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
32831         Clear first_function_block_is_cold.
32832
32833         PR c/43385
32834         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
32835         argument if the argument is truth_value_p.
32836
32837 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
32838
32839         * config/rs6000/constraints.md: Update copyright year for my changes.
32840
32841         PR target/43484
32842         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
32843         used in reg+reg addressing, swap registers.
32844
32845 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32846
32847         PR debug/43293
32848         * target.h (struct gcc_target): Add code_end hook.
32849         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
32850         if not yet defined.
32851         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
32852         * toplev.c (compile_file): Call targetm.asm_out.code_end
32853         hook before unwind info/debug info output.
32854         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
32855         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
32856         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
32857         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
32858         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
32859         * config/i386/i386.c (ix86_file_end): Renamed to...
32860         (ix86_code_end): ... this.  Make static.  Don't call
32861         file_end_indicate_exec_stack.  Emit unwind info using
32862         final_start_function/final_end_function.
32863         (darwin_x86_file_end): Remove.
32864         (TARGET_ASM_CODE_END): Define.
32865         * config/i386/i386.h (TARGET_ASM_FILE_END,
32866         NEED_INDICATE_EXEC_STACK): Don't define.
32867         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
32868         (TARGET_ASM_FILE_END): Define to darwin_file_end.
32869         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
32870         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
32871
32872         PR target/43498
32873         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
32874         at the beginning and final_end_function at the end.
32875         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
32876
32877 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32878
32879         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
32880         and Sun as TLS syntax.
32881         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
32882         * configure: Regenerate.
32883         * config.in: Regenerate.
32884         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
32885         (default_elf_asm_named_section): Use it.
32886         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
32887         (i386_output_dwarf_dtprel): Likewise.
32888         (output_addr_const_extra): Likewise.
32889         (output_pic_addr_const): Lowercase @GOTTPOFF.
32890         (output_addr_const_extra): Likewise.
32891         (output_pic_addr_const): Lowercase @GOTNTPOFF.
32892         (output_addr_const_extra): Likewise.
32893         (output_pic_addr_const): Lowercase @INDNTPOFF.
32894         (output_addr_const_extra): Likewise.
32895         (output_pic_addr_const): Lowercase @NTPOFF.
32896         (output_addr_const_extra): Likewise.
32897         (output_pic_addr_const): Lowercase @TPOFF.
32898         (output_addr_const_extra): Likewise.
32899         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
32900         (*tls_global_dynamic_64): Likewise.
32901         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
32902         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
32903
32904         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
32905         (ASM_OUTPUT_TLS_COMMON): Use it.
32906         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
32907
32908         PR target/38118
32909         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
32910         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
32911         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
32912         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
32913         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32914         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
32915
32916 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32917
32918         * config/i386/i386.c (override_options): Don't accept
32919         -mtls-dialect=sun any longer.
32920         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
32921         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
32922         (*tls_local_dynamic_base_32_sun): Likewise.
32923         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32924
32925 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32926
32927         PR debug/43508
32928         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
32929         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
32930
32931         PR debug/43479
32932         * ira.c (adjust_cleared_regs): New function.
32933         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
32934
32935         PR debug/19192
32936         PR debug/43479
32937         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
32938         from gimple_block.
32939         * expr.c (expand_expr_real): Restore previous
32940         curr_insn_source_location and curr_insn_block after
32941         expand_expr_real_1 call.
32942         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
32943         instead of expand_expr_real_1.
32944
32945 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
32946
32947         PR rtl-optimization/43413
32948         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
32949         hard regs too.
32950
32951 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
32952
32953         PR target/43348
32954         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
32955         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
32956
32957 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
32958
32959         * config/i386/i386.c (ix86_target_string): Add -mfma.
32960         Fix a typo in comment.
32961
32962 2010-03-22  Mike Stump  <mikestump@comcast.net>
32963
32964         PR target/23071
32965         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
32966         Don't overly align based upon packed packed fields.
32967
32968 2010-03-22  Jason Merrill  <jason@redhat.com>
32969
32970         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
32971         Use () rather than [], and move before the element type.
32972
32973 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32974
32975         * doc/configfiles.texi (Configuration Files): Removed
32976         fixinc/Makefile*, intl/Makefile.*.
32977         * doc/makefile.texi: Fixed markup. Abstract from version
32978         control system used.
32979         (Makefile): Removed obsolete java/parse.y example.
32980         * doc/sourcebuild.texi: Likewise.
32981         (Top Level): Added config, gnattools, libdecnumber, libgcc,
32982         libgomp, libssp.  Removed fastjar.
32983         (Miscellaneous Docs): Clarify location.
32984         Added COPYING3, COPYING3.LIB.
32985         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
32986
32987 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32988
32989         PR target/38085
32990         * config/i386/i386.c (x86_function_profiler)
32991         [!NO_PROFILE_COUNTERS]: Fix typo.
32992         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
32993         instead of callq.
32994
32995 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
32996             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32997
32998         * doc/sourcebuild.texi (Test Directives): Split into six
32999         subsections, with most of the current text in new subsections
33000         Directives, Selectors, and Final Actions.
33001         (Directives): Split list of test directives into multiple
33002         subsubsections.
33003         (Selectors): Describe use and syntax of selectors.
33004         (Effective-Target Keywords): Describe all existing keywords.
33005         (Add Options): Describe features for dg-add-options.
33006         (Require Support): Describe variants of dg-require-support.
33007         (Final Actions): Describe commands to use in dg-final.
33008
33009 2010-03-22  Michael Matz  <matz@suse.de>
33010
33011         PR middle-end/43475
33012         * recog.c (validate_replace_rtx_group): Replace also in
33013         REG_EQUAL and REG_EQUIV notes.
33014
33015 2010-03-22  Richard Guenther  <rguenther@suse.de>
33016
33017         PR tree-optimization/43390
33018         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33019         sure vector extracts are type correct.
33020
33021 2010-03-22  Richard Guenther  <rguenther@suse.de>
33022
33023         PR middle-end/40106
33024         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
33025         x * sqrt (x) even when optimizing for size if the target
33026         has native support for sqrt.
33027
33028 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
33029
33030         * varasm.c (make_decl_rtl_for_debug): Also clear
33031         flag_mudflap for the duration of make_decl_rtl call.
33032
33033         PR debug/43443
33034         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
33035         locs from preserved VALUEs.
33036
33037 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33038
33039         PR middle-end/42718
33040         * pa.md (movmemsi): Set align to one if zero.
33041         (movmemdi): Likewise.
33042
33043 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
33044
33045         PR target/42321
33046         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
33047         with their corresponding prologue pushes.
33048
33049 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
33050
33051         PR target/43156
33052         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
33053         at the begining or end.
33054         (spu_expand_epilogue): Likewise.
33055
33056 2010-03-20  Richard Guenther  <rguenther@suse.de>
33057
33058         PR rtl-optimization/43438
33059         * combine.c (make_extraction): Properly zero-/sign-extend an
33060         extraction of the low part of a CONST_INT.  Also handle
33061         CONST_DOUBLE.
33062
33063 2010-03-19  Mike Stump  <mikestump@comcast.net>
33064
33065         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
33066         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
33067         (override_options): Use SUBTARGET32_DEFAULT_CPU.
33068
33069 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33070
33071         PR c/43211
33072         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
33073         an error.
33074
33075 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
33076
33077         PR rtl-optimization/42258
33078         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
33079         use that may match DEF.
33080
33081         PR target/40697
33082         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
33083         the cost of loading the constant rather than assuming
33084         COSTS_N_INSNS (1).
33085         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
33086         outer code is AND, do the same tests as the andsi3 expander and
33087         return COSTS_N_INSNS (1) if and is cheap.
33088
33089         * optabs.c (avoid_expensive_constant): Fix formatting.
33090
33091 2010-03-19  Michael Matz  <matz@suse.de>
33092
33093         PR c++/43116
33094         * attribs.c (decl_attributes): When rebuilding a function pointer
33095         type use the same qualifiers as the original pointer type.
33096
33097 2010-03-19  Martin Jambor  <mjambor@suse.cz>
33098
33099         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
33100         and is_gimple_ip_invariant_address.
33101
33102 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33103
33104         Revert
33105         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33106
33107         * config/arm/arm.c (arm_override_options): Turn off
33108         flag_dwarf2_cfi_asm for AAPCS variants.
33109
33110 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33111
33112         PR target/43399
33113         * config/arm/arm.c (emit_multi_reg_push): Update comments.
33114         Use PRE_MODIFY instead of PRE_DEC.
33115         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
33116         (vfp_emit_fstmd): Likewise.
33117
33118 2010-03-19  Michael Matz  <matz@suse.de>
33119
33120         PR target/43305
33121         * builtins.c (expand_builtin_interclass_mathfn,
33122         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
33123         if that fails.
33124
33125 2010-03-19  Richard Guenther  <rguenther@suse.de>
33126
33127         PR tree-optimization/43415
33128         * tree-ssa-pre.c (phi_translate): Split out worker to ...
33129         (phi_translate_1): ... this.
33130         (phi_translate): Move all caching here.  Cache all NARY
33131         and REFERENCE translations.
33132
33133 2010-03-19  David S. Miller  <davem@davemloft.net>
33134
33135         With help from Eric Botcazou.
33136         * config/sparc/sparc.c: Include dwarf2out.h.
33137         (emit_pic_helper): Delete.
33138         (pic_helper_symbol_name): Delete.
33139         (pic_helper_emitted_p): Delete.
33140         (pic_helper_needed): New.
33141         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
33142         (get_pc_thunk_name): New.
33143         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
33144         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
33145         Set pic_helper_needed to true.  Don't call emit_pic_helper.
33146         (sparc_expand_prologue): Update load_pic_register call.
33147         (sparc_output_mi_thunk): Likewise.
33148         (sparc_file_end): Emit a hidden comdat symbol for the PIC
33149         thunk if possible.  Output CFI information as needed.
33150
33151 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33152             Jack Howarth  <howarth@bromo.med.uc.edu>
33153
33154         PR target/36399
33155         * config/i386/i386.h: Fix ABI on darwin x86-32.
33156
33157 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
33158
33159         * tree.h: Declare make_decl_rtl_for_debug.
33160         * varasm.c (make_decl_rtl_for_debug): New.
33161         * dwarf2out.c (rtl_for_decl_location): Call it.
33162         * cfgexpand.c (expand_debug_expr): Call it.
33163
33164 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33165
33166         PR bootstrap/43399
33167         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
33168         mem_mode.
33169
33170         PR bootstrap/43403
33171         * var-tracking.c (vt_init_cfa_base): Do nothing if
33172         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
33173
33174 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
33175
33176         PR debug/42873
33177         * var-tracking.c (canonicalize_vars_star): New.
33178         (dataflow_post_merge_adjust): Use it.
33179
33180 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33181
33182         PR debug/43058
33183         * var-tracking.c (non_suitable_const): New function.
33184         (add_uses): For DEBUG_INSNs with constants, don't record any
33185         value, instead just the constant value itself.
33186         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
33187         is not VAR_LOC_UNKNOWN_P, set var to the constant.
33188         (emit_notes_in_bb): Likewise.
33189         (emit_note_insn_var_location): For onepart variables if
33190         cur_loc is a VOIDmode constant, use DECL_MODE.
33191
33192 2010-03-18  Martin Jambor  <mjambor@suse.cz>
33193
33194         PR middle-end/42450
33195         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
33196         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
33197         all non-clones.  Moved call redirection...
33198         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
33199         (cgraph_materialize_all_clones): Dispose of all
33200         combined_args_to_skip bitmaps.
33201         (verify_cgraph_node): Do not check for edges pointing to wrong
33202         nodes in inline clones.
33203         * tree-inline.c (copy_bb): Call
33204         cgraph_redirect_edge_call_stmt_to_callee.
33205         * ipa.c (cgraph_remove_unreachable_nodes): Call
33206         cgraph_node_remove_callees even when there are used clones.
33207
33208 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33209
33210         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
33211
33212 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33213
33214         PR target/43383
33215         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
33216         for 32bit.
33217
33218 2010-03-18  Michael Matz  <matz@suse.de>
33219
33220         PR middle-end/43419
33221         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
33222         into sqrt(x) if we need to preserve signed zeros.
33223
33224 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
33225             Eric Botcazou  <ebotcazou@adacore.com>
33226
33227         PR rtl-optimization/43360
33228         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
33229         note if we don't know its invariant status.
33230
33231 2010-03-18  Michael Matz  <matz@suse.de>
33232
33233         PR tree-optimization/43402
33234         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
33235         PHI chains of ssa names registered for update.
33236
33237 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
33238
33239         PR target/42427
33240         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
33241         non-offsettable and pre_modify update addressing.
33242         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
33243         and "2" alternatives "#".
33244         (*movdd_softfloat32): Make all alternatives "#";
33245         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
33246         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
33247         (*movdf_softfloat32): Make all alternatives "#";
33248         (movdi): Use the new DIFD mode iterator to create a common splitter
33249         for movdi, movdf and movdd patterns.
33250
33251 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
33252
33253         * common.opt (dumpdir): Remove redundant tab.
33254
33255 2010-03-17  Martin Jambor  <mjambor@suse.cz>
33256
33257         PR tree-optimization/43347
33258         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
33259         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
33260
33261 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
33262
33263         PR rtl-optimization/42216
33264         * regrename.c (create_new_chain): New function, broken out from...
33265         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
33266         appending a use to an empty chain.
33267         (build_def_use): Remove previous changes that convert OP_INOUT to
33268         OP_OUT operands; instead detect the case where an OP_INOUT operand
33269         uses a previously untracked register and create an empty chain for it.
33270
33271 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33272
33273         * doc/extend.texi (Function Attributes): Rewrite unfinished
33274         sentence in ms_abi documentation.
33275
33276 2010-03-17  Alan Modra  <amodra@gmail.com>
33277
33278         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
33279         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
33280         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
33281         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
33282
33283 2010-03-16  Richard Henderson  <rth@redhat.com>
33284
33285         PR middle-end/43365
33286         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
33287         (lower_try_finally): Save and restore eh_seq around the expansion
33288         of the try-finally.
33289
33290 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
33291
33292         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
33293         statements before splitting block.
33294
33295 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33296
33297         * doc/sourcebuild.texi (Testsuites): Fix markup.
33298         Use pathnames relative to gcc/testsuite.
33299         (Test Directives): Move description of how timeout is determined.
33300         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
33301         (C Tests): Correct gcc.misc-tests directory.
33302         Framework tests now live in gcc.test-framework.
33303
33304 2010-03-16  Richard Guenther  <rguenther@suse.de>
33305
33306         PR middle-end/43379
33307         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
33308         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
33309
33310 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
33311             Alexandre Oliva  <aoliva@redhat.com>
33312
33313         PR tree-optimization/42917
33314         * lambda-code.c (remove_iv): Skip debug statements.
33315         (lambda_loopnest_to_gcc_loopnest): Likewise.
33316         (not_interesting_stmt): Debug statements are not interesting.
33317
33318 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
33319
33320         PR debug/43051
33321         PR debug/43092
33322         * cselib.c (cselib_preserve_constants,
33323         cfa_base_preserved_val): New static variables.
33324         (preserve_only_constants): New function.
33325         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
33326         clear its REG_VALUES.  If cselib_preserve_constants, don't
33327         empty the whole hash table, but preserve there VALUEs with constants,
33328         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
33329         (cselib_preserve_cfa_base_value): New function.
33330         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
33331         (cselib_init): Change argument to int bitfield.  Set
33332         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
33333         is in it.
33334         (cselib_finish): Clear cselib_preserve_constants and
33335         cfa_base_preserved_val.
33336         * cselib.h (enum cselib_record_what): New enum.
33337         (cselib_init): Change argument to int.
33338         (cselib_preserve_cfa_base_value): New prototype.
33339         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
33340         * dse.c (dse_step1): Likewise.
33341         * cfgcleanup.c (thread_jump): Likewise.
33342         * sched-deps.c (sched_analyze): Likewise.
33343         * gcse.c (local_cprop_pass): Likewise.
33344         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
33345         If FN is non-NULL, call the callback always and whenever it returns
33346         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
33347         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
33348         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
33349         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
33350         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
33351         * var-tracking.c: Include recog.h.
33352         (bb_stack_adjust_offset): Remove.
33353         (vt_stack_adjustments): Don't call it, instead just gather the
33354         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
33355         (adjust_stack_reference): Remove.
33356         (compute_cfa_pointer): New function.
33357         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
33358         (struct adjust_mem_data): New type.
33359         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
33360         functions.
33361         (get_address_mode): New function.
33362         (replace_expr_with_values): Use it.
33363         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
33364         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
33365         (adjust_sets): Remove.
33366         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
33367         Use get_address_mode.
33368         (get_adjusted_src): Remove.
33369         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
33370         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
33371         (add_with_sets): Don't call adjust_sets.
33372         (fp_setter, vt_init_cfa_base): New functions.
33373         (vt_initialize): Change return type to bool.  Move most of pool etc.
33374         initialization to the beginning of the function from end.  Pass
33375         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
33376         If !frame_pointer_needed, call vt_stack_adjustment before mos
33377         vector is filled, call vt_init_cfa_base if argp/framep has been
33378         eliminated to sp.  If frame_pointer_needed and argp/framep has
33379         been eliminated to hard frame pointer, set
33380         hard_frame_pointer_adjustment and call vt_init_cfa_base after
33381         encountering fp setter in the prologue.  For MO_ADJUST, call
33382         log_op_type before pusing the op into mos vector, not afterwards.
33383         Call adjust_insn before cselib_process_insn/add_with_sets,
33384         call cancel_changes (0) afterwards.
33385         (variable_tracking_main_1): Adjust for vt_initialize calling
33386         vt_stack_adjustments and returning whether it succeeded or not.
33387
33388 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
33389
33390         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
33391         debug statements.
33392
33393 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
33394
33395         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
33396         has been set.
33397         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
33398         drap_reg has not been set.
33399
33400 2010-03-15  Michael Matz  <matz@suse.de>
33401
33402         PR middle-end/43300
33403         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
33404         use it to expand block copies.
33405         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
33406         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
33407         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
33408
33409 2010-03-15  Richard Guenther  <rguenther@suse.de>
33410
33411         PR tree-optimization/43367
33412         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
33413         elimination check.
33414
33415 2010-03-15  Richard Guenther  <rguenther@suse.de>
33416
33417         PR tree-optimization/43317
33418         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
33419
33420 2010-03-15  Martin Jambor  <mjambor@suse.cz>
33421
33422         PR tree-optimization/43141
33423         * tree-sra.c (create_abstract_origin): New function.
33424         (modify_function): Call create_abstract_origin.
33425
33426 2010-03-15  Chris Demetriou  <cgd@google.com>
33427
33428         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
33429         wasn't copied.
33430
33431 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33432
33433         PR middle-end/43354
33434         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
33435         call insert_out_of_ssa_copy for default definitions.
33436
33437 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33438
33439         * graphite-clast-to-gimple.c (my_long_long): Defined.
33440         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
33441         * graphite-sese-to-poly.c (my_long_long): Defined.
33442         (scop_ivs_can_be_represented): Use it.
33443
33444 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33445
33446         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
33447         graphite-max-bbs-per-function, and loop-block-tile-size.
33448         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
33449         with "maximum".
33450         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
33451
33452 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33453
33454         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
33455         forward declaration.
33456         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
33457         (add_upper_bounds_from_estimated_nit): New.
33458         (build_loop_iteration_domains): Use it.
33459
33460 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33461
33462         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
33463
33464 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33465
33466         PR middle-end/43306
33467         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
33468         should be an INTEGER_CST.  Also handle CASE_CONVERT.
33469
33470 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33471
33472         * graphite.c (graphite_initialize): To bound the number of bbs per
33473         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
33474         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
33475         * doc/invoke.texi: Document it.
33476
33477 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33478
33479         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
33480         * graphite-sese-to-poly.h (build_poly_scop): Same.
33481
33482 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
33483
33484         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
33485         the number of parameters in the scop.  Use as an upper bound
33486         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
33487         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
33488         * doc/invoke.texi: Document it.
33489
33490 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
33491
33492         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
33493         * doc/c-tree.texi: Remove.
33494         * doc/generic.texi: Merge c-tree.texi here.
33495         * doc/gccint.texi (Trees): Remove menu entry.
33496         (c-tree.texi): Remove @include.
33497         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
33498         * doc/languages.texi (Reading RTL): Ditto.
33499
33500 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
33501
33502         PR target/42869
33503         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
33504
33505 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
33506
33507         PR middle-end/42431
33508         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
33509         code added to work around reload clobbering CONST insns.
33510
33511 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
33512
33513         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
33514         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
33515         (cselib_preserve_only_values): Remove retain argument, don't
33516         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
33517         * cselib.h (cselib_preserve_only_values): Remove retain argument.
33518         * var-tracking.c (micro_operation): Move insn field before union.
33519         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
33520         (struct variable_tracking_info_def): Remove n_mos field, change
33521         mos into a vector of micro_operations.
33522         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
33523         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
33524         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
33525         changing into a vector.
33526         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
33527         come before all other uops generated by add_stores.
33528         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
33529         argument removal.
33530         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
33531         a vector.  Run just one pass over the bbs instead of separate counting
33532         and computation phase.
33533         (vt_finalize): Free VTI (bb)->mos vector instead of array.
33534
33535         PR debug/43329
33536         * tree-inline.c (remap_decls): Put old_var rather than origin_var
33537         into *nonlocalized_list vector.
33538         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
33539         even if origin is non-NULL.
33540         (gen_variable_die): Likewise.
33541         (process_scope_var): Don't change origin.
33542         (gen_decl_die): Likewise.
33543         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
33544         before adding new edges instead of after it, fix moving over
33545         debug stmts.
33546
33547 2010-03-11  David S. Miller  <davem@davemloft.net>
33548
33549         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
33550         of four.
33551         * configure: Rebuild.
33552
33553 2010-03-11  Martin Jambor  <mjambor@suse.cz>
33554
33555         PR tree-optimization/43257
33556         * tree.c (assign_assembler_name_if_neeeded): New function.
33557         (free_lang_data_in_cgraph): Assembler name assignment moved to the
33558         above new function.
33559         * tree.h (assign_assembler_name_if_neeeded): Declare.
33560         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
33561         the function if needed.
33562
33563 2010-03-11  Chris Demetriou  <cgd@google.com>
33564
33565         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
33566         include/stdint-gcc.h, and include/stdint.h world-readable.
33567
33568 2010-03-11  Richard Guenther  <rguenther@suse.de>
33569
33570         PR tree-optimization/43255
33571         * tree-vrp.c (process_assert_insertions_for): Do not insert
33572         asserts for trivial conditions.
33573
33574 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33575
33576         PR tree-optimization/43280
33577         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
33578         generation.  Move calculation of size out of the if branch.
33579         (find_bswap): Modify compare number generation.
33580
33581 2010-03-11  Richard Guenther  <rguenther@suse.de>
33582
33583         PR lto/43200
33584         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
33585         (input_gimple_stmt): Fixup handled component types during
33586         operand read.  Also fix up decls in ADDR_EXPRs.
33587
33588 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
33589
33590         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
33591         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
33592
33593 2010-03-10  Jan Hubicka  <jh@suse.cz>
33594
33595         PR c/43288
33596         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
33597         * varasm.c (get_variable_section): Don't do that here...
33598         (make_decl_rtl): ... and here.
33599         (do_assemble_alias): Produce decl RTL.
33600         (assemble_alias): Likewise.
33601
33602 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
33603
33604         PR debug/43290
33605         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
33606         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
33607         of fde->vdrap_reg.
33608         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
33609         (based_loc_descr): Only express drap or vdrap regno based expressions
33610         using DW_OP_fbreg when not optimizing.
33611         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
33612         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
33613         REG_CFA_SET_VDRAP note.
33614
33615 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
33616
33617         PR tree-optimization/43236
33618         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
33619         error in calculation of base address in reverse iteration case.
33620         (generate_builtin): Take number of latch executions if the statement
33621         is in the latch.
33622
33623 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
33624
33625         PR middle-end/42859
33626         * tree-eh.c: Include pointer-set.h.
33627         (lower_eh_dispatch): Filter out duplicate case labels and
33628         remove the unneeded edge when the label is unused.  Return
33629         true when some edges are removed.
33630         (execute_lower_eh_dispatch): When any lowering resulted in
33631         removing an edge, also delete unreachable blocks.
33632
33633 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
33634
33635         PR bootstrap/43287
33636         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
33637         UNSPEC_MACHOPIC_OFFSET.
33638
33639 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
33640
33641         PR target/43294
33642         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
33643         (m68k_delegitimize_address): New function.
33644
33645 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
33646
33647         PR debug/43299
33648         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
33649
33650         PR debug/43299
33651         * var-tracking.c (adjust_sets): New function.
33652         (count_with_sets, add_with_sets): Use it.
33653         (get_adjusted_src): New inline function.
33654         (add_stores): Use it.
33655
33656         PR debug/43304
33657         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
33658         call cselib_dummy_expand_value_rtx_cb instead of
33659         cselib_expand_value_rtx_cb.
33660
33661         PR debug/43293
33662         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
33663         * config/i386/i386.c: Include debug.h and dwarf2out.h.
33664         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
33665         and .cfi_endproc around the pic thunks.
33666         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
33667         all queued unwind info register saves are saved before the call.
33668         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
33669         considered as sp-=4 for unwind info and the pop as sp+=4 which
33670         also clobbers dest, but doesn't actually restore it.
33671
33672         PR debug/43290
33673         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
33674         RTX_FRAME_RELATED_P.
33675
33676 2010-03-09  Jie Zhang  <jie@codesourcery.com>
33677
33678         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
33679         whitespaces in output template.
33680
33681 2010-03-09  Jie Zhang  <jie@codesourcery.com>
33682
33683         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
33684         out array boundary.
33685
33686 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
33687
33688         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
33689         builtins.exp in a separate job.
33690
33691 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33692
33693         * graphite-sese-to-poly.c (add_param_constraints): Use
33694         lower_bound_in_type and upper_bound_in_type.
33695
33696 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33697
33698         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
33699         instead of unsigned_type_node.
33700
33701 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33702             Reza Yazdani  <reza.yazdani@amd.com>
33703
33704         PR middle-end/43065
33705         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
33706         on pointer type parameters.
33707
33708 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
33709
33710         PR middle-end/42644
33711         PR middle-end/42130
33712         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
33713         handle conversions from pointer to integers.
33714         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
33715         induction variable, to be able to work with code generated by CLooG.
33716         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
33717         (build_poly_scop): Bail out if we cannot codegen a loop.
33718
33719 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
33720
33721         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
33722         code generation with gloog_error.
33723
33724 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33725
33726         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
33727         Call fold_convert on all the returned values.
33728         (expand_scalar_variables_expr): Pass to
33729         expand_scalar_variables_ssa_name the type of the resulting expression.
33730
33731 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33732
33733         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
33734         ppl_min_for_le_pointset.
33735         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
33736         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
33737
33738 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33739
33740         * graphite-dependences.c (map_into_dep_poly): Removed.
33741         (dependence_polyhedron_1): Use combine_context_id_scat.
33742
33743 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33744
33745         * graphite-poly.h (struct poly_scattering): Add layout documentation.
33746         (struct poly_bb): Same.
33747         (combine_context_id_scat): New.
33748
33749 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33750
33751         PR middle-end/42326
33752         * sese.c (name_defined_in_loop_p): Return false for default
33753         definitions.
33754
33755 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33756
33757         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
33758         and clean up the logic.
33759
33760 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33761
33762         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
33763         early return.
33764
33765 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
33766
33767         * var-tracking.c (remove_cselib_value_chains): Define only for
33768         ENABLE_CHECKING.
33769         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
33770         delete_slot_part, emit_notes_for_differences_1): Don't call
33771         remove_cselib_value_chains here.
33772         (set_slot_part, emit_notes_for_differences_2): Don't call
33773         add_cselib_value_chains here.
33774         (preserved_values): New vector.
33775         (preserve_value): New function.
33776         (add_uses, add_stores, vt_add_function_parameters): Use it
33777         instead of cselib_preserve_value.
33778         (changed_values_stack): New vector.
33779         (check_changed_vars_0): New function.
33780         (check_changed_vars_1, check_changed_vars_2): Use it.
33781         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
33782         changed_values_stack VALUEs.
33783         (vt_emit_notes): For all preserved_values call
33784         add_cselib_value_chains.  If ENABLE_CHECKING call
33785         remove_cselib_value_chains before verifying value_chains is empty.
33786         Initialize and free changed_values_stack.
33787         (vt_initialize): Initialize preserved_values.
33788         (vt_finalize): Free preserved_values.
33789
33790 2010-03-08  Richard Guenther  <rguenther@suse.de>
33791
33792         PR tree-optimization/43269
33793         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
33794         region detection.
33795
33796 2010-03-08  Martin Jambor  <mjambor@suse.cz>
33797
33798         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
33799         (ipa_is_param_called): Removed.
33800         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
33801         (ipa_print_node_params): Do not print the called flag.
33802         (ipa_write_node_info): Do not stream the called flag.
33803         (ipa_read_node_info): Likewise.
33804
33805 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
33806
33807         PR debug/43176
33808         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
33809         * cselib.c (struct expand_value_data): Add dummy field.
33810         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
33811         dummy to false.
33812         (cselib_dummy_expand_value_rtx_cb): New function.
33813         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
33814         any rtl.
33815         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
33816         * var-tracking.c: Include pointer-set.h.
33817         (variable): Change n_var_parts to char from int.  Add
33818         cur_loc_changed and in_changed_variables fields.
33819         (variable_canonicalize): Remove.
33820         (shared_var_p): New inline function.
33821         (unshare_variable): Maintain cur_loc_changed and
33822         in_changed_variables fields.  If var was in changed_variables,
33823         replace it there with new_var.  Just copy cur_loc instead of
33824         resetting it to something else.
33825         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
33826         (dataflow_set_union): Don't call variable_canonicalize.
33827         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
33828         of their DEBUG_EXPR_TREE_DECLs.
33829         (canonicalize_loc_order_check): Verify that cur_loc is NULL
33830         and in_changed_variables and cur_loc_changed is false.
33831         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
33832         and cur_loc_changed.  Don't update cur_loc here.
33833         (variable_merge_over_src): Don't call variable_canonicalize.
33834         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
33835         removing loc that is equal to cur_loc, clear cur_loc,
33836         set cur_loc_changed and ensure variable_was_changed is called.
33837         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
33838         compare pointers in cur_loc check, if it is equal to loc,
33839         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
33840         (variable_different_p): Remove compare_current_location argument,
33841         don't compare cur_loc.
33842         (dataflow_set_different_1): Adjust variable_different_p caller.
33843         (variable_was_changed): If dv had some var in changed_variables
33844         already, reset in_changed_variables flag for it and propagate
33845         cur_loc_changed over to the new variable.  On empty var
33846         always set cur_loc_changed.  Set in_changed_variables on whatever
33847         var is added to changed_variables.
33848         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
33849         Use shared_var_p.  When removing loc that is equal to cur_loc,
33850         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
33851         end, don't set it to something else, just call variable_was_changed.
33852         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
33853         loc being removed, clear cur_loc and set cur_loc_changed.
33854         Set cur_loc_changed if all locations have been removed.
33855         (struct expand_loc_callback_data): New type.
33856         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
33857         allocated.  Always create SUBREGs if simplify_subreg failed.
33858         Prefer to use cur_loc, when that fails and still in
33859         changed_variables (and seen first time) recompute it.  Set
33860         cur_loc_changed of variables which had to change cur_loc and
33861         compute elcd->cur_loc_changed if any of the subexpressions used
33862         had to change cur_loc.
33863         (vt_expand_loc): Adjust to pass arguments in
33864         expand_loc_callback_data structure.
33865         (vt_expand_loc_dummy): New function.
33866         (emitted_notes): New variable.
33867         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
33868         that weren't used for any other decl in current
33869         emit_notes_for_changes call call vt_expand_loc_dummy to update
33870         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
33871         first loc_chain location if NULL before.  Always use just
33872         cur_loc instead of first loc_chain location.  When cur_loc_changed
33873         is false, when not --enable-checking=rtl just don't emit any note.
33874         When rtl checking, compute the note and assert it is the same
33875         as previous note.  Clear cur_loc_changed and in_changed_variables
33876         at the end before removing from changed_variables.
33877         (check_changed_vars_3): New function.
33878         (emit_notes_for_changes): Traverse changed_vars to call
33879         check_changed_vars_3 on each changed var.
33880         (emit_notes_for_differences_1): Clear cur_loc_changed and
33881         in_changed_variables.  Recompute cur_loc of new_var.
33882         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
33883         (vt_emit_notes): Initialize and destroy emitted_notes.
33884
33885 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
33886
33887         PR rtl-optimization/42220
33888         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
33889         Use verify_reg_tracked to determine if we should use OP_OUT rather
33890         than OP_INOUT.
33891         (build_def_use): If we see an in-out operand for a register that we
33892         know nothing about, treat is an output if possible, fail the block if
33893         not.
33894
33895 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33896
33897         PR debug/42897
33898         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
33899         permanently.
33900
33901 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33902
33903         PR debug/42897
33904         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
33905         uses of relevant DEFs that are dead outside the loop too.
33906
33907 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33908
33909         * var-tracking.c (dataflow_set_merge): Swap src and src2.
33910         Reverted:
33911         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
33912         PR debug/41371
33913         * var-tracking.c (values_to_unmark): New variable.
33914         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
33915         values_to_unmark vector.  Moved body to...
33916         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
33917         instead queue it into values_to_unmark vector.
33918         (vt_find_locations): Free values_to_unmark vector.
33919
33920 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
33921
33922         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
33923         (site.exp): Export them when plugins are enabled.
33924
33925 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
33926
33927         PR middle-end/42326
33928         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
33929         that contain scevs.
33930         (chrec_fold_multiply): Same.
33931
33932 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33933
33934         PR c/43248
33935         * c-decl.c (build_compound_literal): Return early if init is
33936         an error_mark_node.
33937
33938 2010-03-04  Martin Jambor  <mjambor@suse.cz>
33939
33940         PR tree-optimization/43164
33941         PR tree-optimization/43191
33942         * tree-sra.c (type_consists_of_records_p): Reject records with
33943         zero-size bit-fields at the end.
33944
33945 2010-03-04  Mike Stump  <mikestump@comcast.net>
33946
33947         * Makefile.in (TAGS): Remove *.y.
33948
33949 2010-03-04  Richard Guenther  <rguenther@suse.de>
33950
33951         PR tree-optimization/40761
33952         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
33953         in reverse order.
33954         (my_rev_post_order_compute): New function.
33955         (init_pre): Call it.
33956
33957 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
33958
33959         PR middle-end/43209
33960         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
33961         decrease the cost of an IV candidate when the cost is infinite.
33962
33963 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33964
33965         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
33966         Use '3DNow!' for the extension of that name, ensure normal space
33967         after the string.
33968         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
33969
33970 2010-03-03  Jeff Law  <law@redhat.com>
33971
33972         * PR middle-end/32693
33973         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
33974         than gen_rtx_SUBREG.
33975         (extract_bit_field_1): Likewise.
33976
33977 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
33978
33979         * doc/sourcebuild.texi (Test directives): Document that arguments
33980         include-opts and exclude-opts are now optional for dg-skip-if,
33981         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
33982
33983 2010-03-03  Jason Merrill  <jason@redhat.com>
33984
33985         PR c++/12909
33986         * cgraph.h (varpool_node): Add extra_name field.
33987         * varpool.c (varpool_extra_name_alias): New.
33988         (varpool_assemble_decl): Emit extra name aliases.
33989         (varpool_mark_needed_node): Look past an extra name alias.
33990         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
33991         * lto-streamer-in.c (lto_input_tree): Read it.
33992         * lto-streamer-out.c (output_unreferenced_globals): Write it.
33993
33994 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
33995
33996         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
33997         (sparc*-*-solaris2*): ...this.
33998
33999 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
34000
34001         PR debug/43229
34002         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34003         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
34004         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34005         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34006
34007         PR debug/43237
34008         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34009         fallthrough to default handling, just with want_address 0 instead of 2.
34010         For single element lists, add_AT_loc directly, otherwise create an
34011         artificial variable DIE and stick location list to it.
34012
34013         PR debug/43177
34014         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34015         (VAL_EXPR_HAS_REVERSE): Define.
34016         (reverse_op): New function.
34017         (add_stores): For reversible operations add an extra MO_VAL_USE.
34018
34019 2010-03-02  Jason Merrill  <jason@redhat.com>
34020
34021         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
34022
34023 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
34024
34025         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
34026         (sparc64-*-linux*): Likewise.
34027         (sparc64-*-solaris2*): Include assembler files before linker ones.
34028         (sparc-*-solaris2*): Simplify and reorder to match previous case.
34029         * config/sparc/gas.h: Delete.
34030         * config/sparc/sol2-64.h: Add copyright notice.
34031         * config/sparc/sol2-gas-bi.h: Likewise.
34032         * config/sparc/sol2-gld.h: Likewise.
34033         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
34034         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
34035         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
34036         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
34037         (sparc_elf_asm_named_section): Rename into...
34038         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
34039
34040 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
34041
34042         * config/alpha/alpha.c (override_options): Fix -mtune error message.
34043
34044 2010-03-02  Jeff Law  <law@redhat.com>
34045
34046         PR middle-end/42431
34047         * reload1.c (rtx_p, substitute_stack): Declare.
34048         (substitute): Record addresses of changed rtxs.
34049         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
34050         Restore the original rtx when complete.
34051         (reload): Free subsitute_stack when complete.
34052
34053 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
34054
34055         * doc/gccint.texi (menu): Add Testsuites as a chapter.
34056         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
34057         new chapter.
34058         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
34059         LTO Testing, gcov Testing, profopt Testing, compat Testing,
34060         Torture Tests): Change from subsection to section.
34061
34062 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
34063             Steven Bosscher  <steven@gcc.gnu.org>
34064
34065         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
34066         instead of bb.
34067
34068 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
34069
34070         PR middle-end/42640
34071         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
34072         the assignment from the new induction variable to the assignment
34073         of the value from the original loop PHI function.
34074
34075 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
34076             Daniel Jacobowitz  <dan@codesourcery.com>
34077
34078         * doc/sourcebuild.texi (Test directives): Clarify options to
34079         dg-skip-if.
34080
34081 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34082
34083         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
34084         Disable cfi directives unless GCC and gas agree on using read-only
34085         .eh_frame sections for 64-bit.
34086         * configure: Regenerate.
34087
34088 2010-03-01  Richard Guenther  <rguenther@suse.de>
34089
34090         PR tree-optimization/43220
34091         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
34092         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
34093
34094 2010-03-01  Richard Guenther  <rguenther@suse.de>
34095             Martin Jambor  <mjambor@suse.cz>
34096
34097         PR middle-end/41250
34098         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
34099         gimplified parameters.
34100
34101 2010-03-01  Christian Bruel  <christian.bruel@st.com>
34102
34103         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
34104
34105 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
34106
34107         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
34108
34109 2010-03-01  Richard Guenther  <rguenther@suse.de>
34110
34111         PR middle-end/43213
34112         * expr.c (expand_assignment): Use the alias-oracle to tell
34113         if the rhs aliases the result decl.
34114
34115 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34116
34117         PR pch/14940
34118         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
34119         to sol_gt_pch_get_address.
34120         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
34121         64-bit, SPARC and x86.
34122         (sol_gt_pch_get_address): New function.
34123
34124 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
34125
34126         * toplev.h (inform_n, error_n): Declare.
34127         * diagnostic.c (inform_n, error_n): New function.
34128
34129 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
34130
34131         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
34132         has no rtl yet when processing local_decls, queue it and recheck
34133         if deferred stack allocation hasn't assigned it rtl.
34134
34135 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
34136
34137         * config/sh/sh.c (unspec_bbr_uid): New.
34138         (gen_block_redirect): Use it instead of INSN_UID.
34139         (gen_far_branch): Likewise.
34140
34141 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
34142
34143         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
34144         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
34145
34146 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34147
34148         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
34149         (Warning Options): -Wno-conversion-null is valid for
34150         Objective-C++ as well.
34151         * doc/tm.texi (Named Address Spaces): Likewise.
34152         * doc/plugins.texi (Plugins): Replace TABs with spaces.
34153         * doc/tree-ssa.texi (Tree SSA): Likewise.
34154
34155 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34156
34157         PR bootstrap/43202
34158         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
34159         by default.  Don't set the default arch for
34160         i[34567]86-*-darwin*|x86_64-*-darwin*.
34161
34162 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34163
34164         PR bootstrap/43202
34165         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
34166         default.  Set the default 32bit/64bit archs with $with_arch
34167         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
34168
34169 2010-02-27  Richard Guenther  <rguenther@suse.de>
34170
34171         PR tree-optimization/43186
34172         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
34173         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
34174         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
34175         unroller iterations.
34176
34177 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34178
34179         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
34180         required and i[34567]86-*-* targets don't support 64bit ISA.
34181
34182 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
34183
34184         PR ada/43096
34185         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34186         the same alias set.
34187
34188 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34189
34190         * config.gcc: Set the default arch at least to Prescott for
34191         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
34192         if SSE math is enabled.
34193
34194 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34195
34196         * diagnostic.c (diagnostic_initialize): Update.
34197         (diagnostic_report_diagnostic): Test inhibit_notes_p for
34198         informative notes.
34199         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
34200         (diagnostic_inhibit_notes): New.
34201         * toplev.c (process_options): inhibit notes with -fcompare-debug.
34202
34203 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34204
34205         PR c/20631
34206         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
34207         * doc/standards.texi: Likewise.
34208         * doc/extend.texi: Likewise.
34209         * doc/trouble.texi: Likewise.
34210         * doc/cppopts.texi: Likewise.
34211         * doc/install.texi: Likewise.
34212         * c.opt (std=c90,std=gnu90): New options.
34213         * c-opts.c (c_common_handle_option): Handle them.
34214
34215 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34216
34217         PR c/24577
34218         * c-decl.c (undeclared_variable): Use an informative note.
34219
34220 2010-02-26  Richard Guenther  <rguenther@suse.de>
34221
34222         PR tree-optimization/43186
34223         * gimple.h (gimple_fold): Remove.
34224         * gimple.c (gimple_fold): Remove.  Inline into single user ...
34225         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
34226         Try harder for conditions.
34227
34228 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
34229
34230         PR debug/43190
34231         * function.c (used_types_insert): Don't skip through named pointer
34232         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
34233         and it is different from the main variant's type.
34234
34235 2010-02-26  Nick Clifton  <nickc@redhat.com>
34236
34237         * config/rx/rx.md (sminsi3): Remove bogus alternative.
34238
34239 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34240
34241         * config.gcc: Support --with-fpmath=sse for x86.
34242
34243         * config/i386/ssemath.h: New.
34244
34245         * doc/install.texi (--with-fpmath=sse): Documented.
34246
34247 2010-02-26  Richard Guenther  <rguenther@suse.de>
34248
34249         PR tree-optimization/43188
34250         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
34251         vector types of over-aligned element type.
34252
34253 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
34254
34255         PR target/43175
34256         * config/i386/i386.c (expand_vec_perm_blend): Use correct
34257         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
34258
34259 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
34260
34261         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
34262
34263 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
34264
34265         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
34266         * var-tracking.c: Include diagnostic.h.
34267         (debug_dv): New function.
34268         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
34269
34270         PR debug/43160
34271         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
34272         (add_value_chain, add_value_chains, remove_value_chain,
34273         remove_value_chains): Handle DEBUG_EXPRs.
34274         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
34275
34276         PR debug/43161
34277         * regcprop.c (struct queued_debug_insn_change): New type.
34278         (struct value_data_entry): Add debug_insn_changes field.
34279         (struct value_data): Add n_debug_insn_changes field.
34280         (debug_insn_changes_pool): New variable.
34281         (free_debug_insn_changes, apply_debug_insn_changes,
34282         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
34283         (kill_value_one_regno): Call free_debug_insn_changes if needed.
34284         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
34285         fields.
34286         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
34287         changes for them.
34288         (copyprop_hardreg_forward_1): Don't call apply_change_group for
34289         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
34290         changes, call cprop_find_used_regs via note_stores.
34291         (copyprop_hardreg_forward): When copying vd from predecessor
34292         which has any queued DEBUG_INSN changes, make sure the pointers are
34293         cleared.  At the end call df_analyze and then if there are any
34294         DEBUG_INSN changes queued at the end of some basic block for still
34295         live registers, apply them.
34296         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
34297
34298 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
34299
34300         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
34301         (arm*-*-*): Ditto.
34302
34303 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
34304
34305         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
34306         targets.  Set the default with_cpu/with_arch from arch/cpu.
34307         Allow x86-64 and native for with_cpu/with_arch.
34308
34309 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
34310
34311         * ebitmap.c: Change calls to verify_popcount with calls to
34312         sbitmap_verify_popcount.
34313         (ebitmap_clear_bit): Fixed map->cacheindex test and
34314         map>cache update when bit clearing results in an empty
34315         element.
34316
34317 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34318
34319         PR target/43154
34320         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
34321         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
34322         and support both V2DF and V2DI modes.
34323         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
34324         support both V2DF and V2DI modes.
34325         (general): Delete trailing whitespace from a few patterns.
34326
34327         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
34328         V2DF/V2DI interleave high/low builtins.
34329
34330         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
34331         new VSX builtins.
34332
34333         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
34334         interleave high/low functions.
34335
34336 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
34337
34338         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
34339         #pragma extern_prefix.
34340
34341 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
34342
34343         PR debug/43166
34344         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
34345         BLKmode, assert op0 is a MEM and just adjust its mode.
34346
34347         PR debug/43165
34348         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
34349         if bitpos isn't multiple of mode's bitsize.
34350
34351 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34352
34353         * c.opt (-ftemplate-depth=): New.
34354         (-ftemplate-depth-): Deprecate.
34355         * optc-gen.awk: Handle -ftemplate-depth=.
34356         * opth-gen.awk: Likewise.
34357         * c-opts.c (c_common_handle_option): Likewise.
34358         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
34359
34360 2010-02-24  Jason Merrill  <jason@redhat.com>
34361
34362         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
34363
34364 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34365
34366         * cfg.c (alloc_aux_for_block): Remove inline.
34367         (alloc_aux_for_edge): Likewise.
34368
34369 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34370
34371         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
34372
34373 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34374
34375         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
34376         * config/i386/sol2-gas.h: New file.
34377         * config.gcc (i[34567]86-*-solaris2*): Use it.
34378
34379 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34380
34381         PR c/43128
34382         * c-typeck.c (ep_convert_and_check): New.
34383         (build_conditional_expr): Use it.
34384         (build_binary_op): Likewise.
34385
34386 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
34387
34388         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
34389
34390         PR debug/43150
34391         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
34392         bounds even for -O+.
34393         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
34394         expr needs to have DECL_NAME set.
34395
34396 2010-02-24  Nick Clifton  <nickc@redhat.com>
34397
34398         * config/mep/mep.c: Include gimple.h.
34399         (mep_function_uses_sp): Delete unused function.
34400         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
34401         parameters.  Use unsigned integers to count args.  Return a
34402         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
34403
34404 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
34405
34406         PR target/43107
34407         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
34408         greater or equal to nelt instead of 2 * nelt.
34409         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
34410         with nelt - 1.
34411
34412 2010-02-23  Jason Merrill  <jason@redhat.com>
34413
34414         PR debug/42800
34415         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
34416         in cfun->local_decls even if they have register types.
34417
34418         PR c++/42837
34419         * stor-layout.c (place_field): Don't warn about unnecessary
34420         DECL_PACKED if the type is packed.
34421
34422 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
34423
34424         PR target/43139
34425         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
34426         GOTOFF relocs, even when the base reg isn't pic pointer.
34427
34428 2010-02-23  Michael Matz  <matz@suse.de>
34429
34430         PR debug/43077
34431         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
34432         (expand_gimple_basic_block): Generate and use debug temps if there
34433         are debug uses left after the last real use of TERed ssa names.
34434         Unlink debug immediate uses when they are expanded.
34435
34436 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34437
34438         PR 43123
34439         * config/i386/i386.c (override_options): Reorganise to provide
34440         better error messages.
34441
34442 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34443
34444         PR middle-end/43083
34445         * graphite-scop-detection.c (create_single_exit_edge): Move
34446         the call to find_single_exit_edge to....
34447         (create_sese_edges): ...here.  Don't handle multiple edges
34448         exiting the function.
34449         (build_graphite_scops): Don't handle multiple edges
34450         exiting the function.
34451
34452 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34453
34454         PR middle-end/43097
34455         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
34456         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
34457
34458 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
34459
34460         PR middle-end/43026
34461         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
34462
34463 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34464
34465         PR c++/43126
34466         * c-typeck.c (convert_arguments): Print declaration location.
34467         * c-common.c (validate_nargs): Rename as
34468         builtin_function_validate_nargs.
34469         (check_builtin_function_arguments): Update.
34470
34471 2010-02-22  Richard Guenther  <rguenther@suse.de>
34472
34473         PR lto/43045
34474         * tree-inline.c (declare_return_variable): Use the type of
34475         the call stmt lhs if available.
34476
34477 2010-02-22  Duncan Sands  <baldrick@free.fr>
34478
34479         * passes.c (register_pass): Always consider all pass lists when
34480         ref_pass_instance_number is zero.
34481
34482 2010-02-22  Richard Guenther  <rguenther@suse.de>
34483
34484         PR tree-optimization/42749
34485         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
34486         parameter.  Do arithmetic in the original type.
34487         (update_accumulator_with_ops): Likewise.
34488         (adjust_accumulator_values): Adjust.
34489
34490 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34491
34492         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
34493         (QI to BLKmode splitter): New splitter.
34494
34495 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
34496
34497         * config/i386/i386.c (initial_ix86_tune_features): Turn on
34498         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
34499
34500 2010-02-22  Richard Guenther  <rguenther@suse.de>
34501
34502         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
34503
34504 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
34505
34506         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
34507         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
34508         ($(T)crti.o, $(T)crtn.o): Remove rules.
34509
34510 2010-02-21  Tobias Burnus  <burnus@net-b.de>
34511
34512         PR fortran/35259
34513         * doc/invoke.texi (-fassociative-math): Document that this
34514         option is automatically enabled for Fortran.
34515
34516 2010-02-20  David S. Miller  <davem@davemloft.net>
34517
34518         * configure.ac: Test if linker and assembler properly support
34519         GOTDATA_OP relocations.
34520         * configure: Rebuild.
34521         * config.in: Likewise.
34522         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
34523         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
34524         (movsi_high_pic): Likewise.
34525         (movdi_lo_sum_pic): Likewise.
34526         (movdi_high_pic): Likewise.
34527         (movsi_pic_gotdata_op): New pattern.
34528         (movdi_pic_gotdata_op): Likewise.
34529         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
34530         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
34531
34532 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
34533
34534         PR target/43067
34535         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
34536         attribute to ssemul.
34537         (xop_mulv2div2di3_high): Ditto.
34538
34539 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34540
34541         PR c++/35669
34542         * c.opt (Wconversion-null): New option.
34543         * doc/invoke.texi (Wconversion-null): Document.
34544
34545 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34546
34547         * common.opt (Wlarger-than-): Add Undocumented.
34548
34549 2010-02-19  Mike Stump  <mikestump@comcast.net>
34550
34551         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
34552
34553 2010-02-19  Jason Merrill  <jason@redhat.com>
34554
34555         PR target/40332
34556         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
34557         * configure: Likewise.
34558
34559 2010-02-20  Alan Modra  <amodra@gmail.com>
34560
34561         PR middle-end/42344
34562         * cgraph.h (cgraph_make_decl_local): Declare.
34563         * cgraph.c (cgraph_make_decl_local): New function.
34564         (cgraph_make_node_local): Use it.
34565         * cgraphunit.c (cgraph_function_versioning): Likewise.
34566         * ipa.c (function_and_variable_visibility): Likewise.
34567
34568 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34569
34570         PR bootstrap/43121
34571         * except.c (sjlj_emit_function_enter): Don't call
34572         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
34573         directly.
34574         * rtl.h (add_reg_br_prob_note): Remove prototype.
34575
34576 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34577
34578         PR 41779
34579         * c-common.c (conversion_warning): Remove widening conversions
34580         before checking the conversion of integers to reals.
34581
34582 2010-02-19  Mike Stump  <mikestump@comcast.net>
34583
34584         PR middle-end/43125
34585         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
34586
34587         PR objc/43061
34588         * cgraphunit.c (process_function_and_variable_attributes): Check
34589         DECL_PRESERVE_P instead of looking up attribute "used".
34590         * ipa-pure-const.c (check_decl): Likewise.
34591         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
34592         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
34593         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
34594         instead of attribute "used".
34595         * config/sol2-c.c (solaris_pragma_init): Likewise.
34596         (solaris_pragma_fini): Likewise.
34597
34598 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34599
34600         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
34601         Use XCNEW instead of xcalloc.
34602         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
34603         XNEW instead of xmalloc.
34604         (get_fields): Use XNEWVEC instead of xmalloc.
34605
34606         PR debug/43084
34607         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
34608         populate vars array.
34609         (create_new_general_access): For debug stmts just reset value.
34610         (get_stmt_accesses): For accesses within debug stmts just record them
34611         using add_access_to_acc_sites instead of preventing the peeling or
34612         counting them as accesses.
34613
34614         PR middle-end/42233
34615         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
34616
34617 2010-02-19  Richard Guenther  <rguenther@suse.de>
34618
34619         PR tree-optimization/42916
34620         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
34621         instructions.
34622
34623 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
34624
34625         * configure.ac: Replace all uses of changequote in macro arguments
34626         with proper quoting.
34627
34628 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34629
34630         PR middle-end/42233
34631         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
34632
34633 2010-02-19  Richard Guenther  <rguenther@suse.de>
34634
34635         PR tree-optimization/42944
34636         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
34637         test for aliasing with errno.
34638
34639 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
34640
34641         PR middle-end/42233
34642         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
34643         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
34644         * dojump.c: Include output.h.
34645         (inv): New inline function.
34646         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
34647         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
34648         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
34649         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
34650         argument, pass it down to other calls.
34651         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
34652         add REG_BR_PROB note to the conditional jump.
34653         * cfgexpand.c (add_reg_br_prob_note): Removed.
34654         (expand_gimple_cond): Don't call it, add the probability
34655         as last argument to jumpif_1/jumpifnot_1.
34656         * Makefile.in (dojump.o): Depend on output.h.
34657         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
34658         callers.
34659         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
34660         * stmt.c (do_jump_if_equal): Likewise.
34661         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
34662         * loop-unswitch.c (compare_and_jump_seq): Likewise.
34663         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
34664         Likewise.
34665         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
34666         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
34667         jumpifnot_1 callers.
34668         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
34669         callers.
34670         (store_expr): Adjust jumpifnot caller.
34671         (store_constructor): Adjust jumpif caller.
34672
34673         PR middle-end/42233
34674         * gimplify.c (gimple_boolify): For __builtin_expect call
34675         gimple_boolify also on its first argument.
34676
34677 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
34678
34679         * configure.ac (gnu-unique-object): Wrap regexps using [] in
34680         changequote block.
34681         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
34682         * configure: Regenerated.
34683
34684 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34685
34686         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
34687         lang_hooks.types_compatible_p instead of comptypes.
34688
34689 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34690
34691         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
34692         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
34693         if __prefer_thumb__ is defined.
34694
34695 2010-02-18  Martin Jambor  <mjambor@suse.cz>
34696
34697         PR tree-optimization/43066
34698         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
34699         array with zero-sized element type.
34700
34701 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
34702
34703         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
34704         rtx, allocate struct var_loc_node here and return it to the
34705         caller, and only if it is actually needed.
34706         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
34707         move it earlier and return immediately if it returns NULL.
34708
34709 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
34710
34711         * config/sparc/gas.h: New file.  Restore
34712         TARGET_ASM_NAMED_SECTION to its ELF default.
34713         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
34714         check !HAVE_GNU_AS.
34715         * config/sparc/sparc.c (sparc_elf_asm_named_section):
34716         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
34717         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
34718         after sparc/sysv4.h.
34719
34720 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
34721
34722         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
34723
34724 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
34725
34726         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
34727         patterns from predicated pattern.
34728
34729 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
34730
34731         PR target/43103
34732         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
34733         for insn mnemonic suffix.
34734
34735 2010-02-17  Richard Guenther  <rguenther@suse.de>
34736
34737         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
34738         to loop PHI nodes.
34739
34740 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
34741
34742         PR debug/42918
34743         * caller-save.c (save_call_clobbered_regs): If BB ends with
34744         a DEBUG_INSN, move any notes in between last real insn and the last
34745         DEBUG_INSN after the last DEBUG_INSN.
34746
34747 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
34748
34749         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
34750         Fix return type.  Fix argument type.  Explain meaning of return value.
34751
34752 2010-02-16  Richard Guenther  <rguenther@suse.de>
34753
34754         PR tree-optimization/41043
34755         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
34756         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
34757         statements ...
34758         (vrp_visit_phi_node): ... but only for loop PHI nodes.
34759
34760 2010-02-16  Ira Rosen  <irar@il.ibm.com>
34761
34762         PR tree-optimization/43074
34763         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
34764         * tree-vect-loop.c (vect_analyze_loop_operations): Add
34765         vectorizable cycles in hybrid SLP check.
34766         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
34767
34768 2010-02-16  Richard Guenther  <rguenther@suse.de>
34769
34770         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
34771         (true_dependence): If memrefs_conflict_p computes must-alias
34772         trust it.  Move TBAA check after offset-based disambiguation.
34773         (canon_true_dependence): Likewise.
34774
34775 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
34776
34777         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
34778         * doc/invoke.texi: Document it.
34779         * var-tracking.c: Include toplev.h and params.h.
34780         (vt_find_locations): Return bool indicating success.  Compute
34781         hash sizes unconditionally.  Check new parameter, report.
34782         (variable_tracking_main_1): Check vt_find_locations results and
34783         retry.  Renamed from...
34784         (variable_tracking_main): ... this.  New wrapper to preserve
34785         flag_var_tracking_assignments.
34786         * Makefile.in (var-tracking.o): Adjust dependencies.
34787
34788 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
34789             Jakub Jelinek  <jakub@redhat.com>
34790
34791         PR target/42854
34792         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
34793         if weak_import attribute is present.
34794         * config/darwin.c (machopic_select_section): Likewise.
34795
34796 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
34797
34798         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
34799         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
34800         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
34801         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
34802
34803         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
34804         types.
34805
34806         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34807         Fix argument types.
34808
34809         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
34810         Rewrite text to refer to the names.
34811
34812 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
34813
34814         * config/i386/i386-builtin-types.def
34815         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
34816         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
34817         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
34818         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
34819         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
34820         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
34821         IX86_BUILTIN_VPERMIL2PS256.
34822         (MULTI_ARG_4_DF2_DI_I): Defined.
34823         (MULTI_ARG_4_DF2_DI_I1): Defined.
34824         (MULTI_ARG_4_SF2_SI_I): Defined.
34825         (MULTI_ARG_4_SF2_SI_I1): Defined.
34826         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
34827         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
34828         __builtin_ia32_vpermil2ps256.
34829         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
34830         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
34831         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
34832         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
34833         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
34834         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
34835         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
34836         CODE_FOR_xop_vpermil2v8sf3.
34837         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
34838         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
34839         * config/i386/xopintrin.h (_mm_permute2_pd): New.
34840         (_mm256_permute2_pd): New.
34841         (_mm_permute2_ps): New.
34842         (_mm256_permute2_ps): New.
34843
34844 2010-02-15  Nick Clifton  <nickc@redhat.com>
34845
34846         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
34847         boolean parameters.  Use emit_jump_insn when emitting a pop
34848         instruction containing a return insn.
34849         (push): Use 'true' rather than '1' as second parameter to F.
34850         (h8300_expand_prologue): Likewise.
34851         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
34852         (h8300_expand_epilogue): Likewise.
34853
34854 2010-02-15  Richard Guenther  <rguenther@suse.de>
34855
34856         PR middle-end/43068
34857         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
34858         if that is zero.
34859
34860 2010-02-15  Nick Clifton  <nickc@redhat.com>
34861
34862         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
34863         delta.
34864
34865 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
34866
34867         * intl.c (fake_ngettext): New function.
34868         * intl.h (fake_ngettext): Declare.
34869         (ngettext): Define macro.
34870         * collect2.c (notice_translated): New function.
34871         (main): Use notice_translated and ngettext.
34872         * collect2.h (notice_translated): Declare.
34873
34874 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
34875
34876         * reorg.c (delete_computation): Comment fixes.
34877         * caller-save.c (setup_save_areas): Idem.
34878         * sel-sched-dump.c (dump_lv_set): Idem.
34879         * rtl.def: Idem.
34880
34881 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34882
34883         * config/s390/s390.c (s390_sched_init): New function.
34884         (TARGET_SCHED_INIT): Target hook defined.
34885
34886 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
34887             Jack Howarth  <howarth@bromo.med.uc.edu>
34888             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
34889
34890         PR target/42982
34891         Partial revert of unintended change in fix for PR41605.
34892         * config/darwin.h: Fix typo.
34893         * config/darwin9.h: Same.
34894
34895 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34896
34897         * c-pch.c (pch_init): Clear v.
34898
34899 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34900
34901         PR middle-end/42930
34902         * graphite-scop-detection.c (graphite_can_represent_scev): Call
34903         graphite_can_represent_init for MULT_EXPR.
34904
34905 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34906
34907         PR middle-end/42914
34908         PR middle-end/42530
34909         * graphite-sese-to-poly.c (remove_phi): New.
34910         (translate_scalar_reduction_to_array): Call remove_phi.
34911
34912 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34913
34914         PR middle-end/42771
34915         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
34916         * graphite-clast-to-gimple.h (gloog): Update declaration.
34917         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
34918         * graphite-poly.h (struct poly_bb): Add missing comments.
34919         (struct scop): Add poly_scop_p field.
34920         (POLY_SCOP_P): New.
34921         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
34922         * graphite.c (graphite_transform_loops): Build the polyhedral
34923         representation for each scop before code generation.
34924         * sese.c (rename_variables_in_operand): Removed.
34925         (rename_variables_in_expr): Return the renamed expression.
34926         (rename_sese_parameters): New.
34927         * sese.h (rename_sese_parameters): Declared.
34928
34929 2010-02-11  Richard Guenther  <rguenther@suse.de>
34930
34931         PR tree-optimization/42998
34932         * tree-ssa-pre.c (create_expression_by_pieces): Treat
34933         POINTER_PLUS_EXPR properly.
34934
34935 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34936             Changpeng Fang  <changpeng.fang@amd.com>
34937
34938         PR middle-end/40886
34939         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
34940         the cost of an IV candidate when the IV is used in a test against zero.
34941
34942         * gcc.dg/tree-ssa/ivopts-3.c: New.
34943
34944 2010-02-11  Richard Guenther  <rguenther@suse.de>
34945
34946         PR lto/41664
34947         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
34948         pointer-vs-decl case by swapping refs.  Handle some cases
34949         of pointer-vs-decl disambiguations more conservatively.
34950         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
34951         to false after expanding.
34952
34953 2010-02-11  Richard Guenther  <rguenther@suse.de>
34954
34955         PR driver/43021
34956         * gcc.c (process_command): Handle LTO file@offset case more
34957         appropriately.
34958
34959 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34960
34961         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
34962         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
34963         of DEBUG_INSNs.
34964         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
34965
34966         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
34967         if MEM's mode size isn't DWARF2_ADDR_SIZE.
34968         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
34969         Optimize eq/ne comparisons when both arguments are known to be
34970         zero-extended.
34971         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
34972         Don't mask operands unnecessarily if they are known to be already
34973         zero-extended.
34974
34975 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
34976
34977         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
34978         instead of loop.
34979
34980 2010-02-10  Richard Guenther  <rguenther@suse.de>
34981
34982         PR tree-optimization/43017
34983         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
34984         for wrapping signed arithmetic.
34985
34986 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
34987
34988         PR debug/43010
34989         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
34990         if no debug info should be emitted for it.
34991
34992 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
34993
34994         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
34995         note when flag_exceptions is set.
34996
34997 2010-02-10  Duncan Sands  <baldrick@free.fr>
34998
34999         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35000
35001 2010-02-10  Richard Guenther  <rguenther@suse.de>
35002
35003         PR c/43007
35004         * tree.c (get_unwidened): Handle constants.
35005         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35006
35007 2010-02-10  Martin Jambor  <mjambor@suse.cz>
35008
35009         PR lto/42985
35010         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35011         check for variable argument counts independently.
35012
35013 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35014
35015         PR target/42841
35016         * config/sh/sh.c (find_barrier): Increase length for non delayed
35017         conditional branches.
35018
35019 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35020
35021         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
35022
35023 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35024
35025         * builtins.c (set_builtin_user_assembler_name): Also handle
35026         ffs if int is smaller than word.
35027
35028 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
35029
35030         PR middle-end/42973
35031         * ira-conflicts.c (get_dup): Remove.
35032         (process_reg_shuffles): Add new parameter.  Use it as an
35033         additional guard for copy generation.
35034         (add_insn_allocno_copies): Rewrite.
35035
35036 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
35037
35038         * common.opt (fsched2-use-traces): Preserved for backward
35039         compatibility.
35040         * doc/invoke.texi: Remove the documentation about option
35041         -fsched2-use-traces.
35042         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
35043         flag_sched2_use_traces.
35044         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
35045         the backward compatibility flag section.
35046
35047 2010-02-09  Richard Guenther  <rguenther@suse.de>
35048
35049         PR tree-optimization/43008
35050         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
35051         make HEAP variables initialized from global memory if they
35052         are not known builtin functions.
35053         (find_func_aliases): Adjust.
35054
35055 2010-02-09  Richard Guenther  <rguenther@suse.de>
35056
35057         PR tree-optimization/43000
35058         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
35059         arithmetic manually.
35060
35061 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
35062
35063         PR tree-optimization/42931
35064         * tree-loop-linear.c (try_interchange_loops): Don't call
35065         double_int_mul if estimated_loop_iterations failed.
35066
35067 2010-02-08  Martin Jambor  <mjambor@suse.cz>
35068
35069         PR middle-end/42898
35070         * tree-sra.c (build_accesses_from_assign): Do not mark in
35071         should_scalarize_away_bitmap if stmt has volatile ops.
35072         (sra_modify_assign): Do not process assigns piecemeal if if stmt
35073         has volatile ops.
35074
35075 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
35076
35077         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
35078
35079 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
35080
35081         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
35082         before the pattern.
35083
35084 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
35085
35086         PR middle-end/42946
35087         * df-core.c (df_finish_pass): Change type of saved_flags to int.
35088
35089 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35090
35091         PR middle-end/42988
35092         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
35093         to unknown_dependence.
35094         (graphite_legal_transform_dr): Handle the unknown_dependence.
35095         (graphite_carried_dependence_level_k): Same.
35096
35097 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35098
35099         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
35100
35101 2010-02-07  Richard Guenther  <rguenther@suse.de>
35102
35103         PR middle-end/42991
35104         * expr.c (get_inner_reference): Always initialize *pbitsize.
35105
35106 2010-02-07  Richard Guenther  <rguenther@suse.de>
35107
35108         PR middle-end/42956
35109         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
35110         new ARRAY_REFs on variable size element or minimal index arrays.
35111         Complete.
35112         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
35113         gimple_fold_indirect_ref.
35114
35115 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
35116
35117         PR target/42957
35118         * arm.c (arm_override_options): Just return if the user has specified
35119         an invalid fpu name.
35120
35121 2010-02-03  Jason Merrill  <jason@redhat.com>
35122
35123         PR c++/42870
35124         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
35125         i386_pe_maybe_record_exported_symbol.
35126
35127 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
35128
35129         PR target/42924
35130         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35131         (pa_delegitimize_address): New function.
35132
35133 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
35134
35135         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
35136         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
35137
35138 2010-02-05  Richard Guenther  <rguenther@suse.de>
35139
35140         PR lto/42762
35141         * lto-streamer-in.c (get_resolution): Deal with references
35142         to undefined functions.
35143
35144 2010-02-05  Richard Guenther  <rguenther@suse.de>
35145
35146         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
35147         (fold_const_aggregate_ref): Likewise.
35148         (ccp_fold_stmt): Substitute loads.
35149         (maybe_fold_reference): Verify types before substituting.
35150         Unshare properly.
35151         (fold_gimple_assign): Unshare properly.
35152         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
35153
35154 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
35155
35156         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
35157         for rs6000_gen_cell_microcode.
35158
35159 2010-02-04  Richard Guenther  <rguenther@suse.de>
35160
35161         PR rtl-optimization/42952
35162         * dse.c (const_or_frame_p): Remove MEM handling.
35163
35164 2010-02-04  Nick Clifton  <nickc@redhat.com>
35165
35166         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
35167         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
35168         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
35169         (mn10300_asm_output_mi_thunk): New function.
35170         (mn10300_can_output_mu_thunk): New function.
35171         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
35172         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
35173         (FUNCTION_ARG): Delete incorrect comment.
35174
35175 2010-02-03  Jason Merrill  <jason@redhat.com>
35176
35177         PR c++/40138
35178         * fold-const.c (operand_equal_p): Handle erroneous types.
35179
35180 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
35181
35182         * config/h8300/h8300.md (can_delay): Fix attibute condition.
35183
35184 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
35185
35186         PR rtl-optimization/42941
35187         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
35188         of xmalloc.
35189
35190 2010-02-03  Jason Merrill  <jason@redhat.com>
35191
35192         PR c++/35652
35193         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
35194
35195 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
35196
35197         PR debug/42896
35198         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
35199         (cselib_reset_table): Renamed from...
35200         (cselib_reset_table_with_next_value): ... this.
35201         (cselib_get_next_uid): Renamed from...
35202         (cselib_get_next_unknown_value): ... this.
35203         * cselib.c (next_uid): Renamed from...
35204         (next_unknown_value): ... this.
35205         (cselib_clear_table): Adjust.
35206         (cselib_reset_table): Adjust.  Renamed from...
35207         (cselib_reset_table_with_next_value): ... this.
35208         (cselib_get_next_uid): Adjust.  Renamed from...
35209         (cselib_get_next_unknown_value): ... this.
35210         (get_value_hash): Use hash.
35211         (cselib_hash_rtx): Likewise.
35212         (new_cselib_val): Adjust.  Set and dump uid.
35213         (cselib_lookup_mem): Pass next_uid as hash.
35214         (cselib_subst_to_values): Likewise.
35215         (cselib_log_lookup): Dump uid.
35216         (cselib_lookup): Pass next_uid as hash.  Adjust.
35217         (cselib_process_insn): Adjust.
35218         (cselib_init): Initialize next_uid.
35219         (cselib_finish): Adjust.
35220         (dump_cselib_table): Likewise.
35221         * dse.c (canon_address): Dump value uid.
35222         * print-rtl.c (print_rtx): Print value uid.
35223         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
35224         (dvuid): New type.
35225         (dv_uid): New function, sort of renamed from...
35226         (dv_htab_hash): ... this, reimplemented in terms of it and...
35227         (dv_uid2hash): ... this.  New.
35228         (variable_htab_eq): Drop excess assertions.
35229         (tie_break_pointers): Removed.
35230         (canon_value_cmp): Compare uids.
35231         (variable_post_merge_New_vals): Print uids.
35232         (vt_add_function_parameters): Adjust.
35233         (vt_initialize): Reset table.  Adjust.
35234
35235 2010-02-03  Richard Guenther  <rguenther@suse.de>
35236
35237         PR tree-optimization/42944
35238         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
35239         (call_may_clobber_ref_p_1): Likewise.  Properly handle
35240         malloc and calloc clobbering errno.
35241
35242 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
35243
35244         * doc/invoke.texi: Fix name of sched1 dump.
35245
35246         * opts.c (decode_options): Set flag_tree_switch_conversion
35247         only conditionally on optimize >= 2.
35248
35249         * gcse.c: Assorted comment fixes in pass description.
35250
35251 2010-02-03  Anthony Green  <green@moxielogic.com>
35252
35253         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
35254         nop padding in order to maintain alignment of storage location of
35255         target function address.
35256         (moxie_trampoline_init): Store target function address at newly
35257         aligned location.
35258         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
35259         to 32.
35260         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
35261
35262 2010-02-03  Richard Guenther  <rguenther@suse.de>
35263
35264         PR middle-end/42927
35265         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
35266
35267 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35268
35269         * config.gcc: Reenable check for obsolete targets.
35270         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
35271         mips-sgi-irix6.[0-4]*.
35272
35273 2010-02-02  Nick Clifton  <nickc@redhat.com>
35274
35275         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
35276         constant size of 4 as being the same as 0.
35277         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
35278         can take values in the range 0..4.
35279
35280 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
35281
35282         PR java/41991
35283         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
35284         as _darwin10_Unwind_FindEnclosingFunction().
35285         * libgcc-libsystem.ver: New.
35286
35287 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
35288
35289         PR target/41399
35290         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
35291         implicitly set registers.
35292
35293 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
35294
35295         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
35296         (arm_override_options): Allow automatic selection of the thread
35297         pointer register if thumb2.
35298         (legitimize_pic_address): Improve code sequences for Thumb2.
35299         (arm_call_tls_get_addr): Likewise.
35300         (legitimize_tls_address): Likewise.
35301         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
35302         (pic_load_addr_32bit): ... this.  New named pattern.
35303         * thumb2.md (pic_load_addr_thumb2): Delete.
35304         (pic_load_dot_plus_four): Delete.
35305         (tls_load_dot_plus_four): New named pattern.
35306
35307 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35308
35309         PR libgomp/29986
35310         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
35311         Document fix for TLS bug.
35312
35313 2010-01-31  Richard Guenther  <rguenther@suse.de>
35314
35315         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
35316         conservatively correct.
35317
35318 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35319
35320         PR target/42850
35321         Revert:
35322         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35323
35324         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
35325
35326 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35327
35328         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
35329
35330 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
35331
35332         * config.gcc: Adjust order of makefile fragments for mingw targets.
35333
35334 2010-01-31  Richard Guenther  <rguenther@suse.de>
35335
35336         PR middle-end/42898
35337         * gimplify.c (gimplify_init_constructor): For volatile LHS
35338         initialize a temporary.
35339
35340 2010-01-31  Matthias Klose  <doko@ubuntu.com>
35341
35342         * configure.ac: Fix __stack_chk_fail check for cross builds configured
35343         --with-headers
35344         * configure: Regenerate.
35345
35346 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
35347
35348         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35349         the same alias set and their sizes different constantness.
35350         (aliasing_component_refs_p): Revert 2009-10-24 change.
35351
35352 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35353
35354         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
35355         unused.
35356
35357 2010-01-29  Richard Guenther  <rguenther@suse.de>
35358
35359         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
35360         Assert we successfully updated the call.
35361
35362 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
35363
35364         PR rtl-optimization/42889
35365         * df.h (df_set_bb_dirty_nonlr): New prototype.
35366         * df-core.c (df_set_bb_dirty_nonlr): New function.
35367         * df-scan.c (df_insn_rescan): Call it instead of
35368         df_set_bb_dirty for DEBUG_INSNs.
35369
35370 2010-01-29  Richard Guenther  <rguenther@suse.de>
35371
35372         PR middle-end/37448
35373         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
35374         quadratic behavior in most cases.
35375
35376 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
35377
35378         PR target/42891
35379         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
35380         in the call to gen_x86_movsicc_0_m1.
35381
35382 2010-01-28  Richard Guenther  <rguenther@suse.de>
35383
35384         PR tree-optimization/42871
35385         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
35386
35387 2010-01-28  Richard Guenther  <rguenther@suse.de>
35388
35389         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
35390         into call arguments.
35391
35392 2010-01-28  Richard Guenther  <rguenther@suse.de>
35393
35394         PR middle-end/42883
35395         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
35396         the forwarder if the destination is an EH landing pad.
35397
35398 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
35399
35400         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
35401         block list passed to gimple_duplicate_sese_tail.
35402         (parallelize_loops): Avoid parallelization when the function
35403         has_nonlocal_label.
35404         Avoid parallelization when the preheader is IRREDUCIBLE.
35405         Try to optimize when estimated_loop_iterations_int is unresolved.
35406         Add the loop's location to the dump file.
35407         * tree-cfg.c (add_phi_args_after_redirect): Remove.
35408         (gimple_duplicate_sese_tail): Remove the check for the latch.
35409         Redirect nexits to the exit block.
35410         Remove handling of the incoming edges to the latch.
35411         Redirect the backedge from the copied latch to the exit bb.
35412
35413 2010-01-28  Michael Matz  <matz@suse.de>
35414
35415         PR target/42881
35416         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
35417         Wrap force_reg into a sequence, emit it before user.
35418
35419 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
35420
35421         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
35422         (arm_rev): New.
35423         (arm_legacy_rev): Likewise.
35424         (thumb_legacy_rev): Likewise.
35425
35426 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
35427
35428         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
35429         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
35430         on MEM's address failed, try avoid_constant_pool_reference and
35431         recurse if it returned something different.
35432         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
35433         address, try avoid_constant_pool_reference and recurse if it
35434         returned something different.
35435         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
35436         address and avoid_constant_pool_reference returned something
35437         different, don't set have_address.
35438
35439 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
35440
35441         PR debug/42861
35442         * var-tracking.c (val_store): Add modified argument, obey it.
35443         Adjust callers.
35444         (count_uses): Move down logging of main.
35445         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
35446         don't need resolution.
35447         (emit_notes_in_bb): Likewise.
35448
35449 2010-01-27  Richard Guenther  <rguenther@suse.de>
35450
35451         PR middle-end/42878
35452         * tree-inline.c (remap_decl): Delay remapping of SSA name
35453         default definitions until we need them.
35454
35455 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
35456
35457         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35458         (rs6000_delegitimize_address): New function.
35459
35460         * config/s390/s390.c (s390_delegitimize_address): Call
35461         delegitimize_mem_from_attrs.
35462
35463         PR middle-end/42874
35464         * tree-inline.c (cannot_copy_type_1): Removed.
35465         (copy_forbidden): Don't forbid copying of functions containing
35466         records/unions with variable length fields.
35467
35468 2010-01-27  Christian Bruel  <christian.bruel@st.com>
35469
35470         Revert:
35471         PR target/42841
35472         * config/sh/sh.c (find_barrier): Increase length for non delayed
35473         conditional branches.
35474
35475 2010-01-27  Matthias Klose  <doko@ubuntu.com>
35476
35477         * configure.ac (gnu-unique-object): Fix ldd version check.
35478         * configure: Regenerate.
35479
35480 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35481
35482         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
35483         HAVE_GNU_AS value.
35484         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
35485         Test for HAVE_GNU_AS value.
35486
35487 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35488
35489         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
35490         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
35491         INT64_TYPE): Define.
35492         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
35493         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
35494         INT_LEAST64_TYPE): Define.
35495         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
35496         UINT_LEAST64_TYPE): Define.
35497         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
35498         INT_FAST64_TYPE): Define.
35499         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
35500         UINT_FAST64_TYPE): Define.
35501         (INTMAX_TYPE, UINTMAX_TYPE): Define.
35502         (INTPTR_TYPE, UINTPTR_TYPE): Define.
35503         (SIG_ATOMIC_TYPE): Define.
35504
35505 2010-01-26  Richard Guenther  <rguenther@suse.de>
35506
35507         * df-scan.c (df_scan_set_bb_info): Remove assert.
35508         (df_insn_rescan_debug_internal): Merge asserts.
35509         (df_install_ref): Likewise.
35510         (df_mark_reg): Use bitmap_set_range.
35511         (df_hard_reg_used_p): Remove assert.
35512         (df_hard_reg_used_count): Likewise.
35513
35514 2010-01-26  Richard Guenther  <rguenther@suse.de>
35515
35516         PR rtl-optimization/42685
35517         * web.c (web_main): Ignore DEBUG_INSNs.
35518
35519 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
35520
35521         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
35522
35523         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
35524         Fix types of fndecl and arglist parameters.
35525
35526 2010-01-26  Richard Guenther  <rguenther@suse.de>
35527
35528         PR middle-end/42806
35529         * tree-eh.c (unsplit_eh): Skip debug insns.
35530
35531 2010-01-26  Richard Guenther  <rguenther@suse.de>
35532
35533         PR tree-optimization/42250
35534         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
35535
35536 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
35537
35538         PR fortran/42866
35539         * omp-low.c (expand_omp_sections): Only use single_pred if
35540         l2_bb is single_pred_p.
35541
35542 2010-01-25  Christian Bruel  <christian.bruel@st.com>
35543
35544         PR target/42841
35545         * config/sh/sh.c (find_barrier): Increase length for non delayed
35546         conditional branches.
35547         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
35548
35549 2010-01-24  David S. Miller  <davem@davemloft.net>
35550
35551         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
35552         define if not using GAS.
35553         * config/sparc/sparc.c (sparc_elf_asm_named_section):
35554         Likewise.  Delete SECTION_MERGE code, which is only applicable
35555         when using GAS.
35556
35557 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
35558
35559         PR c++/42748
35560         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
35561         mangling of va_list in system headers.
35562
35563 2010-01-23  Toon Moene  <toon@moene.org>
35564
35565         * tree-predcom.c (combine_chains): Return NULL, not false.
35566
35567 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
35568
35569         * tree-loop-distribution.c (distribute_loop): Fix declaration and
35570         initialization of variable res to agree with return type.
35571
35572 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
35573
35574         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
35575         * tree-sra.c: Add include of expr.h.
35576
35577 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
35578
35579         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
35580         insert the debug stmt on the single non-EH edge from the stmt.
35581
35582 2010-01-22  Richard Henderson  <rth@redhat.com>
35583
35584         PR tree-opt/42833
35585         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
35586         the RHS until after generate_subtree_copies has insertted its
35587         code before the current statement.
35588
35589 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
35590
35591         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
35592
35593         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
35594
35595 2010-01-21  Martin Jambor  <mjambor@suse.cz>
35596
35597         PR tree-optimization/42585
35598         * tree-sra.c (struct access): New field grp_total_scalarization.
35599         (dump_access): Dump the new field.
35600         (should_scalarize_away_bitmap): New variable.
35601         (cannot_scalarize_away_bitmap): Likewise.
35602         (sra_initialize): Allocate new bitmaps.
35603         (sra_deinitialize): Free new bitmaps.
35604         (create_access_1): New function.
35605         (create_access): Parts moved to create_access_1.
35606         (type_consists_of_records_p): New function.
35607         (completely_scalarize_record): Likewise.
35608         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
35609         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
35610         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
35611         access.
35612         (analyze_all_variable_accesses): Completely scalarize small eligible
35613         records.
35614
35615 2010-01-21  Martin Jambor  <mjambor@suse.cz>
35616
35617         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
35618
35619 2010-01-21  Andrew Haley  <aph@redhat.com>
35620
35621         * gcc.c (process_command): Move lang_specific_driver before
35622         setting cc_libexec_prefix.
35623
35624 2010-01-21  Richard Guenther  <rguenther@suse.de>
35625
35626         PR middle-end/19988
35627         * fold-const.c (negate_expr_p): Pretend only negative
35628         real constants are easily negatable.
35629
35630 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
35631             Jason Merrill  <jason@redhat.com>
35632
35633         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
35634         (TYPE_TRANSPARENT_AGGR): this, for union and record.
35635         * calls.c (initialize argument_information): Handle it.
35636         * c-common.c (handle_transparent_union_attribute): Use new name.
35637         * c-decl.c (finish_struct): Ditto.
35638         * c-typeck.c (type_lists_compatible_p): Ditto.
35639         (convert_for_assignment): Use new name and also handle record.
35640         * function.c (aggregate_value_p): Handle it.
35641         (pass_by_reference): Ditto.
35642         (assign_parm_data_types): Ditto.
35643         * print-tree.c (print_node): Ditto.
35644         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
35645         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
35646         * tree.c (first_field): New fn.
35647
35648 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
35649
35650         PR target/42818
35651         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
35652         even when linking statically, for now.
35653
35654 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
35655
35656         PR debug/42715
35657         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
35658         without a cselib val.
35659         (count_uses): Accept MO_VAL_SET with no val on stores.
35660         (add_stores): Likewise.
35661
35662 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35663
35664         * var-tracking.c (check_value_val): Add a compile time assertion.
35665         (dv_is_decl_p): Simplify.
35666         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
35667         gcc_assert if ENABLE_CHECKING.
35668
35669 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
35670
35671         PR debug/42782
35672         * var-tracking.c: Include tree-flow.h.
35673         (mem_dies_at_call): New.
35674         (dataflow_set_preserve_mem_locs): Use it.
35675         (dataflow_set_remove_mem_locs): Likewise.
35676         (dump_var): Renamed from dump_variable.  Adjust all callers.
35677         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
35678         * Makefile.in (var-tracking.o): Adjust deps.
35679
35680 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
35681
35682         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
35683
35684 2010-01-20  Richard Guenther  <rguenther@suse.de>
35685
35686         PR tree-optimization/42717
35687         * tree-ssa-dce.c (get_live_post_dom): Remove.
35688         (forward_edge_to_pdom): Take an arbitrary edge to copy
35689         degenerate PHI args from.
35690         (remove_dead_stmt): Use the first post-dominator even if it
35691         does not contain live statements as redirection destination.
35692
35693 2010-01-20  Richard Guenther  <rguenther@suse.de>
35694
35695         * tree-inline.c (estimate_num_insns): Handle EH builtins.
35696
35697 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35698
35699         * sel-sched.c (create_speculation_check): Remove set but not used
35700         variable twin.
35701         (try_transformation_cache): Remove set but not used variable ds.
35702         (calculate_privileged_insns): Remove set but not used variables
35703         cur_insn and min_spec_insn.
35704         (find_best_expr): Remove set but not used variable avail_n.
35705         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
35706         variable e.
35707         * cgraphunit.c (assemble_thunk): Remove set but not used variable
35708         false_label.
35709         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
35710         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
35711         new_scop_exit_edge.
35712
35713 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
35714
35715         PR bootstrap/42786
35716         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
35717         cpu types.  Add support for *-sse3 cpu types.
35718         (x86_64-*-*): Ditto.
35719
35720 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35721
35722         PR middle-end/42803
35723         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
35724         argument, call initializer_constant_valid_p_1 instead of
35725         initializer_constant_valid_p, pass CACHE to it, return NULL
35726         immediately if first call returns NULL.
35727         (initializer_constant_valid_p_1): New function.
35728         (initializer_constant_valid_p): Use it.
35729
35730 2010-01-20  Thomas Quinot  <quinot@adacore.com>
35731
35732         * tree.def (PLACEHOLDER_EXPR): Fix comment.
35733
35734 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35735
35736         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
35737         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
35738         (loc_list_from_tree): Don't handle unsigned division.  Handle
35739         signed modulo using DW_OP_{over,over,div,mul,minus}.
35740         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
35741         modulo instead of signed.
35742
35743 2010-01-20  DJ Delorie  <dj@redhat.com>
35744
35745         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
35746         (Fpa): Pass it
35747         (h8300_emit_stack_adjustment): Propogate it.
35748         (push): Pass it.
35749         (h8300_expand_prologue): Likewise.
35750         (h8300_expand_epilogue): Likewise.
35751
35752 2010-01-19  Michael Matz  <matz@suse.de>
35753
35754         PR tree-optimization/41783
35755         * tree-data-ref.c (toplevel): Include flags.h.
35756         (dump_data_dependence_relation):  Also dump the inputs if the
35757         result will be unknown.
35758         (split_constant_offset_1): Look through some conversions.
35759         * tree-predcom.c (determine_roots_comp): Restart a new chain if
35760         the offset from last element is too large.
35761         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
35762         (reassociate_to_the_same_stmt): Handle vector registers.
35763         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
35764         (e.g. conversions).
35765         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
35766         wide_prolog_niters argument, emit widening instructions.
35767         (vect_do_peeling_for_alignment): Adjust caller, use widened
35768         variant of the iteration cound.
35769         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
35770
35771 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35772
35773         PR target/38697
35774         * config/arm/neon-testgen.m (emit_automatics): New parameter
35775         features. Adjust for Fixed_return_reg feature.
35776         (test_intrinsic): Call emit_automatics with new feature.
35777         * config/arm/neon.ml: Update copyright years.
35778         (features): New Fixed_return_reg feature.
35779         (ops): Update feature for Vget_low.
35780
35781 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
35782
35783         PR tree-optimization/42719
35784         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
35785         stmt uses.
35786
35787         PR debug/42728
35788         * fwprop.c (all_uses_available_at): Return false if def_set dest
35789         is a REG that is used in def_insn.
35790
35791 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
35792
35793         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
35794
35795         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
35796         Add argument names.
35797
35798         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
35799
35800         * target.h (struct gcc_target) <secondary_reload>: Change type
35801         of last argument to secondary_reload_info *.
35802
35803 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
35804
35805         PR target/42774
35806         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
35807         memory references with unaligned offsets.  Remove CQImode handling.
35808         (unaligned_memory_operand): Return 1 for memory references with
35809         unaligned offsets.  Remove CQImode handling.
35810
35811 2010-01-18  Richard Guenther  <rguenther@suse.de>
35812
35813         PR middle-end/39954
35814         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
35815         builtin calls.
35816
35817 2010-01-18  Richard Guenther  <rguenther@suse.de>
35818
35819         PR tree-optimization/42781
35820         * tree-ssa-structalias.c (find_what_var_points_to): Skip
35821         restrict processing only if the original variable was artificial.
35822
35823 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
35824
35825         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
35826         find number of popped argument bytes.
35827
35828         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
35829         Fix the text that describes the return value for invalid insns.
35830
35831         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
35832
35833         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
35834         Clarify what 'cost of the -dependence' is.  Fix quoting.
35835
35836         * toplev.c (default_get_pch_validity): Rename argument to "sz".
35837         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
35838
35839 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
35840
35841         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35842         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
35843
35844 2010-01-17  Richard Guenther  <rguenther@suse.de>
35845
35846         PR middle-end/42248
35847         * function.c (split_complex_args): Take a VEC to modify.
35848         (assign_parms_augmented_arg_list): Build a VEC instead of
35849         a chain of PARM_DECLs.
35850         (assign_parms_unsplit_complex): Take a VEC of arguments.
35851         Do not fixup unmodified parms.
35852         (assign_parms): Deal with the VEC.
35853         (gimplify_parameters): Likewise.
35854
35855 2010-01-17  Richard Guenther  <rguenther@suse.de>
35856
35857         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
35858         node existence check.
35859         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
35860         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
35861         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
35862         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
35863         (gimple_execute_on_growing_pred): Likewise.
35864
35865 2010-01-17  Richard Guenther  <rguenther@suse.de>
35866
35867         PR tree-optimization/42773
35868         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
35869         (compute_antic_aux): Likewise.
35870         (compute_partial_antic_aux): Likewise.
35871
35872 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
35873
35874         PR debug/42767
35875         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
35876         and US_TRUNCATE.
35877
35878 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
35879
35880         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
35881         appearance.
35882
35883         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
35884         Fix markup for strict argument.
35885
35886         (TARGET_SCHED_REORDER2): Fix argument types.
35887
35888         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
35889         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
35890
35891         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
35892         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
35893
35894         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
35895         Add argument name.
35896
35897         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
35898         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
35899         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
35900         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
35901         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
35902
35903         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
35904
35905         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
35906
35907         (TARGET_ASM_RELOC_RW_MASK): Add return type.
35908         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
35909
35910         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
35911
35912         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
35913         Use prototype.
35914
35915         (TARGET_ASM_NAMED_SECTION): Fix argument list.
35916
35917         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
35918         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
35919
35920         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
35921
35922         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
35923
35924         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
35925         referring to it.  Fix language.
35926
35927         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
35928
35929         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
35930
35931         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
35932
35933         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
35934
35935         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
35936         '@var{stream}.  Remove stray 'and'.
35937
35938         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
35939
35940         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
35941
35942         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
35943
35944         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
35945         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
35946
35947         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
35948         Fix description of return value.
35949         Rename argument "sz" to "len."
35950
35951         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
35952         Clarify meaning of 'true' return value.
35953
35954         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
35955
35956         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
35957         rep_mode versus mode_rep.
35958
35959         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
35960
35961         (TARGET_BUILTIN_DECL): Fix name.
35962
35963         (TARGET_COMMUTATIVE_P): Fix type of first argument.
35964
35965         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
35966
35967         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
35968
35969         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
35970
35971         (TARGET_RELAXED_ORDERING): Use @deftypevr.
35972
35973         (TARGET_GET_DRAP_RTX): Note that this is a hook.
35974         Clarify language.
35975
35976         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
35977         Rename argument tm_fn to md_fn.
35978
35979         (TARGET_OPTION_PRINT): Fix argument list.
35980
35981 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
35982
35983         PR target/42664
35984         * config/i386/i386.c (ix86_fixup_binary_operands):
35985         Revert FMA4 fixup of operands.
35986
35987 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35988
35989         PR other/42525
35990         * Makefile.in (write_entries_to_file, install-plugin):
35991         Use \012 instead of \n with tr.
35992
35993 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
35994
35995         * configure.ac (HAVE_AS_REF): New C macro.
35996         * configure: Regenerate.
35997         * config.in: Likewise.
35998         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
35999         if HAVE_AS_REF.
36000         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36001         if HAVE_AS_REF.
36002
36003 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
36004
36005         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36006
36007         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36008
36009         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36010
36011         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36012
36013         (TARGET_IN_SMALL_DATA_P): Fix argument type.
36014
36015         (TARGET_BINDS_LOCAL_P): Fix argument type.
36016
36017         (TARGET_ASM_FILE_END): Use prototype.
36018
36019         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
36020
36021         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
36022
36023         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
36024
36025         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
36026
36027         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
36028         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
36029
36030         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
36031         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
36032
36033         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
36034         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
36035         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
36036         (TARGET_ADDR_SPACE_CONVERT): Likewise.
36037
36038         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
36039
36040         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
36041
36042         (TARGET_INIT_BUILTINS): Use prototype.
36043
36044         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
36045         Put 'const char *' in braces.  Fix parameter types.
36046         (TARGET_INVALID_CONVERSION): Fix parameter types.
36047         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
36048         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
36049
36050         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
36051         Fix argument type.
36052
36053         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
36054
36055         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
36056
36057 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
36058
36059         * doc/tm.texi (TARGET_HELP): Fix return type.
36060
36061         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
36062         in braces.  Fix argument types.
36063
36064         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
36065
36066         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
36067
36068         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
36069
36070         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
36071         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
36072
36073         (TARGET_MANGLE_TYPE): Fix argument types.
36074
36075         (TARGET_IRA_COVER_CLASSES): Use prototype.
36076
36077         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
36078
36079         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
36080
36081         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
36082
36083         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
36084
36085         (TARGET_CALLEE_COPIES): Fix argument types.
36086
36087         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
36088
36089         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
36090
36091         (TARGET_FUNCTION_VALUE): Fix argument types.
36092
36093         (TARGET_RETURN_IN_MSB): Fix argument type.
36094
36095         (TARGET_RETURN_IN_MEMORY): Fix argument types.
36096
36097         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
36098
36099         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
36100
36101         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
36102         agree with return type.
36103
36104         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
36105
36106 2010-01-15  Jing Yu  <jingyu@google.com>
36107
36108         PR rtl-optimization/42691
36109         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
36110         a pseudo to a constant and are merged, and adjust comments.
36111
36112 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
36113
36114         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
36115
36116 2010-01-15  Richard Guenther  <rguenther@suse.de>
36117
36118         PR middle-end/42739
36119         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
36120         labels of computed or non-local gotos to the destination.
36121         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
36122         landing pad label is the first label.
36123
36124 2010-01-15  Richard Guenther  <rguenther@suse.de>
36125
36126         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
36127
36128 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
36129
36130         PR target/42747
36131         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
36132         to allow generation of the xssqrtdp instruction on power7.
36133         (sqrtdf2_fpr): Ditto.
36134
36135 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36136
36137         PR middle-end/42674
36138         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
36139         functions with noreturn attribute.
36140
36141         PR c++/42608
36142         * varasm.c (declare_weak): Add weak attribute to decl if it
36143         doesn't have one already.
36144         (assemble_external): Only add decls to weak_decls if they also
36145         have weak attribute.
36146
36147 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
36148
36149         * var-tracking.c (var_reg_delete): Don't delete the association
36150         between REGs and values or one-part variables if the register
36151         isn't clobbered.
36152
36153 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36154
36155         PR debug/42657
36156         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
36157         because its first operand is a non-localized variable.
36158
36159 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36160
36161         PR tree-optimization/42706
36162         * tree-sra.c (encountered_recursive_call): New variable.
36163         (encountered_unchangable_recursive_call): Likewise.
36164         (sra_initialize): Initialize both new variables.
36165         (callsite_has_enough_arguments_p): New function.
36166         (scan_function): Call decl and flags check only for IPA-SRA, check
36167         whether there is a recursive call and whether it has enough arguments.
36168         (all_callers_have_enough_arguments_p): New function.
36169         (convert_callers): Look for recursive calls only when
36170         encountered_recursive_call is set.
36171         (ipa_early_sra): Bail out either if
36172         !all_callers_have_enough_arguments_p or
36173         encountered_unchangable_recursive_call.
36174
36175 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36176
36177         * sel-sched.c: Add 2010 to copyright years.
36178         * sel-sched-ir.c: Likewise.
36179         * sel-sched-ir.h: Likewise.
36180
36181 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36182
36183         PR tree-optimization/42714
36184         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
36185         constructors specially.
36186
36187 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36188
36189         * config/i386/drivers-i386.c (detect_caches_intel):
36190         Add l2sizekb parameter and fill in.
36191         (host_detect_local_cpu): Add l2sizekb, fill in.
36192         Add Atom small cache heuristic.
36193
36194 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36195
36196         * config/i386/drivers-i386.c (detect_caches_cpuid4):
36197         Add level3 parameter and fill in.
36198         (detect_caches_intel): Handle level3 cache.
36199
36200 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36201
36202         * config/i386/drivers-i386.c (host_detect_local_cpu):
36203         Fix core duo detection.
36204
36205 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36206
36207         * config/i386/drivers-i386.c (host_detect_local_cpu):
36208         Fix Atom detection.
36209
36210 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36211
36212         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
36213         (rs6000_variable_issue_1): this.  Use...
36214         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
36215
36216 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36217
36218         * sel-sched-ir.c (sel_restore_other_notes): Rename to
36219         sel_restore_notes.  Update all callers.  Call reemit_notes
36220         for all insns.
36221
36222 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36223
36224         PR rtl-optimization/42246
36225         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
36226         loops.
36227
36228 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36229
36230         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
36231         all successors is the same as number of successors in current region.
36232
36233 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36234
36235         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
36236         to rename is not separable.  Otherwise check that its LHS is not NULL.
36237
36238 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36239
36240         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
36241
36242 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36243
36244         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
36245         available registers when failed to discover LHS register class.
36246         Fix indentation.  Update comment.
36247
36248 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36249             Alexander Monakov  <amonakov@ispras.ru>
36250
36251         PR rtl-optimization/42389
36252         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
36253         to can_issue_more.
36254         (advance_state_on_fence): Likewise.
36255         (sel_target_adjust_priority): Print debug output only when
36256         sched_verbose >= 4, not 2.
36257         (get_expr_cost): Do not issue all unique insns on the next cycle.
36258         (fill_insns): Initialize can_issue_more from the value saved
36259         with the fence.
36260         * sel-sched-ir.c (flist_add): New parameter issue_more.
36261         Init FENCE_ISSUE_MORE with it.
36262         (merge_fences): Likewise.
36263         (init_fences): Update call to flist_add.
36264         (add_to_fences, add_clean_fence_to_fences)
36265         (add_dirty_fence_to_fences): Likewise.
36266         (move_fence_to_fences): Update call to merge_fences.
36267         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
36268         sched groups.
36269         * sel-sched-ir.h (struct _fence): New field issue_more.
36270         (FENCE_ISSUE_MORE): New accessor macro.
36271
36272 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36273
36274         PR rtl-optimization/42388
36275         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
36276         that have no predecessors nor successors.  Do not call move_bb_info
36277         for empty blocks outside of current region.
36278
36279 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36280
36281         PR rtl-optimization/42294
36282         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
36283         * sel-sched.c (move_exprs_to_boundary): Transitively add all
36284         originators' originators.
36285
36286 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36287
36288         PR rtl-optimization/39453
36289         PR rtl-optimization/42246
36290         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
36291         for pipelining_p.
36292         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
36293
36294 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36295             Alexander Monakov  <amonakov@ispras.ru>
36296
36297         PR middle-end/42245
36298         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
36299         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
36300         argument.  Update all callers.
36301         (tidy_control_flow): ... and here.  Recompute topological order
36302         of basic blocks in region if necessary.
36303         (sel_redirect_edge_and_branch): Change return type.  Return true
36304         if topological order might have been invalidated.
36305         (purge_empty_blocks): Export and move from...
36306         * sel-sched.c (purge_empty_blocks): ... here.
36307         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
36308         (maybe_tidy_empty_bb): Delete prototype.
36309         (purge_empty_blocks): Declare.
36310
36311 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
36312
36313         PR rtl-optimization/42249
36314         * sel-sched.c (try_replace_dest_reg): When chosen register
36315         and original register is the same, do not bail out early, but
36316         still check all original insns for validity of replacing destination
36317         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
36318         in this case.
36319
36320 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36321
36322         PR c/42721
36323         Port from no-undefined-overflow branch:
36324         2009-03-09  Richard Guenther  <rguenther@suse.de>
36325
36326         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
36327
36328 2010-01-14  Richard Guenther  <rguenther@suse.de>
36329
36330         PR lto/42665
36331         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
36332
36333 2010-01-14  Ira Rosen  <irar@il.ibm.com>
36334
36335         PR tree-optimization/42709
36336         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
36337         as scalar type in creation of constant vector operand.
36338
36339 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36340
36341         PR testsuite/42414
36342         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
36343         (check-parallel-%): Match `testsuite' directory component only
36344         at the end.
36345
36346 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
36347
36348         PR translation/39521
36349         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
36350         strings with _().
36351
36352 2010-01-13  Richard Guenther  <rguenther@suse.de>
36353
36354         PR tree-optimization/42730
36355         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
36356         offset zero.
36357
36358 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
36359
36360         PR target/pr42542
36361         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
36362         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
36363         them signed.
36364
36365 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
36366
36367         * config/bfin/libgcc-bfin.ver: Regenerate based on current
36368         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
36369         ___umulsi3_highpart.
36370
36371         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
36372         rather than schedule_insns if the pass is enabled.
36373
36374 2010-01-13  Martin Jambor  <mjambor@suse.cz>
36375
36376         PR tree-optimization/42704
36377         * tree-sra.c (sra_modify_assign): Do not delete assignments to
36378         SSA_NAMEs.
36379
36380 2010-01-13  Martin Jambor  <mjambor@suse.cz>
36381
36382         PR tree-optimization/42703
36383         * tree-sra.c (analyze_access_subtree): Check that we can build a
36384         reference to the original data within the aggregate.
36385
36386 2010-01-13  Richard Guenther  <rguenther@suse.de>
36387
36388         PR tree-optimization/42705
36389         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
36390
36391 2010-01-13  Richard Guenther  <rguenther@suse.de>
36392
36393         PR middle-end/42716
36394         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
36395
36396 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36397
36398         PR debug/41371
36399         * var-tracking.c (values_to_unmark): New variable.
36400         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36401         values_to_unmark vector.  Moved body to...
36402         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36403         instead queue it into values_to_unmark vector.
36404         (vt_find_locations): Free values_to_unmark vector.
36405
36406 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
36407
36408         * config/s390/s390.c (override_options): Set
36409         default of max-pending-list-length to 256
36410
36411 2010-01-13  Richard Guenther  <rguenther@suse.de>
36412
36413         PR lto/42678
36414         * tree-pass.h (PROP_gimple_lcx): New.
36415         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
36416         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
36417         before the final cleanup_eh.
36418         (dump_properties): Dump PROP_gimple_lcx.
36419         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
36420         (tree_lower_complex_O0): Remove.
36421         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
36422         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
36423         tree_lower_complex, schedule TODO_update_ssa.
36424         * lto-streamer-out.c (output_function): Stream the functions
36425         properties.
36426         * lto-streamer-in.c (input_function): Likewise.
36427         (lto_read_body): Do not override them here.
36428
36429 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
36430
36431         PR c/42708
36432         * c-typeck.c (build_c_cast): Fold value cast to union type before
36433         wrapping it in a CONSTRUCTOR.
36434
36435 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
36436
36437         PR rtl-optimization/42699
36438         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
36439         involved.
36440
36441 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36442
36443         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36444         SUBTARGET_WARN_UNUSED_SPEC): Move ...
36445         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36446         SUBTARGET_WARN_UNUSED_SPEC): ... here
36447         * config/mips/iris5.h (LIBGCC_SPEC): Define.
36448
36449 2010-01-12  Julian Brown  <julian@codesourcery.com>
36450
36451         * config/arm/neon-schedgen.ml (Utils): Don't try to
36452         open missing module.
36453         (find_with_result): New.
36454
36455 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
36456
36457         PR debug/42662
36458         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
36459         sharing when canonicalizing ({lt,ge}u (plus a b) b).
36460
36461         PR tree-optimization/42645
36462         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
36463         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
36464         decl_map, set processing_debug_stmt to -1 and return name without
36465         any remapping.
36466
36467 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
36468
36469         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
36470         binutils version, and reword target configuration description.
36471
36472 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
36473
36474         * config/avr/avr.h (LINKER_NAME): Remove.
36475
36476 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
36477
36478         PR target/42416
36479         * config/rs6000/rs6000.c (rs6000_override_options): On targets
36480         that support VSX, warn for -mno-altivec if vsx is not disabled,
36481         and disable vsx.
36482
36483 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
36484             Shujing Zhao  <pearly.zhao@oracle.com>
36485
36486         PR translation/42469
36487         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
36488         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
36489         character between option name and help text.
36490         * c.opt (imultilib): Likewise.
36491
36492 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
36493
36494         * lto-streamer-out.c (output_unreferenced_globals): Output static
36495         variables.
36496
36497 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
36498
36499         PR rtl-optimization/42621
36500         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
36501         optimizing for size.
36502         (duplicate_computed_gotos): Remove now-redundant check.
36503
36504 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
36505
36506         PR target/37454
36507         * configure.ac: Save and restore LDFLAGS and LIBS
36508         * configure: Regenerate.
36509
36510 2010-01-10  Richard Guenther  <rguenther@suse.de>
36511
36512         PR middle-end/42667
36513         * builtins.c (fold_builtin_strlen): Add type argument and
36514         convert the resulting length to it.
36515         (fold_builtin_1): Adjust.
36516
36517 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
36518
36519         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
36520         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
36521         1 insn.
36522         (num_insns_constant_wide): Adjust for that change.
36523
36524 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36525
36526         PR debug/42631
36527         * web.c (union_defs): Add used argument, to combine uses of
36528         uninitialized regs.
36529         (entry_register): Adjust type and tests of used argument.
36530         (web_main): Widen used for new use.  Pass it to union_defs.
36531         * df.h (union_defs): Adjust prototype.
36532
36533 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36534
36535         PR debug/42630
36536         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
36537         uses in new incoming argument.  Free body.
36538         (reset_debug_uses_in_loop): New.
36539         (analyze_insn_to_expand_var): Call the latter if the former found
36540         anything.  Fix whitespace.  Reject invalid dest overlaps before
36541         going through all insns in the loop.
36542
36543 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36544
36545         PR debug/42629
36546         * haifa-sched.c (dying_use_p): Debug insns don't count.
36547
36548 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36549
36550         PR middle-end/42363
36551         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
36552         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
36553         (verify_gimple_call): Reject LHS in noreturn calls.
36554
36555 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36556
36557         PR debug/42604
36558         PR debug/42395
36559         * tree-vect-loop-manip.c (adjust_info): New type.
36560         (adjust_vec): New pointer to vector.
36561         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
36562         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
36563         (slpeel_update_phis_for_duplicate_loop): Use them.
36564         (slpeel_update_phi_nodes_for_guard1): Likewise.
36565         (slpeel_update_phi_nodes_for_guard2): Likewise.
36566         (slpeel_tree_peel_loop_to_edge): Likewise.
36567         (vect_update_ivs_after_vectorizer): Likewise.
36568
36569 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36570
36571         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
36572         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
36573
36574 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
36575
36576         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
36577         bogus uninitialized warning.
36578
36579 2010-01-09  Richard Guenther  <rguenther@suse.de>
36580
36581         PR middle-end/42512
36582         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
36583         the evolution is compatible with the initial condition.
36584
36585 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
36586
36587         * gcc.c (process_command): Update copyright notice dates.
36588         * gcov.c (print_version): Likewise.
36589         * gcov-dump.c (print_version): Likewise.
36590         * mips-tfile.c (main): Likewise.
36591         * mips-tdump.c (main): Likewise.
36592
36593 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
36594
36595         PR target/41885
36596         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
36597         (rotlhi3): Delete.
36598         (rotlhi3_8): Delete.
36599         (rotlsi3): Delete.
36600         (rotlsi3_8): Delete.
36601         (rotlsi3_16): Delete.
36602         (rotlsi3_24): Delete.
36603         (rotl<mode>3): New.
36604         (*rotw<mode>3): New.
36605         (*rotb<mode>3): New.
36606         * config/avr/avr.c (avr_rotate_bytes): New function.
36607         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
36608
36609 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
36610
36611         PR target/37454
36612         * configure.ac: Modify -rdynamic check.
36613         * configure: Regenerate.
36614
36615 2010-01-08  DJ Delorie  <dj@redhat.com>
36616
36617         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
36618         register popping order.
36619
36620 2010-01-08  Richard Guenther  <rguenther@suse.de>
36621
36622         PR lto/42528
36623         * c.opt (fsigned-char): Also let LTO handle this option.
36624         (funsigned-char): Likewise.
36625
36626 2010-01-07  Richard Guenther  <rguenther@suse.de>
36627
36628         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
36629         (gimple_op): Likewise.
36630         (gimple_op_ptr): Likewise.
36631         (gimple_assign_set_lhs): Remove gcc_assert.
36632         (gimple_assign_set_rhs1): Likewise.
36633         (gimple_assign_set_rhs2): Likewise.
36634         (gimple_call_set_lhs): Likewise.
36635         (gimple_call_set_fn): Likewise.
36636         (gimple_call_set_fndecl): Likewise.
36637         (gimple_call_fndecl): Likewise.
36638         (gimple_call_return_type): Likewise.
36639         (gimple_call_set_chain): Likewise.
36640         (gimple_call_num_args): Likewise.
36641         (gimple_call_set_arg): Likewise.
36642         (gimple_cond_set_code): Likewise.
36643         (gimple_cond_set_lhs): Likewise.
36644         (gimple_cond_set_rhs): Likewise.
36645         (gimple_cond_set_true_label): Likewise.
36646         (gimple_cond_set_false_label): Likewise.
36647         (gimple_label_set_label): Likewise.
36648         (gimple_goto_set_dest): Likewise.
36649         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
36650         (gimple_debug_bind_get_value): Likewise.
36651         (gimple_debug_bind_get_value_ptr): Likewise.
36652         (gimple_debug_bind_set_var): Likewise.
36653         (gimple_debug_bind_set_value): Likewise.
36654         (gimple_debug_bind_reset_value): Likewise.
36655         (gimple_debug_bind_has_value_p): Likewise.
36656         (gimple_return_retval_ptr): Remove gcc_assert.
36657         (gimple_return_retval): Likewise.
36658         (gimple_return_set_retval): Likewise.
36659         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
36660         (safe_referenced_var_iterator): Remove.
36661         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
36662         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
36663         (fill_referenced_var_vec): Remove.
36664         (first_readonly_imm_use): Remove redundant gcc_assert.
36665         (phi_arg_index_from_use): Combine gcc_asserts.
36666         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
36667         (first_imm_use_stmt): Remove redundant gcc_assert.
36668         * tree-cfg.c (verify_gimple_call): Verify function and chain
36669         operands.  Verify arguments.
36670         (verify_types_in_gimple_stmt): Verify condition code and labels.
36671
36672 2010-01-07  Richard Guenther  <rguenther@suse.de>
36673
36674         PR tree-optimization/42641
36675         * sese.c (rename_map_elt_info): Use the SSA name version, do
36676         not hash pointers.
36677
36678 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
36679
36680         PR tree-optimization/42625
36681         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
36682         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
36683
36684 2010-01-07  Duncan Sands  <baldrick@free.fr>
36685
36686         * Makefile.in (PLUGIN_HEADERS): Add version.h.
36687
36688 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
36689
36690         PR target/42511
36691         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
36692         note itself is not function_invariant_p.
36693
36694 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
36695
36696         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
36697         Do not add the DF_NOTE problem.
36698         * store-motion.c (execute_rtl_store_motion): Likewise.
36699
36700 2010-01-07  Martin Jambor  <mjambor@suse.cz>
36701
36702         PR tree-optimization/42157
36703         * tree-sra.c (compare_access_positions): Stabilize sort if both
36704         accesses have integer types, return zero immediately if they are the
36705         same.
36706
36707 2010-01-06  Richard Henderson  <rth@redhat.com>
36708
36709         PR middle-end/41883
36710         * haifa-sched.c (add_to_note_list): Merge into ...
36711         (concat_note_lists): ... here, and ...
36712         (unlink_other_notes, rm_other_notes): Merge into...
36713         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
36714         NOTE_INSN_EPILOGUE_BEG.
36715
36716 2010-01-06  Richard Guenther  <rguenther@suse.de>
36717
36718         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
36719         not inline regular functions into always-inline functions.
36720
36721 2010-01-06  Nick Clifton  <nickc@redhat.com>
36722
36723         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
36724         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
36725         used together.
36726         (OVERRIDE_OPTIONS): Delete.
36727         (OPTIMIZATION_OPTIONS): Define.
36728         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
36729         * config/rx/rx.c (rx_handle_option): Issue an error message if
36730         -mcpu=rx200 and -fpu are used together.
36731         (rx_set_optimization_options): New function.  Issue an error
36732         message if an optimization attribute attempts to reset the FPU/
36733         math optimization pairing.
36734         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
36735         * config/rx/rx.opt: Set the default to 32-bit doubles.
36736         * config/rx/t-rx: Add multilibs for -nofpu option.
36737         * doc/invoke.texi: Update documentation of RX options.
36738
36739 2010-01-06  Richard Guenther  <rguenther@suse.de>
36740
36741         * tree-ssa-pre.c (name_to_id): New global.
36742         (alloc_expression_id): Simplify SSA name handling.
36743         (lookup_expression_id): Likewise.
36744         (init_pre): Zero name_to_id.
36745         (fini_pre): Free it.
36746
36747 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
36748
36749         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
36750
36751 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
36752
36753         PR target/42542
36754         * config/i386/sse.md (smaxv2di3): New.
36755         (umaxv2di3): Likewise.
36756         (sminv2di3): Likewise.
36757         (uminv2di3): Likewise.
36758
36759 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
36760
36761         PR target/42564
36762         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
36763         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
36764         (legitimize_tls_address): Likewise.
36765         (sparc_tls_referenced_p): Likewise.
36766         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
36767         and adjust calls to legitimize_pic_address.
36768         (legitimate_constant_p) Use sparc_tls_referenced_p.
36769         (legitimate_pic_operand_p): Likewise.
36770         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
36771         (sparc_tls_symbol_ref_1): Delete.
36772         (sparc_tls_referenced_p): Make static, recognize specific patterns.
36773         (legitimize_tls_address): Make static, handle CONST patterns.
36774         (legitimize_pic_address): Make static, remove unused parameter and
36775         adjust recursive calls.
36776         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
36777         and adjust call to legitimize_pic_address.
36778         (sparc_output_mi_thunk): Likewise.
36779
36780 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
36781             H.J. Lu  <hongjiu.lu@intel.com>
36782
36783         PR target/42542
36784         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
36785         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
36786         operands to make them signed.
36787
36788         Revert:
36789         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36790
36791         PR target/42542
36792         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36793         GTU to GT for V4SI and V2DI.
36794
36795         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36796         (umin<mode>3): Removed.
36797         (uminv8hi3): New.
36798         (uminv4si3): Likewise.
36799
36800 2010-01-05  Martin Jambor  <mjambor@suse.cz>
36801
36802         PR tree-optimization/42462
36803         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
36804         current_function_decl to helper functions and macros.
36805
36806 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36807
36808         PR bootstrap/41771
36809         * flags.h: Don't include real.h.
36810         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
36811         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
36812         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
36813         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
36814         * dominance.c: Update copyright.
36815         * gimple.c (walk_gimple_op): Remove inline.
36816         * tree-ssa-reassoc.c: Include real.h.
36817         * Makefile.in (FLAGS_H): Remove $(REAL_H).
36818         (tree-ssa-reassoc.o): Depend on $(REAL_H).
36819
36820 2010-01-05  Nick Clifton  <nickc@redhat.com>
36821
36822         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
36823         register to push into the stack frame when the accumulator has to
36824         be saved during interrupts.
36825
36826 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
36827
36828         * doc/invoke.texi: Remove the documentation about option
36829         -Wunreachable-code.
36830         * common.opt (Wunreachable-code):  Preserved for backward
36831         compatibility.
36832         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
36833         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
36834         the backward compatibility flag section.
36835
36836 2010-01-05  Richard Guenther  <rguenther@suse.de>
36837
36838         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
36839
36840 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
36841
36842         PR other/42611
36843         * cfgexpand.c (expand_one_var): Diagnose too large variables.
36844
36845         PR tree-optimization/42508
36846         * tree-sra.c (convert_callers): Check for recursive call
36847         by comparing cgraph nodes instead of decls.
36848         (modify_function): Call ipa_modify_formal_parameters also
36849         on all same_body aliases.
36850
36851         * cgraphunit.c (cgraph_materialize_all_clones): Compare
36852         cgraph nodes when checking for same_body aliases.
36853
36854 2010-01-05  Richard Guenther  <rguenther@suse.de>
36855
36856         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
36857         allocation and lookup.
36858         (get_or_alloc_expr_for_constant): Likewise.
36859         (phi_translate): Sink allocation.
36860
36861 2010-01-04  Richard Guenther  <rguenther@suse.de>
36862
36863         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
36864         a new entry only if needed.
36865         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
36866         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
36867         hashtable lookup.
36868         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
36869         the result array.
36870         (phi_translate): Handle CONSTANTs early.
36871
36872 2010-01-04  Martin Jambor  <mjambor@suse.cz>
36873
36874         PR tree-optimization/42398
36875         * tree-sra.c (struct access): Removed flag grp_different_types.
36876         (dump_access): Do not dump the removed flag.
36877         (sort_and_splice_var_accesses): Do not set the removed flag.
36878         (sra_modify_expr): Check for type compatibility directly.
36879
36880 2010-01-04  Martin Jambor  <mjambor@suse.cz>
36881
36882         PR tree-optimization/42366
36883         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
36884         edges with variable number of parameters.
36885         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
36886         flag instead of asserting it.
36887         (ipa_read_node_info): Read uses_analysis_done flag.
36888
36889 2010-01-04  Richard Guenther  <rguenther@suse.de>
36890
36891         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
36892         iterative_hash_* as intended.
36893         (vn_reference_compute_hash): Likewise.  Simplify hashing
36894         SSA names.
36895         (vn_reference_lookup_2): Likewise.
36896         (vn_nary_op_compute_hash): Likewise.
36897         (vn_phi_compute_hash): Likewise.
36898         (expressions_equal_p): Remove strange code.
36899         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
36900         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
36901         (bitmap_insert_into_set_1): Take value-id as parameter.
36902         (add_to_value): Pass it.
36903         (bitmap_insert_into_set): Likewise.
36904         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
36905
36906 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
36907
36908         PR driver/42442
36909         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
36910         (do_self_spec): For switches with SWITCH_IGNORE set set also
36911         SWITCH_IGNORE_PERMANENTLY.
36912         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
36913         of SWITCH_IGNORE.
36914
36915 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
36916
36917         * lto-streamer-out.c (output_unreferenced_globals): Output the full
36918         tree of an unreferenced global var.
36919
36920 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36921
36922         PR target/42542
36923         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36924         GTU to GT for V4SI and V2DI.
36925
36926         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36927         (umin<mode>3): Removed.
36928         (uminv8hi3): New.
36929         (uminv4si3): Likewise.
36930
36931 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36932
36933         PR lto/42581
36934         * collect2.c (main): Turn on trace in collect2 if -v is passed
36935         to gcc with LTO.
36936
36937 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
36938
36939         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
36940         description of expression operand.
36941
36942 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
36943
36944         * configure.ac: Add install-html to target_list for Make-hooks.
36945         * configure: Regenerate.
36946         * fortran/Make-lang.in (F95_HTMLFILES): New.
36947         (fortran.html): Use it.
36948         (fortran.install-html): New.
36949         * Makefile.in (install-html): Add lang.install-html.
36950         * java/Make-lang.in (JAVA_HTMLFILES): New.
36951         (java.html): Use it.
36952         (java.install-html): New.
36953         * objc/Make-lang.in (objc.install-html): New.
36954         * objcp/Make-lang.in (obj-c++.install-html): New.
36955         * cp/Make-lang.in (c++.install-html): New.
36956         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
36957         * lto/Make-lang.in (lto.install-html): New.
36958
36959 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36960
36961         PR lto/42520
36962         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
36963
36964 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
36965
36966         PR rtl-optimization/41862
36967         * store-motion.c (store_killed_in_insn, compute_store_table,
36968         remove_reachable_equiv_notes, replace_store_insn,
36969         build_store_vectors): Ignore all DEBUG_INSNs.
36970
36971 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36972
36973         PR lto/41564
36974         * common.opt: Add dumpdir.
36975
36976         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
36977         isn't specified.
36978         (option_map): Add --dumpdir.
36979
36980         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
36981
36982         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
36983
36984         * opts.c (decode_options): Try dump_dir_name first if
36985         dump_base_name isn't an absolute path.
36986         (common_handle_option): Handle OPT_dumpdir.
36987
36988         * toplev.c (dump_dir_name): New.
36989         (print_switch_values): Also ignore -dumpdir.
36990
36991         * toplev.h (dump_dir_name): New.
36992
36993 2010-01-03  Richard Guenther  <rguenther@suse.de>
36994
36995         PR tree-optimization/42589
36996         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
36997         double-word expansion of bswap32.
36998
36999 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37000
37001         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37002         with BLOCK_FOR_INSN.
37003         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37004         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37005         noce_process_if_block): Likewise.
37006         * gcse.c (compute_local_properties, insert_expr_in_table,
37007         insert_set_in_table, canon_list_insert, find_avail_set,
37008         pre_insert_copy_insn): Likewise.
37009
37010         * basic-block.h (BLOCK_NUM): Move from here...
37011         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37012
37013 2010-01-03  Richard Guenther  <rguenther@suse.de>
37014
37015         PR tree-optimization/42438
37016         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37017         contains_may_not_return_call flag.
37018         (BB_MAY_NOTRETURN): New.
37019         (valid_in_sets): Trapping nary operations are not valid
37020         in blocks that may not return.
37021         (insert_into_preds_of_block): Remove check for trapping expressions.
37022         (compute_avail): Compute also BB_MAY_NOTRETURN.
37023
37024 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
37025
37026         * doc/invoke.texi: Add 2010 to copyright years.
37027
37028 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
37029
37030         * config/sparc/sparc.c: Fix formatting nits.
37031
37032 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
37033             Alexander Monakov  <amonakov@ispras.ru>
37034
37035         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
37036
37037 2010-01-02  Richard Guenther  <rguenther@suse.de>
37038
37039         PR middle-end/42577
37040         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
37041         (simplify_switch_using_ranges): Mark to be removed edges
37042         as non-executable.
37043
37044 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37045
37046         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37047
37048         * collect2.c (scan_libraries): Add missing argument in call to
37049         scan_prog_file.
37050
37051 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
37052
37053         PR target/42448
37054         * config/alpha/predicates.md (aligned_memory_operand): Return false
37055         for CQImode.
37056         (unaligned_memory_operand): Return true for CQImode.
37057         * config/alpha/alpha.c (get_aligned_mem): Assert that location
37058         doesn not cross aligned SImode word boundary.
37059
37060 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
37061
37062         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
37063         Remove.
37064         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
37065         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
37066
37067 2010-01-02  Richard Guenther  <rguenther@suse.de>
37068
37069         PR lto/41597
37070         * toplev.c (compile_file): Emit LTO marker properly.  Change
37071         it to __gnu_lto_v1.
37072         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
37073
37074 2010-01-01  Richard Guenther  <rguenther@suse.de>
37075
37076         PR debug/42455
37077         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
37078
37079 2010-01-01  Richard Guenther  <rguenther@suse.de>
37080
37081         PR c/42570
37082         * c-decl.c (grokdeclarator): For zero-size arrays force
37083         structural equality checks as layout_type does.
37084
37085 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37086
37087         * builtins.c: Update copyright to 2010.
37088
37089 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37090
37091         PR lto/42531
37092         * lto-streamer-out.c (produce_asm): Revert the last change.
37093         (copy_function): Likewise.
37094
37095         * lto-streamer.c (lto_get_section_name): Skip any leading
37096         asterisk in name.
37097
37098 2010-01-01  Richard Guenther  <rguenther@suse.de>
37099
37100         PR middle-end/42559
37101         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
37102         for LABEL_DECLs.
37103
37104 \f
37105 Copyright (C) 2010 Free Software Foundation, Inc.
37106
37107 Copying and distribution of this file, with or without modification,
37108 are permitted in any medium without royalty provided the copyright
37109 notice and this notice are preserved.