OSDN Git Service

2009-05-15 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-15  Richard Guenther  <rguenther@suse.de>
2
3         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4         New options, enabled by default.
5         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6         Document.
7         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
8         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
9         * tree-ssa-structalias.c (gate_tree_pta): New function.
10         (pass_build_alias): Use it.
11
12 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
13
14         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
15         recurse on an invariant address if a conversion from a pointer
16         type to a wider integer type is involved.
17
18 2009-05-15  Jan Hubicka  <jh@suse.cz>
19
20         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
21         * cgraph.h (struct inline_summary): New filed self_wize,
22         size_inlining_benefit, self_time and time_inlining_benefit.
23         (struct cgraph_global_info): Replace insns by time ans size fields.
24         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
25         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
26         (ipcp_update_callgraph): Do not touch function bodies.
27         * ipa-inline.c: Include except.h
28         MAX_TIME: New constant.
29         (overall_insns): Remove
30         (overall_size, max_benefit): New static variables.
31         (cgraph_estimate_time_after_inlining): New function.
32         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
33         (cgraph_clone_inlined_nodes): Update size.
34         (cgraph_mark_inline_edge): Update size.
35         (cgraph_estimate_growth): Use size info.
36         (cgraph_check_inline_limits): Check size.
37         (cgraph_default_inline_p): Likewise.
38         (cgraph_edge_badness): Compute badness based on benefit and size cost.
39         (cgraph_decide_recursive_inlining): Check size.
40         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
41         (cgraph_decide_inlining): Likewise.
42         (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
43         (likely_eliminated_by_inlining_p): New predicate.
44         (estimate_function_body_sizes): New function.
45         (compute_inline_parameters): Use it.
46         * except.c (must_not_throw_labels): New function.
47         * except.h (must_not_throw_labels): Declare.
48         * tree-inline.c (init_inline_once): Kill inlining_weigths
49         * tree-ssa-structalias.c: Avoid uninitialized warning.
50         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
51         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
52         (PARAM_INLINE_CALL_COST): Remove.
53         (PARAM_EARLY_INLINING_INSNS): New.
54         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
55         (inline-call-cost): Remove.
56         (early-inlining-insns): New.
57
58 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
59
60         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
61         for bounds.
62         (print_int_cst_bounds_in_octal_p): Likewise.
63         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
64         with subtypes.
65         * dwarf2out.c (base_type_die): Likewise.
66         (is_subrange_type): Delete.
67         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
68         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
69         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
70         the destination type is boolean.
71         (build_range_check): Do not special-case subtypes.
72         (fold_sign_changed_comparison): Likewise.
73         (fold_unary): Likewise.
74         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
75         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
76         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
77         * tree.c (subrange_type_for_debug_p): New predicate based on the former
78         is_subrange_type.
79         * tree.h (subrange_type_for_debug_p): Declare.
80         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
81         (convert_affine_scev): Remove call to above function.
82         (chrec_convert_aggressive): Likewise.
83         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
84         false for conversions involving subtypes.
85         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
86         (vrp_val_min): Likewise.
87         (needs_overflow_infinity): Likewise.
88         (extract_range_from_unary_expr): Likewise.
89
90 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
91
92         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
93         * config/frv/frv.c: Likewise.
94         * config/s390/s390.c: Likewise.
95         * config/sparc/sparc.h: Likewise.
96         * config/i386/i386.h: Likewise.
97         * config/i386/i386.c: Likewise.
98         * config/crx/crx.c: Likewise.
99         * config/m68hc11/m68hc11.h: Likewise.
100         * config/iq2000/iq2000.c: Likewise.
101         * config/mn10300/mn10300.h: Likewise.
102         * config/mn10300/mn10300.c: Likewise.
103         * config/m68k/m68k.c: Likewise.
104         * config/rs6000/rs6000.c: Likewise.
105         * config/rs6000/xcoff.h: Likewise.
106         * config/rs6000/linux64.h: Likewise.
107         * config/rs6000/sysv4.h: Likewise.
108         * config/score/score3.c: Likewise.
109         * config/score/score7.c: Likewise.
110         * config/score/score.c: Likewise.
111         * config/arm/arm.md: Likewise.
112         * config/mips/mips.c: Likewise.
113         * config/mips/mips.md: Likewise.
114         * config/bfin/bfin.h: Likewise.
115         * config/pa/pa.c: Likewise.
116         * config/pa/constraints.md: Likewise.
117
118         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
119         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
120         * config/pdp11/pdp11.h: Use memory_address_p instead.
121
122 2009-05-14  Ian Lance Taylor  <iant@google.com>
123
124         * passes.c (finish_optimization_passes): Change i to int.
125         * plugin.c (plugins_active_p): Change event to int.
126         (dump_active_plugins): Likewise.
127         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
128         Add cast.
129         * tree.c (tree_range_check_failed): Change c to unsigned int.
130         (omp_clause_range_check_failed): Likewise.
131         (build_common_builtin_nodes): Change mode to int.  Add cast.
132         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
133         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
134
135         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
136         ++ or -- with a variable of enum type.
137
138 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
139
140         PR driver/40144
141         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
142
143 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
144
145         * store-motion.c: Do not include params.h
146         * Makefile.in: Fix dependencies for various files.
147
148 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
149
150         * auto-inc-dec.c: Fix pass description, remove apparent
151         accidental duplication.
152
153 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
154
155         PR middle-end/40147
156         * ipa-utils.h (memory_identifier_string): Moved to ...
157         * tree.h (memory_identifier_string): Here.  Add GTY(()).
158
159 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
160
161         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
162         in the former documentation of...
163         (GO_IF_LEGITIMATE_ADDRESS): ... this.
164         * ira-conflicts.c (get_dup_num): Use address_operand.
165         * targhooks.c (default_legitimate_address_p): New.
166         * targhooks.h (default_legitimate_address_p): New.
167         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
168         Call hook.
169         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
170         * target.h (struct target): Add legitimate_address_p.
171         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
172         (TARGET_INITIALIZER): Include it.
173
174         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
175         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
176         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
177         (TARGET_LEGITIMATE_ADDRESS_P): New.
178
179         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
180         (REG_OK_STRICT_P): Delete.
181         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
182         (frv_legitimate_address_p_1): ... this.
183         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
184         (frv_legitimate_address_p_1): ... the renamed old
185         frv_legitimate_address_p.
186         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
187         (TARGET_LEGITIMATE_ADDRESS_P): New.
188
189         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
190         * config/s390/s390-protos.h (legitimate_address_p): Remove.
191         * config/s390/s390.c (legitimate_address_p): Rename to...
192         (s390_legitimate_address_p): ... this, make static.
193         (legitimize_address): Adjust call.
194         (TARGET_LEGITIMATE_ADDRESS_P): New.
195         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
196
197         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
198         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
199         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
200         (TARGET_LEGITIMATE_ADDRESS_P): New.
201
202         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
203         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
204         * config/spu/spu.c (spu_legitimate_address): Rename to...
205         (spu_legitimate_address_p): ... this, make static.
206         (TARGET_LEGITIMATE_ADDRESS_P): New.
207
208         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
209         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
210         * config/sparc/sparc.c (legitimate_address_p): Rename to...
211         (sparc_legitimate_address_p): ... this, make static and return bool.
212         (legitimize_address): Adjust call.
213         (TARGET_LEGITIMATE_ADDRESS_P): New.
214
215         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
216         * config/i386/i386-protos.h (legitimate_address_p): Remove.
217         * config/i386/i386.c (legitimate_address_p): Rename to...
218         (ix86_legitimate_address_p): ... this, make static.
219         (constant_address_p): Move after it, adjust call.
220         (TARGET_LEGITIMATE_ADDRESS_P): New.
221
222         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
223         * config/avr/avr-protos.h (legitimate_address_p): Remove.
224         * config/avr/avr.c (legitimate_address_p): Rename to...
225         (avr_legitimate_address_p): ... this, make static.
226         (legitimize_address): Adjust call.
227         (TARGET_LEGITIMATE_ADDRESS_P): New.
228
229         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
230         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
231         * config/crx/crx.c (crx_legitimate_address_p): Make static.
232         (TARGET_LEGITIMATE_ADDRESS_P): New.
233
234         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
235         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
236         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
237         (TARGET_LEGITIMATE_ADDRESS_P): New.
238
239         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
240         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
241         Remove.
242         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
243         Make static.
244         (TARGET_LEGITIMATE_ADDRESS_P): New.
245
246         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
247         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
248         Remove.
249         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
250         Rename to...
251         (m68hc11_legitimate_address_p): ... this, make static.
252         (go_if_legitimate_address_internal): Rename to...
253         (m68hc11_legitimate_address_p_1): ... this.
254         (legitimize_address): Adjust call.
255         (TARGET_LEGITIMATE_ADDRESS_P): New.
256
257         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
258         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
259         Remove.
260         * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
261         Make static.
262         (TARGET_LEGITIMATE_ADDRESS_P): New.
263
264         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
265         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
266         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
267         (mn10300_legitimate_address_p): ... this, make static.
268         (TARGET_LEGITIMATE_ADDRESS_P): New.
269
270         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
271         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
272         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
273         (TARGET_LEGITIMATE_ADDRESS_P): New.
274
275         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
276         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
277         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
278         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
279         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
280         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
281         (rs6000_legitimate_address_p): ... this, make static.
282         (TARGET_LEGITIMATE_ADDRESS_P): New.
283         (REG_MODE_OK_FOR_BASE_P): Delete.
284         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
285
286         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
287         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
288         Delete.
289         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
290         static, adjust types.
291         (TARGET_LEGITIMATE_ADDRESS_P): New.
292
293         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
294         * config/score/score.c (score_address_p): Rename to...
295         (score_legitimate_address_p): ... this.
296         (TARGET_LEGITIMATE_ADDRESS_P): New.
297         * config/score/score3.c (score3_address_p): Rename to...
298         (score3_legitimate_address_p): ... this.
299         * config/score/score7.c (score7_address_p): Rename to...
300         (score7_legitimate_address_p): ... this.
301
302         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
303         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
304         GO_IF_LEGITIMATE_ADDRESS): Delete.
305         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
306         thumb2_legitimate_address_p): Delete.
307         (arm_legitimate_address_p): Rename to...
308         (arm_legitimate_address_outer_p): ... this.
309         * config/arm/constraints.md ("Uq"): Adjust call.
310         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
311         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
312         (arm_legitimate_address_outer_p): ... this.
313         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
314         (TARGET_LEGITIMATE_ADDRESS_P): New.
315
316         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
317         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
318         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
319         (TARGET_LEGITIMATE_ADDRESS_P): New.
320
321         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
322         * config/vax/vax-protos.h (legitimate_address_p): Remove.
323         * config/vax/vax.c (legitimate_address_p): Rename to...
324         (vax_legitimate_address_p): ... this, make static.
325         (TARGET_LEGITIMATE_ADDRESS_P): New.
326
327         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
328         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
329         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
330         (TARGET_LEGITIMATE_ADDRESS_P): New.
331
332         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
333         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
334         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
335         (mmix_legitimate_address_p): ... this, make static.
336         (TARGET_LEGITIMATE_ADDRESS_P): New.
337
338         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
339         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
340         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
341         (TARGET_LEGITIMATE_ADDRESS_P): New.
342
343 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
344
345         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
346         of MODE_COMPLEX_INT.
347
348 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
349
350         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
351         LCT_NORMAL in function call.
352         * mips-tdump.c (print_file_desc): Add cast to enum type.
353         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
354         (mark_stabs): Add casts to enum types.
355         (parse_stabs_common): Add casts to enum types.
356
357 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
358
359         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
360         Check for invalid values of LETTER.
361
362 2009-05-13  Taras Glek  <tglek@mozilla.com>
363
364         * attribs.c (register_attribute): moved out attribute registration into
365         register_attribute.
366         * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
367         * gcc-plugin.h: Added forward decl for register_attribute.
368         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
369         * plugin.c (register_callback, invoke_plugin_callbacks): Added
370         PLUGIN_ATTRIBUTES boilerplate.
371
372 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
373
374         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
375         values even in sentinel and empty entries.
376         (ms_printf_flag_specs):  Likewise.
377         (ms_scanf_flag_specs):  Likewise.
378         (ms_strftime_flag_specs):  Likewise.
379         (ms_print_char_table):  Likewise.
380         (ms_scan_char_table):  Likewise.
381         (ms_time_char_table):  Likewise.
382
383 2009-05-13  Doug Kwan  <dougkwan@google.com>
384
385         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
386
387 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
388
389         * config/mips/mips.md (store): Add attributes for QI and HI.
390         Update comment.
391         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
392         (truncdi<mode>2): ... this new pattern.
393
394 2009-05-13  Brad Hards  <bradh@kde.org>
395
396         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
397
398 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
399             Ben Elliston <bje@au.ibm.com>
400
401         PR middle-end/40035
402         * dse.c (check_mem_read_rtx): Guard against width == -1.
403
404 2009-05-13  Michael Matz  <matz@suse.de>
405
406         PR middle-end/39976
407         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
408         (trivially_conflicts_p): New function.
409         (insert_backedge_copies): Use it.
410
411 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
412
413         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
414         (handle_stdc_pragma): Use new enum constant names.
415         (handle_pragma_float_const_decimal64): Ditto.
416
417 2009-05-13  Ian Lance Taylor  <iant@google.com>
418
419         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
420         tree.def.
421
422 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
423
424         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
425         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
426         multilibs.
427         * config/m68k/m68k.h (FL_UCLINUX): Define.
428
429 2009-05-13  Jan Hubicka  <jh@suse.cz>
430
431         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
432
433 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
434
435         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
436         unless -fschedule-insns is specified.
437
438 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
439
440         PR target/39561
441         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
442         TARGET_EXPAND_CBRANCHDI4.
443         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
444         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
445         (cmpeqdi): Fix comment.
446
447 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
448
449         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
450         (sh_legitimate_address_p): Likewise.
451         * config/sh/sh.c (sh_legitimate_index_p): New.
452         (sh_legitimate_address_p): Likewise.
453         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
454         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
455         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
456         (MAYBE_BASE_REGISTER_RTX_P): New macro.
457         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
458         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
459         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
460         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
461         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
462
463 2009-05-12  Jan Hubicka  <jh@suse.cz>
464
465         * tree-inline.c (estimate_operator_cost): Add operands;
466         when division happens by constant, it is cheap.
467         (estimate_num_insns): Loads and stores are not having cost of 0;
468         EH magic stuff is cheap; when computing runtime cost of switch,
469         use log2 base of amount of its cases; builtin_expect has cost of 0;
470         compute cost for moving return value of call.
471         (init_inline_once): Initialize time_based flags.
472         * tree-inline.h (eni_weights_d): Add time_based flag.
473
474 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
475
476         * df-core.c: Update head documentation.
477
478 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
479
480         PR bootstrap/40118
481         * rs6000.c (rs6000_generate_compare): Use op1b instead of
482         shadowing exisiting variable op1.
483
484 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
485
486         PR target/37179
487         * config/i386/driver-i386.c (processor_signatures): New enum.
488         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
489         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
490         processor signature to detect geode processor.
491
492 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
493
494         Revert:
495
496         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
497
498         * optabs.c (prepare_cmp_insn): Temporarily disable test that
499         causes spurious differences between trunk and cond-optab branch.
500
501 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
502
503         * dojump.c (compare_from_rtx): Delete.
504         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
505         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
506         if the comparison does not satisfy the predicate; test predicates for
507         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
508         further if one existing pattern fails.
509         * expr.h (compare_from_rtx): Delete.
510         (prepare_operand): Declare it.
511         * optabs.c: Change "lib call" to "libcall" throughout.
512         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
513         HAVE_conditional_trap, emit_cmp_insn): Delete.
514         (can_compare_p): Delete cmp_optab case.
515         (prepare_float_lib_cmp): Return an rtx and a machine mode.
516         Accept other parameters by value.
517         (prepare_operand): Make non-static.
518         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
519         other parameters by value.  Try to widen operands here based on
520         an optab_methods argument and looking at cbranch_optab.
521         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
522         loop.  Use cbranch_optab directly.
523         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
524         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
525         assertion.
526         (emit_conditional_move, emit_conditional_add): Inline what's needed
527         of compare_from_rtx, using new prepare_cmp_insn for the rest.
528         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
529         with COMPARE.  Move cmov_optab and cstore_optab above
530         with cbranch_optab, move cmp_optab down with ucmp_optab,
531         remove tst_otpab.  Do not initialize trap_rtx.
532         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
533         for trap code.  Do not check HAVE_conditional_trap.  Use
534         prepare_cmp_insn.  Accept no predicate for operand 3.
535         * optabs.h (OTI_cmp): Mark as used only for libcalls.
536         (OTI_ctrap, ctrap_optab): New.
537         (tst_optab): Delete.
538         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
539         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
540         with lookup of ctrap_optab.
541         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
542         setcc_gen_code): Delete.
543         (ctrap_optab): New.
544
545         * combine.c (combine_simplify_rtx, simplify_set): Do not
546         special case comparing against zero for cc0 machines.
547         * simplify-rtx.c (simplify_binary_operation_1): Never remove
548         COMPARE on cc0 machines.
549         (simplify_relational_operation): Return a new expression when
550         a COMPARE could be removed.
551         * final.c (final_scan_insn): Compare cc_status values
552         against LHS of a (compare FOO (const_int 0)) cc0 source.
553         Also check if cc_status.value is the full compare.
554
555         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
556         (cstoreMM4): Document.
557         (conditional_trap): Document ctrapMM4 instead.
558         (sync_compare_and_swapMM): Refer to cbranchcc4.
559         (Dependent Patterns): Eliminate obsolete information referring to
560         the old jump optimization phase.
561         (Canonicalization): Include cbranchcc4 case, omit canonicalization
562         of compares with 0 on cc0 machines.
563         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
564         avoiding references to cc0.  Remove text about storing operands
565         in cmpMM.
566         * doc/tm.texi (Condition Codes): Include blurb on different
567         condition code representations, separate into subsections for
568         CC0, MODE_CC and conditional execution.
569
570         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
571         alpha_emit_setcc): Accept operands and a machine mode.
572         * config/alpha/alpha.c (alpha_emit_conditional_branch):
573         Get code/op0/op1 from operands, use machine mode argument
574         instead of alpha_compare.fp_p.  Emit the branch here.
575         (alpha_emit_setcc): Likewise, and return boolean.
576         (alpha_emit_conditional_move): Likewise.  Assert that
577         cmp_op_mode == cmp_mode, and simplify accordingly.
578         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
579         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
580         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
581         Delete.
582         (stack probe test): Use cbranchdi4.
583         * config/alpha/predicates.md (alpha_cbranch_operator): New.
584
585         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
586         * config/arc/arc.h (movsicc, movsfcc): Use it.
587         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
588         (cbranchsi4, cstoresi4): New.
589         (cmpsi, bCC and sCC expanders): Remove. 
590
591         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
592         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
593         * config/arm/predicates.md (arm_comparison_operator): Only include
594         floating-point operators if there is a hardware floating-point unit.
595         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
596         deferring to cbranch_cc and cstore_cc respectively.
597         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
598         cbranch_cc, cstore_cc): New.
599         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
600         arm_compare_op1.
601         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
602
603         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
604         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
605         as an argument.
606         (adjust_insn_length): Adjust calls.
607         (avr_reorg): Handle (compare (foo) (const_int 0)).
608         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
609         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
610         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
611         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
612         (bCC): Remove.
613         (cbranchqi4, cbranchhi4, cbranchsi4): New.
614         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
615
616         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
617         (cbranchsi4, cstorebi4, cstoresi4): New.
618         (movbisi): This insn is duplicate, split it to zero_extend.
619         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
620         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
621         (bfin_optimize_loop): Use cbranch expander.
622         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
623         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
624         (bfin_bimode_comparison_operator): ... this.
625         (bfin_direct_comparison_operator): New.
626  
627         * config/cris/cris.c (cris_normal_notice_update_cc): Look
628         inside (compare FOO (const_int 0)).
629         (cris_rtx_costs): Handle ZERO_EXTRACT.
630         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
631         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
632         (*tstdi_v32): Delete.
633         (*cmpdi_non_v32): Add M alternative for operand 1.
634         (cmpsi, cmp<mode>): Make private.
635         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
636         with COMPARE.
637         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
638
639         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
640         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
641         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
642         (cc_reg_operand): New.
643         (any_cond): Delete.
644         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
645         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
646         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
647         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
648         crx_expand_scond): Delete.
649
650         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
651         (cbranchsi4): New.
652         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
653         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
654
655         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
656         cstoresi4, cstoresf4, cstoredf4): New.
657         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
658         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
659         Receive the entire operands array.
660         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
661         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
662         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
663         Get test/op0/op1 from the operands array.
664         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
665
666         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
667         (h8300_expand_store): New.
668         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
669         (const_int 0)).
670         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
671         (h8300_expand_store): New.
672         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
673         or do not try to produce (set (cc0) REG).
674         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
675         change a compare into a move to a scratch register.  Disable some
676         peepholes when comparing with zero.
677         (tstsi, tsthi, tstsi, cmpqi): Make private.
678         (cmphi): Delete.
679         (bCC, sCC): Delete.
680         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
681         cstoresi4): New.
682
683         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
684         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
685         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
686         (ix86_emit_i387_log1p): Use cbranchxf2.
687         (ix86_expand_setcc): Return void.
688         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
689         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
690         cmp<MODEF>, cmpcc): Remove.
691         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
692         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
693         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
694         (sCC and bCC expanders): Remove.
695         (stack_protect_test): Use cbranchcc4.
696
697         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
698         Delete.
699         (ia64_expand_compare): Accept three rtx by reference and return void.
700         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
701         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
702         from *expr.  Update *expr with the BImode comparison to do.
703         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
704         cmptf, bCC, sCC, conditional_trap): Delete.
705         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
706         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
707         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
708         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
709         * config/ia64/predicates.md (ia64_cbranch_operator): New.
710
711         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
712         type of last argument.
713         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
714         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
715         use machine mode argument instead of branch_type.  Remove dead
716         code for floating-point comparisons.
717         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
718         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
719         Remove.
720         (cbranchsi4, cstoresi4): New.
721         * config/iq2000/predicates.md (reg_or_const_operand): New.
722
723         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
724         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
725         (b<code>_op): Rewrite to...
726         (bcc_op): ... this, using match_operator.
727         (s<code>_op): Rewrite to...
728         (scc_op): ... this, using match_operator.
729         (s<code>_24_op): Rewrite to...
730         (scc_op_24): ... this, using match_operator.
731         (s<code>_<mode>): Rewrite to...
732         (cstore<mode>4): ... this, using match_operator.
733         (s<code>_<mode>_24): Rewrite to...
734         (cstore<mode>4_24): ... this, using match_operator.
735         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
736         m32c_unpend_compare, m32c_expand_scc): Delete.
737         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
738         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
739         (m32c_expand_movcc): Change NE to EQ if necessary.
740         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
741
742         * config/m32r/m32r-protos.h (gen_cond_store): New.
743         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
744         (gen_cond_store): New, from sCC patterns.
745         (m32r_expand_block_move): Use cbranchsi4.
746         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
747         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
748         (cbranchsi4, cstoresi4): New.
749         
750         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
751         Delete.
752         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
753         (m68hc11_notice_update_cc): Look into a compare with 0.
754         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
755         Delete.
756         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
757         cmphi, cmpqi, bCC): Delete.
758         (cbranchsi4, cbranchhi4, cbranchqi4): New.
759         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
760         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
761         sets with COMPARE.
762
763         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
764         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
765         * config/m68k/constraints.md (H): New.
766         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
767         the define_insn below.
768         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
769         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
770         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
771         patterns): Wrap RHS with COMPARE.
772         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
773         (*cmpdi_internal): Name this pattern.
774         (cmpdi): Change to define_insn.
775         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
776         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
777         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
778         predicate.
779         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
780         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
781         (conditional_trap): Change to...
782         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
783         (*conditional_trap): Use the ordered_comparison_operator and
784         const1_operand predicates.
785         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
786         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
787         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
788         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
789
790         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
791         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
792         (mcore_gen_compare): New. 
793         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
794         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
795         (mcore_gen_compare): ... this.
796         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
797         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
798         (stack probe pattern): Use cbranchsi4.
799
800         * config/mips/predicates.md (mips_cstore_operator): New.
801         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
802         * config/mips/mips.md (any_cond): Delete.
803         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
804         always succeed.
805         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
806         fixuns_truncsfdi2): Use cbranch patterns.
807         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
808         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
809         Adjust call to mips_expand_conditional_branch.
810         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
811         cstore<GPR:mode>4.
812         * config/mips/mips-protos.h (mips_expand_conditional_branch,
813         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
814         * config/mips/mips.c (cmp_operands): Delete.
815         (mips_emit_compare): Get comparison operands from *op0/*op1.
816         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
817         that it succeeds.  Use op0/op1 instead of cmp_operands.
818         (mips_expand_conditional_branch, mips_expand_conditional_move,
819         mips_expand_conditional_trap): Likewise.
820         (mips_block_move_loop): Use cbranch patterns. 
821         * config/mips/mips.h (cmp_operands): Delete.
822
823         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
824         (mmix_gen_compare_reg): Just return a register in the right CC mode.
825         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
826         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
827         (*cmpcc_folded): Rename to...
828         (*cmpdi_folded): this.
829         (*cmpcc): Rename to...
830         (*cmps): ... this.
831         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
832         (bCC): Remove.
833         (cbranchdi4): New.
834         (cbranchdf4): New.  Handle invalid comparisons here.
835         * config/mmix/predicates.md (float_comparison_operator): New.
836
837         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
838         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
839         * config/mn10300/mn10300.md (tst): Delete.
840         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
841         Name these patterns and wrap RHS in a compare.
842         (*cmpsi): Make this pattern private.  Include tst.
843         (*cmpsf): Make this pattern private.
844         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
845         (compare with zero peepholes): Likewise.
846         (bCC): Remove.
847         (cbranchsi4, cbranchsf4): New.
848         (casesi): Use cbranchsi4.
849
850         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
851         hppa_branch_type): Delete.
852         (return_addr_rtx): Use cbranchsi4.
853         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
854         Emit CCFPmode comparison here.
855         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
856         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
857         hppa_branch_type): Delete.
858         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
859         (movsicc, movdicc): Remove references to hppa_compare_op0,
860         hppa_compare_op1 and compare_from_rtx.
861         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
862         (casesi): Use cbranchsi4.
863
864         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
865         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
866         * config/pdp11/pdp11.md (register_or_const0_operand): New.
867         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
868         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
869         (bCC): Delete.
870         (cbranchdf4, cbranchhi4, cbranchqi4): New.
871         (*branch, *branch_inverted): New.
872
873         * config/picochip/picochip.md (cbranchhi4): Use
874         ordered_comparison_operator.
875         (cmphi, bCC): Remove.
876
877         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
878         (trap_comparison_operator): Delete.
879         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
880         rs6000_emit_cbranch): Accept mode and operands.
881         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
882         rs6000_compare_fp_p): Delete.   
883         (rs6000_generate_compare): Accept mode and comparison.  Extract code
884         and op0/op1 from there.  Replace references to rs6000_compare_op0
885         and rs6000_compare_op1.
886         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
887         extract result from passed operands.
888         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
889         extract loc from passed operands.
890         (rs6000_emit_cmove): Likewise.
891         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
892         rs6000_compare_fp_p): Delete.
893         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
894         (cbranch<GPR>4, cbranch<FP>4): New.
895         (cstore<mode>4): New.  Consolidate here all choices about when to use
896         portable or specialized sCC sequences.
897         (stack_protect_test): Use cbranchsi4.
898         (conditional_trap): Replace with ctrap<GPR>4.
899         (conditional trap insn): Replace trap_comparison_operator with
900         ordered_comparison_operator. 
901
902         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
903         (s390_emit_prologue): Use ctrap.
904         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
905         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
906         New predicates replacing...
907         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
908         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
909         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
910         (add<mode>cc): Do not use s390_compare_op0/op1.
911         (s<code>): Change to...
912         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
913         (seq): Change to...
914         (cstorecc4): ... this.  Handle EQ or NE equally.
915         (*sne): Un-privatize for use in cstorecc4.
916         (b<code>): Change to...
917         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
918         (conditional_trap): Replace with...
919         (ctrap<GPR>4, ctrap<FP>4): ... these.
920         (stack_protect): Use cbranchcc4.
921
922         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
923         * config/score/score-protos.h (score_gen_cmp): Delete.
924         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
925         (score_block_move-loop): Use cbranchsi4.
926         * config/score/score.md (cbranchsi4): New.
927         (cmpsi, bCC): Delete.
928         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
929         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
930         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
931         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
932         * config/score/score3.h (score3_gen_cmp): Delete.
933         * config/score/score7.h (score7_gen_cmp): Delete.
934
935         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
936         (sh_emit_scc_to_t): ... this.  Return void.
937         (from_compare): Rename to...
938         (sh_emit_compare_and_branch): ... this.
939         (sh_emit_compare_and_set): New.
940         (sh_expand_t_scc): Accept operands.
941         * config/sh/predicates.md (sh_float_comparison_operator): New.
942         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
943         (prepare_scc_operands): Rename to...
944         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
945         arguments.
946         (sh_emit_cheap_store_flag): New.
947         (sh_emit_set_t_insn): New.
948         (from_compare): Rename to...
949         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
950         handling of TARGET_SH2E floating point to avoid recursive call.
951         Generate branch here.
952         (sh_emit_compare_and_set): New.
953         (sh_expand_t_scc): Get op0/op1 from arguments.
954         (sh_emit_cheap_store_flag): New.
955         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
956         cases.
957         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
958         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
959         (movsicc, movdicc): Do nothing when it recreated operands from
960         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
961         prepare_scc_operands (now sh_emit_scc_to_t).
962         (udivdi3): Use cstoresi4.
963         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
964         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
965         (cbranchint4_media, cbranchfp4_media): New.
966         (casesi): Use cbranchdi4.
967         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
968         Delete.
969         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
970         (movnegt): Remove second operand.
971         (cbranchsf4, cbranchdf4): New.
972         (stack_protect): Use cbranchdi4/cbranchsi4.
973
974         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
975         (gen_compare_reg): Accept comparison, extract part of it to...
976         (gen_compare_reg_1): ... this. 
977         (gen_compare_operator): Delete.
978         (gen_v9_scc): Accept separate destination, comparison code and arms.
979         Do not use sparc_compare_op0/sparc_compare_op1.
980         (emit_scc_insn, emit_conditional_branch_insn): New.
981         (emit_v9_brxx): Make static.  Remove useless assertion.
982         (sparc_emit_float_lib_cmp): Return RTL instead of calling
983         emit_cmp_insn.
984         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
985         * config/sparc/sparc-protos.h (gen_compare_reg,
986         sparc_emit_float_lib_cmp): Adjust prototype.
987         (emit_scc_insn, emit_conditional_branch_insn): New.
988         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
989         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
990         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
991         iterators to the top.
992         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
993         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
994         snedi_special_trunc): Delete.
995         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
996         and snedi_special_trunc.
997         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
998         cbranchdi4, cbranch<F:mode>4): New.
999         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
1000         here.  Use gen_compare_reg instead of gen_compare_operator.
1001         (conditional_trap): Replace with...
1002         (ctrapsi4, ctrapdi4): ... this.
1003         (stack_protect_test): Use cbranchcc4.
1004
1005         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
1006         argument to rtx.
1007         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
1008         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
1009         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
1010         from operands[0] or operands[3] depending on is_set.
1011         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
1012         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
1013         cmpdf, bCC), sCC: Remove.
1014         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
1015         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
1016         cstoredf4): New.
1017         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
1018         spu_emit_branch_or_set.
1019
1020         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
1021         Add two arguments.
1022         * config/stormy16/stormy16.h (xstormy16_compare_op0,
1023         xstormy16_compare_op1): Delete.
1024         * config/stormy16/stormy16.c (xstormy16_compare_op0,
1025         xstormy16_compare_op1): Delete. 
1026         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
1027         Adjust calls.
1028         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
1029         (cmphi, cmpsi, bCC): Remove.
1030
1031         * config/v850/v850.md (tstsi, cmpsi): Fold into...
1032         (*cmpsi): ... this one.
1033         (cbranchsi4, cstoresi4): New.
1034         (bCC expanders): Delete.
1035         (sCC insns): Fold into...
1036         (*setcc): ... this one.
1037         (casesi): Do not use gen_cmpsi and gen_bgtu. 
1038         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
1039         (movsicc): Simplify.
1040         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
1041
1042         * config/vax/vax-protos.h (cond_name): New.
1043         (vax_output_conditional_branch): Remove.
1044         * config/vax/vax.c (cond_name): New.
1045         (vax_output_conditional_branch): Remove.
1046         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
1047         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
1048         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
1049         (bit<VAXint>): Wrap source with (compare).
1050         (b<code> and following unnamed pattern): Rename to *branch and
1051         *branch_reversed.  Change macroization to match_operator.
1052         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
1053
1054         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
1055         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
1056         Change last argument to machine_mode.
1057         (xtensa_expand_scc): Add machine_mode argument.
1058         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
1059         (gen_conditional_move, xtensa_expand_conditional_branch,
1060         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
1061         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
1062         Adjust operand numbers.
1063         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
1064         Delete.
1065         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
1066         (cmpsi, cmpsf, b<code>, s<code>): Delete.
1067         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
1068
1069 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1070
1071         * optabs.c (prepare_cmp_insn): Temporarily disable test that
1072         causes spurious differences between trunk and cond-optab branch.
1073
1074 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
1075
1076         PR target/37137
1077         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
1078
1079 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
1080
1081         * tree.c (iterative_hash_pointer): Delete.
1082         (iterative_hash_expr): Short-circuit handling of NULL pointer.
1083         Hash UIDs and versions of SSA names.  Don't special-case built-in
1084         function declarations.
1085
1086 2009-05-11  Ian Lance Taylor  <iant@google.com>
1087
1088         PR bootstrap/40103
1089         * graphite.c: Force -Wc++-compat to only be a warning before
1090         #including "cloog/cloog.h".
1091
1092 2009-05-11  Martin Jambor  <mjambor@suse.cz>
1093
1094         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
1095         
1096 2009-05-11  Jan Hubicka  <jh@suse.cz>
1097
1098         * tree-ssa-loop-ivcanon.c: Include target.h
1099         (struct loop_size): new structure.
1100         (constant_after_peeling): New predicate.
1101         (tree_estimate_loop_size): New function.
1102         (estimated_unrolled_size): Rewrite for new estimates.
1103         (try_unroll_loop_completely): Use new estimates.
1104         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
1105
1106 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1107
1108         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
1109         libcpp interface change.
1110         (spu_macro_to_expand): Likewise.
1111
1112 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
1113
1114         PR tree-optimization/40026
1115         * gimplify.c (gimplify_init_constructor): Change initial conditional
1116         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
1117         optimize_compound_literals_in_ctor.
1118
1119 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1120
1121         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
1122         New devices.
1123         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
1124
1125 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1126
1127         * tree-vect-data-refs.c (vect_analyze_group_access): Use
1128         HOST_WIDE_INT for gap.
1129
1130 2009-05-11  Ira Rosen  <irar@il.ibm.com>
1131
1132         PR tree-optimization/40074
1133         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
1134         account in group size and step comparison.
1135
1136 2009-05-11  Richard Guenther  <rguenther@suse.de>
1137
1138         * passes.c (init_optimization_passes): Strip now incorrect comment.
1139         (execute_function_todo): Do not set PROP_alias.
1140         * tree-pass.h (PROP_alias): Remove.
1141         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1142         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1143         * tree-nrv.c (pass_return_slot): Likewise.
1144         * tree-object-size.c (pass_object_sizes): Likewise.
1145         * tree-ssa-dom.c (pass_dominator): Likewise.
1146         (pass_phi_only_cprop): Likewise.
1147         * tree-ssa-dse.c (pass_dse): Likewise.
1148         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1149         (pass_cselim): Likewise.
1150         * tree-ssa-pre.c (pass_pre): Likewise.
1151         (pass_fre): Likewise.
1152         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1153         * tree-ssa-sink.c (pass_sink_code): Likewise.
1154         * tree-stdarg.c (pass_stdarg): Likewise.
1155         * tree-tailcall.c (pass_tail_calls): Likewise.
1156         * tree-vrp.c (pass_vrp): Likewise.
1157
1158 2009-05-10  Ian Lance Taylor  <iant@google.com>
1159
1160         * basic-block.h (enum profile_status): Break out of struct
1161         control_flow_graph.
1162         * cgraph.h (struct inline_summary): Break out of struct
1163         cgraph_local_info.
1164         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1165         of struct cgraph_order_sort.
1166         * combine.c (enum undo_kind): New enum, broken out of struct undo.
1167         * cse.c (struct branch_path): Break out of struct
1168         cse_basic_block_data.
1169         * except.h (enum eh_region_type): Break out of struct eh_region.
1170         * gcc.c (enum add_del): Break out of struct modify_target.
1171         * genrecog.c (enum decision_type): Break out of struct decision_test.
1172         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1173         ggc_pch_data.
1174         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1175         * regmove.c (enum match_use): New enum, broken out of struct match.
1176         * sched-int.h (enum post_call_group): New enum, broken out of
1177         struct deps.
1178         (struct deps_reg): Break out of struct deps.
1179         * target.h (struct asm_int_op): Break out of struct gcc_target.
1180         * tree-eh.c (struct goto_queue_node): Break out of struct
1181         leh_tf_state.
1182         * tree-inline.h (enum copy_body_cge_which): Break out of
1183         copy_body_data.
1184         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1185
1186         * c-decl.c (in_struct, struct_types): New static variables.
1187         (pushtag): Add loc parameter.  Change all callers.
1188         (lookup_tag): Add ploc parameter.  Change all callers.
1189         (check_compound_literal_type): New function.
1190         (parser_xref_tag): Add loc parameter.  Change all callers.  If
1191         -Wc++-compat, warn about struct/union/enum types defined within a
1192         struct or union.
1193         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1194         and loc parameters.  Change all callers.  Change error calls to
1195         error_at, using loc.  For a redefinition, if the location of the
1196         original definition is known, report it.  Set in_struct and
1197         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
1198         (finish_struct): Add new parameters enclosing_in_struct and
1199         enclosing_struct_types.  Change all callers.  Set
1200         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1201         in the struct.  If in a struct, add this struct to struct_types.
1202         (start_enum): Add loc parameter.  Change all callers.  Use
1203         error_at for errors, using loc.  For a redefinition, if the
1204         location of the original definition is known, report it.  If in a
1205         struct, add this enum type to struct_types.  If -Wc++-compat warn
1206         if in sizeof, typeof, or alignof.
1207         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1208         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1209         (c_parser_enum_specifier): Get enum location for start_enum.
1210         (c_parser_struct_or_union_specifier): Get struct location for
1211         start_struct.  Save in_struct and struct_types status between
1212         start_struct and finish_struct.
1213         (c_parser_cast_expression): Get location of cast.
1214         (c_parser_alignof_expression): Get location of type.
1215         (c_parser_postfix_expression): Likewise.
1216         (c_parser_postfix_expression_after_paren_type): Add type_loc
1217         parameter.  Change all callers.  Call check_compound_literal_type.
1218         Use type_loc for error about variable size type.
1219         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1220         of an enum constant from an enum type defined in a struct or union.
1221         (c_cast_expr): Add loc parameter.  Change all callers.  If
1222         -Wc++-compat, warn about defining a type in a cast.
1223         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1224         (start_enum, start_struct, finish_struct): Update declarations.
1225         (parser_xref_tag, c_cast_expr): Update declarations.
1226         (check_compound_literal_type): Declare.
1227
1228 2009-05-11  Ben Elliston  <bje@au.ibm.com>
1229
1230         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1231         for recent libcpp interface change.
1232         (rs6000_macro_to_expand): Likewise.
1233
1234 2009-05-10  Michael Matz  <matz@suse.de>
1235
1236         PR target/40031
1237         * config/arm/arm.c (require_pic_register): Emit on entry edge,
1238         not at entry of function.
1239
1240 2009-05-10  Richard Guenther  <rguenther@suse.de>
1241
1242         PR tree-optimization/40081
1243         Revert
1244         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1245         using the main variant of the element type.  Do not fiddle with
1246         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1247
1248         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1249         structs with volatile fields.
1250
1251 2009-05-10  Jan Hubicka  <jh@suse.cz>
1252
1253         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1254         (estimate_move_cost): Assert that it does not get called for
1255         VOID_TYPE_P.
1256         (estimate_num_insns): Skip VOID types in argument handling.
1257         (optimize_inline_calls): Delete unreachable blocks and verify that
1258         callgraph is valid.
1259
1260 2009-05-10  Jan Hubicka  <jh@suse.cz>
1261
1262         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1263         * cgraph.c (cgraph_mark_address_taken_node): New function.
1264         (dump_cgraph_node): Dump new flag.
1265         * cgraph.h (struct cgraph_node): Add address_taken.
1266         (cgraph_mark_address_taken_node): New function.
1267         * ipa.c (cgraph_postorder): Prioritize functions with address taken
1268         since new direct calls can be born.
1269
1270 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1271
1272         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1273         tok->val.node.node.
1274
1275 2009-05-10  Jan Hubicka  <jh@suse.cz>
1276
1277         PR middle-end/40084
1278         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1279         argument; rewrite.
1280         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1281         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1282         * tree-inline.c (copy_bb): Set frequency correctly.
1283         (fold_marked_statements): Update call to
1284         cgraph_update_edges_for_call_stmt.
1285
1286 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1287
1288         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1289         identifiers in diagnostics.
1290         * config/arm/arm.c (arm_handle_fndecl_attribute,
1291         arm_handle_isr_attribute): Likewise.
1292         * config/avr/avr.c (avr_handle_progmem_attribute,
1293         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1294         Likewise.
1295         * config/bfin/bfin.c (handle_int_attribute,
1296         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1297         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1298         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1299         Likewise.
1300         * config/darwin.c (darwin_handle_kext_attribute,
1301         darwin_handle_weak_import_attribute): Likewise.
1302         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1303         h8300_handle_eightbit_data_attribute,
1304         h8300_handle_tiny_data_attribute): Likewise.
1305         * config/i386/i386.c (ix86_handle_cconv_attribute,
1306         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1307         Likewise.
1308         * config/i386/winnt.c (ix86_handle_shared_attribute,
1309         ix86_handle_selectany_attribute): Likewise.
1310         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1311         * config/m32c/m32c.c (function_vector_handler): Likewise.
1312         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1313         m68hc11_handle_fntype_attribute): Likewise.
1314         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1315         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1316         * config/mips/mips.c (mips_insert_attributes,
1317         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1318         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1319         rs6000_handle_struct_attribute): Likewise.
1320         * config/sh/sh.c (sh_insert_attributes,
1321         sh_handle_resbank_handler_attribute,
1322         sh_handle_interrupt_handler_attribute,
1323         sh2a_handle_function_vector_handler_attribute,
1324         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1325         Likewise.
1326         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1327         * config/spu/spu.c (spu_handle_fndecl_attribute,
1328         spu_handle_vector_attribute): Likewise.
1329         * config/stormy16/stormy16.c
1330         (xstormy16_handle_interrupt_attribute): Likewise.
1331         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1332         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1333
1334 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1335
1336         * pretty-print.h (struct pretty_print_info): Add
1337         translate_identifiers.
1338         (pp_translate_identifiers): New.
1339         (pp_identifier): Only conditionally translate identifier to locale
1340         character set.
1341         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1342         (pp_base_tree_identifier): Only conditionally translate identifier
1343         to locale character set.
1344         * c-pretty-print.c (M_): Define.
1345         (pp_c_type_specifier, pp_c_primary_expression): Mark English
1346         fragments for conditional translation with M_.
1347         * tree-pretty-print.c (maybe_init_pretty_print): Disable
1348         identifier translation.
1349
1350 2009-05-10  Richard Guenther  <rguenther@suse.de>
1351
1352         PR tree-optimization/40081
1353         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1354         using the main variant of the element type.  Do not fiddle with
1355         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1356
1357 2009-05-09  Jan Hubicka  <jh@suse.cz>
1358
1359         PR middle-end/40080
1360         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1361         indirect calls; verify cgraph afterwards.
1362
1363 2009-05-09  Jan Hubicka  <jh@suse.cz>
1364
1365         PR bootstrap/40082
1366         * ipa.c (update_inlined_to_pointer): New function.
1367         (cgraph_remove_unreachable_nodes): Use it.
1368
1369 2009-05-09  Jan Hubicka  <jh@suse.cz>
1370
1371         * tree-eh.c (struct leh_state): Remove prev_try.
1372         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1373         not track prev_try.
1374         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
1375         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1376         remove_eh_handler_and_replace, foreach_reachable_handler,
1377         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1378         * except.h (struct eh_region): Remove eh_region_u_cleanup.
1379         (gen_eh_region_cleanup): Update prototype.
1380
1381 2009-05-09  Jan Hubicka  <jh@suse.cz>
1382
1383         PR middle-end/40043
1384         * except.c (copy_eh_region): Always set prev_try.
1385         (redirect_eh_edge_to_label): Find outer try.
1386         (foreach_reachable_handler): When looking for prev try
1387         handle case where previous try is not going to be taken.
1388
1389 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1390
1391         PR tree-optimization/40049
1392         * tree-vect-stmts.c (vectorizable_operation): If the machine has
1393         only vector/vector shifts, convert the type of the constant to the
1394         appropriate type to avoid building incorrect trees, which
1395         eventually have problems with garbage collection.
1396
1397 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1398
1399         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1400         -1 for complex floating-point types if honoring signed zeros.
1401
1402 2009-05-08  Jan Hubicka  <jh@suse.cz>
1403
1404         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1405         argument; handle correctly when profile is absent.
1406         (build_cgraph_edges): Update.
1407         (rebuild_cgraph_edges): Update.
1408         * cgraph.c: Do not include varray.h.
1409         (cgraph_set_call_stmt_including_clones): New function.
1410         (cgraph_create_edge_including_clones): Likewise
1411         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1412         (cgraph_update_edges_for_call_stmt): Handle clones.
1413         (cgraph_remove_node): Handle clone tree.
1414         (cgraph_remove_node_and_inline_clones): New function.
1415         (dump_cgraph_node): Dump clone tree.
1416         (cgraph_clone_node): Handle clone tree.
1417         (clone_function_name): Bring here from tree-inline.c.
1418         (cgraph_create_virtual_clone): New function.
1419         * cgraph.h (ipa_replace_map): Move here from ipa.h.
1420         (cgraph_clone_info): New function.
1421         (strut cgraph_node): Add clone_info and new clone tree pointers.
1422         (cgraph_remove_node_and_inline_clones,
1423         cgraph_set_call_stmt_including_clones,
1424         cgraph_create_edge_including_clones,
1425         cgraph_create_virtual_clone): Declare.
1426         (cgraph_function_versioning): Use VEC argument.
1427         (compute_call_stmt_bb_frequency): Update prototype.
1428         (cgraph_materialize_all_clones): New function.
1429         * ipa-cp.c (ipcp_update_cloned_node): Remove.
1430         (ipcp_create_replace_map): Update to VECtors.
1431         (ipcp_update_callgraph): Use virtual clones.
1432         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1433         (ipcp_update_profiling): Do not update local profiling.
1434         (ipcp_insert_stage): Use VECtors and virtual clones.
1435         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1436         (clone_of_p): New function.
1437         (cgraph_preserve_function_body_p): Use clone tree.
1438         (cgraph_optimize): Materialize clones.
1439         (cgraph_function_versioning): Update for VECtors.
1440         (save_inline_function_body): Use clone tree.
1441         (cgraph_materialize_clone): New function.
1442         (cgraph_materialize_all_clones): Likewise.
1443         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1444         * ipa.c: Include gimple.h.
1445         (cgraph_remove_unreachable_nodes): Use clone tree.
1446         * ipa-prop.c (ipa_note_param_call): Update call to
1447         compute_call_stmt_bb_frequencycall.
1448         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
1449         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
1450         (copy_bb): Handle updating of clone tree; add new edge when new call
1451         appears.
1452         (expand_call_inline): Be strict about every call having edge.
1453         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1454         (delete_unreachable_blocks_update_callgraph): New function.
1455         (tree_function_versioning): Use VECtors; always remove unreachable
1456         blocks and fold conditionals.
1457         * tree-inline.h: Do not include varray.h.
1458         (tree_function_versioning): Remove.
1459         * Makefile.in (GTFILES): Remove tree-inline.c
1460         * passes.c (do_per_function): Do only functions having body.
1461         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1462         tree.
1463
1464 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
1465             Andrew Morrow  <acm@google.com>
1466
1467         PR c/36892
1468         * c-common.c (c_common_attribute_table): Permit deprecated
1469         attribute to take an optional argument.
1470         (handle_deprecated_attribute): If the optional argument to
1471         __attribute__((deprecated)) is not a string ignore the attribute
1472         and emit a warning.
1473
1474         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1475         * c-typeck.c (build_component_ref): Likewise.
1476         (build_external_ref): Likewise.
1477
1478         * toplev.c (warn_deprecated_use): Add an attribute argument.
1479         Emit the message associated with __attribute__((deprecated)).
1480
1481         * toplev.h (warn_deprecated_use): Updated.
1482
1483         * doc/extend.texi: Document new optional parameter to
1484         __attribute__((deprecated))
1485
1486 2009-05-08  Michael Eager <eager@eagercon.com>
1487
1488         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1489         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1490
1491 2009-05-08  Richard Guenther  <rguenther@suse.de>
1492
1493         PR tree-optimization/40062
1494         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1495         Avoid exponential behavior.
1496
1497 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1498
1499         PR rtl-optimization/33928
1500         PR 26854
1501         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1502         process_uses, build_single_def_use_links): New.
1503         (update_df): Update use_def_ref.
1504         (forward_propagate_into): Use get_def_for_use instead of use-def
1505         chains.
1506         (fwprop_init): Call build_single_def_use_links and let it initialize
1507         dataflow.
1508         (fwprop_done): Free use_def_ref.
1509         (fwprop_addr): Eliminate duplicate call to df_set_flags.
1510         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
1511         df_rd_simulate_one_insn): New.
1512         (df_rd_bb_local_compute_process_def): Update head comment.
1513         (df_chain_create_bb): Use the new RD simulation functions.
1514         * df.h (df_rd_simulate_artificial_defs_at_top, 
1515         df_rd_simulate_one_insn): New.
1516         * opts.c (decode_options): Enable fwprop at -O1.
1517         * doc/invoke.texi (-fforward-propagate): Document this.
1518
1519 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1520
1521         PR c/24581
1522         * c-typeck.c (build_binary_op): Handle arithmetic between one real
1523         and one complex operand specially.
1524         * tree-complex.c (some_nonzerop): Do not identify a real value as
1525         zero if flag_signed_zeros.
1526
1527 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1528
1529         PR rtl-optimization/33928
1530         * loop-invariant.c (record_use): Fix && vs. || mishap.
1531
1532 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1533
1534         PR rtl-optimization/33928
1535         * loop-invariant.c (struct use): Add addr_use_p.
1536         (struct def): Add n_addr_uses.
1537         (struct invariant): Add cheap_address.
1538         (create_new_invariant): Set cheap_address.
1539         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
1540         (record_uses): Pass df_ref to record_use.
1541         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1542         used only as such.
1543
1544 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1545
1546         * config/sh/sh.c: Do not include c-pragma.h.
1547
1548 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1549
1550         * config/spu/spu.c: Remove include of c-common.h.
1551
1552 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
1553
1554         PR c/39037
1555         * c-common.h (mark_valid_location_for_stdc_pragma,
1556         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1557         clear_float_const_decimal64, float_const_decimal64_p): New.
1558         * c.opt (Wunsuffixed-float-constants): New.
1559         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1560         unsuffixed float constant, handle new warning.
1561         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1562         * c-decl.c (c_scope): New flag float_const_decimal64.
1563         (set_float_const_decimal64, clear_float_const_decimal64,
1564         float_const_decimal64_p): New.
1565         (push_scope): Set new flag.
1566         * c-parser.c (c_parser_translation_unit): Mark when it's valid
1567         to use STDC pragmas.
1568         (c_parser_external_declaration): Ditto.
1569         (c_parser_compound_statement_nostart): Ditto.
1570         * c-pragma.c (valid_location_for_stdc_pragma,
1571         mark_valid_location_for_stdc_pragma,
1572         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1573         handle_pragma_float_const_decimal64): New.
1574         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1575         * cp/semantics.c (valid_location_for_stdc_pragma_p,
1576         set_float_const_decimal64, clear_float_const_decimal64,
1577         float_const_decimal64_p): New dummy functions.
1578         * doc/extend.texi (Decimal Float): Remove statement that the
1579         pragma, and suffix for double constants, are not supported.
1580         * doc/invoke.texi (Warning Options): List new option.
1581         (-Wunsuffixed-float-constants): New.
1582
1583 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
1584
1585         * config/i386/i386.c: Do not include c-common.h.
1586
1587 2009-05-07  Mark Heffernan  <meheff@google.com>
1588
1589         * doc/invoke.texi (Debugging Options): Document change of debugging
1590         dump location.
1591         * opts.c (decode_options): Make dump_base_name relative to
1592         aux_base_name directory.
1593
1594 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
1595
1596         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1597         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1598
1599 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
1600
1601         * Makefile.in (install-plugin): Simplify a bit.
1602
1603 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
1604
1605         * Makefile.in (OBJS-common): Add regcprop.o.
1606         (regcprop.o): New.
1607         * timevar.def (TV_CPROP_REGISTERS): New.
1608         * regrename.c (regrename_optimize): Return 0.
1609         (rest_of_handle_regrename): Delete.
1610         (pass_rename_registers): Point to regrename_optimize.
1611         (struct value_data_entry, struct value_data, 
1612         kill_value_one_regno, kill_value_regno, kill_value,
1613         set_value_regno, init_value_data, kill_clobbered_value,
1614         kill_set_value, kill_autoinc_value, copy_value,
1615         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1616         replace_oldest_value_reg, replace_oldest_value_addr,
1617         replace_oldest_value_mem, copyprop_hardreg_forward_1,
1618         debug_value_data, validate_value_data): Move...
1619         * regcprop.c: ... here.
1620         (rest_of_handle_cprop): Delete.
1621         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1622
1623 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
1624
1625         PR middle-end/40057
1626         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1627         GEN_INT for 1 << bitnum.
1628         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1629         build_int_cst_type.
1630
1631 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
1632
1633         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
1634         Remove wrong description of "nand" operation.
1635
1636 2009-05-06  Richard Guenther  <rguenther@suse.de>
1637             Adam Nemet  <anemet@caviumnetworks.com>
1638
1639         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1640         comment.  Add that if LHS is not a gimple register, then RHS1 has
1641         to be a single object (GIMPLE_SINGLE_RHS).
1642
1643 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
1644
1645         * expr.c (get_def_for_expr): Move it up in the file.
1646         (store_field): When expanding a bit-field store, look at the
1647         defining gimple stmt for the masking conversion.
1648
1649 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
1650
1651         PR middle-end/39986
1652         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1653         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1654         32-bit memcpy into long.
1655
1656 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
1657
1658         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1659         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1660         new_reg_loc_descr.
1661         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1662         instead of appending DW_OP_deref*.
1663
1664 2009-05-06  Michael Matz  <matz@suse.de>
1665
1666         PR middle-end/40021
1667         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1668         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1669
1670 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
1671
1672         * Makefile.in (install-plugin): Fix srcdir handling.
1673
1674 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
1675
1676         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1677         when processing for not_regs_needed bitmap.
1678         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1679         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
1680         handling it for rhs. 
1681
1682 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1683
1684         * config/i386/i386.md (unnamed inc/dec peephole): Use
1685         optimize_insn_for_size_p instead of optimize_size.
1686         * config/i386/predicates.md (incdec_operand): Likewise.
1687         (aligned_operand): Likewise.
1688         * config/i386/sse.md (divv8sf3): Likewise.
1689         (sqrtv8sf2): Likewise.
1690
1691 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1692
1693         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1694
1695         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1696
1697 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1698
1699         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1700         ssemodesuffixf2c with avxmodesuffixf2c.
1701
1702 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
1703
1704         PR c/40032
1705         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1706
1707 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
1708
1709         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1710         (struct tree_base): Adjust spacing for 8 bit boundaries.
1711         (struct tree_decl_common): Add decl_by_reference_flag bit.
1712         (DECL_BY_REFERENCE): Adjust.
1713         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1714         print DECL_BY_REFERENCE bit.
1715         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1716         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1717         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1718         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
1719         unconditionally.
1720
1721         PR middle-end/39666
1722         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1723         range of the type, but default label is missing, add it with one
1724         of the existing labels instead of adding a new label for it.
1725
1726 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
1727
1728         * dwarf.h: Remove.
1729
1730 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
1731
1732         * Makefile.in (enable_plugin, plugin_includedir): New.
1733         (install): Depend on install-plugin.
1734         (PLUGIN_HEADERS): New.
1735         (install-plugin): New.
1736         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1737
1738 2009-05-05  Richard Guenther  <rguenther@suse.de>
1739
1740         PR tree-optimization/40022
1741         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1742         the only vuse.
1743         (phivn_valid_p): Fix tuplification error, simplify.
1744         (phiprop_insert_phi): Add dumps.
1745         (propagate_with_phi): Simplify.
1746
1747 2009-05-05  Richard Guenther  <rguenther@suse.de>
1748
1749         PR middle-end/40023
1750         * builtins.c (gimplify_va_arg_expr): Properly build the address.
1751
1752 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
1753
1754         * tree.h (strip_float_extensions): Remove duplicate declaration.
1755         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1756         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1757         block_ultimate_origin): Rearrange the declarations line to match the
1758         comment that indicates the .c file which the functions are defined.
1759         (dwarf2out_*, set_decl_rtl): Add comment.
1760         (get_base_address): Adjust comment.
1761         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1762         declarations line and add comment.
1763         (is_builtin_name): Add blank after function name, for clarity.
1764
1765 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1766
1767         * attribs.c (decl_attributes): Use %qE for identifiers in
1768         diagnostics.
1769         * cgraphunit.c (verify_cgraph_node): Translate function names to
1770         locale character set in diagnostics.
1771         * coverage.c (get_coverage_counts): Use %qE for identifiers in
1772         diagnostics.
1773         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1774         Document that functions are named in UTF-8.
1775         * expr.c (expand_expr_real_1): Translate function names to locale
1776         character set in diagnostics.
1777         * gimplify.c (omp_notice_variable, omp_is_private,
1778         gimplify_scan_omp_clauses): Use %qE for identifiers in
1779         diagnostics.
1780         * langhooks.c (lhd_print_error_function): Translate function names
1781         to locale character set.
1782         * langhooks.h (decl_printable_name): Document that return value is
1783         in internal character set.
1784         * stmt.c: Include pretty-print.h
1785         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1786         diagnostics.
1787         (resolve_operand_name_1): Translate named operand name to locale
1788         character set.
1789         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1790         diagnostics.
1791         * toplev.c (announce_function): Translate function names to locale
1792         character set.
1793         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1794         (default_tree_printer): Use pp_identifier or translate identifiers
1795         to locale character set.  Mark "<anonymous>" for translation.
1796         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1797         for identifiers in diagnostics.
1798         * tree.c (handle_dll_attribute): Use %qE for identifiers in
1799         diagnostics.
1800         * varasm.c (output_constructor): Use %qE for identifiers in
1801         diagnostics.
1802
1803 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
1804
1805         * configure.ac: use ` ` instead of $()
1806         * configure: Regenerate.
1807
1808 2009-05-05  Ben Elliston  <bje@au.ibm.com>
1809
1810         * config/pa/linux-atomic.c: Eliminate conditional include of
1811         errno.h on non-LP64 systems to simplify build requirements.
1812
1813 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1814
1815         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1816         diagnostics.
1817         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1818         and pass value to identifier_to_locale.
1819         (warn_variable_length_array): Make name a tree.
1820         (grokdeclarator): Separate diagnostic texts for named and unnamed
1821         declarators.  Use %qE for named declarators.
1822         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1823         diagnostics.
1824         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1825         identifiers in diagnostics.
1826         * c-typeck.c (push_member_name, start_init): Pass identifiers to
1827         identifier_to_locale.  Mark "anonymous" strings for translation.
1828
1829 2009-05-04  Michael Eager <eager@eagercon.com>
1830
1831         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
1832         address for DImode/DFmode only if double-precision FP regs.
1833
1834 2009-05-04  Michael Eager <eager@eagercon.com>
1835
1836         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1837         TARGET_SINGLE_FLOAT check.
1838
1839 2009-05-04  Michael Eager <eager@eagercon.com>
1840
1841         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1842
1843 2009-05-04  Michael Eager <eager@eagercon.com>
1844
1845         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1846         * config/rs6000/t-xilinx: New
1847
1848 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
1849
1850         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
1851         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1852         * gcc/explow.c (memory_address): Use target hook.
1853         * gcc/targhooks.c (default_legitimize_address): New.
1854         * gcc/targhooks.h (default_legitimize_address): New.
1855         * gcc/target.h (legitimize_address): New.
1856         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1857         (TARGET_INITIALIZER): Include it.
1858         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1859
1860         * config/bfin/bfin-protos.h (legitimize_address): Remove.
1861         * config/bfin/bfin.c (legitimize_address): Remove.
1862         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
1863         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1864         Remove.
1865         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1866         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1867
1868         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1869         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1870         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1871         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1872         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1873         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1874         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1875         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1876         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1877         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1878         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1879         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1880         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1881         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1882         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1883         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1884         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1885         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1886         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1887         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1888         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1889         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1890         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1891
1892         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1893         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1894         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1895         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1896         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1897         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1898         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1899         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1900         (thumb_legitimize_address): Delete.
1901         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1902         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1903         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1904         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1905         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
1906         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1907         Delete.
1908         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1909         Delete.
1910
1911         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1912         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1913         * config/m32r/m32r.c (m32r_legitimize_address): New.
1914         * config/m68k/m68k.c (m68k_legitimize_address): New.
1915         * config/score/score.c (score_legitimize_address): Standardize.
1916         * config/score/score3.c (score3_legitimize_address): Standardize.
1917         * config/score/score3.h (score3_legitimize_address): Adjust.
1918         * config/score/score7.c (score7_legitimize_address): Standardize.
1919         * config/score/score7.h (score7_legitimize_address): Adjust.
1920         * config/sh/sh.c (sh_legitimize_address): New.
1921         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1922
1923         * gcc/config/s390/s390.c (legitimize_address): Rename to...
1924         (s390_legitimize_address): ... this.
1925         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1926         (sparc_legitimize_address): ... this.
1927         * gcc/config/i386/i386.c (legitimize_address): Rename to...
1928         (ix86_legitimize_address): ... this.
1929         * gcc/config/avr/avr.c (legitimize_address): Rename to...
1930         (avr_legitimize_address): ... this.
1931         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1932         (mn10300_legitimize_address): ... this.
1933         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1934         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1935         (alpha_expand_mov): Adjust call.
1936
1937         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1938         * config/spu/spu.c (spu_legitimize_address): Likewise.
1939         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1940         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1941
1942 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1943
1944         * intl.c (locale_encoding, locale_utf8): New.
1945         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1946         * intl.h (locale_encoding, locale_utf8): Declare.
1947         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
1948         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1949         New.
1950         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1951         argument.
1952         (pp_tree_identifier): Define to call pp_base_tree_identifier.
1953         (pp_base_tree_identifier): Declare as function.
1954         (identifier_to_locale): Declare.
1955         * Makefile.in (pretty-print.o): Update dependencies.
1956         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
1957
1958 2009-05-04  Richard Guenther  <rguenther@suse.de>
1959
1960         PR middle-end/40015
1961         * builtins.c (fold_builtin_memory_op): Do not decay to element
1962         type if the size matches the whole array.
1963
1964 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1965
1966         * expmed.c (synth_mult): When trying out a shift, pass the result
1967         of a signed shift.
1968
1969 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1970
1971         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1972         (shiftsub1_cost): New.
1973         (init_expmed): Compute shiftsub1_cost.
1974         (synth_mult): Optimize multiplications by constants of the form
1975         -(2^^m-1) for some constant positive integer m.
1976
1977 2009-05-03  Richard Guenther  <rguenther@suse.de>
1978
1979         PR c/39983
1980         * c-typeck.c (array_to_pointer_conversion): Do not built
1981         ADDR_EXPRs of arrays of pointer-to-element type.
1982         * c-gimplify.c (c_gimplify_expr): Revert change fixing
1983         up wrong ADDR_EXPRs after-the-fact.
1984         * c-common.c (strict_aliasing_warning): Strip pointer
1985         conversions for obtaining the original type.
1986         * builtins.c (fold_builtin_memset): Handle array types.
1987         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1988         and array types
1989
1990 2009-05-03  Richard Guenther  <rguenther@suse.de>
1991
1992         PR middle-end/23329
1993         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1994         Do not lose casts from array types with unknown extent to array
1995         types with known extent.
1996         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1997         alias set compatibility.
1998
1999 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2000
2001         * flags.h (extra_warnings): Delete.
2002         * toplev.c (process_options): Handle Wuninitialized here.
2003         * opts.c (extra_warnings): Delete.
2004         (set_Wextra): Delete.
2005         (common_handle_option): -Wextra can be handled automatically.
2006         * c-opts.c (c_common_handle_option): Delete obsolete code.
2007         (c_common_post_options): Simplify comment.
2008         * common.opt (W): Add Var.
2009         (Wextra): Add Var.
2010         (Wuninitialized): Initialize to -1.
2011
2012 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
2013             Richard Guenther  <rguenther@suse.de>
2014
2015         * expr.c (get_def_for_expr): New function.
2016         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
2017         SSA rather than trees.
2018         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
2019         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
2020         
2021 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
2022
2023         * c-common.c (reswords): Add _Imaginary.
2024         * c-common.c (enum rid): Add RID_IMAGINARY.
2025
2026 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
2027
2028         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
2029         Patch by Richard Guenther.
2030
2031 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
2032
2033         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
2034         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2035         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
2036         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
2037         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
2038         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
2039         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
2040         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
2041         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
2042         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
2043         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
2044         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
2045         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
2046         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
2047         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
2048         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
2049         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
2050         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
2051
2052 2009-05-02  Richard Guenther  <rguenther@suse.de>
2053
2054         PR tree-optimization/39940
2055         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
2056         doing so.
2057
2058 2009-05-02  Richard Guenther  <rguenther@suse.de>
2059
2060         PR middle-end/40001
2061         * tree-ssa.c (execute_update_addresses_taken): Properly check
2062         if we can mark a variable DECL_GIMPLE_REG_P.
2063         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
2064         back to the end of the function.
2065         (is_gimple_reg_type): Remove complex type special casing.
2066         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
2067         if not optimizing.
2068
2069 2009-05-02  Ben Elliston  <bje@au.ibm.com>
2070
2071         * doc/collect2.texi (Collect2): Document search path behaviour
2072         when configured with --with-ld.
2073
2074 2009-05-02  Jan Hubicka  <jh@suse.cz>
2075
2076         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
2077         parameter; update callers.
2078         (coalesce_cost_edge): EH edges are costier because they needs
2079         splitting even if not critical and even more costier when there are
2080         multiple EH predecestors.
2081
2082 2009-05-02  Jan Hubicka  <jh@suse.cz>
2083
2084         * except.c (remove_eh_handler_and_replace): Handle updating after
2085         removing TRY blocks.
2086
2087 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2088
2089         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
2090
2091 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
2092
2093         * varasm.c: Do not include c-pragma.h.
2094         * attribs.c: Do not incude c-common.h.
2095
2096 2009-05-01  Michael Matz  <matz@suse.de>
2097
2098         * calls.c (initialize_argument_information): Handle SSA names like
2099         decls with a non MEM_P DECL_RTL.
2100
2101 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
2102
2103         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
2104         * ipa-utils.c: Likewise.
2105         * ipa-type-escape.c: Likewise.
2106         * cgraphunit.c Do not include c-common.h.
2107         * ipa-pure-const.c: Likewise.
2108         * tree-if-conv.c: Likewise.
2109         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
2110         * ipa-struct-reorg.c: Likewise.
2111         * tree-nomudflap.c: Likewise.
2112         * tree-ssa-structalias.c: Likewise.
2113
2114 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
2115
2116         * store-motion.c: Many cleanups to make this pass a first-class
2117         citizen instead of an appendix to gcse load motion.  Add TODO list
2118         to make this pass faster/cleaner/better.
2119
2120         (struct ls_expr): Post gcse.c-split cleanups.
2121         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
2122         "stores" field to "avail_stores".
2123         (pre_ldst_mems): Rename to store_motion_mems.
2124         (pre_ldst_table): Rename to store_motion_mems_table.
2125         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
2126         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
2127         (ldst_entry): Rename to st_expr_entry, update users.
2128         (free_ldst_entry): Rename to free_st_expr_entry, update users.
2129         (free_ldst_mems): Rename to free_store_motion_mems, update users.
2130         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
2131         update caller.
2132         (first_ls_expr): Rename to first_st_expr, update users.
2133         (next_ls_expr): Rename to next_st_expr, update users.
2134         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
2135         fields properly for store motion instead of names inherited from load
2136         motion in gcse.c.
2137         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
2138         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
2139         are done with it.
2140
2141         (ae_kill): Rename to st_kill, update users.
2142         (ae_gen): Rename to st_avloc, update users.
2143         (transp): Rename to st_transp, update users.
2144         (pre_insert_map): Rename to st_insert_map, update users.
2145         (pre_delete_map): Rename to st_delete_map, update users.
2146         (insert_store, build_store_vectors, free_store_memory,
2147         one_store_motion_pass): Update for abovementioned changes.
2148
2149         (gcse_subst_count, gcse_create_count): Remove.
2150         (one_store_motion_pass): New statistics counters "n_stores_deleted"
2151         and "n_stores_created", local variables.
2152
2153         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2154         use for_each_rtx.
2155
2156         (regvec, compute_store_table_current_insn): Remove.
2157         (reg_set_info, reg_clear_last_set): Remove.
2158         (compute_store_table): Use DF caches instead of local dataflow
2159         solvers.
2160
2161 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
2162
2163         * c-objc-common.c (c_tree_printer): Print identifiers with
2164         pp_identifier, not pp_string.  Mark "({anonymous})" for
2165         translation.
2166         * c-pretty-print.c (pp_c_ws_string): New.
2167         (pp_c_cv_qualifier, pp_c_type_specifier,
2168         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2169         pp_c_storage_class_specifier, pp_c_function_specifier,
2170         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2171         pp_c_primary_expression, pp_c_postfix_expression,
2172         pp_c_unary_expression, pp_c_shift_expression,
2173         pp_c_relational_expression, pp_c_equality_expression,
2174         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2175         use pp_string and pp_c_ws_string in place of pp_identifier and
2176         pp_c_identifier for non-identifiers.  Mark English strings for
2177         translation.
2178         * c-pretty-print.h (pp_c_ws_string): Declare.
2179
2180 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
2181             Roland McGrath <roland@redhat.com>
2182
2183         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2184         (ENABLE_LD_BUILDID): New configuration option.
2185         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2186         (LINK_BUILDID_SPEC): New macro.
2187         (init_spec): If defined, prepend it between LINK_EH_SPEC and
2188         link_spec.
2189         * doc/install.texi: Document --enable-linker-build-id option.
2190         * configure: Rebuild.
2191         * config.in: Rebuild.
2192
2193 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
2194
2195         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2196         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2197         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
2198         MIPS_GP_SAVE_AREA_SIZE.
2199         * config/mips/mips.c (struct mips_frame_info): Update comment
2200         before arg_pointer_offset and hard_frame_pointer_offset.
2201         (mips_compute_frame_info): Update diagram before function: to
2202         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2203         indicate the position of frame_pointer_rtx with -fstack-protector and
2204         to show args_size.  Don't allocate cprestore area for leaf functions
2205         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
2206         cprestore_size.
2207         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2208
2209 2009-04-30  Michael Matz  <matz@suse.de>
2210
2211         PR tree-optimization/39955
2212         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2213
2214 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2215
2216         * ira.c (setup_cover_and_important_classes):  Use safe macro
2217         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2218         directly.
2219         * genpreds.c (write_tm_preds_h):  Output suitable definition of
2220         REG_CLASS_FOR_CONSTRAINT.
2221
2222 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2223
2224         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2225         instead of an int.
2226         * bitmap.c (bitmap_descriptor): Likewise.
2227         * ggc-common.c (loc_descriptor): Likewise.
2228         * varray.c (varray_descriptor): Likewise.
2229         * vec.c (vec_descriptor): Likewise.
2230
2231 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2232
2233         * Makefile.in (dce.o): Add $(EXCEPT_H).
2234         * dce.c: Include except.h and delete redundant vector definitions.
2235         (deletable_insn_p): Return false for non-call insns that can throw
2236         if DF is running.
2237
2238 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2239
2240         * gcse.c (ae_gen): Remove.
2241         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2242         and make non-static function to make it available in store-motion.c.
2243         Update call sites with search-and-replace.
2244         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2245         extract_mentioned_regs, extract_mentioned_regs_helper,
2246         find_moveable_store, compute_store_table, load_kills_store, find_loads,
2247         store_killed_in_insn, store_killed_after, store_killed_before,
2248         build_store_vectors, insert_insn_start_basic_block, insert-store,
2249         remove_reachable_equiv_notes, replace_store_insn, delete_store,
2250         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2251         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2252         * store-motion.c: ...new file.  Also copy data structures from gcse.c
2253         and clean up to remove parts not used by store motion.
2254         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2255         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2256
2257 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2258
2259         PR target/38571
2260         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2261         when optimizing for size.
2262
2263 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
2264
2265         * gcse.c (gcse_constant_p): Fix typo in last change.
2266
2267 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2268
2269         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2270
2271 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2272
2273         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2274
2275 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
2276
2277         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2278         CONST_HIGH_PART result.
2279
2280 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
2281
2282         * config/avr/avr.c (initial_elimination_offset): Rename to
2283         avr_initial_elimination_offset.
2284         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2285         change return type to bool.
2286         (avr_can_eliminate): New function.
2287         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2288         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2289         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2290         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2291         avr_initial_elimination_offset.
2292         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2293         (avr_initial_elimination_offset): Define.
2294
2295 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
2296             Steven Bosscher  <steven@gcc.gnu.org>
2297
2298         PR rtl-optimization/39938
2299         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2300         * cfgrtl.c: Include insn-attr.h.
2301         (rest_of_pass_free_cfg): New function.
2302         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2303         * resource.c (init_resource_info): Remove call to df_analyze.
2304
2305 2009-04-29  Richard Guenther  <rguenther@suse.de>
2306
2307         PR target/39943
2308         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2309         allow conversion to signed integers.
2310
2311 2009-04-29  Richard Guenther  <rguenther@suse.de>
2312
2313         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2314         shifts of floating point vectors if the shift amount is
2315         a constant multiple of the element size.
2316
2317 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2318             Michael Matz  <matz@suse.de>
2319
2320         PR middle-end/39927
2321         PR bootstrap/39929
2322         * tree-outof-ssa.c (emit_partition_copy): New function.
2323         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2324         insert_part_to_rtx_on_edge): Perform the partition base var
2325         copy using emit_partition_copy.
2326         (insert_value_copy_on_edge): Convert constants to the right mode.
2327         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2328         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2329
2330 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2331
2332         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2333         scan backwards to try to find a constant to initialize it.
2334
2335         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2336         insn before the loop_end instruction, don't look past labels.
2337
2338 2009-04-29  Richard Guenther  <rguenther@suse.de>
2339
2340         PR middle-end/39937
2341         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2342         loose type conversions.
2343         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
2344         stmts only if there are no uses of its definition.
2345
2346 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2347
2348         * config/bfin/bfin.h (splitting_loops): Declare.
2349         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2350         Reorder bit definitions to be ascending.
2351         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2352         * config/bfin/bfin.c (splitting_loops): New variable.
2353         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2354         (struct loop_info): Remove members INIT and LOOP_INIT.
2355         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
2356         the LSETUP sequence.  Allow LC to be loaded from any register, but
2357         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2358         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2359         set to 1.
2360         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2361         of reload_completed.
2362
2363         From Jie Zhang:
2364         * config/bfin/bfin.md (movsi_insn): Refine constraints.
2365
2366 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
2367
2368         * Makefile.in (PLUGIN_VERSION_H): New.
2369         (OBJS-common): Remove plugin-version.o.
2370         (plugin.o): Depend on (PLUGIN_VERSION_H).
2371         (plugin-version.o): Remove.
2372         * configure: Regenerate
2373         * configure.ac: Create plugin-version.h.
2374         * gcc-plugin.h (plugin_gcc_version): Remove.
2375         (plugin_default_version_check): Change signature.
2376         * plugin-version.c: Remove.
2377         * plugin.c: Include plugin-version.h.
2378         (str_plugin_gcc_version_name): Remove.
2379         (try_init_one_plugin): Pass gcc version to plugin_init.
2380         (plugin_default_version_check): Both gcc and plugin versions are now
2381         arguments.
2382
2383 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2384         
2385         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2386         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
2387         Remove special case testing for last insn of inner loops. Don't fail
2388         if the loop ends with a jump, emit an extra nop instead.
2389
2390         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2391         DREGS rather than comparing directly.  Remove code that tries to
2392         account for latencies.
2393
2394 2009-04-29  Richard Guenther  <rguenther@suse.de>
2395
2396         PR tree-optimization/39941
2397         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2398         eliminating an indirect call.
2399
2400 2009-04-29  Richard Guenther  <rguenther@suse.de>
2401
2402         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2403         parameter.  Allow invariants as base if !require_lvalue.
2404         (verify_gimple_assign_single): Adjust.
2405
2406 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2407
2408         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2409         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2410         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2411         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2412         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2413         a VEC_SELECT.
2414         * config/bfin/bfin.c (bfin_expand_builtin,
2415         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2416
2417 2009-04-28  Richard Guenther  <rguenther@suse.de>
2418
2419         * tree-vect-loop.c (get_initial_def_for_induction): Use
2420         correct types for pointer increment.
2421
2422 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2423
2424         * toplev.c (print_version): Update GMP version string calculation.
2425
2426 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2427
2428         PR rtl-optimization/39938
2429         * resource.c (init_resource_info): Add call to df_analyze.
2430
2431 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2432
2433         * config/alpha/alpha.md (usegp): Cast the result of
2434         alpha_find_lo_sum_using_gp to enum attr_usegp.
2435         * config/alpha/alpha.c (override_options): Remove end-of-structure
2436         marker element from cpu_table.  Use array size of cpu_table to handle
2437         -mcpu and -mtune options.
2438         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2439
2440 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
2441
2442         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2443         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
2444         tune_32 and tune_64.
2445         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2446         support on PowerPC.
2447         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2448         * config/rs6000/option-defaults.h: ... here.  New file.
2449         (OPT_64, OPT_32): Define.
2450         (MASK_64BIT): Define to 0 if not already defined.
2451         (OPT_ARCH64, OPT_ARCH32): Define.
2452         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2453         and tune_64.
2454
2455 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2456
2457         * config/arm/arm.c (arm_override_options): Emit error on using
2458         fpa with AAPCS.
2459
2460 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2461
2462         PR rtl-optimization/39914
2463         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2464         registers for allocnos created from user-defined variables only
2465         when not optimizing.
2466
2467 2009-04-28  Richard Guenther  <rguenther@suse.de>
2468
2469         PR middle-end/39937
2470         * fold-const.c (fold_binary): Use distribute_real_division only
2471         on float types.
2472
2473 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
2474
2475         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2476         add hpux-stdint.h to tm_file.
2477         (hppa[12]*-*-hpux11*): Ditto.
2478         (ia64*-*-hpux*): Ditto.
2479         * config/hpux-stdint.h: New.
2480         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
2481         __STDC_EXT__ for all compiles.
2482         * config/pa/pa-hpux.h: Ditto.
2483         * config/pa/pa-hpux10.h: Ditto.
2484         * config/pa/pa-hpux11.h: Ditto.
2485
2486 2009-04-28  Catherine Moore  <clm@codesourcery.com>
2487
2488         * debug.h (set_name): Add comment.
2489
2490 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
2491
2492         PR target/39929
2493         * config/darwin.c (machopic_gen_offset): Check
2494         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2495         * config/arm/arm.c (require_pic_register): Likewise.
2496
2497 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
2498
2499         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2500         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2501         m32c_promote_prototypes): Delete.
2502
2503 2009-04-28  Michael Matz  <matz@suse.de>
2504
2505         PR middle-end/39922
2506         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2507         constants.
2508
2509 2009-04-28  Richard Guenther  <rguenther@suse.de>
2510
2511         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2512
2513 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2514
2515         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2516         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2517         * config/arm/arm-tune.md: Regenerate.
2518
2519 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
2520
2521         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2522         block if there are complex incoming edges.
2523         (sel_merge_blocks): Remove useless assert.
2524         (sel_redirect_edge_and_branch): Check that edge was redirected.
2525         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2526         (sel_find_rgns): Delete declaration.
2527         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2528         the region when it is not a preheader.
2529
2530 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2531
2532         PR c/39323
2533         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2534
2535 2009-04-28  Richard Guenther  <rguenther@suse.de>
2536
2537         * tree.h (SSA_NAME_VALUE): Remove.
2538         (struct tree_ssa_name): Remove value_handle member.
2539         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2540         array for jump threading.
2541         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2542         SSA_NAME_VALUEs.
2543         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2544         * tree-flow.h (threadedge_initialize_values): Declare.
2545         (threadedge_finalize_values): Likewise.
2546         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2547         (SSA_NAME_VALUE): Define.
2548         (threadedge_initialize_values): New function.
2549         (threadedge_finalize_values): Likewise.
2550         * tree-ssa-dom.c (ssa_name_values): New global variable.
2551         (SSA_NAME_VALUE): Define.
2552         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
2553
2554 2009-04-28  Ira Rosen  <irar@il.ibm.com>
2555
2556         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2557         Use REPORT_VECTORIZED_LOCATIONS instead 
2558         REPORT_VECTORIZED_LOOPS.
2559         * tree-vectorizer.c (vect_verbosity_level): Make static.
2560         (vect_loop_location): Rename to vect_location.
2561         (vect_set_verbosity_level): Update comment.
2562         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2563         and vect_location.
2564         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2565         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2566         instead REPORT_UNVECTORIZED_LOOPS.
2567         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2568         and vect_loop_def to vect_external_def and vect_internal_def.
2569         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
2570         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
2571         REPORT_UNVECTORIZED_LOCATIONS.
2572         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2573         and vect_used_in_loop and to vect_unused_in_scope and 
2574         vect_used_in_scope.
2575         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2576         (vect_verbosity_level): Remove declaration.
2577         (vect_analyze_operations): Likewise.
2578         (vect_analyze_stmt): Declare.
2579         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2580         REPORT_UNVECTORIZED_LOCATIONS.
2581         (vect_get_loop_niters): Fix indentation.
2582         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2583         (vect_analyze_loop_operations): New function.
2584         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2585         vect_analyze_operations.
2586         (vect_is_simple_reduction): Use new names.
2587         (vectorizable_live_operation, vect_transform_loop): Likewise.
2588         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2589         to specify whether the data references can be a part of interleaving
2590         chain.
2591         (vect_analyze_data_ref_dependence): Use new names.
2592         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2593         (vect_create_addr_base_for_vector_ref): Remove redundant code.
2594         * tree-vect-patterns.c (widened_name_p): Use new names.
2595         (vect_recog_dot_prod_pattern): Likewise.
2596         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2597         (process_use, vect_mark_stmts_to_be_vectorized, 
2598         vect_model_simple_cost, vect_model_store_cost,
2599         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2600         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2601         vectorizable_operation, vectorizable_type_demotion,
2602         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2603         vectorizable_condition): Likewise.
2604         (vect_analyze_operations): Split into vect_analyze_loop_operations
2605         and ...
2606         (vect_analyze_stmt): ... new function.
2607         (new_stmt_vec_info): Use new names.
2608         (vect_is_simple_use): Use new names and fix comment.
2609         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2610         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2611
2612 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2613
2614         PR target/39911
2615         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2616         and integer modes for x87 operands.  Do not ICE for unsupported size,
2617         generate error instead.  Generate error for unsupported operand types.
2618         ['z']: Do not handle HImode memory operands specially.  Warning
2619         for floating-point operands.  Fallthru to 'Z' for unsupported operand
2620         types.  Do not ICE for unsupported size, generate error instead.
2621         (output_387_binary_op): Use %Z to output operands.
2622         (output_fp_compare): Ditto.
2623         (output_387_reg_move): Ditto.
2624
2625 2009-04-28  Ben Elliston  <bje@au.ibm.com>
2626
2627         PR c++/35652
2628         Revert:
2629
2630         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2631
2632         * builtins.c (c_strlen): Do not warn here.
2633         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2634         * c-common.c (pointer_int_sum): Take an explicit location.
2635         Warn about offsets out of bounds.
2636         * c-common.h (pointer_int_sum): Adjust declaration.
2637
2638 2009-04-27  Ian Lance Taylor  <iant@google.com>
2639
2640         * collect2.c (is_ctor_dtor): Change type of ret field in struct
2641         names to symkind.
2642         * dce.c (run_fast_df_dce): Change type of old_flags to int.
2643         * df-core.c (df_set_flags): Change return type to int.  Change
2644         type of old_flags to int.
2645         (df_clear_flags): Likewise.
2646         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2647         (df_get_conditional_uses): Likewise.
2648         * df.h (df_set_flags, df_clear_flags): Update declarations.
2649         * dwarf2out.c (struct indirect_string_node): Change type of form
2650         field to enum dwarf_form.
2651         (AT_string_form): Change return type to enum dwarf_form.
2652         * fixed-value.c (fixed_compare): Add cast to enum type.
2653         * fwprop.c (update_df): Change 0 to VOIDmode.
2654         * gensupport.c: Change 0 to UNKNOWN.
2655         * gimple.h (gimple_cond_code): Add cast to enum type.
2656         * haifa-sched.c (reemit_notes): Add cast to enum type.
2657         * hooks.c (hook_int_void_no_regs): Remove function.
2658         * hooks.h (hook_int_void_no_regs): Remove declaration.
2659         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
2660         * predict.c (combine_predictions_for_insn): Add casts to enum type.
2661         * real.c (real_arithmetic): Add cast to enum type.
2662         (real_compare): Likewise.
2663         * target.h (struct gcc_target): Change return type of
2664         branch_target_register_class to enum reg_class.
2665         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2666         default_branch_target_register_class.
2667         * targhooks.c (default_branch_target_register_class): New function.
2668         * targhooks.h (default_branch_target_register_class): Declare.
2669         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
2670         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2671         cast to int.
2672         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2673         ERROR_MARK.
2674         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2675         vect_uninitialized_def.  Change 0 to ERROR_MARK.
2676         * tree-vect-stmts.c (supportable_widening_operation): Don't
2677         initialize icode1 and icode2.
2678         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
2679         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2680         and to STD_C89.
2681         (cmn_err_flag_specs): Change 0 to STD_C89.
2682         (cmn_err_char_table): Likewise.
2683         * config/arm/arm.c (get_arm_condition_code): Change type of code
2684         to enum arm_cond_code.
2685         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2686         (IWMMXT_BUILTIN2): Likewise.
2687         (neon_builtin_type_bits): Don't define typedef.
2688         (neon_builtin_datum): Change type of bits field to int.
2689         (arm_expand_neon_args): Add cast to enum type.
2690         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2691         TLS_MODEL_NONE.
2692         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
2693         casts to enum type.
2694         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2695         MIPS_FP_COND_f.
2696         * config/mips/mips.md (jal_macro): Return enum constant.
2697         (single_insn): Likewise.
2698         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2699         CODE_FOR_nothing.
2700         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2701         casts to enum type.
2702         * config/s390/s390.c (s390_tune_flags): Change type to int.
2703         (s390_arch_flags): Likewise.
2704         (s390_handle_arch_option): Change flags field of struct pta to int.
2705         * config/s390/s390.h (s390_tune_flags): Update declaration.
2706         (s390_arch_flags): Likewise.
2707         * config/sh/sh.c (prepare_move_operands): Compare
2708         tls_symbolic_operand result with enum constant.
2709         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2710         (sh_expand_prologue): Add cast to enum type.
2711         (sh_expand_epilogue): Likewise.
2712         (tls_symbolic_operand): Change return type to enum tls_model.
2713         (fpscr_set_from_mem): Add cast to enum type.
2714         (legitimize_pic_address): Compare tls_symbolic_operand result with
2715         enum constant.
2716         (sh_target_reg_class): Change return type to enum reg_class.
2717         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2718         PROCESSOR_xxx.
2719         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2720         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
2721         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2722         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2723         (delayed_branch, tls_call_delay): Likewise.
2724         (eligible_for_sibcall_delay): Likewise.
2725         (eligible_for_return_delay): Likewise. 
2726         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2727         (spu_expand_builtin_1): Likewise.
2728
2729         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2730         for all types of conversions.
2731         (output_init_element): Issue -Wc++-compat warning if needed when
2732         initializing a bitfield with enum type.
2733         * c-parser.c (c_parser_expression): Set original_type to
2734         original_type of right hand operand of comman operator.
2735
2736 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2737
2738         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2739         grammar nits.
2740         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
2741         * doc/cpp.texi (Standard Predefined Macros)
2742         (Implementation-defined behavior): Likewise.
2743         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
2744         * doc/gimple.texi (GIMPLE Exception Handling)
2745         (@code{GIMPLE_ASSIGN}): Likewise.
2746         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
2747         * doc/invoke.texi (Warning Options, Optimize Options)
2748         (AVR Options, Darwin Options): Likewise.
2749         (Optimize Options): Reformulate -fwhole-program description.
2750         * doc/loop.texi (Lambda): Likewise.
2751         * doc/md.texi (Output Template, Define Constraints)
2752         (Standard Names, Insn Splitting): Likewise.
2753         * doc/options.texi (Option properties): Likewise.
2754         * doc/passes.texi (Tree-SSA passes): Likewise.
2755         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2756         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2757         (File Names and DBX): Likewise.
2758         * doc/trouble.texi (Incompatibilities): Likewise.
2759
2760 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2761
2762         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2763         instruction is correct.
2764
2765 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2766
2767         Allow non-constant arguments to conversion intrinsics.
2768         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2769         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2770         * spu.c (print_operand): Handle 'v' and 'w'.
2771         (exp2_immediate_p, spu_gen_exp2): Define.
2772         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2773         spu_convtf_1): Update parameter descriptions.
2774         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
2775         * constraints.md ('v', 'w'): New.
2776         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2777         Remove.
2778         (i2f, I2F): New define_mode_attr.
2779         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2780         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2781         fixuns_truncv4sfv4si2):  Update to use mode attribute.
2782         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2783         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2784         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2785         patterns for combine.
2786
2787 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
2788
2789         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2790         (cprop, hoist, pre, store_motion): New debug counters.
2791         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2792         is not an RTL pass anymore.
2793         (pass_profiling): Remove extern decl for pass removed in 2005.
2794         (pass_gcse, pass_jump_bypass): Remove.
2795         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2796         to 0 for clean state.
2797         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2798         * cse.c (gate_handle_cse_after_global_opts,
2799         rest_of_handle_cse_after_global_opts): New functions.
2800         (pass_cse_after_global_opts): New pass, does local CSE.
2801         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2802         (TV_CPROP): New timevar.
2803         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2804         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2805         (gcse_main, recompute_all_luids): Remove.
2806         (compute_hash_table_work): Call max_reg_num instead of reading
2807         max_gcse_regno.
2808         (cprop_jump): Don't set run_jump_opt_after_gcse.
2809         (constprop_register): Always allow to alter jumps.
2810         (cprop_insn): Likewise.
2811         (do_local_cprop): Likewise.
2812         (local_cprop_pass): Likewise.  Return non-zero if something changed.
2813         (cprop): Remove function, fold interesting bits into one_cprop_pass.
2814         (find_implicit_sets): Add note about missed optimization opportunity.
2815         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2816         pass_rtl_cprop execute function.
2817         Don't bother tracking the pass number, each pass gets its own dumpfile
2818         now anyway.
2819         Always allow to alter jumpsand bypass jumps.
2820         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2821         will just find no suitable set.
2822         (pre_edge_insert): Fix dumping, this function is for PRE only.
2823         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2824         pass_rtl_pre execute function.
2825         (hoist_code): Return non-zero if something changed.  Keep track of
2826         substitutions and insertions for statistics gathering similar to PRE.
2827         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2828         called from the pass_rtl_hoist execute function.  Show pass statistics.
2829         (compute_store_table): Use max_reg_num directly instead of using the
2830         formerly global max_gcse_regno.
2831         (build_store_vectors): Likewise.
2832         (replace_store_insn): Fix dumping.
2833         (store_motion): Rename to ...
2834         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
2835         pass, called from the pass_rtl_store_motion execute function.  Keep
2836         track of substitutions and insertions for statistics gathering similar
2837         to PRE.
2838         (bypass_jumps): Remove, fold interesting bits into ...
2839         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
2840         from the pass_rtl_cprop execute function.
2841         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2842         pass_jump_bypass): Remove.
2843         (gate_handle_gcse, rest_of_handle_gcse): Remove.
2844         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2845         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2846         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2847         (gate_rtl_store_motion, execute_rtl_store_motion,
2848         pass_rtl_store_motion): New.
2849         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2850         make it clear that -fcse-skip-blocks is a no-op for backward compat.
2851         * passes.c (init_optimization_passes): Remove pass_gcse and
2852         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
2853         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
2854         instead of pass_jump_bypass.
2855
2856 2009-04-27  Richard Guenther  <rguenther@suse.de>
2857
2858         PR middle-end/39928
2859         * gimplify.c (gimplify_expr): If we are required to create
2860         a temporary make sure it ends up as register.
2861
2862 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
2863
2864         PR target/39903
2865         * config/i386/i386.c (construct_container): Don't call
2866         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2867         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2868
2869 2009-04-27  Michael Matz  <matz@suse.de>
2870
2871         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2872         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2873         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2874         (dump_replaceable_exprs): Take a bitmap.
2875         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2876         array.
2877         (expand_gimple_basic_block): Likewise.
2878         * tree-ssa-ter.c (struct temp_expr_table_d): Make
2879         replaceable_expressions member a bitmap.
2880         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2881         (mark_replaceable): Likewise.
2882         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2883         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2884
2885 2009-04-27  Richard Guenther  <rguenther@suse.de>
2886
2887         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2888         (verify_stmts): Dispatch to gimple/type verification code.
2889         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2890         issue with call argument types.
2891
2892 2009-04-27  Michael Matz  <matz@suse.de>
2893
2894         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2895         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2896         to above.
2897
2898 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2899             Eric Botcazou  <ebotcazou@adacore.com>
2900
2901         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2902         a label's basic block.
2903         (mark_target_live_regs): Tidy and rework obsolete comments.
2904         Change back DF problem to LIVE.  If a label starts a basic block,
2905         assume that all registers that used to be live then still are.
2906         (init_resource_info): If a label starts a basic block, set its
2907         BLOCK_FOR_INSN accordingly.
2908         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2909
2910 2009-04-27  Richard Guenther  <rguenther@suse.de>
2911
2912         * tree-flow-inline.h (function_ann): Remove.
2913         (get_function_ann): Likewise.
2914         * tree-dfa.c (create_function_ann): Remove.
2915         * tree-flow.h (struct static_var_ann_d): Remove.
2916         (struct function_ann_d): Likewise.
2917         (union tree_ann_d): Remove fdecl member.
2918         (function_ann_t): Remove.
2919         (function_ann, get_function_ann, create_function_ann): Remove
2920         declarations.
2921
2922 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
2923
2924         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2925
2926 2009-04-27  Jan Hubicka  <jh@suse.cz>
2927
2928         * ipa-pure-const.c (struct funct_state_d): New fields
2929         state_previously_known, looping_previously_known; remove
2930         state_set_in_source.
2931         (analyze_function): Use new fields.
2932         (propagate): Avoid assumption that state_set_in_source imply
2933         nonlooping.
2934
2935         * tree-ssa-loop-niter.c (finite_loop_p): New function.
2936         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2937         * cfgloop.h (finite_loop_p): Declare.
2938
2939 2009-04-26  Michael Matz  <matz@suse.de>
2940
2941         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
2942
2943 2009-04-26  Michael Matz  <matz@suse.de>
2944
2945         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2946         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2947         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2948         pass_mark_used_blocks): Remove.
2949         * tree-optimize.c (pass_free_datastructures,
2950         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2951         * passes.c (init_optimization_passes): Don't call
2952         pass_mark_used_blocks, remove dead code.
2953
2954 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
2955
2956         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2957         * tree-ssa-live.h (register_ssa_partition): Likewise.
2958
2959 2009-04-26  Michael Matz  <matz@suse.de>
2960
2961         Expand from SSA.
2962         * builtins.c (fold_builtin_next_arg): Handle SSA names.
2963         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2964         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2965         SSA names. 
2966         (compare_pairs): Swap cost comparison.
2967         (coalesce_ssa_name): Don't use change_partition_var.
2968         * tree-nrv.c (struct nrv_data): Add modified member.
2969         (finalize_nrv_r): Set it.
2970         (tree_nrv): Use it to update statements.
2971         (pass_nrv): Require PROP_ssa.
2972         * tree-mudflap.c (mf_decl_cache_locals,
2973         mf_build_check_statement_for): Use make_rename_temp.
2974         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2975         * alias.c (find_base_decl): Handle SSA names.
2976         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2977         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2978         * rtl.h (set_reg_attrs_for_parm): Declare.
2979         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2980         to "optimized", remove unused locals at finish.
2981         (execute_free_datastructures): Make global, call
2982         delete_tree_cfg_annotations.
2983         (execute_free_cfg_annotations): Don't call
2984         delete_tree_cfg_annotations.
2985
2986         * ssaexpand.h: New file.
2987         * expr.c (toplevel): Include ssaexpand.h.
2988         (expand_assignment): Handle SSA names the same as register variables.
2989         (expand_expr_real_1): Expand SSA names.
2990         * cfgexpand.c (toplevel): Include ssaexpand.h.
2991         (SA): New global variable.
2992         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2993         (SSAVAR): New macro.
2994         (set_rtl): New helper function.
2995         (add_stack_var): Deal with SSA names, use set_rtl.
2996         (expand_one_stack_var_at): Likewise.
2997         (expand_one_stack_var): Deal with SSA names.
2998         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2999         before unique numbers.
3000         (expand_stack_vars): Use set_rtl.
3001         (expand_one_var): Accept SSA names, add asserts for them, feed them
3002         to above subroutines.
3003         (expand_used_vars): Expand all partitions (without default defs),
3004         then only the local decls (ignoring those expanded already).
3005         (expand_gimple_cond): Remove edges when jumpif() expands an
3006         unconditional jump.
3007         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
3008         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
3009         SSA name.
3010         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
3011         members of SA; deal with PARM_DECL partitions here; expand
3012         all PHI nodes, free tree datastructures and SA.  Commit instructions
3013         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
3014         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
3015         info and statements at start, collect garbage at finish.
3016         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
3017         (VAR_ANN_PARTITION) Remove.
3018         (change_partition_var): Don't declare.
3019         (partition_to_var): Always return SSA names.
3020         (var_to_partition): Only accept SSA names.
3021         (register_ssa_partition): Only check argument.
3022         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
3023         member.
3024         (delete_var_map): Don't free it.
3025         (var_union): Only accept SSA names, simplify.
3026         (partition_view_init): Mark only useful SSA names as used.
3027         (partition_view_fini): Only deal with SSA names.
3028         (change_partition_var): Remove.
3029         (dump_var_map): Use ssa_name instead of partition_to_var member.
3030         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
3031         basic blocks.
3032         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
3033         (struct _elim_graph): New member const_dests; nodes member vector of
3034         ints.
3035         (set_location_for_edge): New static helper.
3036         (create_temp): Remove.
3037         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
3038         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
3039         (new_elim_graph): Allocate const_dests member.
3040         (clean_elim_graph): Truncate const_dests member.
3041         (delete_elim_graph): Free const_dests member.
3042         (elim_graph_size): Adapt to new type of nodes member.
3043         (elim_graph_add_node): Likewise.
3044         (eliminate_name): Likewise.
3045         (eliminate_build): Don't take basic block argument, deal only with
3046         partition numbers, not variables.
3047         (get_temp_reg): New static helper.
3048         (elim_create): Use it, deal with RTL temporaries instead of trees.
3049         (eliminate_phi): Adjust all calls to new signature.
3050         (assign_vars, replace_use_variable, replace_def_variable): Remove.
3051         (rewrite_trees): Only do checking.
3052         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
3053         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
3054         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
3055         contains_tree_r, MAX_STMTS_IN_LATCH,
3056         process_single_block_loop_latch, analyze_edges_for_bb,
3057         perform_edge_inserts): Remove.
3058         (expand_phi_nodes): New global function.
3059         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
3060         functions, initialize new parameter, remember partitions having a
3061         default def.
3062         (finish_out_of_ssa): New global function.
3063         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
3064         don't reset in_ssa_p here, don't disable TER when mudflap.
3065         (pass_del_ssa): Remove.
3066         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
3067         partition members.
3068         (execute_free_datastructures): Declare.
3069         * Makefile.in (SSAEXPAND_H): New variable.
3070         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
3071         * basic-block.h (commit_one_edge_insertion): Declare.
3072         * passes.c (init_optimization_passes): Move pass_nrv and
3073         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
3074         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
3075         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
3076         (redirect_branch_edge): Deal with super block when expanding, split
3077         out jump patching itself into ...
3078         (patch_jump_insn): ... here, new static helper.
3079
3080 2009-04-26  Michael Matz  <matz@suse.de>
3081
3082         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
3083         beyond num_ssa_names.
3084         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
3085         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3086
3087 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
3088
3089         PR inline-asm/39543
3090         * fwprop.c (forward_propagate_asm): New function.
3091         (forward_propagate_and_simplify): Propagate also into __asm, if it
3092         doesn't increase the number of referenced registers.
3093
3094         PR c/39889
3095         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
3096
3097 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
3098
3099         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
3100         note_nonlocal_vla_type for nonlocal VLAs.
3101         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
3102         contains_remapped_vars, remap_vla_decls): New functions.
3103         (convert_nonlocal_reference_stmt): If not optimizing, call
3104         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
3105         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
3106         if it wasn't found in var_map.
3107         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
3108         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
3109         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
3110         declare_vars.
3111         * gimplify.c (nonlocal_vlas): New variable.
3112         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
3113         referenced VLAs.
3114         (gimplify_body): Create and destroy nonlocal_vlas.
3115
3116         * dwarf2out.c (loc_descr_plus_const): New function.
3117         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
3118         mem_loc_descriptor, loc_descriptor_from_tree_1,
3119         descr_info_loc, gen_variable_die): Use it.
3120
3121         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
3122         !TREE_STATIC VAR_DECLs.
3123         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
3124         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
3125         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
3126         DECL_BY_REFERENCE is valid.
3127         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
3128         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
3129         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
3130         Copy DECL_BY_REFERENCE.
3131         (struct nesting_copy_body_data): New type.
3132         (nesting_copy_decl): New function.
3133         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
3134         if they have variable length.
3135
3136 2009-04-26  Michael Matz  <matz@suse.de>
3137
3138         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3139         mark new temporaries for renaming.
3140
3141 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3142
3143         PR c/39581
3144         * c-decl.c (global_bindings_p): Return negative value.
3145         (c_variable_size): New.  Based on variable_size from
3146         stor-layout.c.
3147         (grokdeclarator): Call c_variable_size not variable_size.
3148
3149 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
3150
3151         * config/i386/i386.c (print_operand) ['z']: Fix typo.
3152
3153 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
3154
3155         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3156         Redefine it to just use mingw/include.
3157         (ASM_SPEC): Rules for -m32 and -m64.
3158         (LINK_SPEC): Use Likewise.
3159         (SPEC_32): New define.
3160         (SPEC_64): Likewise.
3161         (SUB_LINK_SPEC): Likewise.
3162         (MULTILIB_DEFAULTS): New define.
3163         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3164         Add multilib options.
3165         (MULTILIB_DIRNAMES): Likewise.
3166         (MULTILIB_OSDIRNAMES): Likewise.
3167         (LIBGCC): Likewise.
3168         (INSTALL_LIBGCC): Likewise.
3169
3170 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3171
3172         PR c/39556
3173         * c-tree.h (enum c_inline_static_type): New.
3174         (record_inline_static): Declare.
3175         * c-decl.c (struct c_inline_static, c_inline_statics,
3176         record_inline_static, check_inline_statics): New.
3177         (pop_file_scope): Call check_inline_statics.
3178         (start_decl): Call record_inline_static instead of pedwarning
3179         directly for static in inline function.
3180         * c-typeck.c (build_external_ref): Call record_inline_static
3181         instead of pedwarning directly for static referenced in inline
3182         function.
3183
3184 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
3185
3186         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3187         not new but only being rescanned.
3188         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3189         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3190         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3191         record_set_info, compute_set, grealloc): Remove.
3192         (recompute_all_luids): New function.
3193         (gcse_main): Don't compute sets, and don't do related memory
3194         allocations/free-ing.  If something changed before the end of the
3195         pass, update LUIDs using recompute_all_luids.
3196         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
3197         (free_gcse_mem): Don't free it either.
3198         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3199         Use the df insn LUIDs.
3200         (load_killed_in_block): Likewise.
3201         (compute_hash_table_work): Don't compute reg_set_in_block.
3202         (compute_transp): Use DF_REG_DEF_CHAINs.
3203         (local_cprop_pass): Don't use compute_sets and related functions.
3204         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3205         Use get_max_uid() instead of max_cuid.
3206         (insert_insn_end_basic_block, pre_insert_copy_insn,
3207         update_ld_motion_stores): Don't try to
3208         keep reg_set tables up to date.
3209         (pre_insert_copies): Use df insn LUIDs.
3210         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3211         (reg_set_info): Don't use extra bitmap argument.
3212         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
3213         information to compute regs_set_in_block.
3214         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3215         (bypass_jumps): Don't use compute_sets and friends.
3216
3217 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3218
3219         PR testsuite/39710
3220         * opts.c (undocumented_msg): Do not leave blank even with
3221         ENABLE_CHECKING.
3222
3223 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3224
3225         * c-decl.c (build_enumerator): Allow values folding to integer
3226         constants but not integer constant expressions with a pedwarn if
3227         pedantic.
3228
3229 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3230
3231         PR c/39582
3232         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3233         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3234         type is an integer constant.
3235
3236 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3237
3238         PR target/39897
3239         * config/i386/i386.c (print_operand) ['z']: Revert handling of
3240         HImode operands.
3241
3242 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3243
3244         PR c/39564
3245         * c-decl.c (grokdeclarator): Diagnose declarations of functions
3246         with variably modified return type and no storage class
3247         specifiers, except for the case of nested functions.  Distinguish
3248         extern declarations of functions with variably modified return
3249         types from those of objects with variably modified types.
3250
3251 2009-04-25  Jan Hubicka  <jh@suse.cz>
3252
3253         * tree.c (list_equal_p): New function.
3254         * tree.h (list_equal_p): Declare.
3255         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3256         basic_block_def, basic_block, const_basic_block): New.
3257         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3258         (redirect_eh_edge): New function.
3259         (make_eh_edge_update_phi): EH edges are not abnormal.
3260         * except.c: Include tree-flow.h.
3261         (list_match): New function.
3262         (eh_region_replaceable_by_p): New function.
3263         (replace_region): New function.
3264         (hash_type_list): New function.
3265         (hash_eh_region): New function.
3266         (eh_regions_equal_p): New function.
3267         (merge_peers): New function.
3268         (remove_unreachable_regions): Verify EH tree when checking;
3269         merge peers.
3270         (copy_eh_region_1): New function.
3271         (copy_eh_region): New function.
3272         (push_reachable_handler): New function.
3273         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3274         regions without label but with live RESX.
3275         * except.h (redirect_eh_edge_to_label): New.
3276         * tree-flow.h (redirect_eh_edge): New.
3277         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3278         basic_block_def, basic_block, const_basic_block): Remove.
3279         * Makefile.in (except.o): Add dependency on tree-flow.h
3280         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3281         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3282         Remove.
3283
3284 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3285
3286         PR bootstrap/39645
3287         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3288         on the destination of memcpy.
3289
3290 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
3291
3292         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3293         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3294         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3295
3296 2009-04-25  Jan Hubicka  <jh@suse.cz>
3297
3298         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3299         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3300         to be reached by different label than left.
3301         (update_eh_edges): Update comment; remove edge_to_remove if possible
3302         and return true if suceeded.
3303         (cleanup_empty_eh): Accept sharing map; handle shared regions.
3304         (cleanup_eh): Compute sharing map.
3305         * except.c (remove_eh_handler_and_replace): Add argument if we should
3306         update regions.
3307         (remove_unreachable_regions): Update for label sharing.
3308         (label_to_region_map): Likewise.
3309         (get_next_region_sharing_label): New function.
3310         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3311         prev_try pointers.
3312         (remove_eh_handler): Update.
3313         (remove_eh_region_and_replace_by_outer_of): New function.
3314         * except.h (struct eh_region): Add next_region_sharing_label.
3315         (remove_eh_region_and_replace_by_outer_of,
3316         get_next_region_sharing_label): Declare.
3317         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3318
3319 2009-04-25  Jan Hubicka  <jh@suse.cz>
3320
3321         * tree-cfg.c (split_critical_edges): Split also edges where we can't
3322         insert code even if they are not critical.
3323
3324 2009-04-25  Jan Hubicka  <jh@suse.cz>
3325
3326         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3327         (gimple_can_remove_branch_p): EH edges won't remove branch by
3328         redirection.
3329         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3330         updating of non-abnormal EH edges.
3331         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3332         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3333         (split_critical_edges): Split also edges where emitting code on them
3334         will lead to splitting later.
3335
3336 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3337             H.J. Lu  <hongjiu.lu@intel.com>
3338
3339         PR target/39590
3340         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3341         the configured assembler supports fildq and fistpq mnemonics.
3342         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3343         * configure: Regenerated.
3344         * config.in: Ditto.
3345
3346         * config/i386/i386.c (print_operand): Handle 'Z'.
3347         ['z']: Remove handling of special fild/fist suffixes.
3348         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3349         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3350         suffix of fild insn.
3351         (*floatsi<mode>2_vector_mixed): Ditto.
3352         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3353         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3354         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3355         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3356         * config/i386/gas.h (GAS_MNEMONICS): Remove.
3357
3358 2009-04-25  Ben Elliston  <bje@au.ibm.com>
3359  
3360         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3361         the source of a set operation.
3362
3363 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
3364
3365         * target.h (struct gcc_target): Add case_values_threshold field.
3366         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3367         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3368         * targhooks.c (default_case_values_threshold): New function.
3369         * targhooks.h (default_case_values_threshold): Declare function.
3370         * stmt.c (expand_case): Use case_values_threshold target hook.
3371         * expr.h (case_values_threshold): Remove declartation.
3372         * expr.c (case_values_threshold): Remove function.
3373         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3374
3375         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3376         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3377         (avr_case_values_threshold): Declare as static.
3378         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3379
3380         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3381         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3382         (mn10300_case_values_threshold): New function.
3383
3384 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3385
3386         * ira.c (setup_cover_and_important_classes): Add enum cast.
3387
3388 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3389
3390         * genpreds.c (write_enum_constraint_num): Output definition of
3391         CONSTRAINT_NUM_DEFINED_P macro.
3392         * ira.c (setup_cover_and_important_classes): Use
3393         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3394         
3395 2009-04-24  DJ Delorie  <dj@redhat.com>
3396
3397         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3398         __SH2A_SINGLE_ONLY__ also.
3399
3400 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
3401
3402         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3403         (movdf_internal): Ditto.
3404         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3405         SFmode and DFmode constants.
3406         (ia64_print_operand): Add 'G' format for printing
3407         floating point constants.
3408
3409 2009-04-24  Richard Guenther  <rguenther@suse.de>
3410
3411         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3412         from unsigned additions.
3413
3414 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
3415
3416         * c-typeck.c (set_init_index): Allow array designators that are
3417         not integer constant expressions with a pedwarn if pedantic.
3418
3419 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3420
3421         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3422         zero if no overlap in nonzero bits between the operands.
3423
3424 2009-04-24  Ian Lance Taylor  <iant@google.com>
3425
3426         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3427         (record_dead_and_set_regs): Likewise.
3428         * df.h (struct df_mw_hardreg): Change flags field to int.
3429         (struct df_base_ref): Likewise.
3430         (struct df): Change changeable_flags field to int.
3431         * df-scan.c (df_defs_record): Change clobber_flags to int.
3432         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3433         constants rather than #define macros.
3434         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3435         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3436         (enum dwarf_calling_convention): Likewise.
3437         (enum dwarf_line_number_x_ops): Likewise.
3438         (enum dwarf_call_frame_info): Likewise.
3439         (enum dwarf_source_language): Likewise.
3440         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3441         (add_calling_convention_attribute): Likewise.
3442         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3443         (combine_comparisons): Change compcode to int.  Add cast to enum type.
3444         * genrecog.c (maybe_both_true_2): Change c to int.
3445         (write_switch): Likewise.  Add cast to enum type.
3446         * gimplify.c (gimplify_omp_for): Handle return values from
3447         gimplify_expr using MIN rather than bitwise or.
3448         (gimplify_expr): Add cast to enum type.
3449         * ipa-prop.c (update_jump_functions_after_inlining): Change
3450         IPA_BOTTOM to IPA_JF_UNKNOWN.
3451         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3452         Add casts to enum type.
3453         (setup_cover_and_important_classes): Change cl to int.  Add casts
3454         to enum type.
3455         (setup_class_translate): Change cl and mode to int.
3456         (ira_init_once): Change mode to int.
3457         (free_register_move_costs): Likewise.
3458         (setup_prohibited_mode_move_regs): Add casts to enum type.
3459         * langhooks.c (add_builtin_function_common): Rework assertion that
3460         value fits bitfield.
3461         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3462         * omega.c (omega_do_elimination): Avoid math on enum types.
3463         * optabs.c (expand_vec_shift_expr): Remove casts to int.
3464         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
3465         int local to handle integral_argment value.
3466         * regmove.c (try_auto_increment): Change PUT_MODE to
3467         PUT_REG_NOTE_KIND.
3468         * reload.c (push_secondary_reload): Add casts to enum type.
3469         (secondary_reload_class, find_valid_class): Likewise.
3470         * reload1.c (emit_input_reload_insns): Likewise.
3471         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3472         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3473         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3474         constant.
3475         * tree.c (build_common_builtin_nodes): Add casts to enum type.
3476         * tree-complex.c (complex_lattice_t): Typedef to int rather than
3477         enum type.
3478         (expand_complex_libcall): Add casts to enum type.
3479         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3480         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3481         with ERROR_MARK, not NUM_TREE_CODES.
3482         (vect_create_epilog_for_reduction): Likewise.
3483         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
3484         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
3485         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3486         enum machine_mode.
3487         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3488         vect_unused_in_loop.  Change 0 to loop_vect.
3489         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
3490         * var-tracking.c (get_init_value): Change return type to enum
3491         var_init_status.
3492         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3493         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3494         arm_fp_model.
3495         (arm_override_options): Add casts to enum type.
3496         (arm_emit_tls_decoration): Likewise.
3497         * config/i386/i386.c (ix86_function_specific_restore): Add casts
3498         to enum type.
3499         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3500         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3501         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3502         enum type.
3503         * config/s390/s390.c (code_for_builtin_64): Change to array of
3504         enum insn_code.
3505         (code_for_builtin_31): Likewise.
3506         (s390_expand_builtin): Change code_for_builtin to enum insn_code
3507         const *.
3508         * config/sparc/sparc.c (sparc_override_options): Change value
3509         field in struct code_model to enum cmodel.  In initializer change
3510         0 to NULL and add cast to enum type.
3511
3512         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3513         Change all callers.  Issue a -Wc++-compat warning using
3514         lhs_origtype if necessary.
3515         (convert_for_assignment): Issue -Wc++-compat warnings about
3516         invalid conversions to enum type on assignment.
3517         * c-common.h (build_modify_expr): Update declaration.
3518
3519 2009-04-24  Nick Clifton  <nickc@redhat.com>
3520
3521         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3522         (function_arg_advance): Likewise.
3523         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3524         5th alternative.
3525
3526 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3527
3528         * config/s390/constraints.md ('I', 'J'): Fix condition.
3529
3530 2009-04-24  Diego Novillo  <dnovillo@google.com>
3531
3532         * gengtype-parse.c (parse_error): Add newline after message.
3533
3534 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3535
3536         * config/i386/sse.md (avxmodesuffixs): Removed.
3537         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3538         (*avx_pinsr<ssevecsize>): This.
3539
3540 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3541
3542         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3543         follow chains of regs with a single definition, and allow expressions
3544         that are function_invariant_p.
3545         (simple_rhs_p): Allow expressions that are function_invariant_p.
3546
3547 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
3548
3549         PR middle-end/39867
3550         * fold-const.c (fold_cond_expr_with_comparison): When folding
3551         > and >= to MAX, make sure the MAX uses the same type as the
3552         comparison's operands.
3553
3554 2009-04-24  Nick Clifton  <nickc@redhat.com>
3555
3556         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3557         addressing for DImode accesses.
3558         (frv_print_operand_address): Handle PLUS case.
3559         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
3560
3561 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
3562
3563         PR rtl-optimization/39794
3564         * alias.c (canon_true_dependence): Add x_addr argument.
3565         * rtl.h (canon_true_dependence): Adjust prototype.
3566         * cse.c (check_dependence): Adjust canon_true_dependence callers.
3567         * cselib.c (cselib_invalidate_mem): Likewise.
3568         * gcse.c (compute_transp): Likewise.
3569         * dse.c (scan_reads_nospill): Likewise.
3570         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
3571         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3572         canon_base_addr of the group, plus optional offset.
3573         (struct group_info): Rename canon_base_mem to
3574         canon_base_addr.
3575         (get_group_info): Set canon_base_addr to canon_rtx of base, not
3576         canon_rtx of base_mem.
3577
3578 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
3579
3580         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3581         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3582
3583 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3584
3585         * config/spu/spu-builtins.h: Delete file.
3586
3587         * config/spu/spu.h (enum spu_builtin_type): Move here from
3588         spu-builtins.h.
3589         (struct spu_builtin_description): Likewise.  Add GTY marker.
3590         Do not use enum spu_function_code or enum insn_code.
3591         (spu_builtins): Add extern declaration.
3592
3593         * config/spu/spu.c: Do not include "spu-builtins.h".
3594         (enum spu_function_code, enum spu_builtin_type_index,
3595         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3596         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3597         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3598         unsigned_V2DI_type_node): Move here from spu-builtins.h.
3599         (spu_builtin_types): Make static.  Add GTY marker.
3600         (spu_builtins): Add extern declaration with GTY marker.
3601         Include "gt-spu.h".
3602
3603         * config/spu/spu-c.c: Do not include "spu-builtins.h".
3604         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3605         Check programmatically whether all parameters are scalar.
3606
3607         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3608
3609 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3610
3611         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3612         assignment from the constructor either if the target is volatile.
3613
3614 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
3615
3616         * config/arm/arm.md (insv): Do not share operands[0].
3617
3618 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
3619
3620         * config/vxlib-tls.c (active_tls_threads): Delete.
3621         (delete_hook_installed): New.
3622         (tls_delete_hook): Don't delete the delete hook.
3623         (tls_destructor): Delete it here.
3624         (__gthread_set_specific): Adjust installing the delete hook.
3625         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3626         __gthread_leave_tsd_dtor_context.
3627
3628 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
3629
3630         * c-format.c (gcc_tdiag_char_table): Add support for %E.
3631
3632 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
3633
3634         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3635         enum type.
3636         (alpha_rtx_costs): Ditto.
3637         (emit_unlikely_jump): Use add_reg_note.
3638         (emit_frame_store_1): Ditto.
3639         (alpha_expand_prologue): Ditto.
3640         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3641         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3642
3643 2009-04-23  Nick Clifton  <nickc@redhat.com>
3644
3645         * config/v850/v850.md (epilogue): Remove suppressed code.
3646         (return): Rename to return_simple and remove test of frame size.
3647         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3648         to gen_return_simple.
3649
3650 2009-04-22  Jing Yu  <jingyu@google.com>
3651
3652         PR testsuite/39781
3653         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3654
3655 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3656
3657         PR C/31499
3658         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3659         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
3660         value is a VECTOR_CST, the element type is the element type of the
3661         vector.
3662
3663 2009-04-22  DJ Delorie  <dj@redhat.com>
3664
3665         * config/m32c/m32c.h: Update GTY annotations to new syntax.
3666
3667 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
3668
3669         * alias.c (find_base_term): Move around LO_SUM case, so that
3670         CONST falls through into PLUS/MINUS handling.
3671
3672         PR c/39855
3673         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3674         into 0, use omit_one_operand.
3675
3676 2009-04-23  Ben Elliston  <bje@au.ibm.com>
3677
3678         * config/rs6000/linux-unwind.h (get_regs): Remove type
3679         puns. Change the type of `pc' to an array of unsigned ints and
3680         update all users.  Constify frame24.
3681
3682 2009-04-22  DJ Delorie  <dj@redhat.com>
3683
3684         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3685         declarations before code.
3686         (current_function_special_page_vector): Likewise.
3687         (m32c_expand_insv): Silence a warning.
3688
3689 2009-04-21  Taras Glek  <tglek@mozilla.com>
3690
3691         * alias.c: Update GTY annotations to new syntax.
3692         * basic-block.h: Likewise.
3693         * bitmap.h: Likewise.
3694         * c-common.h: Likewise.
3695         * c-decl.c: Likewise.
3696         * c-parser.c: Likewise.
3697         * c-pragma.c: Likewise.
3698         * c-tree.h: Likewise.
3699         * cfgloop.h: Likewise.
3700         * cgraph.h: Likewise.
3701         * config/alpha/alpha.c: Likewise.
3702         * config/arm/arm.h: Likewise.
3703         * config/avr/avr.h: Likewise.
3704         * config/bfin/bfin.c: Likewise.
3705         * config/cris/cris.c: Likewise.
3706         * config/darwin.c: Likewise.
3707         * config/frv/frv.c: Likewise.
3708         * config/i386/i386.c: Likewise.
3709         * config/i386/i386.h: Likewise.
3710         * config/i386/winnt.c: Likewise.
3711         * config/ia64/ia64.h: Likewise.
3712         * config/iq2000/iq2000.c: Likewise.
3713         * config/mips/mips.c: Likewise.
3714         * config/mmix/mmix.h: Likewise.
3715         * config/pa/pa.c: Likewise.
3716         * config/pa/pa.h: Likewise.
3717         * config/rs6000/rs6000.c: Likewise.
3718         * config/s390/s390.c: Likewise.
3719         * config/sparc/sparc.c: Likewise.
3720         * config/xtensa/xtensa.c: Likewise.
3721         * cselib.h: Likewise.
3722         * dbxout.c: Likewise.
3723         * dwarf2out.c: Likewise.
3724         * except.c: Likewise.
3725         * except.h: Likewise.
3726         * fixed-value.h: Likewise.
3727         * function.c: Likewise.
3728         * function.h: Likewise.
3729         * gimple.h: Likewise.
3730         * integrate.c: Likewise.
3731         * optabs.c: Likewise.
3732         * output.h: Likewise.
3733         * real.h: Likewise.
3734         * rtl.h: Likewise.
3735         * stringpool.c: Likewise.
3736         * tree-data-ref.c: Likewise.
3737         * tree-flow.h: Likewise.
3738         * tree-scalar-evolution.c: Likewise.
3739         * tree-ssa-address.c: Likewise.
3740         * tree-ssa-alias.h: Likewise.
3741         * tree-ssa-operands.h: Likewise.
3742         * tree.c: Likewise.
3743         * tree.h: Likewise.
3744         * varasm.c: Likewise.
3745         * varray.h: Likewise.
3746         * vec.h: Likewise.
3747         * coretypes.h: Do not define GTY macro if it is already defined.
3748         * doc/gty.texi: Update GTY documentation to new syntax.
3749         * gengtype-lex.l: Enforce attribute-like syntax for GTY
3750         annotations on structs.
3751         * gengtype-parse.c: Likewise.
3752
3753 2009-04-22  Mark Heffernan  <meheff@google.com>
3754
3755         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
3756
3757 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3758
3759         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3760         where appropriate.
3761
3762 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3763
3764         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3765         the same as a PLUS without a shift.  Increase the cost of a
3766         CONST_INT in MULT.
3767
3768 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3769
3770         * Makefile.in: Update dependencies.
3771         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
3772         * errors.h: Remove bogus comment about compatibility.
3773         (warning): Update declaration.
3774         * genautomata.c: Update all calls to warning.
3775         * gimple.c: Do not include errors.h. Include toplev.h.
3776         * tree-ssa-structalias.c: Do not include errors.h.
3777         * omega.c: Likewise.
3778         * tree-ssa-reassoc.c: Likewise.
3779         * config/spu/spu-c.c: Likewise.
3780         * config/spu/t-spu-elf: Update dependencies.
3781
3782 2009-04-22  Richard Guenther  <rguenther@suse.de>
3783
3784         PR tree-optimization/39824
3785         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3786         make sure the types are compatible.
3787
3788 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3789
3790         PR c++/14875
3791         * c-common.c (c_parse_error): Take a token_flags parameter.
3792         Use token_type for the token type instead.
3793         Pass token_flags to cpp_type2name.
3794         * c-common.h (c_parse_error): Update declaration.
3795         * c-parser.c (c_parser_error): Pass 0 as token flags.
3796
3797 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
3798
3799         PR rtl-optimization/39580
3800         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
3801         
3802 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3803
3804         * function.c (expand_function_end): Do not emit a jump to the "naked"
3805         return label for fall-through returns.
3806         * except.c (sjlj_emit_function_exit): Always place the call to the
3807         unregister function at the location installed by expand_function_end.
3808
3809 2009-04-22  Richard Guenther  <rguenther@suse.de>
3810
3811         PR tree-optimization/39845
3812         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3813         (gen_inbound_check): Likewise.
3814
3815 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3816
3817         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3818         padding for PPC.
3819         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3820         * config/vxlib.c (__gthread_once): Add race guard for PPC.
3821
3822 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3823
3824         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3825         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3826         shift counts to avoid out-of-bounds array accesses.
3827
3828 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3829
3830         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3831         (Pmode): Move above.
3832
3833 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
3834
3835         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3836         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3837         GET_CODE macro.  Use IN_RANGE macro where appropriate.
3838         * config/alpha/alpha.h: Ditto.
3839         * config/alpha/alpha.md: Ditto.
3840         * config/alpha/constraints.md: Ditto.
3841         * config/alpha/predicates.md: Ditto.
3842         
3843 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3844
3845         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3846         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3847         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3848         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3849         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3850         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3851         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3852         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3853         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3854         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3855         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3856         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3857         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3858         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3859         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3860         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3861         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3862         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3863         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3864         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3865         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3866         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3867         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3868         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3869         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3870         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3871         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3872
3873 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3874
3875         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3876         references from comments.
3877         * cfgbuild.c: (count_basic_blocks): Delete.
3878         (find_basic_blocks_1): Delete.
3879         (find_basic_blocks): Delete.
3880         * except.c (finish_eh_generation): Make static.  Move comment from
3881         except.h here.  Remove find_basic_blocks references from comments.
3882         * except.h (finish_eh_generation): Delete.
3883         * basic-block.h (find_basic_blocks): Delete.
3884         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3885
3886 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3887
3888         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
3889         (sdbout_parms):  Likewise.
3890
3891 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3892
3893         * config/sh/sh.c (prepare_cbranch_operands): Use
3894         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3895         (expand_cbranchdi4): Likewise.
3896         (from_compare): Add cast to enum type.
3897         (expand_cbranchsi4): Use add_reg_note.
3898         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3899         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3900         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3901         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3902         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3903         instead of CODE_FOR_nothing.
3904         (cbranchdi4): Likewise.  Fix the order of arguments for
3905         gen_rtx_fmt_ee.
3906         (push_fpscr): Use add_reg_note.
3907         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3908         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3909         
3910 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
3911
3912         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3913         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3914         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3915         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3916         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3917         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3918         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3919         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3920         config/alpha/x-vms, config/arc/t-arc,
3921         config/arm/README-interworking, config/arm/arm-c.c,
3922         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3923         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3924         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3925         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3926         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3927         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3928         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3929         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3930         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3931         config/cris/t-elfmulti, config/crx/t-crx,
3932         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3933         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3934         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3935         config/h8300/t-h8300, config/i386/athlon.md,
3936         config/i386/darwin-libgcc.10.4.ver,
3937         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3938         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3939         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3940         config/i386/t-linux64, config/i386/t-nwld,
3941         config/i386/t-rtems-i386, config/i386/t-sol2-10,
3942         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3943         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3944         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3945         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3946         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3947         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3948         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3949         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3950         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3951         config/m68k/t-uclinux, config/mcore/t-mcore,
3952         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3953         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3954         config/mips/crtn.asm, config/mips/irix-crti.asm,
3955         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3956         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3957         config/mips/mips-fixed.md, config/mips/sb1.md,
3958         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3959         config/mips/t-iris6, config/mips/t-isa3264,
3960         config/mips/t-libgcc-mips16, config/mips/t-linux64,
3961         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3962         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3963         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3964         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3965         config/mn10300/t-linux, config/mn10300/t-mn10300,
3966         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3967         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3968         config/picochip/libgccExtras/clzsi2.asm,
3969         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3970         config/rs6000/darwin-libgcc.10.4.ver,
3971         config/rs6000/darwin-libgcc.10.5.ver,
3972         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3973         config/rs6000/t-aix43, config/rs6000/t-aix52,
3974         config/rs6000/t-darwin, config/rs6000/t-fprules,
3975         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3976         config/rs6000/t-lynx, config/rs6000/t-netbsd,
3977         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3978         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3979         config/rs6000/t-rtems, config/rs6000/t-spe,
3980         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3981         config/score/t-score-elf, config/sh/divcost-analysis,
3982         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3983         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3984         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3985         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3986         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3987         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3988         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3989         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3990         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3991         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3992         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3993         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3994         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3995         limitx.h, version.c, xcoff.h: Add copyright and license notices.
3996         * config/h8300/genmova.sh: Include copyright and license notices
3997         in generated output.
3998         * config/h8300/mova.md: Regenerate.
3999         * doc/install.texi2html: Include word "Copyright" in copyright
4000         notice and use name "Free Software Foundation, Inc.".
4001         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4002         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4003         ChangeLog-2007, ChangeLog-2008: Correct dates.
4004
4005 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4006
4007         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
4008         NE_EXPR operations as well.
4009         * c-parser.c (c_parser_condition): Do not set location information on
4010         the condition.
4011         (c_parser_conditional_expression): Likewise.
4012         (c_parser_binary_expression): Set location information on operators.
4013         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
4014         TRUTH_NOT_EXPR has been folded.
4015         * fold-const.c (fold_truth_not_expr): Copy location information from
4016         the incoming expression to the outgoing one.
4017         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
4018         recursive calls on the LHS of the operator but pass that of the
4019         operator to recursive calls on the RHS of the operator.  Set it
4020         on the COND_EXPR.
4021         (shortcut_cond_expr): Set the locus of the operator on the second
4022         COND_EXPR and that of the expression on the first in degenerate cases.
4023         Pass the locus of the expression to calls to shortcut_cond_r.
4024         Set the locus of the 'then' block on the associated jump, if any.
4025         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
4026         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
4027         expression to call to gimplify_boolean_expr.
4028
4029 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
4030
4031         * config.gcc: Add additional configuration for
4032         i686-w64-mingw* and x86_64-w64-mingw* triplet.
4033         * config/i386/mingw-w64.h: New mingw-w64 specific header.
4034         (CPP_SPEC): Redefine for allowing -municode option.
4035         (STARTFILE_SPEC): Likewise.
4036         * config/i386/t-mingw-w64: New.
4037         * config/i386/mingw-w64.opt: New.
4038         (municode): Add new target option.
4039         * doc/invoke.texi (municode): Add documentation for new option.
4040
4041 2009-04-21  Ian Lance Taylor  <iant@google.com>
4042
4043         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4044         Correct test for number of arguments.
4045         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
4046
4047 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
4048
4049         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
4050         argument of emit_library_call.
4051
4052 2009-04-21  Richard Guenther  <rguenther@suse.de>
4053
4054         PR middle-end/39829
4055         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
4056         inside VIEW_CONVERT_EXPRs.
4057
4058 2009-04-21  Martin Jambor  <mjambor@suse.cz>
4059
4060         * tree-switch-conversion.c (build_constructors): Split a long line.
4061         (constructor_contains_same_values_p): New function.
4062         (build_one_array): Create assigns of constants if possible, do not
4063         call mark_sym_for_renaming, call update_stmt.
4064         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
4065         make_rename_temp.  Do not call mark_symbols_for_renaming, call
4066         update_stmt.
4067         (gen_def_assigns): Do not call mark_symbols_for_renaming or
4068         find_new_referenced_vars, call update_stmt.
4069         (gen_inbound_check): Use create_tmp_var and create ssa names manually
4070         instead of calling make_rename_temp.  Do not call
4071         find_new_referenced_vars or mark_symbols_for_renaming, call
4072         update_stmt.
4073
4074 2009-04-21  Richard Guenther  <rguenther@suse.de>
4075
4076         PR tree-optimization/39827
4077         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
4078         (tree_ssa_phiprop): Pass the correct array size.
4079
4080 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
4081
4082         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
4083
4084 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4085
4086         PR 16202
4087         * c-typeck.c (lvalue_p): Move declaration ...
4088         * c-common.h (lvalue_p): ... to here.
4089         * c-common.c (candidate_equal_p): New.
4090         (add_tlist): Use it.
4091         (merge_tlist): Use it.
4092         (warn_for_collisions_1): Likewise.
4093         (warning_candidate_p): Accept more candidates.
4094         (verify_tree): A warning candidate can be an expression. Use
4095         candidate_equal_p.
4096
4097 2009-04-21  Ben Elliston  <bje@au.ibm.com>
4098
4099         PR target/5267
4100         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4101         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
4102         options.  Remove -mcall-solaris documentation.
4103
4104 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4105
4106         PR c++/13358
4107         * doc/invoke.texi (-Wlong-long): Update description.
4108         * c-lex (interpret_integer): Only warn if there was no previous
4109         overflow and -Wlong-long is enabled.
4110         * c-decl.c (declspecs_add_type): Drop redundant flags.
4111         * c.opt (Wlong-long): Init to -1.
4112         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
4113         and front-end warn_long_long. Wlong-long only depends on other
4114         flags if it is uninitialized.
4115         * c-parser.c (disable_extension_diagnostics): warn_long_long is
4116         the same for CPP and FE.
4117         (restore_extension_diagnostics): Likewise.
4118
4119 2009-04-20  Ian Lance Taylor  <iant@google.com>
4120
4121         Fix enum conversions which are invalid in C++:
4122         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
4123         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
4124         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
4125         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
4126         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
4127         (dbxout_parms): Likewise.
4128         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
4129         (df_clear_flags): Likewise.
4130         * df-problems.c (df_rd_bb_local_compute_process_def): Change
4131         top_flag parameter to int.
4132         (df_chain_create_bb_process_use): Likewise.
4133         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
4134         Remove cast.
4135         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
4136         (df_ref_create_structure, df_def_record_1): Likewise.
4137         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
4138         (df_notes_rescan): Change 0 to VOIDmode in function call.
4139         (df_get_call_refs, df_insn_refs_collect): Likewise.
4140         (df_bb_regs_collect): Likewise.
4141         (df_entry_block_defs_collect): Likewise.
4142         (df_exit_block_uses_collect): Likewise.
4143         * df.h: Update declarations.
4144         * double-int.c (double_int_divmod): Add cast to enum type.
4145         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4146         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4147         (based_loc_descr): Likewise.
4148         (loc_descriptor_from_tree_1): Change first_op and second_op to
4149         enum dwarf_location_atom.  Add cast to enum type.
4150         * expmed.c (init_expmed): Change 0 to SET in function call.
4151         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
4152         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4153         (do_store_flag): Likewise.
4154         * fixed-value.h (struct fixed_value): Change mode to enum
4155         machine_mode.
4156         * function.c (assign_parms): Change 0 to VOIDmode in function call.
4157         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4158         function call.
4159         (insert_insn_decl, insert_decl, insert_state): Likewise.
4160         (automata_list_finish): Likewise.
4161         * genrecog.c (process_define_predicate): Add cast to enum type.
4162         * gensupport.c (init_predicate_table): Add cast to enum type.
4163         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4164         function call.
4165         (gimple_build_call_1, gimple_build_label): Likewise.
4166         (gimple_build_goto, gimple_build_asm_1): Likewise.
4167         (gimple_build_switch_1, gimple_build_cdt): Likewise.
4168         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4169         (enum fallback): Rename from enum fallback_t.
4170         (fallback_t): Typedef as int.
4171         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4172         GSI_SAME_STMT in function call.
4173         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4174         enum type.
4175         (setup_reg_class_relations): Likewise.
4176         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
4177         (setup_prohibited_class_mode_regs): Add cast to enum type.
4178         (setup_prohibited_mode_move_regs): Likewise.
4179         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4180         (record_address_regs): Change i to enum reg_class.
4181         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4182         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4183         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4184         (GET_MODE_2XWIDER_MODE): Likewise.
4185         (GET_CLASS_NARROWEST_MODE): Likewise.
4186         * omp-low.c (expand_omp_for): Add cast to enum type.
4187         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4188         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4189         * postreload.c (reload_cse_simplify_operands): Change rclass local
4190         to enum reg_class.
4191         * predict.c (combine_predictions_for_insn): Change best_predictor
4192         and predictor to enum br_predictor.
4193         (combine_predictions_for_bb): Likewise.
4194         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4195         use SET_PREDICT_EXPR_OUTCOME.
4196         * real.c (real_arithmetic): Change icode to code in function call.
4197         * reginfo.c (init_move_cost): Add casts to enum type.
4198         (init_reg_sets_1, init_fake_stack_mems): Likewise.
4199         * regmove.c (regclass_compatible_p): Change class0 and class1 to
4200         enum reg_class.
4201         * reload.c (find_valid_class): Add casts to enum type.
4202         (push_reload): Change 0 to NO_REGS in function call.
4203         (find_reloads): Change this_alternative to array of enum
4204         reg_class.  Remove some now-unnecessary casts.
4205         (make_memloc): Change 0 to VOIDmode in function call.
4206         * reload1.c (reload): Change 0 to VOIDmode in function call.
4207         (eliminate_regs_1, elimination_effects): Likewise.
4208         (eliminate_regs_in_insn): Likewise.
4209         (emit_input_reload_insns): Add cast to enum type.
4210         (delete_output_reload): Change 0 to VOIDmode in function call.
4211         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4212         to enum type in function call.
4213         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4214         (SET_PREDICT_EXPR_OUTCOME): Define.
4215         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4216         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4217         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4218         (dump_function): Likewise.
4219         * tree-dump.h: Update declarations.
4220         * tree-pass.h: Update declarations.
4221         * varasm.c (assemble_integer): Change mclass to enum mode_class.
4222         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4223         enum type.
4224         (arm_rtx_costs_1): Correct parenthesization.
4225         (arm_rtx_costs): Add casts to enum type.
4226         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4227         (vfp_emit_fstmd): Use add_rg_note.
4228         (emit_multi_reg_push, emit_sfm): Likewise.
4229         (thumb_set_frame_pointer): Likewise.
4230         (arm_expand_prologue): Likewise.
4231         (arm_regno_class): Change return type to enum reg_class.
4232         (thumb1_expand_prologue): Use add_reg_note.
4233         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4234         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4235         in function call.
4236         * config/arm/gentune.sh: Add cast to enum type.
4237         * config/arm/arm-tune.md: Rebuild.
4238         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4239         (ix86_split_fp_branch, predict_jump): Likewise.
4240         (ix86_expand_multi_arg_builtin): Change sub_code from enum
4241         insn_code to enum rtx_code.
4242         (ix86_builtin_vectorized_function): Add cast to enum type.
4243         * config/i386/i386.md (truncdfsf2): Change slot to enum
4244         ix86_stack_slot.
4245         (truncxf<mode>2, isinf<mode>2): Likewise.
4246         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4247         enum type.
4248         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4249         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4250         (insert_bundle_state): Change 1 to INSERT in function call.
4251         (ia64_add_bundle_selector_before): Likewise.
4252         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4253         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4254         (restore_stack_nonlocal): Likewise.
4255         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4256         function call.
4257         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4258         function call.
4259         (mips_rtx_costs): Likewise.
4260         (mips_override_options): Add casts to enum type.
4261         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4262         in function call.
4263         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4264         (store_reg, set_reg_plus_d): Likewise.
4265         (hppa_expand_prologue, hppa_profile_hook): Likewise.
4266         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4267         cast to enum type.
4268         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4269         function call.
4270         (emit_unlikely_jump): Use add_reg_note.
4271         (rs6000_emit_allocate_stack): Likewise.
4272         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4273         (output_toc): Change 1 to INSERT in function call.
4274         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4275         (rs6000_initialize_trampoline): Likewise.
4276         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4277         function call.
4278         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4279         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4280         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4281         (save_gprs): Use add_reg_note.
4282         (s390_emit_prologue): Likewise.
4283         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4284         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4285         (sparc_fold_builtin): Add cast to enum type.
4286         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4287         enum insn_code.
4288         (spu_expand_prologue): Use add_reg_note.
4289         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4290
4291 2009-04-20  Ian Lance Taylor  <iant@google.com>
4292
4293         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4294         (c_parser_postfix_expression_after_primary): Get VEC for list of
4295         arguments.  Get original types of arguments.  Call
4296         build_function_call_vec.
4297         (cached_expr_list_1, cached_expr_list_2): New static variables.
4298         (c_parser_expr_list): Change return type to VEC *.  Add
4299         p_orig_types parameter.  Change all callers.
4300         (c_parser_release_expr): New static function.
4301         (c_parser_vec_to_tree_list): New static function.
4302         * c-typeck.c (build_function_call): Rewrite to build a VEC and
4303         call build_function_call_vec.
4304         (build_function_call_vec): New function, based on old
4305         build_function_call.
4306         (convert_arguments): Remove nargs and argarray parameters.  Change
4307         values to a VEC.  Add origtypes parameter.
4308         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
4309         (convert_for_assignment): Add origtype parameter.  Change all
4310         callers.  If warn_cxx_compat, check for conversion to an enum
4311         type when calling a function.
4312         (store_init_value): Add origtype parameter.  Change all callers.
4313         (digest_init): Likewise.
4314         (struct init_node): Add origtype field.
4315         (add_pending_init): Add origtype parameter.  Change all callers.
4316         (output_init_element): Likewise.
4317         (output_pending_init_elements): Pass origtype from init_node to
4318         output_init_element.
4319         (process_init_element): Pass origtype from c_expr to
4320         output_init_element.
4321         (c_finish_return): Add origtype parameter.  Change all callers.
4322         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
4323         caller.
4324         (sync_resolve_params): Likewise.
4325         (sync_resolve_return): Change params to first_param.  Change caller.
4326         (resolve_overloaded_builtins): Change params to VEC *.  Change
4327         callers.  Save first parameter around call to build_function_call_vec.
4328         * c-decl.c (finish_decl): Add origtype parameter.  Change all
4329         callers.  Call build_function_call_vec rather than
4330         build_function_call for cleanup.
4331         * c-tree.h: Update declarations.
4332         * c-common.h: Update declarations.
4333         * stub-objc.c (objc_rewrite_function_call): Change parameter from
4334         params to first_param.
4335         * target.h (struct gcc_target): Change resolve_overloaded_builtin
4336         params parameter from tree to void *.
4337         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4338         Change arglist parameter to have type void *, and to be a pointer
4339         to a VEC.
4340         * config/rs6000/rs6000-protos.h
4341         (altivec_resolve_overloaded_builtin): Update declaration.
4342         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4343         fnargs parameter to have type void *, and to be a pointer to a
4344         VEC.  Call build_function_call_vec instead of
4345         build_function_call.
4346         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4347
4348 2009-04-20  Joey Ye  <joey.ye@intel.com>
4349             Xuepeng Guo  <xuepeng.guo@intel.com>
4350             H.J. Lu  <hongjiu.lu@intel.com>
4351
4352         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4353
4354         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4355         (IX86_LEA_PRIORITY): Likewise.
4356         (distance_non_agu_define): New function.
4357         (distance_agu_use): Likewise.
4358         (ix86_lea_for_add_ok): Likewise.
4359         (ix86_dep_by_shift_count): Likewise.
4360
4361         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4362         should split for LEA.
4363
4364         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4365         function.
4366         (ix86_dep_by_shift_count): Likewise.
4367
4368 2009-04-20  Richard Guenther  <rguenther@suse.de>
4369
4370         * expr.c (handled_component_p): Move ...
4371         * tree.h (handled_component_p): ... here.
4372         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4373         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4374         and REALPART_EXPR to be in one group.
4375
4376 2009-04-20  Richard Guenther  <rguenther@suse.de>
4377
4378         * basic-block.h (get_all_dominated_blocks): Declare.
4379         * dominance.c (get_all_dominated_blocks): New function.
4380         * tree-cfg.c (get_all_dominated_blocks): Remove.
4381         (remove_edge_and_dominated_blocks): Adjust.
4382         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4383         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
4384         instead of recursing.
4385
4386 2009-04-20  Doug Kwan  <dougkwan@google.com>
4387
4388         * cgraph.h (cgraph_node_ptr): New type for vector functions.
4389         (struct cgraph_node_set_def): New type.
4390         (cgraph_node_set) New type. Also declare vector functions.
4391         (struct cgraph_node_set_element_def): New type.
4392         (cgraph_node_set_element): Ditto.
4393         (cgraph_node_set_iterator): New iterator type.
4394         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4395         cgraph_node_set_remove, dump_cgraph_node_set,
4396         debug_cgraph_node_set): New prototypes.
4397         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4398         cgraph_node_set_size): New inlines.
4399         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4400         including cgraph.h.
4401         (struct ipa_opt_pass): Add struct cgraph_node_set_def
4402         argument to function 'write_summary'.
4403         * ipa.c: Include ggc.h.
4404         (hash_cgraph_node_set_element,
4405         eq_cgraph_node_set_element, cgraph_node_set_new,
4406         cgraph_node_set_add, cgraph_node_set_remove,
4407         cgraph_node_set_find, dump_cgraph_node_set,
4408         debug_cgraph_node_set): New functions.
4409         * Makefile.in (ipa.o): Add dependency on GGC_H.
4410
4411 2009-04-20  Ira Rosen  <irar@il.ibm.com>
4412
4413         PR tree-optimization/39675
4414         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4415         check of the return code of vect_schedule_slp. Check that
4416         stmt_vec_info still exists for the statement, before checking its
4417         vectorization type.
4418
4419 2009-04-20  Michael Matz  <matz@suse.de>
4420
4421         * Makefile.in (generated_files): Take out $(simple_generated_c).
4422
4423 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
4424
4425         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
4426         (UINTPTR_TYPE):  Likewise.
4427
4428 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4429
4430         PR c/37481
4431         * c-typeck.c (digest_init): Check for initializing an array with a
4432         string literal.
4433
4434 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4435
4436         PR c/19771
4437         * c-semantics.c (pop_stmt_list): Propagate
4438         STATEMENT_LIST_HAS_LABEL to parent statement list.
4439
4440 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
4441
4442         * config/mips/mips.h (mips_tune_attr): New macro.
4443         * config/mips/mips.md (cpu): Use it.
4444
4445 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4446
4447         PR c/38243
4448         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4449         declaring a tag.
4450
4451 2009-04-19  Diego Novillo  <dnovillo@google.com>
4452
4453         * toplev.c (compile_file): Move call to coverage_finish ...
4454         * cgraphunit.c (ipa_passes): ... here.
4455         Call cgraph_process_new_functions.
4456         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4457         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4458
4459 2009-04-19  Jan Hubicka  <jh@suse.cz>
4460
4461         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4462         cfun.
4463         (dump_cgraph_node): Dump can throw external flag.
4464         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4465
4466 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4467
4468         PR c/32061
4469         PR c++/36954
4470         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4471         * common.opt (Wlogical-op): Move from here...
4472         * c.opt (Wlogical-op): ... to here.
4473         * c-typeck.c (parser_build_binary_op): Update call to
4474         warn_logical_operator.
4475         * c-opts.c (c_common_post_options): Enable warn_logical_op with
4476         extra_warnings.
4477         * c-common.c (warn_logical_op): Update.
4478         * c-common.h (warn_logical_op): Update declaration.
4479
4480 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4481
4482         * tree.c (protected_set_expr_location): Fix formatting.
4483
4484 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4485
4486         PR c/27676
4487         * c-typeck.c (readonly_warning): new.
4488         (build_unary_op, build_modify_expr): Use readonly_warning for
4489         storing into something readonly but not const-qualified.
4490
4491 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4492
4493         PR c/22367
4494         * c-typeck.c (build_unary_op): Check for taking address of
4495         expression of type void.
4496
4497 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4498
4499         PR c/35210
4500         * c-typeck.c (build_function_call): Check for calling a function
4501         with qualified void return types.  Call require_complete_type when
4502         generating a trap.
4503
4504 2009-04-18  Jan Hubicka  <jh@suse.cz>
4505
4506         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4507         Set nothrow flag.
4508         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4509         can_throw_external flag.
4510         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4511         * ipa-pure-const.c (ignore_edge): New function.
4512         (propagate): Compute order for NOTHROW computation; set NOTHROWs
4513         only over can_throw_external edges.
4514         (local_pure_const): Add nothrow flag.
4515         * ipa-utils.c (searchc): Add ignore_edge callback.
4516         (ipa_utils_reduced_inorder): Add ignore_edge callback.
4517         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4518         (set_nothrow_function_flags): Update cgraph.
4519         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4520
4521 2009-04-18  Richard Guenther  <rguenther@suse.de>
4522
4523         PR middle-end/39804
4524         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4525         (fold_stmt): ... this and ...
4526         (fold_stmt_inplace): ... this.
4527         (fold_stmt_1): Fold references in calls and asms.
4528         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4529
4530 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4531
4532         * tree-vrp.c (ssa_name_nonzero_p): Remove.
4533         * tree.h: Remove the prototype for ssa_name_nonzero_p.
4534
4535 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4536
4537         * tree.c (function_args_count): Remove.
4538         * tree.h: Remove the prototype for function_args_count.
4539
4540 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4541
4542         * tree-iterator.c (expr_only): Remove.
4543         * tree.h: Remove the prototype for expr_only.
4544
4545 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4546
4547         * reginfo.c (cannot_change_mode_set_regs): Remove.
4548         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4549
4550 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
4551
4552         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4553         whether operands 0 and 1 overlaps.
4554
4555 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4556
4557         PR middle-end/36902
4558         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4559         pointer. Use warning_at instead of warning.
4560         (search_for_addr_array): Likewise.
4561         (check_array_bounds): Likewise.
4562         (check_all_array_refs): Check that the incoming edge is not in the
4563         list of edges to be removed.
4564         (check_all_array_refs): Avoid the temporal pointer.
4565         (vrp_visit_cond_stmt): Fix typo.
4566         (simplify_switch_using_ranges): Handle the case where the switch
4567         index is an integer constant.
4568
4569 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
4570
4571         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4572
4573 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4574
4575         * doc/extend.texi, doc/invoke.texi: Fix typos.
4576
4577 2009-04-17  Cary Coutant  <ccoutant@google.com>
4578
4579         * tree-flow-inline.h (get_lineno): Fix inverted test.
4580
4581 2009-04-17  Diego Novillo  <dnovillo@google.com>
4582
4583         * tree-ssa-pre.c (create_expression_by_pieces): Remove
4584         assertion for AVAIL_OUT.
4585
4586 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
4587
4588         PR target/38627
4589         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4590         * config/sh/linux-atomic.asm: Likewise.
4591
4592 2009-04-17  Diego Novillo  <dnovillo@google.com>
4593
4594         * except.c (debug_eh_tree): New.
4595         (struct eh_region, struct eh_status): Move ...
4596         * except.h: ... here.
4597         (add_type_for_runtime): Declare extern.
4598         (lookup_type_for_runtime): Likewise.
4599         (debug_eh_tree): Declare.
4600         * Makefile.in (GTFILES): List except.h before except.c
4601
4602 2009-04-17  Diego Novillo  <dnovillo@google.com>
4603
4604         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
4605         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4606         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4607         (find_vars_r): ... here.
4608         * tree-flow.h (find_referenced_vars_in): Declare.
4609         * tree-ssa-pre.c (create_expression_by_pieces): Assert
4610         that AVAIL_OUT exists for BLOCK.
4611         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4612         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4613         (tree-parloops.o): Likewise.
4614
4615 2009-04-17  Simon Baldwin  <simonb@google.com>
4616
4617         * toplev.c (default_tree_printer): Add handling for %E format.
4618
4619 2009-04-17  Diego Novillo  <dnovillo@google.com>
4620
4621         * tree-pretty-print.c (dump_generic_node): Add break after
4622         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
4623         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
4624         FUNCTION_TYPE together.  Call print_struct_decl when printing
4625         structures and TDF_SLIM is not given.
4626         (print_struct_decl): Fix logic for detecting recursion.
4627
4628 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4629
4630         PR 31567
4631         * gcc.c (create_at_file): New.
4632         (compile_input_file_p): New.
4633         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4634         * main.c (main): Update call to toplev_main.
4635         * toplev.c (toplev_main): Change signature. Call expandargv.
4636         * toplev.h (toplev_main): Change signature.
4637
4638 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4639
4640         * dwarf2out.c (field_byte_offset): Use the type size as the field size
4641         if the latter is not constant.
4642
4643 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
4644
4645         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4646
4647 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4648
4649         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4650         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4651
4652 2009-04-17  Richard Guenther  <rguenther@suse.de>
4653
4654         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4655         Handle component references view-converting an invariant address.
4656
4657 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
4658
4659         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4660         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4661         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4662         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4663         Use @deftypevr rather than @deftypevar.
4664
4665 2009-04-17  Richard Guenther  <rguenther@suse.de>
4666
4667         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
4668         (get_prop_source_stmt): Likewise.
4669         (can_propagate_from): Likewise.
4670
4671 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
4672
4673         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4674         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4675         (--with-multilib-list): Add default value.
4676         * configure: Regenerate.
4677         * Makefile.in (TM_ENDIAN_CONFIG): Define.
4678         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4679         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4680         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4681         Don't add default cpu to multilib list unnecessarily, but do enable
4682         the relevant compiler option..
4683         Add support for --with-multilib-list=<blank> and
4684         --with-multilib-list=!<somelib> to supress unwanted multilibs.
4685         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4686         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4687         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4688         TM_MULTILIB_CONFIG.
4689         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4690         (MULTILIB_OSDIRNAMES): New variable.
4691         * config/sh/t-1e: Delete file.
4692         * config/sh/t-mlib-sh1: Delete file.
4693         * config/sh/t-mlib-sh2: Delete file.
4694         * config/sh/t-mlib-sh2a: Delete file.
4695         * config/sh/t-mlib-sh2a-nofpu: Delete file.
4696         * config/sh/t-mlib-sh2a-single: Delete file.
4697         * config/sh/t-mlib-sh2a-single-only: Delete file.
4698         * config/sh/t-mlib-sh2e: Delete file.
4699         * config/sh/t-mlib-sh3e: Delete file.
4700         * config/sh/t-mlib-sh4: Delete file.
4701         * config/sh/t-mlib-sh4-nofpu: Delete file.
4702         * config/sh/t-mlib-sh4-single: Delete file.
4703         * config/sh/t-mlib-sh4-single-only: Delete file.
4704         * config/sh/t-mlib-sh4a: Delete file.
4705         * config/sh/t-mlib-sh4a-nofpu: Delete file.
4706         * config/sh/t-mlib-sh4a-single: Delete file.
4707         * config/sh/t-mlib-sh4a-single-only: Delete file.
4708         * config/sh/t-mlib-sh4al: Delete file.
4709         * config/sh/t-mlib-sh5-32media: Delete file.
4710         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4711         * config/sh/t-mlib-sh5-64media: Delete file.
4712         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4713         * config/sh/t-mlib-sh5-compact: Delete file.
4714         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4715         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4716         * doc/install.texi (Options specification): Add
4717         --with-multilib-list and --with-endian.
4718
4719 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4720
4721         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4722         REVISION_c.
4723         (OBJS-common): Add plugin-version.o.
4724         (plugin-version.o): New.
4725         * gcc-plugin.h (plugin_gcc_version): New.
4726         (plugin_default_version_check): New.
4727         (plugin_init_func, plugin_init): Add version argument.
4728         * plugin-version.c: New.
4729         * plugin.c (str_plugin_gcc_version_name): New.
4730         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4731         pass it to the init function.
4732         (plugin_default_version_check): New.
4733
4734 2009-04-17  Richard Guenther  <rguenther@suse.de>
4735
4736         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4737         for decl-vs-decl disambiguation.
4738
4739 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4740
4741         * config/s390/s390.h (s390_tune_attr): New macro definition.
4742         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4743
4744 2009-04-17  Richard Guenther  <rguenther@suse.de>
4745
4746         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4747         (fold_stmt_r): Likewise.
4748         (maybe_fold_reference): New function.
4749         (fold_gimple_assign): Handle cases fold_stmt_r did.
4750         (fold_stmt): Do not use fold_stmt_r.
4751         (fold_stmt_inplace): Likewise.
4752
4753 2009-04-17  Richard Guenther  <rguenther@suse.de>
4754
4755         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4756         (record_equivalences_from_stmt): Remove useless checks and
4757         simplifications.
4758         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4759         the type is already suitable.
4760
4761 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
4762
4763         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4764
4765 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
4766
4767         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4768         (CMPtype): Define as __gcc_CMPtype.
4769
4770 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
4771
4772         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4773         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4774
4775 2009-04-17  Richard Guenther  <rguenther@suse.de>
4776
4777         PR tree-optimization/39746
4778         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4779         special-casing for builtins and static variable use/def.
4780         (call_may_clobber_ref_p_1): Likewise.
4781
4782 2009-04-16  Ian Lance Taylor  <iant@google.com>
4783
4784         * df.h: Include "timevar.h".
4785         (struct df_problem): Change tv_id field to timevar_id_t.
4786         * tree-pass.h: Include "timevar.h".
4787         (struct opt_pass): Change tv_id field to timevar_id_t.
4788         * timevar.h (timevar_id_t): Define TV_NONE.
4789         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4790         TV_NONE rather than tv_id != 0.
4791         (execute_one_pass): Likewise.
4792         * Makefile.in (DF_H): Add $(TIMEVAR_H).
4793         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
4794         dependencies to $(TREE_PASS_H).
4795         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4796         to TV_NONE.
4797         (pass_branch_target_load_optimize2): Likewise.
4798         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4799         (pass_outof_cfg_layout_mode): Likewise.
4800         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4801         (pass_rebuild_cgraph_edges): Likewise.
4802         (pass_remove_cgraph_callee_edges): Likewise.
4803         * df-core.c (pass_df_initialize_opt): Likewise.
4804         (pass_df_initialize_no_opt): Likewise.
4805         (pass_df_finish): Likewise.
4806         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4807         * except.c (pass_set_nothrow_function_flags): Likewise.
4808         (pass_convert_to_eh_region_ranges): Likewise.
4809         * final.c (pass_compute_alignments): Likewise.
4810         * function.c (pass_instantiate_virtual_regs): Likewise.
4811         (pass_init_function): Likewise.
4812         (pass_leaf_regs): Likewise.
4813         (pass_match_asm_constraints): Likewise.
4814         * gimple-low.c (pass_lower_cf): Likewise.
4815         (pass_mark_used_blocks): Likewise.
4816         * init-regs.c (pass_initialize_regs): Likewise.
4817         * integrate.c (pass_initial_value_sets): Likewise.
4818         * ira.c (pass_ira): Likewise.
4819         * jump.c (pass_cleanup_barriers): Likewise.
4820         * omp-low.c (pass_expand_omp): Likewise.
4821         (pass_lower_omp): Likewise.
4822         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4823         * recog.c (pass_split_all_insns): Likewise.
4824         (pass_split_after_reload): Likewise.
4825         (pass_split_before_regstack): Likewise.
4826         (pass_split_before_sched2): Likewise.
4827         (pass_split_for_shorten_branches): Likewise.
4828         * reginfo.c (pass_reginfo_init): Likewise.
4829         (pass_subregs_of_mode_init): Likewise.
4830         (pass_subregs_of_mode_finish): Likewise.
4831         * passes.c (pass_postreload): Likewise.
4832         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4833         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4834         (pass_warn_function_return): Likewise.
4835         (pass_warn_function_noreturn): Likewise.
4836         * tree-complex.c (pass_lower_complex): Likewise.
4837         (pass_lower_complex_O0): Likewise.
4838         * tree-if-conv.c (pass_if_conversion): Likewise.
4839         * tree-into-ssa.c (pass_build_ssa): Likewise.
4840         * tree-mudflap.c (pass_mudflap_1): Likewise.
4841         (pass_mudflap_2): Likewise.
4842         * tree-nomudflap.c (pass_mudflap_1): Likewise.
4843         (pass_mudflap_2): Likewise.
4844         * tree-nrv.c (pass_return_slot): Likewise.
4845         * tree-object-size.c (pass_object_sizes): Likewise.
4846         * tree-optimize.c (pass_all_optimizations): Likewise.
4847         (pass_early_local_passes): Likewise.
4848         (pass_all_early_optimizations): Likewise.
4849         (pass_cleanup_cfg): Likewise.
4850         (pass_cleanup_cfg_post_optimizing): Likewise.
4851         (pass_free_datastructures): Likewise.
4852         (pass_free_cfg_annotations): Likewise.
4853         (pass_fixup_cfg): Likewise.
4854         (pass_init_datastructures): Likewise.
4855         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4856         (pass_late_warn_uninitialized): Likewise.
4857         (pass_update_address_taken): Likewise.
4858         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4859         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4860         (pass_cse_sincos): Likewise.
4861         (pass_convert_to_rsqrt): Likewise.
4862         * tree-ssa-structalias.c (pass_build_alias): Likewise.
4863         * tree-stdarg.c (pass_stdarg): Likewise.
4864         * tree-tailcall.c (pass_tail_recursion): Likewise.
4865         (pass_tail_calls): Likewise.
4866         * tree-vect-generic.c (pass_lower_vector): Likewise.
4867         (pass_lower_vector_ssa): Likewise.
4868         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4869
4870 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
4871
4872         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4873         XLR entry.
4874         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4875         Handle -march=xlr.
4876         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4877         logical and signext.
4878
4879 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4880
4881         PR target/39767
4882         * config/sh/predicates.md (arith_operand): Check if the operand
4883         of TRUNCATE is a REG.
4884
4885 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4886
4887         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4888         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4889
4890 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4891
4892         * tree-iterator.c (tsi_split_statement_list_after,
4893         tsi_split_statement_list_before): Remove.
4894         * tree-iterator.h: Remove the prototypes for
4895         tsi_split_statement_list_after and tsi_split_statement_list_before.
4896
4897 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4898
4899         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4900         * tree-ssa-propagate.h: Remove the prototype for
4901         stmt_makes_single_load.
4902
4903 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4904
4905         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4906         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4907
4908 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4909
4910         * tree-iterator.c (EXPR_LAST_BODY): Remove.
4911
4912 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4913
4914         * except.c (eh_region_outer_p): Remove.
4915         * except.h: Remove the prototype for eh_region_outer_p.
4916
4917 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4918
4919         * function.c (current_function_assembler_name): Remove.
4920         * function.h: Remove the prototype for
4921         current_function_assembler_name.
4922
4923 2009-04-16  Ian Lance Taylor  <iant@google.com>
4924
4925         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
4926         (add_reg_note): Call alloc_reg_note.
4927         * rtl.h (alloc_reg_note): Declare.
4928         * combine.c (try_combine): Use alloc_reg_note.
4929         (recog_for_combine, move_deaths): Likewise.
4930         (distribute_notes): Use alloc_reg_note and add_reg_note.
4931         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4932         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4933         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4934
4935 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
4936
4937         PR rtl-optimization/39762
4938         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4939         ira_may_move_out_cost): Add comments about way of their usage.
4940         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
4941
4942         * ira-conflicts.c (process_regs_for_copy): Use function
4943         ira_get_register_move_cost instead of global
4944         ira_register_move_cost.
4945
4946         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4947         color_pass, move_spill_restore, update_curr_costs): Ditto.
4948
4949         * ira-lives.c (process_single_reg_class_operands): Ditto.
4950
4951         * ira-emit.c (emit_move_list): Ditto.
4952
4953         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4954         (record_reg_classes): Ditto.  Use functions
4955         ira_get_register_move_cost and ira_get_may_move_cost instead of
4956         global vars ira_register_move_cost, ira_may_move_out_cost and
4957         ira_may_move_in_cost.
4958         (record_address_regs): Don't call ira_init_register_move_cost.
4959         Use function ira_get_may_move_cost instead of global
4960         ira_may_move_in_cost.
4961         (process_bb_node_for_hard_reg_moves): Use function
4962         ira_get_register_move_cost instead of global ira_register_move_cost.
4963         (ira_costs): Don't call ira_init_register_move_cost.
4964
4965 2009-04-16  Richard Guenther  <rguenther@suse.de>
4966
4967         * tree-cfg.c (verify_gimple_assign_binary):
4968         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4969         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4970         (create_general_new_stmt): Note that this function is broken.
4971
4972 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4973
4974         * common.opt (fhelp): Add Var(help_flag).
4975         * gcc-plugin.h (plugin_info): Add help.
4976         * plugin.c (plugin_name_args): Add help.
4977         (register_plugin_info): Set plugin->help.
4978         (print_help_one_plugin): New.
4979         (print_plugins_help): New.
4980         * plugin.h (print_plugins_help): New.
4981         * toplev.c (toplev_main): Call print_plugins_help if needed.
4982
4983 2009-04-16  Richard Guenther  <rguenther@suse.de>
4984
4985         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4986         (gimple_ior_addresses_taken_1): New function.
4987         (gimple_ior_addresses_taken): Likewise.
4988         * gimple.h (struct gimple_statement_with_ops_base): Remove
4989         addresses_taken member.
4990         (gimple_ior_addresses_taken): Declare.
4991         (gimple_addresses_taken, gimple_addresses_taken_ptr,
4992         gimple_set_addresses_taken): Remove.
4993         * ipa-reference.c (mark_address): New function.
4994         (scan_stmt_for_static_refs): Use it for marking addresses taken.
4995         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4996         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
4997         (gimple_add_to_addresses_taken): Remove.
4998         (get_tmr_operands): Call mark_address_taken.
4999         (get_asm_expr_operands): Likewise.
5000         (get_expr_operands): Likewise.
5001         (build_ssa_operands): Do not clear the addresses_taken bitmap.
5002         (free_stmt_operands): Do not free it.
5003         * tree-ssa.c (delete_tree_ssa): Likewise.
5004         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
5005
5006 2009-04-16  Richard Guenther  <rguenther@suse.de>
5007
5008         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
5009         (walk_stmt_load_store_ops): Likewise.
5010         * gimple.c (get_base_loadstore): New function.
5011         (walk_stmt_load_store_addr_ops): Likewise.
5012         (walk_stmt_load_store_ops): Likewise.
5013         * ipa-pure-const.c (check_op): Simplify.
5014         (check_load, check_store): New functions.
5015         (check_stmt): Use walk_stmt_load_store_ops.
5016         * ipa-reference.c (mark_load): Adjust signature.
5017         (mark_store): Likewise.
5018         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
5019
5020 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5021
5022         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
5023         (plugin_info): New.
5024         * opts.c (common_handle_option): Don't call print_version.
5025         * plugin.c (plugin_name_args): Add version.
5026         (register_plugin_info): New.
5027         (register_callback): Handle PLUGIN_INFO.
5028         (try_init_one_plugin): New.
5029         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
5030         if failed to init.
5031         (finalize_one_plugin): New.
5032         (finalize_plugins): New.
5033         (print_one_plugin): New.
5034         (print_plugins_versions): New.
5035         * plugin.h (print_plugins_versions): New.
5036         (finalize_plugins): New.
5037         * toplev.c (compile_file): Don't call initialize_plugins.
5038         (print_version): Call print_plugins_versions.
5039         (toplev_main): Call initialize_plugins. Print version if needed.
5040         Call finalize_plugins.
5041
5042 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5043
5044         * common.opt (fversion): New.
5045         * gcc.c (print_version): New.
5046         (process_command): Don't print the version. Just set print_version.
5047         (main): Print version. Call subprocesses if print_version and
5048         verbose_flag are set.
5049         * opts.c (common_handle_option): Handle OPT_fversion.
5050
5051 2009-04-16  Richard Guenther  <rguenther@suse.de>
5052             Ira Rosen  <irar@il.ibm.com>
5053
5054         PR tree-optimization/39698
5055         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
5056         type of the reduction variable.  Only generate the def if
5057         it is needed.
5058
5059         * omp-low.c (expand_omp_for_generic): When converting to a pointer
5060         make sure to first convert to an integer of the same precision.
5061         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
5062         the type of the evolution correctly in computing the new
5063         induction variable base.
5064
5065 2009-04-16  Richard Guenther  <rguenther@suse.de>
5066
5067         PR middle-end/39625
5068         * tree-cfg.c (make_blocks): Split statements with to-be
5069         abnormal SSA names on the lhs.
5070
5071 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
5072
5073         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
5074         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
5075         * c-typeck.c (really_start_incremental_init): Likewise.
5076         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
5077         (TARGET_INITIALIZER): Remove it.
5078         * target.h (struct target): Remove vector_opaque_p.
5079         * tree.c (build_opaque_vector_type): New.
5080         * tree.h (TYPE_VECTOR_OPAQUE): New.
5081         (build_opaque_vector_type): Declare.
5082         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
5083         * config/rs6000/rs6000.c (build_opaque_vector_type,
5084         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
5085         (rs6000_init_builtins): Use build_opaque_vector_type for
5086         opaque_V4SI_type_node.
5087
5088 2009-04-15  Catherine Moore  <clm@codesourcery.com>
5089
5090         * debug.h (set_name):  Declare.
5091         * dwarf2out.c (dwarf2out_set_name): Declare.
5092         (dwarf2_debug_hooks): Add set_name.
5093         (find_AT_string): New.
5094         (add_AT_string): Call find_AT_string.
5095         (dwarf2out_set_name): New.
5096         * cp/decl.c (grokdeclarator): Call set_name.
5097         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
5098         * debug.c (do_nothing_debug_hooks):  Likewise.
5099         * dbxout.c (dbx_debug_hooks): Likewise.
5100         * sdbout.c (sdb_debug_hooks): Likewise.
5101
5102 2009-04-15  Michael Eager  <eager@eagercon.com>
5103
5104         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
5105         reg for single-precision FPU.
5106         * config/rs6000/rs6000.md (movsi_internal1): Only for
5107         !TARGET_SINGLE_FPU.
5108         (movsi_internal1_single): New. Add pattern to move SI values to/from
5109         single-precision FP regs.
5110
5111 2009-04-15  Richard Guenther  <rguenther@suse.de>
5112
5113         * omp-low.c (lower_rec_input_clauses): Build correct address
5114         expressions.
5115         (expand_omp_for_generic): Fix multiplication type.
5116         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
5117         (generate_memset_zero): Fix types.
5118         * tree-profile.c (prepare_instrumented_value): Correctly
5119         widen a pointer.
5120
5121 2009-04-15  Ian Lance Taylor  <iant@google.com>
5122
5123         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
5124         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
5125         for -Wall and for -Wc++-compat.
5126         (c_common_post_options): For C++, set warn_enum_compare if not
5127         already set.
5128         * c-tree.h (struct c_expr): Add field original_type.
5129         (build_external_ref): Update declaration.
5130         * c-parser.c (c_parser_braced_init): Set original_type.
5131         (c_parser_initelt): Likewise.
5132         (c_parser_expr_no_commas): Likewise.
5133         (c_parser_conditional_expression): Likewise.
5134         (c_parser_cast_expression): Likewise.
5135         (c_parser_unary_expression): Likewise.  Pull setting of
5136         original_code to top of function.
5137         (c_parser_sizeof_expression): Set original_type.
5138         (c_parser_alignof_expression): Likewise.
5139         (c_parser_postfix_expression): Likewise.  Pull setting of
5140         original_code to top of function.
5141         (c_parser_postfix_expression_after_paren_type): Set original_type.
5142         (c_parser_postfix_expression_after_primary): Likewise.
5143         (c_parser_expression): Likewise.
5144         * c-typeck.c (build_external_ref): Add type parameter.  Change all
5145         callers.
5146         (c_expr_sizeof_expr): Set original_type field.
5147         (parser_build_unary_op): Likewise.
5148         (parser_build_binary_op): Likewise.  Optionally warn about
5149         comparisons of enums of different types.
5150         (digest_init): Set original_type field.
5151         (really_start_incremental_init): Likewise.
5152         (push_init_level, pop_init_level): Likewise.
5153         * doc/invoke.texi (Warning Options): -Wenum-compare now
5154         supported in C.
5155
5156 2009-04-15  Richard Guenther  <rguenther@suse.de>
5157
5158         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5159         out a necessary conversion.
5160         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5161         names we didn't value number.
5162         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5163
5164 2009-04-15  Richard Guenther  <rguenther@suse.de>
5165
5166         PR tree-optimization/39764
5167         * tree-ssa-ccp.c (get_value): Canonicalize value with
5168         canonicalize_float_value.
5169
5170 2009-04-15  Jan Hubicka  <jh@suse.cz>
5171
5172         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5173         Wrong version of patch.
5174
5175 2009-04-15  Jan Hubicka  <jh@suse.cz>
5176
5177         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5178
5179 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
5180
5181         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5182         our distinct integral and vector types.
5183
5184 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
5185
5186         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5187         * init.c (build_vtbl_address): Remove call to assemble_external.
5188
5189 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
5190
5191         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5192         output for other floating point modes.
5193
5194 2009-04-14  Diego Novillo  <dnovillo@google.com>
5195
5196         * diagnostic.c (diagnostic_report_diagnostic): Do not
5197         warn about loaded plugins for DK_ERROR and DK_WARNING.
5198         * c-decl.c (declspecs_add_type): Move call to
5199         invoke_plugin_callbacks ...
5200         * c-parser.c (c_parser_declspecs): ... here.
5201         * plugin.c (dump_active_plugins): Tidy output.
5202
5203 2009-04-14  Diego Novillo  <dnovillo@google.com>
5204             Le-Chun Wu  <lcwu@google.com>
5205
5206         * configure.ac: Add --enable-plugin support.
5207         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5208         * Makefile.in (PLUGIN_H): Define.
5209         Export ENABLE_PLUGIN and GMPINC to site.exp.
5210         Add PLUGINLIBS to link command.
5211         Add/modify dependencies for plugin.o and files including plugin.h.
5212         (plugin.o): New.
5213         * config.in: Regenerate.
5214
5215         * opts.c (common_handle_option): Handle OPT_fplugin_ and
5216         OPT_fplugin_arg_.
5217
5218 2009-04-14  Le-Chun Wu  <lcwu@google.com>
5219
5220         * tree-pass.h (register_one_dump_file): Add a prototype for
5221         register_one_dump_file.
5222         * toplev.c (compile_file): Call initialize_plugins.
5223         (do_compile): Call invoke_plugin_callbacks.
5224         (toplev_main): Call invoke_plugin_callbacks.
5225         * common.opt: Add -fplugin= and -fplugin-arg-.
5226         * gcc-plugin.h: New public header file for plugins to include.
5227         * plugin.c: New source file.
5228         * plugin.h: New internal header file.
5229         * passes.c (register_one_dump_file): Make it external.
5230
5231         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5232
5233 2009-04-14  Diego Novillo  <dnovillo@google.com>
5234
5235         * doc/plugins.texi: New.
5236         * doc/gccint.texi: Add reference to Plugins chapter.
5237         * doc/invoke.texi: Document -fplugin and -fplugin-arg
5238         * diagnostic.c (diagnostic_report_diagnostic): Warn about
5239         loaded plugins, if any.
5240         * timevar.def (TV_PLUGIN_INIT): Define.
5241         (TV_PLUGIN_RUN): Define.
5242         * plugin.c: Include timevar.h
5243         (plugins_active_p): New.
5244         (dump_active_plugins): New.
5245         (debug_active_plugins): New.
5246
5247 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
5248
5249         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5250         library paths.
5251         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5252
5253 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
5254
5255         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5256         the same as a minus without a shift.
5257
5258 2009-04-14  Nick Clifton  <nickc@redhat.com>
5259
5260         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5261         comparisons with small integers will always produce a short
5262         branch.
5263
5264 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
5265
5266         Merge:
5267         2008-12-19  Diego Novillo  <dnovillo@google.com>
5268
5269         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5270
5271 2009-04-14  Richard Guenther  <rguenther@suse.de>
5272
5273         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5274         verification.
5275         (verify_gimple_assign_binary): Likewise.  Handle shifts and
5276         rotates correctly.
5277         (verify_gimple_phi): Print the mismatched argument position.
5278         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5279         Fix types.
5280         (vect_update_init_of_dr): Likewise.
5281         * matrix-reorg.c (transform_access_sites): Do what the
5282         comment suggests.
5283         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5284
5285 2009-04-13  Michael Eager  <eager@eagercon.com>
5286
5287         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5288         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5289         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
5290         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5291         remove duplicate config
5292
5293 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5294
5295         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5296         file_name:line_number type locator of the call site.
5297
5298 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5299
5300         * genautomata.c: Put blank after comma.
5301         (automaton_decls): New.
5302         (struct unit_usage): Add comments to member next.
5303         (store_alt_unit_usage): Keep the list ordered.
5304         (unit_present_on_list_p, equal_alternatives_p): New.
5305         (check_regexp_units_distribution): Check units distribution
5306         correctness correctly.
5307         (main): Don't write automata if error is found.  Return correct
5308         exit code.
5309
5310         * config/m68k/cf.md (cfv4_ds): Remove.
5311         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5312         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5313
5314         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5315         power4-load-ext, power4-store, power4-store-update,
5316         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5317         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5318         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5319         power4-sqrt, power4-isync): Modify reservation to make correct
5320         unit distribution to automata.
5321
5322         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5323         power5-store-update, power5-two, power5-three, power5-lmul,
5324         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5325
5326 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
5327
5328         * except.c (pass_set_nothrow_function_flags): Set name and add
5329         TODO_dump_func.
5330         (set_nothrow_function_flags): Mention in the dump file when
5331         changing a function to nothrow.
5332
5333 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
5334
5335         PR/39066
5336         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5337         instead of unsigned long.
5338
5339 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5340
5341         * config/arm/arm.c (return_used_this_function): Remove.
5342         (arm_output_function_prologue): Remove use of
5343         return_used_this_function.
5344         (output_return_instruction): Replace use of
5345         return_used_this_function
5346         by cfun->machine->return_used_this_function.
5347         (arm_output_epilogue): Likewise.
5348         (arm_output_function_epilogue): Likewise.
5349         (thumb_unexpanded_epilogue): Likewise.
5350         * config/arm/arm.h (struct machine_function):
5351         New member return_used_this_function.
5352
5353 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
5354
5355         * doc/install.texi: Correct description of default directory for
5356         --with-gxx-include-dir.
5357
5358 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5359
5360         * fold-const.c (build_range_check): Properly deal with enumeral and
5361         boolean base types.
5362
5363 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
5364
5365         * doc/invoke.texi (max_gcse_passes): Remove documentation.
5366         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5367         * params.h (MAX_GCSE_PASSES): Remove.
5368         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5369         in sequence.  Remove ability to run multiple passes.
5370         (bypass_jumps): Report run as third CPROP pass.
5371
5372 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
5373
5374         PR middle-end/39651
5375         * except.c (can_throw_external): Look at each insn in a SEQUENCE
5376         when deciding whether the whole SEQUENCE can throw.
5377
5378 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
5379
5380         PR target/39740
5381         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5382         offseted label references.
5383
5384 2009-04-11  Jan Hubicka  <jh@suse.cz>
5385
5386         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5387
5388 2009-04-11  Richard Guenther  <rguenther@suse.de>
5389
5390         PR middle-end/39732
5391         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5392         return variables as TREE_ADDRESSABLE.
5393
5394 2009-04-11  Richard Guenther  <rguenther@suse.de>
5395
5396         PR tree-optimization/39713
5397         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5398         reference trees have SSA_NAME operands.
5399
5400 2009-04-11  Richard Guenther  <rguenther@suse.de>
5401
5402         PR c/39712
5403         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5404         address expressions.
5405
5406 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5407
5408         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
5409         match changes in Cygwin 1.7
5410         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5411         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
5412
5413 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5414
5415         PR tree-optimization/39701
5416         * doc/invoke.texi (Optimization Options): Document change in
5417         meaning and initialization of -fdelete-null-pointer-checks.
5418
5419 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5420
5421         PR middle-end/39701
5422         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5423
5424         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5425         here.
5426
5427         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5428
5429 2009-04-10  Chao-ying Fu  <fu@mips.com>
5430
5431         * doc/tm.texi (Instruction Output): Document
5432         TARGET_ASM_FINAL_POSTSCAN_INSN.
5433         * target.h (final_postscan_insn): New field in asm_out.
5434         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5435         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5436         * final.c (final_scan_insn): Call
5437         targetm.asm_out.final_postscan_insn after outputting
5438         an asm macro and a normal instruction.
5439
5440         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5441         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5442         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5443         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5444         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5445
5446 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5447
5448         PR middle-end/39701
5449         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5450         variables as non-NULL even with -fdelete-null-pointer-checks.
5451
5452 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5453
5454         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5455
5456 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
5457
5458         PR target/39678
5459         * config/i386/i386.c (classify_argument): Handle SCmode with
5460         (bit_offset % 64) != 0.
5461
5462 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
5463
5464         * doc/invoke.texi (Optimize Options): Add cross-reference to
5465         -Q --help=optimizers examples.
5466
5467 2009-04-10  Ben Elliston  <bje@au.ibm.com>
5468
5469         PR target/36800
5470         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5471         regalign for the reg == fpr and TDmode case.
5472
5473 2009-04-09  David Ayers  <ayers@fsfe.org>
5474
5475         PR objc/29200
5476         * objc/objc-act.c (warn_with_method): Remove helper function.
5477         (check_duplicates): Call warning and inform directly.
5478         (really_start_method): Likewise.
5479
5480 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5481
5482         * expmed.c (expand_divmod): Always use a comparison for a division
5483         by a large unsigned integer.
5484
5485         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5486         for things others than variables or functions as nonzero.
5487
5488 2009-04-09  Nick Clifton  <nickc@redhat.com>
5489
5490         * unwind-compat.c: Change copyright header to refer to version
5491         3 of the GNU General Public License with version 3.1 of the
5492         GCC Runtime Library Exception and to point readers at the
5493         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
5494         * config/alpha/crtfastmath.c: Likewise.
5495         * config/alpha/linux-unwind.h: Likewise.
5496         * config/alpha/qrnnd.asm: Likewise.
5497         * config/alpha/vms-crt0-64.c: Likewise.
5498         * config/alpha/vms-crt0.c: Likewise.
5499         * config/alpha/vms-dwarf2.asm: Likewise.
5500         * config/alpha/vms-dwarf2eh.asm: Likewise.
5501         * config/alpha/vms-psxcrt0-64.c: Likewise.
5502         * config/alpha/vms-psxcrt0.c: Likewise.
5503         * config/alpha/vms_tramp.asm: Likewise.
5504         * config/arc/initfini.c: Likewise.
5505         * config/arc/lib1funcs.asm: Likewise.
5506         * config/arm/bpabi-v6m.S: Likewise.
5507         * config/arm/bpabi.S: Likewise.
5508         * config/arm/bpabi.c: Likewise.
5509         * config/arm/crti.asm: Likewise.
5510         * config/arm/crtn.asm: Likewise.
5511         * config/arm/ieee754-df.S: Likewise.
5512         * config/arm/ieee754-sf.S: Likewise.
5513         * config/arm/lib1funcs.asm: Likewise.
5514         * config/arm/libunwind.S: Likewise.
5515         * config/arm/linux-atomic.c: Likewise.
5516         * config/arm/mmintrin.h: Likewise.
5517         * config/arm/pr-support.c: Likewise.
5518         * config/arm/unaligned-funcs.c: Likewise.
5519         * config/arm/unwind-arm.c: Likewise.
5520         * config/arm/unwind-arm.h: Likewise.
5521         * config/avr/libgcc.S: Likewise.
5522         * config/bfin/crti.s: Likewise.
5523         * config/bfin/crtlibid.s: Likewise.
5524         * config/bfin/crtn.s: Likewise.
5525         * config/bfin/lib1funcs.asm: Likewise.
5526         * config/bfin/linux-unwind.h: Likewise.
5527         * config/cris/arit.c: Likewise.
5528         * config/cris/cris_abi_symbol.c: Likewise.
5529         * config/darwin-64.c: Likewise.
5530         * config/darwin-crt2.c: Likewise.
5531         * config/darwin-crt3.c: Likewise.
5532         * config/darwin.h: Likewise.
5533         * config/dbxelf.h: Likewise.
5534         * config/dfp-bit.c: Likewise.
5535         * config/dfp-bit.h: Likewise.
5536         * config/elfos.h: Likewise.
5537         * config/fixed-bit.c: Likewise.
5538         * config/fixed-bit.h: Likewise.
5539         * config/fp-bit.c: Likewise.
5540         * config/fp-bit.h: Likewise.
5541         * config/fr30/crti.asm: Likewise.
5542         * config/fr30/crtn.asm: Likewise.
5543         * config/fr30/lib1funcs.asm: Likewise.
5544         * config/freebsd-spec.h: Likewise.
5545         * config/frv/cmovd.c: Likewise.
5546         * config/frv/cmovh.c: Likewise.
5547         * config/frv/cmovw.c: Likewise.
5548         * config/frv/frvbegin.c: Likewise.
5549         * config/frv/frvend.c: Likewise.
5550         * config/frv/lib1funcs.asm: Likewise.
5551         * config/glibc-stdint.h: Likewise.
5552         * config/h8300/clzhi2.c: Likewise.
5553         * config/h8300/crti.asm: Likewise.
5554         * config/h8300/crtn.asm: Likewise.
5555         * config/h8300/ctzhi2.c: Likewise.
5556         * config/h8300/fixunssfsi.c: Likewise.
5557         * config/h8300/lib1funcs.asm: Likewise.
5558         * config/h8300/parityhi2.c: Likewise.
5559         * config/h8300/popcounthi2.c: Likewise.
5560         * config/i386/ammintrin.h: Likewise.
5561         * config/i386/att.h: Likewise.
5562         * config/i386/avxintrin.h: Likewise.
5563         * config/i386/biarch64.h: Likewise.
5564         * config/i386/bmmintrin.h: Likewise.
5565         * config/i386/cpuid.h: Likewise.
5566         * config/i386/cross-stdarg.h: Likewise.
5567         * config/i386/crtfastmath.c: Likewise.
5568         * config/i386/crtprec.c: Likewise.
5569         * config/i386/cygming-crtbegin.c: Likewise.
5570         * config/i386/cygming-crtend.c: Likewise.
5571         * config/i386/cygwin.asm: Likewise.
5572         * config/i386/emmintrin.h: Likewise.
5573         * config/i386/gmm_malloc.h: Likewise.
5574         * config/i386/gthr-win32.c: Likewise.
5575         * config/i386/i386.h: Likewise.
5576         * config/i386/immintrin.h: Likewise.
5577         * config/i386/linux-unwind.h: Likewise.
5578         * config/i386/linux64.h: Likewise.
5579         * config/i386/mm3dnow.h: Likewise.
5580         * config/i386/mmintrin-common.h: Likewise.
5581         * config/i386/mmintrin.h: Likewise.
5582         * config/i386/nmmintrin.h: Likewise.
5583         * config/i386/pmm_malloc.h: Likewise.
5584         * config/i386/pmmintrin.h: Likewise.
5585         * config/i386/smmintrin.h: Likewise.
5586         * config/i386/sol2-c1.asm: Likewise.
5587         * config/i386/sol2-ci.asm: Likewise.
5588         * config/i386/sol2-cn.asm: Likewise.
5589         * config/i386/sol2-gc1.asm: Likewise.
5590         * config/i386/tmmintrin.h: Likewise.
5591         * config/i386/unix.h: Likewise.
5592         * config/i386/w32-unwind.h: Likewise.
5593         * config/i386/wmmintrin.h: Likewise.
5594         * config/i386/x86-64.h: Likewise.
5595         * config/i386/x86intrin.h: Likewise.
5596         * config/i386/xmmintrin.h: Likewise.
5597         * config/ia64/crtbegin.asm: Likewise.
5598         * config/ia64/crtend.asm: Likewise.
5599         * config/ia64/crtfastmath.c: Likewise.
5600         * config/ia64/crti.asm: Likewise.
5601         * config/ia64/crtn.asm: Likewise.
5602         * config/ia64/fde-glibc.c: Likewise.
5603         * config/ia64/lib1funcs.asm: Likewise.
5604         * config/ia64/linux-unwind.h: Likewise.
5605         * config/ia64/quadlib.c: Likewise.
5606         * config/ia64/unwind-ia64.c: Likewise.
5607         * config/linux.h: Likewise.
5608         * config/m32c/m32c-lib1.S: Likewise.
5609         * config/m32c/m32c-lib2-trapv.c: Likewise.
5610         * config/m32c/m32c-lib2.c: Likewise.
5611         * config/m32r/initfini.c: Likewise.
5612         * config/m68hc11/larith.asm: Likewise.
5613         * config/m68hc11/m68hc11-crt0.S: Likewise.
5614         * config/m68k/cf.md: Likewise.
5615         * config/m68k/crti.s: Likewise.
5616         * config/m68k/crtn.s: Likewise.
5617         * config/m68k/lb1sf68.asm: Likewise.
5618         * config/m68k/linux-unwind.h: Likewise.
5619         * config/mcore/crti.asm: Likewise.
5620         * config/mcore/crtn.asm: Likewise.
5621         * config/mcore/lib1.asm: Likewise.
5622         * config/mips/linux-unwind.h: Likewise.
5623         * config/mips/loongson.h: Likewise.
5624         * config/mips/mips16.S: Likewise.
5625         * config/mmix/crti.asm: Likewise.
5626         * config/mmix/crtn.asm: Likewise.
5627         * config/pa/fptr.c: Likewise.
5628         * config/pa/hpux-unwind.h: Likewise.
5629         * config/pa/lib2funcs.asm: Likewise.
5630         * config/pa/linux-atomic.c: Likewise.
5631         * config/pa/linux-unwind.h: Likewise.
5632         * config/pa/milli64.S: Likewise.
5633         * config/pa/quadlib.c: Likewise.
5634         * config/pa/stublib.c: Likewise.
5635         * config/picochip/libgccExtras/adddi3.asm: Likewise.
5636         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5637         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5638         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5639         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5640         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5641         * config/picochip/libgccExtras/divmod15.asm: Likewise.
5642         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5643         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5644         * config/picochip/libgccExtras/longjmp.asm: Likewise.
5645         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5646         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5647         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5648         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5649         * config/picochip/libgccExtras/setjmp.asm: Likewise.
5650         * config/picochip/libgccExtras/subdi3.asm: Likewise.
5651         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5652         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5653         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5654         * config/rs6000/750cl.h: Likewise.
5655         * config/rs6000/altivec.h: Likewise.
5656         * config/rs6000/biarch64.h: Likewise.
5657         * config/rs6000/crtresfpr.asm: Likewise.
5658         * config/rs6000/crtresgpr.asm: Likewise.
5659         * config/rs6000/crtresxfpr.asm: Likewise.
5660         * config/rs6000/crtresxgpr.asm: Likewise.
5661         * config/rs6000/crtsavfpr.asm: Likewise.
5662         * config/rs6000/crtsavgpr.asm: Likewise.
5663         * config/rs6000/darwin-asm.h: Likewise.
5664         * config/rs6000/darwin-fallback.c: Likewise.
5665         * config/rs6000/darwin-fpsave.asm: Likewise.
5666         * config/rs6000/darwin-ldouble.c: Likewise.
5667         * config/rs6000/darwin-tramp.asm: Likewise.
5668         * config/rs6000/darwin-unwind.h: Likewise.
5669         * config/rs6000/darwin-vecsave.asm: Likewise.
5670         * config/rs6000/darwin-world.asm: Likewise.
5671         * config/rs6000/e500crtres32gpr.asm: Likewise.
5672         * config/rs6000/e500crtres64gpr.asm: Likewise.
5673         * config/rs6000/e500crtres64gprctr.asm: Likewise.
5674         * config/rs6000/e500crtrest32gpr.asm: Likewise.
5675         * config/rs6000/e500crtrest64gpr.asm: Likewise.
5676         * config/rs6000/e500crtresx32gpr.asm: Likewise.
5677         * config/rs6000/e500crtresx64gpr.asm: Likewise.
5678         * config/rs6000/e500crtsav32gpr.asm: Likewise.
5679         * config/rs6000/e500crtsav64gpr.asm: Likewise.
5680         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5681         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5682         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5683         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5684         * config/rs6000/eabi-ci.asm: Likewise.
5685         * config/rs6000/eabi-cn.asm: Likewise.
5686         * config/rs6000/eabi.asm: Likewise.
5687         * config/rs6000/linux-unwind.h: Likewise.
5688         * config/rs6000/linux64.h: Likewise.
5689         * config/rs6000/paired.h: Likewise.
5690         * config/rs6000/paired.md: Likewise.
5691         * config/rs6000/ppc64-fp.c: Likewise.
5692         * config/rs6000/ppu_intrinsics.h: Likewise.
5693         * config/rs6000/rs6000.h: Likewise.
5694         * config/rs6000/si2vmx.h: Likewise.
5695         * config/rs6000/sol-ci.asm: Likewise.
5696         * config/rs6000/sol-cn.asm: Likewise.
5697         * config/rs6000/spe.h: Likewise.
5698         * config/rs6000/spu2vmx.h: Likewise.
5699         * config/rs6000/sysv4.h: Likewise.
5700         * config/rs6000/tramp.asm: Likewise.
5701         * config/rs6000/vec_types.h: Likewise.
5702         * config/s390/linux-unwind.h: Likewise.
5703         * config/s390/tpf-unwind.h: Likewise.
5704         * config/score/crti.asm: Likewise.
5705         * config/score/crtn.asm: Likewise.
5706         * config/sh/crt1.asm: Likewise.
5707         * config/sh/crti.asm: Likewise.
5708         * config/sh/crtn.asm: Likewise.
5709         * config/sh/divtab-sh4-300.c: Likewise.
5710         * config/sh/divtab-sh4.c: Likewise.
5711         * config/sh/divtab.c: Likewise.
5712         * config/sh/lib1funcs-4-300.asm: Likewise.
5713         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5714         * config/sh/lib1funcs.asm: Likewise.
5715         * config/sh/lib1funcs.h: Likewise.
5716         * config/sh/linux-atomic.asm: Likewise.
5717         * config/sh/linux-unwind.h: Likewise.
5718         * config/sh/shmedia.h: Likewise.
5719         * config/sh/sshmedia.h: Likewise.
5720         * config/sh/ushmedia.h: Likewise.
5721         * config/sparc/crtfastmath.c: Likewise.
5722         * config/sparc/linux-unwind.h: Likewise.
5723         * config/sparc/sol2-c1.asm: Likewise.
5724         * config/sparc/sol2-ci.asm: Likewise.
5725         * config/sparc/sol2-cn.asm: Likewise.
5726         * config/spu/divmodti4.c: Likewise.
5727         * config/spu/divv2df3.c: Likewise.
5728         * config/spu/float_disf.c: Likewise.
5729         * config/spu/float_unsdidf.c: Likewise.
5730         * config/spu/float_unsdisf.c: Likewise.
5731         * config/spu/float_unssidf.c: Likewise.
5732         * config/spu/mfc_multi_tag_release.c: Likewise.
5733         * config/spu/mfc_multi_tag_reserve.c: Likewise.
5734         * config/spu/mfc_tag_release.c: Likewise.
5735         * config/spu/mfc_tag_reserve.c: Likewise.
5736         * config/spu/mfc_tag_table.c: Likewise.
5737         * config/spu/multi3.c: Likewise.
5738         * config/spu/spu_internals.h: Likewise.
5739         * config/spu/spu_intrinsics.h: Likewise.
5740         * config/spu/spu_mfcio.h: Likewise.
5741         * config/spu/vec_types.h: Likewise.
5742         * config/spu/vmx2spu.h: Likewise.
5743         * config/stormy16/stormy16-lib2.c: Likewise.
5744         * config/svr4.h: Likewise.
5745         * config/sync.c: Likewise.
5746         * config/v850/lib1funcs.asm: Likewise.
5747         * config/vxlib-tls.c: Likewise.
5748         * config/vxlib.c: Likewise.
5749         * config/vxworks-dummy.h: Likewise.
5750         * config/xtensa/crti.asm: Likewise.
5751         * config/xtensa/crtn.asm: Likewise.
5752         * config/xtensa/ieee754-df.S: Likewise.
5753         * config/xtensa/ieee754-sf.S: Likewise.
5754         * config/xtensa/lib1funcs.asm: Likewise.
5755         * config/xtensa/lib2funcs.S: Likewise.
5756         * config/xtensa/linux-unwind.h: Likewise.
5757         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5758         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5759         * coretypes.h: Likewise.
5760         * crtstuff.c: Likewise.
5761         * defaults.h: Likewise.
5762         * dwarf2.h: Likewise.
5763         * emutls.c: Likewise.
5764         * gbl-ctors.h: Likewise.
5765         * gcov-io.h: Likewise.
5766         * ginclude/float.h: Likewise.
5767         * ginclude/iso646.h: Likewise.
5768         * ginclude/stdarg.h: Likewise.
5769         * ginclude/stdbool.h: Likewise.
5770         * ginclude/stddef.h: Likewise.
5771         * ginclude/stdfix.h: Likewise.
5772         * ginclude/stdint-gcc.h: Likewise.
5773         * ginclude/tgmath.h: Likewise.
5774         * gthr-aix.h: Likewise.
5775         * gthr-dce.h: Likewise.
5776         * gthr-gnat.c: Likewise.
5777         * gthr-gnat.h: Likewise.
5778         * gthr-lynx.h: Likewise.
5779         * gthr-mipssde.h: Likewise.
5780         * gthr-nks.h: Likewise.
5781         * gthr-posix.c: Likewise.
5782         * gthr-posix.h: Likewise.
5783         * gthr-posix95.h: Likewise.
5784         * gthr-rtems.h: Likewise.
5785         * gthr-single.h: Likewise.
5786         * gthr-solaris.h: Likewise.
5787         * gthr-tpf.h: Likewise.
5788         * gthr-vxworks.h: Likewise.
5789         * gthr-win32.h: Likewise.
5790         * gthr.h: Likewise.
5791         * libgcc2.c: Likewise.
5792         * libgcc2.h: Likewise.
5793         * libgcov.c: Likewise.
5794         * tsystem.h: Likewise.
5795         * typeclass.h: Likewise.
5796         * unwind-c.c: Likewise.
5797         * unwind-compat.h: Likewise.
5798         * unwind-dw2-fde-compat.c: Likewise.
5799         * unwind-dw2-fde-darwin.c: Likewise.
5800         * unwind-dw2-fde-glibc.c: Likewise.
5801         * unwind-dw2-fde.c: Likewise.
5802         * unwind-dw2-fde.h: Likewise.
5803         * unwind-dw2.c: Likewise.
5804         * unwind-dw2.h: Likewise.
5805         * unwind-generic.h: Likewise.
5806         * unwind-pe.h: Likewise.
5807         * unwind-sjlj.c: Likewise.
5808         * unwind.inc: Likewise.
5809         * config/arm/neon-gen.ml: Change generated copyright header to
5810         refer to version 3 of the GNU General Public License with
5811         version 3.1 of the GCC Runtime Library Exception and to point
5812         readers at the COPYING3 and COPYING3.RUNTIME files and the
5813         FSF's license web page.
5814         * config/arm/arm_neon.h: Regenerate.
5815
5816 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
5817
5818         * config/cris/cris.md: Change copyright header to refer to version
5819         3 of the GNU General Public License.
5820         * doc/install.texi2html: Change copyright header to refer to version
5821         3 of the GNU General Public License and to point readers at the
5822         COPYING3 file and the FSF's license web page.
5823         * config/vax/linux.h: Likewise.
5824
5825 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5826
5827         * config/i386/i386.md (cmpcc): New.
5828         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5829         (sync_compare_and_swap_cc*): Delete.
5830
5831         * config/s390/s390.c (s390_compare_emitted): Remove.
5832         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5833         s390_compare_emitted used to be handled.  Assert that modes match.
5834         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5835         refer to sync_compare_and_swap_ccsi.
5836         * config/s390/s390.h (s390_compare_emitted): Remove.
5837         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5838         instead of s390_compare_emitted.
5839         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5840         instead of s390_compare_emitted.
5841         * config/s390/s390.md (cmpcc): New.
5842         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5843         CC_REGNUM, do not pretend it's set.
5844         (sync_compare_and_swap_cc*): Delete.
5845         * config/s390/predicates.md (cc_reg_operand): New.
5846
5847         * expr.c (sync_compare_and_swap_cc): Delete.
5848         * optabs.h (sync_compare_and_swap_cc): Delete.
5849         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5850         is being used with can_compare_p.
5851         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5852         (find_cc_set): New.
5853         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5854         look for a MODE_CC set instead.  Use emit_store_flag.
5855         (expand_compare_and_swap_loop): Likewise, with some additional
5856         complication to avoid a force_reg when useless.  Use
5857         emit_cmp_and_jump_insns.
5858         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5859         * doc/md.texi (sync_compare_and_swap_cc): Merge with
5860         sync_compare_and_swap documentation.
5861
5862 2009-04-09  Jan Hubicka  <jh@suse.cz>
5863
5864         * except.c (find_prev_try): Break out from ....
5865         (duplicate_eh_regions): ... here; properly update prev_try pointers
5866         when duplication part of tree.
5867         (dump_eh_tree): Improve dumping.
5868         (verify_eh_region): New.
5869         (verify_eh_tree): Use it.
5870
5871 2009-04-06  Richard Guenther  <rguenther@suse.de>
5872
5873         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5874         &ARRAY addresses by adjusting their types and prepending
5875         a conversion.
5876         * tree-cfg.c (verify_gimple_assign_single): Verify that
5877         addresses are correct.
5878
5879 2009-04-09  Richard Guenther  <rguenther@suse.de>
5880
5881         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5882         indices into an array reference if possible.
5883         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5884         Fold POINTER_PLUS_EXPR statements with invariant address.
5885
5886 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
5887
5888         PR target/39634
5889         * config.gcc (powerpc64-*-linux*): Always build biarch.
5890
5891 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
5892
5893         PR c/39613
5894         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5895         it and pedwarn if this results in an INTEGER_CST.
5896
5897 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5898
5899         * doc/install.texi: Update minimum GMP version.  Remove obsolete
5900         text in MPFR section.
5901
5902 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
5903
5904         * dwarf2out.c (class_scope_p): New static inline.
5905         (class_or_namespace_scope_p): Use it.
5906         (gen_variable_die): Use DW_TAG_member tag for static data member
5907         declarations instead of DW_TAG_variable.
5908
5909         PR middle-end/39573
5910         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5911         variables.
5912
5913 2009-04-08  Richard Guenther  <rguenther@suse.de>
5914
5915         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5916         valueize random data.
5917
5918 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
5919
5920         * config.gcc (aix tm_file):  Add aix-stdint.h.
5921         (aix tm clause use_gcc_stdint):  Set to wrap.
5922         * config/rs6000/aix-stdint.h:  New file.
5923
5924 2009-04-08  Richard Guenther  <rguenther@suse.de>
5925
5926         PR middle-end/36291
5927         * tree-dfa.c (add_referenced_var): Do not recurse into
5928         global initializers.
5929         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5930         exposed variables.
5931         (fold_const_aggregate_ref): Likewise.
5932
5933 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5934
5935         * recog.c (ordered_comparison_operator): New.
5936         * gensupport.c (std_preds): Add it.
5937         * doc/md.texi (Machine-Independent Predicates): Document it.
5938
5939 2009-04-08  Jan Hubicka  <jh@suse.cz>
5940
5941         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5942         * function.h (rtl_eh): Remove exception_handler_label_map.
5943         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5944         remove_exception_handler_label, for_each_eh_label_1): Remove.
5945         (rtl_remove_unreachable_regions): Remove.
5946         (convert_from_eh_region_ranges): Do not remove unreachable regions.
5947         (find_exception_handler_labels): Don't build the hashtable.
5948         (maybe_remove_eh_handler): Remove.
5949         (for_each_eh_label): Rewrite to walk the tree.
5950         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5951         * except.h (maybe_remove_eh_handler): Remove.
5952         * passes.c (init_optimization_passes): Schedule second EH cleanup
5953         before out-of-ssa.
5954         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5955         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5956
5957 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5958
5959         * genoutput.c (validate_optab_operands): New.
5960         (gen_insn, gen_expand): Call it.
5961
5962         * genflags.c (gen_insn): Detect misused iterators.
5963         (main): Pass line_no to gen_insn, exit with status 1 on error.
5964
5965         * genextract.c (line_no): Make global.
5966         (VEC_safe_set_locstr): Change assertion to error message.
5967         (main): Exit with status 1 on error.
5968
5969 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
5970
5971         PR c/39614
5972         PR c/39673
5973         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5974         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5975         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5976         * c-convert.c (convert): Do not call fold on results of conversion
5977         functions when the result is a C_MAYBE_CONST_EXPR.
5978         * c-parser.c (c_parser_postfix_expression): Do not fold condition
5979         of __builtin_choose_expr.
5980         * c-typeck.c (remove_c_maybe_const_expr): New.
5981         (build_unary_op, build_conditional_expr, build_compound_expr,
5982         build_binary_op, c_objc_common_truthvalue_conversion): Call
5983         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5984         integer operands.
5985
5986 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
5987
5988         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
5989         CODE to produce a new one. Add a prototype to use fold_convert_const
5990
5991 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5992
5993         PR bootstrap/39660
5994         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5995         mix declarations and code.
5996
5997 2009-04-08  Ben Elliston  <bje@au.ibm.com>
5998
5999         * gcc.c: Replace `CC' with `GCC' throughout.
6000
6001 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6002
6003         * doc/invoke.texi: Document Atom support.
6004
6005 2009-04-07  Jason Merrill  <jason@redhat.com>
6006
6007         PR c++/25185
6008         * c-common.h, c-common.c: Add flag_pretty_templates.
6009         * c-opts.c (c_common_handle_option): Set it.
6010         * c.opt: Add -fno-pretty-templates.
6011         * doc/invoke.texi (C++ Dialect Options): Likewise.
6012
6013 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
6014
6015         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
6016         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
6017         (ia64_expand_builtin): Likewise.
6018
6019 2009-04-07  Martin Jambor  <mjambor@suse.cz>
6020
6021         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
6022         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
6023         ADDR_EXPRS are include too.
6024
6025 2009-04-07  Richard Guenther  <rguenther@suse.de>
6026
6027         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
6028         decls are only used if passes as parameters or if they are
6029         local statics and the call is not to a builtin.
6030         (call_may_clobber_ref_p_1): Likewise.
6031
6032 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6033
6034         * expr.c (do_store_flag): Remove last argument.  Simplify code
6035         to avoid duplication of tests already done by can_compare_p.
6036         (expand_expr_real_1): Adjust caller.
6037
6038 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6039
6040         * optabs.c (can_compare_p): Test the predicate of a
6041         cbranch and cstore pattern.
6042
6043 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6044
6045         * expr.c (convert_move): Use emit_store_flag instead of
6046         "emulating" it.
6047
6048 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6049
6050         * config/i386/i386.c (ix86_compare_emitted): Remove.
6051         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
6052         ix86_compare_op0 like ix86_compare_emitted used to be handled.
6053         * config/i386/i386.h (ix86_compare_emitted): Remove.
6054         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
6055         instead of ix86_compare_emitted.
6056         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
6057
6058 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
6059
6060         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
6061         Add t-sysroot-suffix to tmake_file.
6062         * config/print-sysroot-suffix.sh: New file.
6063         * config/t-sysroot-suffix: New file.
6064
6065 2009-04-07  Ben Elliston  <bje@au.ibm.com>
6066
6067         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
6068         as the latter produces a warning when the target does not support
6069         infinity.
6070
6071 2009-04-07  Ben Elliston  <bje@au.ibm.com>
6072
6073         * dfp.c: Replace type punning assignments with memcpy throughout.
6074         * Makefile.in (dfp.o-warn): Remove.
6075
6076 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
6077
6078         PR target/39634
6079         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
6080         Include soft-fp/t-softfp after rs6000/t-linux64.
6081
6082 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6083
6084         * stor-layout.c (set_sizetype): Use the full precision of their
6085         machine mode for bitsize types.
6086
6087 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
6088
6089         * config/i386/i386.md: Revert 2 accidental checkins.
6090
6091 2009-04-06  Joey Ye  <joey.ye@intel.com>
6092             Xuepeng Guo  <xuepeng.guo@intel.com>
6093             H.J. Lu  <hongjiu.lu@intel.com>
6094
6095         Atom pipeline model, tuning and insn selection.
6096         * config.gcc (atom): Add atom config options and target.
6097
6098         * config/i386/atom.md: New.
6099
6100         * config/i386/i386.c (atom_cost): New cost.
6101         (m_ATOM): New macro flag.
6102         (initial_ix86_tune_features): Set m_ATOM.
6103         (x86_accumulate_outgoing_args): Likewise.
6104         (x86_arch_always_fancy_math_387): Likewise.
6105         (processor_target): Add Atom cost.
6106         (cpu_names): Add Atom cpu name.
6107         (override_options): Set Atom ISA.
6108         (ix86_issue_rate): New case PROCESSOR_ATOM.
6109         (ix86_adjust_cost): Likewise.
6110
6111         * config/i386/i386.h (TARGET_ATOM): New target macro.
6112         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
6113         (TARGET_OPT_AGU): New target option.
6114         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
6115         (processor_type): Add PROCESSOR_ATOM.
6116
6117         * config/i386/i386.md (cpu): Add new value "atom".
6118         (use_carry, movu): New attr.
6119         (atom.md): Include atom.md.
6120         (adddi3_carry_rex64): Set attr "use_carry".
6121         (addqi3_carry): Likewise.
6122         (addhi3_carry): Likewise.
6123         (addsi3_carry): Likewise.
6124         (*addsi3_carry_zext): Likewise.
6125         (subdi3_carry_rex64): Likewise.
6126         (subqi3_carry): Likewise.
6127         (subhi3_carry): Likewise.
6128         (subsi3_carry): Likewise.
6129         (x86_movdicc_0_m1_rex64): Likewise.
6130         (*x86_movdicc_0_m1_se): Likewise.
6131         (x86_movsicc_0_m1): Likewise.
6132         (*x86_movsicc_0_m1_se): Likewise.
6133         (*adddi_1_rex64): Emit add insn as much as possible.
6134         (*addsi_1): Likewise.
6135         (return_internal): Set atom_unit.
6136         (return_internal_long): Likewise.
6137         (return_pop_internal): Likewise.
6138         (*rcpsf2_sse): Set atom_sse_attr attr.
6139         (*qrt<mode>2_sse): Likewise.
6140         (*prefetch_sse): Likewise.
6141
6142         * config/i386/i386-c.c (ix86_target_macros_internal): New case
6143         PROCESSOR_ATOM.
6144         (ix86_target_macros_internal): Likewise.
6145
6146         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6147         (*prefetch_sse_rex): Likewise.
6148         (sse_rcpv4sf2): Likewise.
6149         (sse_vmrcpv4sf2): Likewise.
6150         (sse_sqrtv4sf2): Likewise.
6151         (<sse>_vmsqrt<mode>2): Likewise.
6152         (sse_ldmxcsr): Likewise.
6153         (sse_stmxcsr): Likewise.
6154         (*sse_sfence): Likewise.
6155         (sse2_clflush): Likewise.
6156         (*sse2_mfence): Likewise.
6157         (*sse2_lfence): Likewise.
6158         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6159         (<sse>_movup<ssemodesuffixf2c>): Likewise.
6160         (avx_movdqu<avxmodesuffix>): Likewise.
6161         (avx_lddqu<avxmodesuffix>): Likewise.
6162         (sse2_movntv2di): Change attr "type" to "ssemov".
6163         (sse2_movntsi): Likewise.
6164         (rsqrtv8sf2): Change attr "type" to "sseadd".
6165         (sse3_addsubv2df3): Set attr "atom_unit".
6166         (sse3_h<plusminus_insn>v4sf3): Likewise.
6167         (*sse2_pmaddwd): Likewise.
6168         (*vec_extractv2di_1_rex64): Likewise.
6169         (*vec_extractv2di_1_avx): Likewise.
6170         (sse2_psadbw): Likewise.
6171         (ssse3_phaddwv8hi3): Likewise.
6172         (ssse3_phaddwv4hi3): Likewise.
6173         (ssse3_phadddv4si3): Likewise.
6174         (ssse3_phadddv2si3): Likewise.
6175         (ssse3_phaddswv8hi3): Likewise.
6176         (ssse3_phaddswv4hi3): Likewise.
6177         (ssse3_phsubwv8hi3): Likewise.
6178         (ssse3_phsubwv4hi3): Likewise.
6179         (ssse3_phsubdv4si3): Likewise.
6180         (ssse3_phsubdv2si3): Likewise.
6181         (ssse3_phsubswv8hi3): Likewise.
6182         (ssse3_phsubswv4hi3): Likewise.
6183         (ssse3_pmaddubsw128): Likewise.
6184         (sse3_pmaddubsw: Likewise.
6185         (ssse3_palignrti): Likewise.
6186         (ssse3_palignrdi): Likewise.
6187
6188 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
6189
6190         * doc/install.texi (Specific): Fix two cross-references to MinGW.
6191
6192 2009-04-06  Richard Guenther  <rguenther@suse.de>
6193
6194         PR tree-optimization/28868
6195         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6196         of which PHI results we inserted.
6197         (insert_into_preds_of_block): Record inserted PHIs.
6198         (eliminate): Eliminate redundant PHI nodes.
6199         (init_pre): Init inserted_phi_names.
6200
6201 2009-04-06  Richard Guenther  <rguenther@suse.de>
6202
6203         PR tree-optimization/39643
6204         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6205         IMAGPART_EXPRs of complex constants.
6206         (execute_fold_all_builtins): If we folded a call queue
6207         TODO_update_address_taken.
6208
6209 2009-04-06  Jan Hubicka  <jh@suse.cz>
6210
6211         PR middle-end/39659
6212         * except.c (remove_unreachable_regions): Propagate may_contain_throw
6213         flag.
6214
6215 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
6216
6217         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6218         delay slot.
6219         (ic_invalidate_array): Likewise.
6220
6221 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6222
6223         * calls.c (emit_library_call_value_1): Fix a problem with parameter
6224         alignment for library calls.
6225
6226 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
6227
6228         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
6229         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
6230         * config/i386/mingw-stdint.h:  New file.
6231
6232 2009-04-05  Richard Guenther  <rguenther@suse.de>
6233
6234         PR tree-optimization/39648
6235         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6236         our &A vs. &A[0] IL deficiencies.
6237
6238 2009-04-04  Jan Hubicka  <jh@suse.cz>
6239
6240         * except.c (sjlj_find_directly_reachable_regions): Be ready for
6241         removed toplevel regions.
6242         (sjlj_mark_call_sites): Likewise.
6243
6244 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
6245
6246         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
6247         (cygwin tm clause use_gcc_stdint):  Set to wrap.
6248         * config/i386/cygwin-stdint.h:  New file.
6249
6250 2009-04-04  Richard Guenther  <rguenther@suse.de>
6251
6252         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6253         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6254         single-argument PHIs if we are in loop-closed SSA form.
6255         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6256         for the pre-condition.
6257         (slpeel_tree_peel_loop_to_edge): Likewise.
6258         (vect_build_loop_niters): Take an optional sequence to append stmts.
6259         (vect_generate_tmps_on_preheader): Likewise.
6260         (vect_do_peeling_for_loop_bound): Take extra guards for the
6261         pre-condition.
6262         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
6263         the cost model check.
6264         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6265         guards if we are going to peel.  Do not apply versioning in that case.
6266         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6267         (vect_do_peeling_for_loop_bound): Likewise.
6268         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6269         loop bound only record extra pre-conditions, do not apply loop
6270         versioning.
6271
6272 2009-04-04  Richard Guenther  <rguenther@suse.de>
6273
6274         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6275         renaming code.
6276
6277 2009-04-04  Jan Hubicka  <jh@suse.cz>
6278
6279         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6280         last_basic_block for size of bb->index indexed array.
6281         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6282         compute_out, link_btr_uses, build_btr_def_use_webs,
6283         build_btr_def_use_webs, migrate_btr_defs): Likewise.
6284
6285 2009-04-04  Jan Hubicka  <jh@suse.cz>
6286
6287         * except.c (remove_eh_handler_and_replace): Break out from ...
6288         (remove_eh_handler): ... here.
6289         (bring_to_root): New function.
6290         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6291         handled ones, bring others to root of tree.
6292
6293 2009-04-04  Jan Hubicka  <jh@suse.cz>
6294
6295         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6296         (all_phis_safe_to_merge): New function.
6297         (update_info): New structure.
6298         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6299         (cleanup_empty_eh): Update SSA if possible.
6300
6301 2009-04-04  Richard Guenther  <rguenther@suse.de>
6302
6303         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6304         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6305         (append_vuse): Likewise.
6306
6307 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
6308
6309         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6310         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6311         instead of REG_UNSAVED for DW_CFA_undefined.
6312         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6313         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6314         outermost frame.
6315
6316 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
6317
6318         PR target/39501
6319         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6320         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6321         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6322
6323 2009-04-04  Richard Guenther  <rguenther@suse.de>
6324
6325         PR tree-optimization/8781
6326         PR tree-optimization/37892
6327         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6328         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6329         (valueize_refs): Call it for *& valueizations.
6330         (shared_reference_ops_from_ref): Rename to ...
6331         (valueize_shared_reference_ops_from_ref): ... this and valueize.
6332         (shared_reference_ops_from_call): Rename to ...
6333         (valueize_shared_reference_ops_from_call): ... this and valueize.
6334         (vn_reference_lookup): Update.
6335         (visit_reference_op_call): Likewise.
6336         * tree-ssa-pre.c (phi_translate_1): Fold *&.
6337         (eliminate): Value-replace the call address in call statements.
6338
6339 2009-04-04  Richard Guenther  <rguenther@suse.de>
6340
6341         PR tree-optimization/39636
6342         * tree-ssa-forwprop.c
6343         (forward_propagate_addr_into_variable_array_index): Check for
6344         GIMPLE_ASSIGN before accessing the rhs code.
6345
6346 2009-04-03  Jason Merrill  <jason@redhat.com>
6347
6348         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6349
6350 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
6351
6352         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6353         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6354         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6355         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6356         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6357         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6358         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6359         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6360         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6361         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6362         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6363         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6364         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6365         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6366         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6367         Use fr_reg_or_fp01_operand instead of fr_register_operand
6368
6369         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6370         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6371         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6372
6373 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
6374
6375         PR rtl-optimization/39607
6376         PR rtl-optimization/39631
6377
6378         Revert:
6379
6380         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6381         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6382         instead of DF_LR_OUT.
6383         * ira-lives.c (process_bb_node_lives): Ditto.
6384         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6385         instead of DF_LR_{OUT,IN}.
6386         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6387         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6388
6389 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
6390
6391         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6392         (execute_lower_omp): Always run but take the short way out if -fopenmp
6393         is not given.
6394         (gate_lower_omp): Remove, forcing the pass manager to always run the
6395         pass and always set PROP_gimple_lomp.
6396         (pass_lower_omp): Remove gate function.
6397         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6398         PROP_trees.  Instead, require it.
6399         * ipa-cp.c (pass_ipa_cp): Likewise.
6400         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6401         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6402         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6403         and PROP_gimple_leh.
6404
6405 2009-04-03  Richard Guenther  <rguenther@suse.de>
6406
6407         PR middle-end/13146
6408         PR tree-optimization/23940
6409         PR tree-optimization/33237
6410         PR middle-end/33974
6411         PR middle-end/34093
6412         PR tree-optimization/36201
6413         PR tree-optimization/36230
6414         PR tree-optimization/38049
6415         PR tree-optimization/38207
6416         PR tree-optimization/38230
6417         PR tree-optimization/38301
6418         PR tree-optimization/38585
6419         PR middle-end/38895
6420         PR tree-optimization/38985
6421         PR tree-optimization/39299
6422         * tree-ssa-structalias.h: Remove.
6423         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6424         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6425         (struct vuse_element_d): Remove.
6426         (struct vuse_vec_d): Likewise.
6427         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6428         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6429         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6430         VUSE_ELEMENT_VAR): Likewise.
6431         (struct voptype_d): Likewise.
6432         (NUM_VOP_FREE_BUCKETS): Likewise.
6433         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6434         (struct stmt_operands_d): Remove.
6435         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6436         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6437         VDEF_NUM, VDEF_VECT): Likewise.
6438         (copy_virtual_operands): Remove.
6439         (operand_build_cmp): Likewise.
6440         (create_ssa_artificial_load_stmt): Likewise.
6441         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6442         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6443         vuse_index and mayuse_index members.  Pack and move done and iter_type
6444         members to the front.
6445         (SSA_OP_VMAYUSE): Remove.
6446         (SSA_OP_VIRTUAL_USES): Adjust.
6447         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6448         (unlink_stmt_vdef): Declare.
6449         (add_to_addressable_set): Remove.
6450         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6451         (vrp_visit_stmt): Likewise.
6452         * doc/tree-ssa.texi (Alias analysis): Update.
6453         * doc/invoke.texi (max-aliased-vops): Remove docs.
6454         (avg-aliased-vops): Likewise.
6455         * tree-into-ssa.c (syms_to_rename): Remove.
6456         (need_to_update_vops_p): Likewise.
6457         (need_to_initialize_update_ssa_p): Rename to ...
6458         (update_ssa_initialized_fn): ... this.  Track function we are
6459         initialized for.
6460         (symbol_marked_for_renaming): Simplify.
6461         (add_new_name_mapping): Do not set need_to_update_vops_p.
6462         (dump_currdefs): Use SYMS_TO_RENAME.
6463         (rewrite_update_stmt): Always walk all uses/defs.
6464         (dump_update_ssa): Adjust.
6465         (init_update_ssa): Take function argument.  Track what we are
6466         initialized for.
6467         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6468         (create_new_def_for): Initialize for cfun, assert we are initialized
6469         for cfun.
6470         (mark_sym_for_renaming): Simplify.
6471         (mark_set_for_renaming): Do not initialize update-ssa.
6472         (need_ssa_update_p): Simplify.  Take function argument.
6473         (name_mappings_registered_p): Assert we ask for the correct function.
6474         (name_registered_for_update_p): Likewise.
6475         (ssa_names_to_replace): Likewise.
6476         (release_ssa_name_after_update_ssa): Likewise.
6477         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
6478         (dump_decl_set): Do not print a newline.
6479         (debug_decl_set): Do it here.
6480         (dump_update_ssa): And here.
6481         * tree-ssa-loop-im.c (move_computations): Adjust.
6482         (movement_possibility): Likewise.
6483         (determine_max_movement): Likewise.
6484         (gather_mem_refs_stmt): Likewise.
6485         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6486         or NAME_MEMORY_TAG.
6487         * tree-complex.c (update_all_vops): Remove.
6488         (expand_complex_move): Adjust.
6489         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6490         Simplify test for memory referencing statement.  Exclude
6491         non-invariant ADDR_EXPRs.
6492         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6493         * tree-loop-distribution.c (generate_memset_zero): Adjust.
6494         (rdg_flag_uses): Likewise.
6495         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6496         related code.
6497         (tree_optimize_tail_calls_1): Also split the
6498         edge from the entry block if we have degenerate PHI nodes in
6499         the first basic block.
6500         * tree.c (init_ttree): Remove memory-tag related code.
6501         (tree_code_size): Likewise.
6502         (tree_node_structure): Likewise.
6503         (build7_stat): Re-write to be build6_stat.
6504         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6505         (SSA_VAR_P): Adjust.
6506         (struct tree_memory_tag): Remove.
6507         (struct tree_memory_partition_tag): Likewise.
6508         (union tree_node): Adjust.
6509         (build7): Re-write to be build6.
6510         * tree-pass.h (pass_reset_cc_flags): Remove.
6511         (TODO_update_address_taken): New flag.
6512         (pass_simple_dse): Remove.
6513         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6514         * params.h (MAX_ALIASED_VOPS): Remove.
6515         (AVG_ALIASED_VOPS): Likewise.
6516         * omp-low.c (expand_omp_taskreg): Update SSA form.
6517         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6518         aliases the lhs in a copy stmt.
6519         * tree-ssa-dse.c (struct address_walk_data): Remove.
6520         (memory_ssa_name_same): Likewise.
6521         (memory_address_same): Likewise.
6522         (get_kill_of_stmt_lhs): Likewise.
6523         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
6524         unused stores.  Look through PHI nodes into post-dominated regions.
6525         (dse_optimize_stmt): Simplify.  Properly remove stores.
6526         (tree_ssa_dse): Compute dominators.
6527         (execute_simple_dse): Remove.
6528         (pass_simple_dse): Likewise.
6529         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6530         gimple_loaded_syms and gimple_stored_syms computation.
6531         * toplev.c (dump_memory_report): Dump alias and pta stats.
6532         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6533         (vn_reference_eq): Likewise.
6534         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6535         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6536         valueize_vuses): Remove.
6537         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
6538         (get_def_ref_stmt_vuse): ... this.
6539         (vn_reference_lookup_2): New function.
6540         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6541         walking equivalent vuses.  Simplify.
6542         (vn_reference_lookup): Likewise.
6543         (vn_reference_insert): Likewise.
6544         (vn_reference_insert_pieces): Likewise.
6545         (visit_reference_op_call): Simplify.
6546         (visit_reference_op_load): Likewise.
6547         (visit_reference_op_store): Likewise.
6548         (init_scc_vn): Remove shared_lookup_vuses initialization.
6549         (free_scc_vn): Remove shared_lookup_vuses freeing.
6550         (sort_vuses, sort_vuses_heap): Remove.
6551         (get_ref_from_reference_ops): Export.
6552         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6553         vector with single vuse pointer.
6554         (vn_reference_lookup_pieces, vn_reference_lookup,
6555         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6556         (shared_vuses_from_stmt): Remove.
6557         (get_ref_from_reference_ops): Declare.
6558         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6559         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6560         memory-tag related code.
6561         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6562         (likely_value): Add comment, skip static-chain of call statements.
6563         (surely_varying_stmt_p): Adjust.
6564         (gimplify_and_update_call_from_tree): Likewise.
6565         (execute_fold_all_builtins): Do not rebuild alias info.
6566         (gimplify_and_update_call_from_tree): Properly update VOPs.
6567         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6568         (copy_ref_info): Remove memory-tag related code.
6569         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6570         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6571         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6572         computation.
6573         * tree-ssa-dom.c (gimple_p): Remove typedef.
6574         (eliminate_redundant_computations): Adjust.
6575         (record_equivalences_from_stmt): Likewise.
6576         (avail_expr_hash): Likewise.
6577         (avail_expr_eq): Likewise.
6578         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
6579         (stmt_makes_single_load): Likewise.
6580         (stmt_makes_single_store): Likewise.
6581         * tree-ssa-alias.c: Rewrite completely.
6582         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6583         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6584         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6585         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6586         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6587         Remove public functions.
6588         (pass_reset_cc_flags): Remove.
6589         (pass_build_alias): Move ...
6590         * tree-ssa-structalias.c (pass_build_alias): ... here.
6591         * tree-ssa-alias.c (may_be_aliased): Move ...
6592         * tree-flow-inline.h (may_be_aliased): ... here.
6593         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6594         count_uses_and_derefs): Move ...
6595         * gimple.c: ... here.
6596         * gimple.h (count_uses_and_derefs): Declare.
6597         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6598         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6599         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6600         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6601         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6602         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6603         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6604         New functions.
6605         * tree-dfa.c (refs_may_alias_p): Move ...
6606         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
6607         * tree-ssa-alias.h: New file.
6608         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6609         (statement_sink_location): Likewise.
6610         * opts.c (decode_options): Do not adjust max-aliased-vops or
6611         avg-aliased-vops values.
6612         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6613         (TV_CALL_CLOBBER): Likewise.
6614         (TV_FLOW_SENSITIVE): Likewise.
6615         (TV_FLOW_INSENSITIVE): Likewise.
6616         (TV_MEMORY_PARTITIONING): Likewise.
6617         (TV_ALIAS_STMT_WALK): New timevar.
6618         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6619         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6620         (get_address_description): Remove memory-tag related code.
6621         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6622         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6623         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6624         and immediate uses in statements.  Document.
6625         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6626         (dump_symbols): Remove.
6627         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6628         * alias.c (get_deref_alias_set): New function split out from ...
6629         (get_alias_set): ... here.
6630         * alias.h (get_deref_alias_set): Declare.
6631         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6632         type parameter.  Remove restrict pointer handling.  Create a
6633         ref-all pointer in case type-based alias sets do not conflict.
6634         (vect_analyze_data_refs): Remove SMT related code.
6635         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6636         (vectorizable_load): Likewise.
6637         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6638         (DR_SYMBOL_TAG, DR_VOPS): Remove.
6639         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6640         Ignore vops and SMTs.
6641         (dr_analyze_alias): Likewise..
6642         (free_data_ref): Likewise.
6643         (create_data_ref): Likewise.
6644         (analyze_all_data_dependences): Likewise.
6645         (get_references_in_stmt): Adjust.
6646         * tree-flow-inline.h (gimple_aliases_computed_p,
6647         gimple_addressable_vars, gimple_call_clobbered_vars,
6648         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6649         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6650         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6651         gimple_mem_ref_stats): Remove.
6652         (gimple_vop): New function.
6653         (op_iter_next_use): Remove vuses and mayuses cases.
6654         (op_iter_next_def): Remove vdefs case.
6655         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6656         (clear_and_done_ssa_iter): Do not set removed fields.
6657         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
6658         Assert we are not iterating over vuses or vdefs if not also
6659         iterating over uses or defs.
6660         (op_iter_init_use): Likewise.
6661         (op_iter_init_def): Likewise.
6662         (op_iter_next_vdef): Remove.
6663         (op_iter_next_mustdef): Likewise.
6664         (op_iter_init_vdef): Likewise.
6665         (compare_ssa_operands_equal): Likewise.
6666         (link_use_stmts_after): Handle vuse operand.
6667         (is_call_used): Use is_call_clobbered.
6668         (is_call_clobbered): Global variables are always call clobbered,
6669         query the call-clobbers bitmap.
6670         (mark_call_clobbered): Ignore global variables.
6671         (clear_call_clobbered): Likewise.
6672         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6673         virtual operands sanity check.
6674         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6675         Remove.
6676         (TARGET_MEM_REF): Remove TMR_TAG operand.
6677         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6678         Remove call-clobber related code.
6679         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
6680         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6681         partitions or escape reason.
6682         (get_single_def_stmt, get_single_def_stmt_from_phi,
6683         get_single_def_stmt_with_phi): Remove.
6684         (dump_referenced_vars): Tidy.
6685         (get_ref_base_and_extent): Allow bare decls.
6686         (collect_dfa_stats): Adjust.
6687         * graphite.c (rename_variables_in_stmt): Adjust.
6688         (graphite_copy_stmts_from_block): Likewise.
6689         (translate_clast): Likewise.
6690         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6691         (EXPR_DIES): New.
6692         (translate_vuse_through_block): Use the oracle.
6693         (phi_translate_1): Adjust.
6694         (value_dies_in_block_x): Use the oracle.  Cache the outcome
6695         in EXPR_DIES.
6696         (valid_in_sets): Check if the VUSE for
6697         a REFERENCE is available.
6698         (eliminate): Do not remove stmts during elimination,
6699         instead queue and remove them afterwards.
6700         (do_pre): Do not rebuild alias info.
6701         (pass_pre): Run TODO_rebuild_alias before PRE.
6702         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6703         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6704         (mark_all_v_defs_stmt): Remove.
6705         (mark_all_v_defs_seq): Adjust.
6706         (sra_replace): Likewise.
6707         (scalarize_use): Likewise.
6708         (scalarize_copy): Likewise.
6709         (scalarize_init): Likewise.
6710         (scalarize_ldst): Likewise.
6711         (todoflags): Remove.
6712         (tree_sra): Do not rebuild alias info.
6713         (tree_sra_early): Adjust.
6714         (pass_sra): Run TODO_update_address_taken before SRA.
6715         * tree-predcom.c (set_alias_info): Remove.
6716         (prepare_initializers_chain): Do not call it.
6717         (mark_virtual_ops_for_renaming): Adjust.
6718         (mark_virtual_ops_for_renaming_list): Remove.
6719         (initialize_root_vars): Adjust.
6720         (initialize_root_vars_lm): Likewise.
6721         (prepare_initializers_chain): Likewise.
6722         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6723         (may_propagate_copy_into_stmt): Likewise.
6724         (merge_alias_info): Do nothing for now.
6725         (propagate_tree_value_into_stmt): Adjust.
6726         (stmt_may_generate_copy): Likewise.
6727         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6728         not mark symbols for renaming.
6729         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6730         with the same statement, make sure to update the new pointed-to one.
6731         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6732         call statements, do not mark symbols for renaming.
6733         (mark_operand_necessary): Dump something.
6734         (ref_may_be_aliased): New function.
6735         (mark_aliased_reaching_defs_necessary_1): New helper function.
6736         (mark_aliased_reaching_defs_necessary): Likewise.
6737         (mark_all_reaching_defs_necessary_1): Likewise.
6738         (mark_all_reaching_defs_necessary): Likewise.
6739         (propagate_necessity): Do not process virtual PHIs.  For
6740         non-aliased loads mark all reaching definitions as necessary.
6741         For aliased loads and stores mark the immediate dominating
6742         aliased clobbers as necessary.
6743         (visited): New global static.
6744         (perform_tree_ssa_dce): Free visited bitmap after propagating
6745         necessity.
6746         (remove_dead_phis): Perform simple dead virtual PHI removal.
6747         (remove_dead_stmt): Properly unlink virtual operands when
6748         removing stores.
6749         (eliminate_unnecessary_stmts): Schedule PHI removal after
6750         stmt removal.
6751         * tree-ssa-ter.c (is_replaceable_p): Adjust.
6752         (process_replaceable): Likewise.
6753         (find_replaceable_in_bb): Likewise.
6754         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6755         based on the single gimple vop.
6756         (verify_flow_insensitive_alias_info): Remove.
6757         (verify_flow_sensitive_alias_info): Likewise.
6758         (verify_call_clobbering): Likewise.
6759         (verify_memory_partitions): Likewise.
6760         (verify_alias_info): Likewise.
6761         (verify_ssa): Adjust..
6762         (execute_update_addresses_taken): Export.  Update SSA
6763         manually.  Optimize only when optimizing.  Use a local bitmap.
6764         (pass_update_address_taken): Remove TODO_update_ssa, add
6765         TODO_dump_func.
6766         (pass_update_address_taken): Just use TODO_update_address_taken.
6767         (init_tree_ssa): Do not initialize addressable_vars.
6768         (verify_ssa): Verify new VUSE / VDEF properties.
6769         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6770         Do not call verify_alias_info.
6771         (delete_tree_ssa): Clear the VUSE, VDEF operands.
6772         Do not free the loaded and stored syms bitmaps.  Reset the escaped
6773         and callused solutions.  Do not free addressable_vars.
6774         Remove memory-tag related code.
6775         (warn_uninitialized_var): Aliases are always available.
6776         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6777         * lambda-code.c (can_put_in_inner_loop): Adjust.
6778         (can_put_after_inner_loop): Likewise.
6779         (perfect_nestify): Likewise.
6780         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6781         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6782         (vectorizable_conversion): Do not mark symbols for renaming.
6783         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6784         (expand_call_inline): Unlink the calls virtual operands before
6785         replacing it.
6786         (tree_function_versioning): Do not call update_ssa if we are not
6787         updating clones.  Simplify.
6788         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6789         (propagate_with_phi): Likewise..
6790         * tree-outof-ssa.c (create_temp): Remove memory tag and call
6791         clobber code.  Assert we are not aliased or global.
6792         * tree-flow.h: Include tree-ssa-alias.h
6793         (enum escape_type): Remove.
6794         (struct mem_sym_stats_d): Likewise.
6795         (struct mem_ref_stats_d): Likewise.
6796         (struct gimple_df): Add vop member.  Remove global_var,
6797         call_clobbered_vars, call_used_vars, addressable_vars,
6798         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
6799         escaped and callused members.
6800         (struct ptr_info_def): Remove all members, add points-to solution
6801         member pt.
6802         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6803         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6804         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6805         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6806         (tree-ssa-alias.o): Likewise.
6807         (toplev.o): Add tree-ssa-alias.h
6808         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6809         * gimple.c (gimple_set_bb): Fix off-by-one error.
6810         (is_gimple_reg): Do not handle memory tags.
6811         (gimple_copy): Also copy virtual operands.
6812         Delay updating the statement.  Do not reset loaded and stored syms.
6813         (gimple_set_stored_syms): Remove.
6814         (gimple_set_loaded_syms): Likewise.
6815         (gimple_call_copy_skip_args): Copy the virtual operands
6816         and mark the new statement modified.
6817         * tree-ssa-structalias.c (may_alias_p): Remove.
6818         (set_uids_in_ptset): Take the alias set to prune with as
6819         parameter.  Fold in the alias test of may_alias_p.
6820         (compute_points_to_sets): Compute whether a ptr is dereferenced
6821         in a local sbitmap.
6822         (process_constraint): Deal with &ANYTHING on the lhs, reject all
6823         other ADDRESSOF constraints on the lhs.
6824         (get_constraint_for_component_ref): Assert that we don't get
6825         ADDRESSOF constraints from the base of the reference.
6826         Properly generate UNKNOWN_OFFSET for DEREF if needed.
6827         (struct variable_info): Remove collapsed_to member.
6828         (get_varinfo_fc): Remove.
6829         (new_var_info): Do not set collapsed_to.
6830         (dump_constraint): Do not follow cycles.
6831         (dump_constraint_graph): Likewise.
6832         (build_pred_graph): Likewise.
6833         (build_succ_graph): Likewise.
6834         (rewrite_constraints): Likewise.
6835         (do_simple_structure_copy): Remove.
6836         (do_rhs_deref_structure_copy): Remove.
6837         (do_lhs_deref_structure_copy): Remove.
6838         (collapse_rest_of_var): Remove.
6839         (do_structure_copy): Re-implement.
6840         (pta_stats): New global variable.
6841         (dump_pta_stats): New function.
6842         (struct constraint_expr): Make offset signed.
6843         (UNKNOWN_OFFSET): Define special value.
6844         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6845         (solution_set_expand): New helper function split out from ...
6846         (do_sd_constraint): ... here.
6847         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
6848         (do_ds_constraint): Likewise.
6849         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
6850         and CALLUSED = *CALLUSED.
6851         (set_union_with_increment): Make inc argument signed.
6852         (type_safe): Remove.
6853         (get_constraint_for_ptr_offset): Handle unknown and negative
6854         constant offsets.
6855         (first_vi_for_offset): Handle offsets before start.  Bail
6856         out early for offsets beyond the variable extent.
6857         (first_or_preceding_vi_for_offset): New function.
6858         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6859         Together with ESCAPED = *ESCAPED this properly computes reachability.
6860         (find_what_var_points_to): New function.
6861         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6862         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6863         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6864         pt_solutions_intersect): New functions.
6865         (compute_call_used_vars): Remove.
6866         (compute_may_aliases): New main entry into PTA computation.
6867         * gimple.h (gimple_p): New typedef.
6868         (struct gimple_statement_base): Remove references_memory_p.
6869         (struct gimple_statement_with_memory_ops_base): Remove
6870         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
6871         members.
6872         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6873         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6874         gimple_set_references_memory): Remove.
6875         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6876         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6877         New functions.
6878         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6879         (verify_expr): Allow RESULT_DECL.
6880         (gimple_duplicate_bb): Do not copy virtual operands.
6881         (gimple_duplicate_sese_region): Adjust.
6882         (gimple_duplicate_sese_tail): Likewise.
6883         (mark_virtual_ops_in_region): Remove.
6884         (move_sese_region_to_fn): Do not call it.
6885         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6886         and pass_simple_dse.
6887         (execute_function_todo): Handle TODO_update_address_taken,
6888         call execute_update_addresses_taken for TODO_rebuild_alias.
6889         (execute_todo): Adjust.
6890         (execute_one_pass): Init dump files early.
6891         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6892         call-clobbered.
6893         (create_general_new_stmt): Clear vops.
6894         * tree-ssa-reassoc.c (get_rank): Adjust.
6895         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6896         symbols for renaming.
6897         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6898         (PARAM_AVG_ALIASED_VOPS): Likewise.
6899         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6900         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
6901         * tree-ssa-operands.c: Simplify for new virtual operand representation.
6902         (operand_build_cmp, copy_virtual_operands,
6903         create_ssa_artificial_load_stmt, add_to_addressable_set,
6904         gimple_add_to_addresses_taken): Remove public functions.
6905         (unlink_stmt_vdef): New function.
6906
6907 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6908
6909         * config.gcc (powerpc-*-linux*): Merge variants.
6910
6911 2009-04-02  Chao-ying Fu  <fu@mips.com>
6912             James Grosbach  <james.grosbach@microchip.com>
6913
6914         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6915         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6916         cop0_sp_offset.
6917         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6918         keep_interrupts_masked_p, use_debug_exception_return_p.
6919         (mips_attribute_table): Add interrupt, use_shadow_register_set,
6920         keep_interrupts_masked, use_debug_exception_return.
6921         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6922         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6923         New functions.
6924         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6925         (mips_print_operand): Process COP0 registers to print $0 .. $31
6926         correctly for GAS to process.
6927         (mips_interrupt_extra_call_saved_reg_p): New function.
6928         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6929         extra registers.
6930         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6931         (mips_compute_frame_info): Add supports for interrupt context that
6932         includes doubleword accumulators and COP0 registers.
6933         (mips_for_each_saved_acc): New function.
6934         (mips_for_each_saved_gpr_and_fpr): Change the function name from
6935         mips_for_each_saved_reg.
6936         (mips_save_reg): Save accumulators.
6937         (mips_kernel_reg_p): A new for_each_rtx callback.
6938         (mips_expand_prologue): Support interrupt handlers.
6939         (mips_restore_reg): Restore accumulators.
6940         (mips_expand_epilogue): Support interrupt handlers.
6941         (mips_can_use_return_insn): Return false for interrupt handlers.
6942         (mips_epilogue_uses): New function.
6943         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6944         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6945         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6946         cop0_move): New instructions.
6947         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6948         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6949         defines.
6950         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6951         New defines.
6952         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6953         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6954         interrupt handlers, we use K0 as the temporary register.
6955         (EPILOGUE_USES): Change to a function call.
6956         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6957         handlers, we use K0 as the temporary register.
6958
6959         * doc/extend.texi (Function Attributes): Document interrupt,
6960         use_shadow_register_set, keep_interrupts_masked,
6961         use_debug_exception_return for MIPS attributes.
6962
6963 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6964
6965         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6966         Remove a number of t-files from tmake_file.
6967         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6968         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6969         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6970         target_prototype, not TARGET_PROTOTYPE.
6971         (LINK_OS_GNU_SPEC): Define.
6972         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6973         and darwin-ldoubdle.c.
6974
6975 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6976
6977         PR driver/39293
6978         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6979         (cpp_options): Ditto.
6980         (default_compilers): Ditto.
6981         (display_help): Ditto.
6982         (process_command): Ditto.
6983         (do_spec_1): Ditto.
6984         (set_input): Use lbasename instead of duplicate code.
6985         (save_temps_prefix): New static for -save-temps=obj.
6986         (save_temps_length): Ditto.
6987
6988         * doc/invoke.texi (-save-temps=obj): Document new variant to
6989         -save-temps switch.
6990
6991 2009-04-02  Jeff Law  <law@redhat.com>
6992
6993         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6994         variable.
6995
6996 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6997
6998         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6999         * configure: Regenerated.
7000
7001 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7002
7003         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
7004         share the argument list.
7005
7006 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7007
7008         Merge
7009
7010         2009-02-12  Diego Novillo  <dnovillo@google.com>
7011
7012         * varpool.c (debug_varpool): New.
7013         * cgraph.h (debug_varpool): Declare.
7014
7015 2009-04-02  Jan Hubicka  <jh@suse.cz>
7016
7017         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
7018         pass.
7019
7020 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7021
7022         * config/i386/i386.c (ix86_abi): Move initialization to ...
7023         (override_options): Here.
7024
7025 2009-04-02  Christian Bruel  <christian.bruel@st.com>
7026
7027         * config/sh/sh.c (sh_dwarf_register_span): New function.
7028         (TARGET_DWARF_REGISTER_SPAN): Define.
7029         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
7030
7031 2009-04-02  Ira Rosen  <irar@il.ibm.com>
7032
7033         PR tree-optimization/39595
7034         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
7035         interleaved loads group is not  greater than the SLP group size.
7036
7037 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7038
7039         * builtins.c (is_builtin_name): New.
7040         (called_as_built_in): Use is_builtin_name.
7041         * tree.h (is_builtin_name): New.
7042         * varasm.c (incorporeal_function_p): Use is_builtin_name
7043
7044 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
7045
7046         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
7047
7048 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
7049
7050         PR c++/26693
7051         * c-decl.c (clone_underlying_type): Move this ...
7052         * c-common.c (set_underlying_type): ... here.
7053         Also, make sure the function properly sets TYPE_STUB_DECL() on
7054         the newly created typedef variant type.
7055         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7056         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
7057         points.
7058
7059 2009-04-02  Richard Guenther  <rguenther@suse.de>
7060
7061         PR tree-optimization/37221
7062         * tree-flow.h (degenerate_phi_result): Declare.
7063         * tree-ssa-dom.c (degenerate_phi_result): Export.
7064         * tree-scalar-evolution.c (analyze_initial_condition): If
7065         the initial condition is defined by a degenerate PHI node
7066         use the degenerate value.
7067
7068 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
7069
7070         PR rtl-optimization/39588
7071         * combine.c (merge_outer_ops): Do not set the constant when this
7072         is not necessary.
7073         (simplify_shift_const_1): Do not modify it either in this case.
7074
7075 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
7076
7077         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
7078         tuning is deprecated if -mtune value is set to an Itanium1 variant.
7079
7080 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
7081
7082         PR c/29027
7083         * c-lex.c (interpret_float): Default (no suffix) is double.
7084
7085 2009-04-1  Xinliang David Li  <davidxl@google.com>
7086
7087         * config/i386/i386.c (legitimate_constant_p): Recognize
7088         all one vector constant.
7089
7090 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7091
7092         * config/vax/vax.c: Add #includes to silence warnings.
7093         Change #include order to silence two warnings.
7094
7095 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7096
7097         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
7098         (ASM_SPEC): Pass -k to the assembler for PIC code.
7099
7100 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7101
7102         * config.gcc: Add vax-*-linux* to the switch.
7103         * config/vax/linux.h: New file. (TARGET_VERSION,
7104         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
7105
7106 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7107
7108         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
7109         Use predicate macros instead of GET_CODE() == foo.
7110         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
7111         ashlsi3, rotrsi3, <unnamed>): Likewise.
7112
7113 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7114
7115         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
7116         jbbccihi, jbbccisi): Remova trailing whitespace.
7117         * config/vax/constraints.md: Likewise.
7118         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7119         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
7120         * config/vax/predicates.md: Likewise.
7121         * config/vax/vax.c (print_operand_address, vax_output_int_move,
7122         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
7123         * config/vax/vax.h: Likewise.
7124         * config/vax/vax.md (nonlocal_goto): Likewise.
7125
7126 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7127
7128         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
7129         (indirectable_address_p, adjacent_operands_p): Add spaces around
7130         braces.
7131         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
7132
7133 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7134
7135         * config/vax/vax.c (legitimate_constant_address_p,
7136         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
7137         index_term_p, reg_plus_index_p, legitimate_address_p,
7138         vax_mode_dependent_address_p): Update comments to match functions
7139         modified by the recent int->bool conversion.
7140
7141 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7142
7143         * config/vax/builtins.md: Update copyright message.
7144         * config/vax/constraints.md: Likewise.
7145         * config/vax/netbsd-elf.h: Likewise.
7146         * config/vax/predicates.md: Likewise.
7147         * config/vax/vax-protos.h: Likewise.
7148         * config/vax/vax.c: Likewise.
7149         * config/vax/vax.h: Likewise.
7150         * config/vax/vax.md: Likewise.
7151         * config/vax/vax.opt: Likewise.
7152
7153 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7154
7155         * config/vax/builtins.md (ffssi2, ffssi2_internal,
7156         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
7157         * config/vax/constraints.md (B, R): Likewise.
7158         * config/vax/predicates.md (external_memory_operand,
7159         nonimmediate_addsub_di_operand): Likewise.
7160         * config/vax/vax.c (vax_output_int_add): Likewise.
7161         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7162         untyped_call): Likewise.
7163
7164 2009-04-01  Matt Thomas  <matt@3am-software.com>
7165
7166         * config/vax/predicates.md: New file.
7167         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7168         external_const_operand, nonsymbolic_operand, external_memory_operand,
7169         indirect_memory_operand, indexed_memory_operand,
7170         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7171         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7172         predicate.
7173         * config/vax/constraints.md: New file.
7174         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7175         New constraint.
7176         * config/vax/builtins.md: New file.
7177         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7178         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7179         jbbccisi): Define.
7180         * config/vax/vax.opt (mqmath): Add option.
7181         * config/vax/vax.md (isfx): Extend with DI.
7182         (VAXintQH, VAXintQHSD): Define.
7183         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7184         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7185         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7186         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7187         (movdi): Update constraints and use vax_output_int_move().
7188         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7189         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7190         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7191         nonlocal_goto): New.
7192         (mov<mode>): Extend accepted operand types.
7193         (subdi3_old): Rename from subdi3, change update constraints and use
7194         a new implementation.
7195         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7196         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7197         MOVE_RATIO, CLEAR_RATIO): Define.
7198         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7199         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7200         (PRINT_OPERAND): Redefine using a function instead of inlined code.
7201         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7202         (split_quadword_operands): Make static and really allow variable
7203         splitting.
7204         (print_operand_address): Update for PIC generation.
7205         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7206         indexable_address_p, fixup_mathdi_operand,
7207         vax_expand_addsub_di_operands, adjacent_operands_p): New.
7208         (vax_float_literal, legitimate_constant_p,
7209         indirectable_constant_address_p, index_term_p,
7210         reg_plus_index_p): Return bool instead of int.
7211         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7212         where needed.
7213         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7214         generation.
7215         (vax_output_conditional_branch): Indent.
7216         (legitimate_constant_address_p, indirectable_constant_address_p,
7217         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7218         vax_mode_dependent_address_p): Return bool instead of int, update for
7219         PIC generation.
7220         * config/vax/vax-protos.h (legitimate_constant_address_p,
7221         legitimate_constant_p, legitimate_address_p,
7222         vax_mode_dependent_address_p): Change declaration to bool.
7223         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7224         vax_expand_addsub_di_operands, vax_output_int_subtract,
7225         vax_output_movmemsi): Declare.
7226         (split_quadword_operands, vax_float_literal): Delete declaration.
7227         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7228         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7229         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7230         ASM_OUTPUT_DWARF_PCREL): Define.
7231         (ASM_SPEC): Change definition to allow PIC generation.
7232
7233 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
7234
7235         * doc/sourcebuild.texi: Update front-end requirements.
7236
7237 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7238
7239         PR target/39226
7240         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7241         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7242         (booldi3_internal3): Use boolean_or_operator instead of
7243         boolean_operator.
7244
7245 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
7246
7247         PR c/39605
7248         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7249         declarator whose size is not an integer constant expression but
7250         folds to an integer constant, then treat it as a constant
7251         subsequently.
7252
7253 2009-04-01  Richard Guenther  <rguenther@suse.de>
7254
7255         * fold-const.c (fold_plusminus_mult_expr): Do not fold
7256         i * 4 + 2 to (i * 2 + 1) * 2.
7257
7258 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7259
7260         PR c/37772
7261         * c-parser.c (c_parser_asm_statement): Skip until close paren and
7262         return if c_parser_asm_string_literal returned NULL.
7263
7264 2009-04-01  Nick Clifton  <nickc@redhat.com>
7265
7266         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7267         already defined.
7268         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7269         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7270         other typedefs to avoid conflicts with libgcc2.c.  Define labels
7271         to gain 16-bit bit-manipulation functions from libgcc2.c and then
7272         include it.
7273         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
7274         to gain 16-bit trapping arithmetic functions from libgcc2.c and
7275         then include it.
7276
7277 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
7278
7279         * varasm.c (default_function_rodata_section): Declare DOT as
7280         const char*.
7281
7282 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
7283             Andrey Galkin  <agalkin@hypercom.com>
7284
7285         PR/39492
7286         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7287         Make object_name unique for each process.
7288
7289 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7290
7291         PR other/39591
7292         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7293         addressable variables in the parallel that could go out of scope while
7294         running queued tasks.
7295
7296 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
7297
7298         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7299         (CASE_VALUES_THRESHOLD): Redefine.
7300         * config/avr/avr.c (avr_override_options): Remove initialization of
7301         avr_case_values_threshold variable.
7302         (avr_case_values_threshold): Remove variable. Add new function.
7303         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7304         * config/avr/avr.opt (mno-tablejump): Remove option.
7305         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7306
7307 2009-04-01  DJ Delorie  <dj@redhat.com>
7308
7309         * varasm.c (default_function_rodata_section): Don't assume
7310         anything about where the first '.' in the section name is.
7311
7312 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
7313
7314         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7315         rs6000_emit_stack_tie.
7316
7317 2009-03-31  Ian Lance Taylor  <iant@google.com>
7318
7319         * tree-eh.c (tree_remove_unreachable_handlers): Compare
7320         gimple_code with GIMPLE_RESX, not RESX.
7321
7322 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7323
7324         * c-common.c (c_get_ident): New.
7325         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7326
7327 2009-04-01  Ben Elliston  <bje@au.ibm.com>
7328
7329         * config/rs6000/sysv4.opt (msdata): Improve option description.
7330
7331 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
7332
7333         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7334         (divdf3_internal_lat): Remove.
7335         (divxf3_internal_lat): Remove.
7336         (divxf3_internal_thr): Remove.
7337         (divxf): Use divxf3_internal.
7338         * config/ia64/div.md (divsf3_internal_lat): New.
7339         (divdf3_internal_lat): New.
7340         (divxf3_internal): New.
7341
7342 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7343
7344         PR c/448
7345         * Makefile.in (USE_GCC_STDINT): Define.
7346         (stmp-int-hdrs): Install stdint.h if applicable.
7347         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7348         if known.
7349         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7350         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7351         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7352         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7353         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7354         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7355         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7356         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7357         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7358         (c_common_nodes_and_builtins): Initialize
7359         underlying_wchar_type_node.  Do not initialize
7360         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
7361         nodes for new types.
7362         (c_stddef_cpp_builtins): Define macros for new types.
7363         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7364         Remove.
7365         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7366         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7367         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7368         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7369         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7370         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7371         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7372         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7373         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7374         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7375         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7376         int16_type_node, int32_type_node, int64_type_node,
7377         uint8_type_node, uint16_type_node, c_uint32_type_node,
7378         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7379         int_least32_type_node, int_least64_type_node,
7380         uint_least8_type_node, uint_least16_type_node,
7381         uint_least32_type_node, uint_least64_type_node,
7382         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7383         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7384         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7385         uintptr_type_node): Define.
7386         * c-cppbuiltin.c (builtin_define_constants,
7387         builtin_define_type_minmax): New.
7388         (builtin_define_stdint_macros): Define more macros.
7389         (c_cpp_builtins): Define more limit macros.
7390         (type_suffix): New.
7391         (builtin_define_type_max): Define in terms of
7392         builtin_define_type_minmax.  Remove is_long parameter.  All
7393         callers changed.
7394         * config.gcc (use_gcc_stdint): Define.
7395         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7396         Add newlib-stdint.h for generic targets.
7397         * config/glibc-stdint.h, config/newlib-stdint.h,
7398         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7399         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7400         * config/score/score.h (UINTPTR_TYPE): Define.
7401         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7402         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7403         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7404         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7405         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7406         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7407         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7408         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7409         * config/spu/spu.h (STDINT_LONG32): Define.
7410         * configure.ac (use_gcc_stdint): Substitute.
7411         * configure: Regenerate.
7412         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7413         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7414         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7415         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7416         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7417         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7418         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7419         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7420         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7421         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7422         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7423         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7424         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7425         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7426         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7427         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7428         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7429         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7430         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7431         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7432         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7433         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7434         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7435         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7436         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7437         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7438         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7439         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7440         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7441
7442 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7443
7444         * loop-iv.c (suitable_set_for_replacement): Renamed from
7445         simplify_using_assignment; changed to return bool and to accept new
7446         args DEST and SRC.  Return true iff we find a source/destination pair
7447         that can be used to make a replacement, and fill SRC and DEST if so.
7448         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
7449         changed.
7450         (simplify_using_initial_values): Deal with altered regs here and track
7451         more precisely the effect they have on the validity of our expression.
7452
7453         * loop-iv.c (simplify_using_condition): A condition of the form
7454         (EQ REG CONST) can be used to simply make a substitution.
7455         (simplify_using_initial_values): Keep track of conditions we have seen
7456         and keep using them to simplify new expressions, while applying the
7457         same substitutions to them as to the expression.
7458
7459         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7460         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7461         GEU/LTU reversed.
7462
7463         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
7464         changed.  Use this when trying to improve the upper bound.
7465         Generate the comparison by using simplify_gen_relational.
7466
7467         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7468
7469         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7470         functions.
7471         (simplify_using_assignment, simplify_using_initial_values): Call
7472         replace_in_expr to make replacements.  Call replace_single_def_regs
7473         once on the initial version of the expression.
7474
7475 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7476
7477         PR target/27237
7478         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
7479
7480 2009-03-31  Richard Guenther  <rguenther@suse.de>
7481
7482         PR middle-end/31029
7483         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7484         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
7485
7486 2009-03-31  Richard Guenther  <rguenther@suse.de>
7487
7488         * tree.h (div_if_zero_remainder): Declare.
7489         * fold-const.c (div_if_zero_remainder): Export.
7490         * tree-ssa-forwprop.c
7491         (forward_propagate_addr_into_variable_array_index): Handle
7492         constant array index addition outside of the variable index.
7493
7494 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7495
7496         PR target/39592
7497         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7498         define_splits, floatunssi<mode>2): Require x87 conversions from
7499         DImode to be permitted.
7500
7501 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7502
7503         PR preprocessor/15638
7504         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7505
7506 2009-03-31  Richard Guenther  <rguenther@suse.de>
7507
7508         PR middle-end/23401
7509         PR middle-end/27810
7510         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7511         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7512         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7513         a separate statement.
7514         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7515         (lookup_tmp_var): Likewise.
7516         (is_gimple_formal_tmp_or_call_rhs): Remove.
7517         (is_gimple_reg_or_call_rhs): Rename to ...
7518         (is_gimple_reg_rhs_or_call): ... this.
7519         (is_gimple_mem_or_call_rhs): Rename to ...
7520         (is_gimple_mem_rhs_or_call): ... this.
7521         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
7522         DECL_GIMPLE_REG_P only if is_formal is true.
7523         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
7524         for non-proper post-modify expression gimplification.
7525         (gimplify_self_mod_expr): For post-modify expressions gimplify
7526         the lvalue to a minimal lvalue.
7527         (rhs_predicate_for): Remove formal temp case.
7528         (gimplify_modify_expr_rhs): Likewise.
7529         (gimplify_addr_expr): Use is_gimple_reg.
7530         (gimplify_expr): Remove formal temp cases.
7531         (gimple_regimplify_operands): Likewise.
7532         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7533         and FILTER_EXPR like constants.
7534         * gimple.c (walk_gimple_op): Fix val_only initialization, use
7535         is_gimple_reg.
7536         (is_gimple_formal_tmp_rhs): Remove.
7537         (is_gimple_reg_rhs): Remove special casing.
7538         (is_gimple_mem_rhs): Fix.
7539         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7540         (is_gimple_formal_tmp_var): Remove.
7541         (is_gimple_formal_tmp_reg): Likewise.
7542         (is_gimple_min_lval): Allow invariant component ref parts.
7543         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7544         is_gimple_formal_tmp_reg): Remove declarations.
7545         * tree-cfg.c (verify_expr): Verify that variables with address
7546         taken do not have DECL_GIMPLE_REG_P set.
7547         * tree-mudflap.c (mf_build_check_statement_for): Use
7548         force_gimple_operand instead of gimplify_expr.
7549
7550 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
7551
7552         * modulo-sched.c (sms_schedule_by_order): Pass the actual
7553         schedulable rows to compute_split_row.
7554
7555 2009-03-31  Ben Elliston  <bje@au.ibm.com>
7556
7557         PR target/31635
7558         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7559         OPT_mvrsave.
7560
7561 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7562
7563         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7564         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7565         * configure: Regenerate.
7566         * config.in: Regenerate.
7567         * config/rs6000/rs6000.opt (mtls-markers): Add.
7568         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7569         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7570         (tls_ld_aix, tls_ld_sysv): Likewise.
7571         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7572         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7573
7574 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7575
7576         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7577
7578 2009-03-30  Jan Hubicka  <jh@suse.cz>
7579
7580         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7581         out of RESX.
7582         (tree_remove_unreachable_handlers): Cleanup EH predecestor
7583         detection and label handling.
7584
7585 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7586
7587         * ira-int.h (ira_allocno): Rename left_conflicts_num to
7588         left_conflicts_size.
7589         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7590         ALLOCNO_LEFT_CONFLICTS_SIZE.
7591
7592         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7593         remove_allocno_from_bucket_and_push,
7594         allocno_spill_priority_compare, push_allocnos_to_stack,
7595         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7596         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7597         (setup_allocno_left_conflicts_num): Ditto.  Rename to
7598         setup_allocno_left_conflicts_size.
7599         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7600         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7601         setup_allocno_left_conflicts_size instead of
7602         setup_allocno_left_conflicts_num.
7603
7604         * ira-build.c (ira_create_allocno): Use
7605         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7606         ALLOCNO_LEFT_CONFLICTS_NUM.
7607
7608 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7609
7610         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7611         instead of DF_LR_OUT.
7612
7613         * ira-lives.c (process_bb_node_lives): Ditto.
7614
7615         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7616         instead of DF_LR_{OUT,IN}.
7617
7618         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7619
7620         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7621
7622 2009-03-30  Jan Hubicka  <jh@suse.cz>
7623
7624         * except.c (label_to_region_map): Fix thinko.
7625
7626 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
7627
7628         PR middle-end/38237
7629         * tree.h (tree_find_value): New declaration.
7630         * tree.c (tree_find_value): New function.
7631         * varasm.c (assemble_external): Avoid duplicate entries on lists.
7632
7633 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
7634
7635         PR debug/39563
7636         * c-decl.c (struct c_binding): Add locus field.
7637         (bind): Add locus argument, set locus field from it.
7638         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7639         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7640         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7641         implicitly_declare, undeclared_variable, lookup_label,
7642         declare_label, c_make_fname_decl, c_builtin_function,
7643         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7644         bind callers.
7645
7646 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7647
7648         PR target/38781
7649         * config/i386/i386.c (classify_argument): Check total size of
7650         structure.
7651
7652 2009-03-30  Martin Jambor  <mjambor@suse.cz>
7653
7654         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7655         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7656         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7657         respectively.
7658
7659         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7660         seen_variable_array_ref while also traversing a union.
7661
7662         * tree-inline.c (optimize_inline_calls): Do not call
7663         cgraph_node_remove_callees.
7664         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7665         (pass_remove_cgraph_callee_edges): New variable.
7666         * passes.c (init_optimization_passes): Add
7667         pass_remove_cgraph_callee_edges after early inlining and before all
7668         late intraprocedural passes.
7669
7670         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7671
7672 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7673
7674         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7675         Fix typos in names.
7676
7677 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7678
7679         * combine.c (simplify_comparison): Use have_insn_for.
7680         * dojump.c (do_jump): Likewise.
7681
7682 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7683
7684         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7685         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7686         sparc_compare_op0 like sparc_compare_emitted used to be handled.
7687         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7688         instead of sparc_compare_emitted.
7689         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7690         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7691         instead of sparc_compare_emitted.
7692
7693 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7694
7695         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7696         enter/exit cfglayout mode.
7697         (pass_partition_block): Require it.
7698         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7699         (combine_instructions): Track basic blocks instead of labels.
7700         (update_cfg_for_uncondjump): New.
7701         (try_combine): Use it.  Update jumps after rescanning.
7702         (pass_combine): Require PROP_cfglayout.
7703         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7704
7705 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7706
7707         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7708         Provide/destroy PROP_cfglayout respectively.
7709         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7710         * tree-pass.h (PROP_cfglayout): New.
7711
7712 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7713
7714         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7715         fold_convert_const_fixed_from_fixed,
7716         fold_convert_const_fixed_from_int,
7717         fold_convert_const_fixed_from_real, fold_negate_const): Do not
7718         set TREE_CONSTANT_OVERFLOW.
7719         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7720         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7721
7722 2009-03-30  Ira Rosen  <irar@il.ibm.com>
7723
7724         * tree-vect-loop-manip.c: New file.
7725         * tree-vectorizer.c: Update documentation and included files.
7726         (vect_loop_location): Make extern.
7727         (rename_use_op): Move to tree-vect-loop-manip.c
7728         (rename_variables_in_bb, rename_variables_in_loop,
7729         slpeel_update_phis_for_duplicate_loop,
7730         slpeel_update_phi_nodes_for_guard1,
7731         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7732         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7733         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
7734         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
7735         find_loop_location): Likewise.
7736         (new_stmt_vec_info): Move to tree-vect-stmts.c.
7737         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7738         get_vectype_for_scalar_type, vect_is_simple_use,
7739         supportable_widening_operation, supportable_narrowing_operation):
7740         Likewise.
7741         (bb_in_loop_p): Move to tree-vect-loop.c.
7742         (new_loop_vec_info, destroy_loop_vec_info,
7743         reduction_code_for_scalar_code, report_vect_op,
7744         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7745         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7746         (vect_supportable_dr_alignment): Likewise.
7747         * tree-vectorizer.h (tree-data-ref.h): Include.
7748         (vect_loop_location): Declare.
7749         Reorganize function declarations according to the new file structure.
7750         * tree-vect-loop.c: New file.
7751         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
7752         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7753         * tree-vect-data-refs.c: New file.
7754         * tree-vect-patterns.c (timevar.h): Don't include.
7755         * tree-vect-stmts.c: New file.
7756         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
7757         tree-vect-slp.c, tree-vect-loop.c.
7758         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7759         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
7760         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7761         (tree-vect-analyze.o): Remove.
7762         (tree-vect-transform.o): Likewise.
7763         (tree-vect-data-refs.o): Add rule.
7764         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
7765         tree-vect-slp.o): Likewise.
7766         (tree-vect-patterns.o): Remove redundant dependencies.
7767         (tree-vectorizer.o): Likewise.
7768         * tree-vect-slp.c: New file.
7769
7770 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7771
7772         * optc-gen.awk: Warn if an option flag has multiple different
7773         help strings.
7774
7775 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7776
7777         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7778         -floop-block): Document dependences on PPL, CLooG and Graphite.
7779
7780 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7781
7782         PR rtl-optimization/323
7783         * c-common.c (c_fully_fold, convert_and_check,
7784         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7785         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7786         * c-common.def (EXCESS_PRECISION_EXPR): New.
7787         * c-cppbuiltin.c (builtin_define_float_constants): Define
7788         constants with enough digits for long double.
7789         * c-lex.c (interpret_float): Interpret constant with excess
7790         precision where appropriate.
7791         * c-opts.c (c_common_post_options): Set
7792         flag_excess_precision_cmdline.  Give an error for
7793         -fexcess-precision=standard for C++ for processors where the
7794         option is significant.
7795         * c-parser.c (c_parser_conditional_expression): Handle excess
7796         precision in condition.
7797         * c-typeck.c (convert_arguments): Handle arguments with excess
7798         precision.
7799         (build_unary_op): Move excess precision outside operation.
7800         (build_conditional_expr): Likewise.
7801         (build_compound_expr): Likewise.
7802         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7803         (build_modify_expr): Handle excess precision in RHS.
7804         (convert_for_assignment): Handle excess precision in converted
7805         value.
7806         (digest_init, output_init_element, process_init_element): Handle
7807         excess precision in initializer.
7808         (c_finish_return): Handle excess precision in return value.
7809         (build_binary_op): Handle excess precision in operands and add
7810         excess precision as needed for operation.
7811         * common.opt (-fexcess-precision=): New option.
7812         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7813         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7814         For standard excess precision, output explicit conversion to and
7815         truncation from XFmode.
7816         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7817         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7818         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7819         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7820         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7821         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7822         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7823         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7824         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7825         define_splits, sqrt<mode>2): Disable where appropriate for
7826         standard excess precision.
7827         * convert.c (convert_to_real): Do not shorten arithmetic to type
7828         for which excess precision would be used.
7829         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7830         * doc/invoke.texi (-fexcess-precision=): Document option.
7831         (-mfpmath=): Correct index entry.
7832         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7833         flag_excess_precision): New.
7834         * langhooks.c (lhd_post_options): Set
7835         flag_excess_precision_cmdline.
7836         * opts.c (common_handle_option): Handle -fexcess-precision=.
7837         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7838         init_excess_precision): New.
7839         (lang_dependent_init_target): Call init_excess_precision.
7840         * tree.c (excess_precision_type): New.
7841         * tree.h (excess_precision_type): Declare.
7842
7843 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7844
7845         PR c/35235
7846         * c-typeck.c (build_component_ref): Do not copy qualifiers from
7847         non-lvalue to component.
7848
7849 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7850
7851         PR preprocessor/34695
7852         * Makefile.in (c-opts.o): Depend on c-tree.h.
7853         * c-common.c: Move down include of diagnostic.h.
7854         (done_lexing, c_cpp_error): New.
7855         * c-common.h (done_lexing): Declare.
7856         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7857         (parse_in).
7858         * c-opts.c: Include c-tree.h.
7859         (c_common_init_options): Set preprocessor error callback.
7860         (c_common_handle_option): Do not set preprocessor
7861         inhibit_warnings, warnings_are_errors, warn_system_headers,
7862         pedantic_errors or inhibit_warnings flags.
7863         (c_common_post_options): Do not check cpp_errors (parse_in).
7864         (c_common_finish): Do not output dependencies if there were
7865         errors.  Do not check return value of cpp_finish.
7866         * c-ppoutput.c (pp_file_change): Set input_location.
7867         * c-tree.h (c_cpp_error): Declare.
7868         * diagnostic.c (diagnostic_set_info_translated): Also initialize
7869         override_column.
7870         (diagnostic_build_prefix): Check override_column.
7871         * diagnostic.h (diagnostic_info): Add override_column field.
7872         (diagnostic_override_column): Define.
7873
7874 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
7875
7876         * c-common.c (c_expand_expr, c_staticp): Remove.
7877         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7878         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7879         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7880         * c-gimplify.c (gimplify_compound_literal_expr,
7881         optimize_compound_literals_in_ctor): Remove.
7882         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7883         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7884         * c-semantics.c (emit_local_var): Remove.
7885
7886         * langhooks-def.h (lhd_expand_expr): Remove.
7887         * langhooks.c (lhd_expand_expr): Remove.
7888         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7889
7890         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7891         handling from c-semantics.c; don't call into langhook.
7892         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7893         * gimplify.c (gimplify_compound_literal_expr,
7894         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7895         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7896         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7897         as was done in c-gimplify.c.
7898         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7899         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7900         Move from c-common.h.
7901         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
7902
7903         * tree.c (staticp): Do not call langhook.
7904         * langhooks.c (lhd_staticp): Delete.
7905         * langhooks-def.h (lhd_staticp): Delete prototype.
7906         (LANG_HOOKS_STATICP): Delete.
7907         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7908
7909         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7910         instead of DECL_STMTs.
7911
7912 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7913
7914         PR c/456
7915         PR c/5675
7916         PR c/19976
7917         PR c/29116
7918         PR c/31871
7919         PR c/35198
7920         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7921         void_type_node.
7922         (fold_call_expr): Return a NOP_EXPR from folding rather than the
7923         contained expression.
7924         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
7925         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
7926         conditional expressions for C.
7927         (decl_constant_value_for_optimization): Move from
7928         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
7929         whether optimizing and that the expression is a VAR_DECL not of
7930         array type instead of doing such checks in the caller.  Do not
7931         check pedantic.  Call gcc_unreachable for C++.
7932         * c-common.def (C_MAYBE_CONST_EXPR): New.
7933         * c-common.h (c_fully_fold, c_save_expr,
7934         decl_constant_value_for_optimization): New prototypes.
7935         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7936         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7937         EXPR_INT_CONST_OPERANDS): Define.
7938         * c-convert.c (convert): Strip nops from expression.
7939         * c-decl.c (groktypename): Take extra parameters expr and
7940         expr_const_operands.  Update call to grokdeclarator.
7941         (start_decl): Update call to grokdeclarator.  Add statement for
7942         expressions used in type of decl.
7943         (grokparm): Update call to grokdeclarator.
7944         (push_parm_decl): Update call to grokdeclarator.
7945         (build_compound_literal): Add parameter non_const and build a
7946         C_MAYBE_COSNT_EXPR if applicable.
7947         (grokdeclarator): Take extra parameters expr and
7948         expr_const_operands.  Track expressions used in declaration
7949         specifiers and declarators.  Fold array sizes and track whether
7950         they are constant expressions and whether they are integer
7951         constant expressions.
7952         (parser_xref_tag): Set expr and expr_const_operands fields in
7953         return value.
7954         (grokfield): Update call to grokdeclarator.
7955         (start_function): Update call to grokdeclarator.
7956         (build_null_declspecs): Set expr and expr_const_operands fields in
7957         return value.
7958         (declspecs_add_type): Handle expressions in typeof specifiers.
7959         * c-parser.c (c_parser_declspecs): Set expr and
7960         expr_const_operands fields for declaration specifiers.
7961         (c_parser_enum_specifier): Likewise.
7962         (c_parser_struct_or_union_specifier): Likewise.
7963         (c_parser_typeof_specifier): Likewise.  Update call to
7964         groktypename.  Fold expression as needed.  Return expressions with
7965         type instead of adding statements.
7966         (c_parser_attributes): Update calls to c_parser_expr_list.
7967         (c_parser_statement_after_labels): Fold expression before passing
7968         to objc_build_throw_stmt.
7969         (c_parser_condition): Fold expression.
7970         (c_parser_asm_operands): Fold expression.
7971         (c_parser_conditional_expression): Use c_save_expr.  Update call
7972         to build_conditional_expr.
7973         (c_parser_alignof_expression): Update call to groktypename.
7974         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7975         original_code.  Fold expression argument of va_arg.  Create
7976         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7977         argument to va_arg.  Update calls to groktypename.  Fold array
7978         index for offsetof.  Verify that first argument to
7979         __builtin_choose_expr has integer type.
7980         (c_parser_postfix_expression_after_paren_type): Update calls to
7981         groktypename and build_compound_literal.  Handle expressions with
7982         side effects in type name.
7983         (c_parser_postfix_expression_after_primary): Update call to
7984         c_parser_expr_list.  Set original_code for calls to
7985         __builtin_constant_p.
7986         (c_parser_expr_list): Take extra parameter fold_p.  Fold
7987         expressions if requested.
7988         (c_parser_objc_type_name): Update call to groktypename.
7989         (c_parser_objc_synchronized_statement): Fold expression.
7990         (c_parser_objc_receiver): Fold expression.
7991         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7992         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7993         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7994         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7995         (struct c_typespec): Add elements expr and expr_const_operands.
7996         (struct c_declspecs): Add elements expr and expr_const_operands.
7997         (groktypename, build_conditional_expr, build_compound_literal):
7998         Update prototypes.
7999         (in_late_binary_op): Declare.
8000         * c-typeck.c (note_integer_operands): New function.
8001         (in_late_binary_op): New variable.
8002         (decl_constant_value_for_broken_optimization): Move to c-common.c
8003         and rename to decl_constant_value_for_optimization.
8004         (default_function_array_conversion): Do not strip nops.
8005         (default_conversion): Do not call
8006         decl_constant_value_for_broken_optimization.
8007         (build_array_ref): Do not fold result.
8008         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
8009         result when operand is a VLA.
8010         (c_expr_sizeof_type): Update call to groktypename.  Handle
8011         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
8012         result when operand names a VLA type.
8013         (build_function_call): Update call to build_compound_literal.
8014         Only fold result for calls to __builtin_* functions.  Strip
8015         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
8016         the function designator.
8017         (convert_arguments): Fold arguments.  Update call to
8018         convert_for_assignment.
8019         (build_unary_op): Handle increment and decrement of
8020         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
8021         decrement earlier.  Fold operand of increment and decrement.
8022         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
8023         built for integer operand.  Wrap returns that are INTEGER_CSTs
8024         without being integer constant expressions or that have integer
8025         constant operands without being INTEGER_CSTs.
8026         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
8027         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
8028         result is an integer constant expression or can be used in
8029         unevaluated parts of one and avoid folding and wrap as
8030         appropriate.  Fold operands before possibly doing -Wsign-compare
8031         warnings.
8032         (build_compound_expr): Wrap result for C99 if operands can be used
8033         in integer constant expressions.
8034         (build_c_cast): Update call to digest_init.  Do not ignore
8035         overflow from casting floating-point constants to integers.  Wrap
8036         results that could be confused with integer constant expressions,
8037         null pointer constants or floating-point constants.
8038         (c_cast_expr): Update call to groktypename.  Handle expressions
8039         included in type name.
8040         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
8041         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
8042         Update calls to convert_for_assignment.
8043         (convert_for_assignment): Take new parameter
8044         null_pointer_constant.  Do not strip nops or call
8045         decl_constant_value_for_broken_optimization.  Set
8046         in_late_binary_op for conversions to boolean.
8047         (store_init_value): Update call to digest_init.
8048         (digest_init): Take new parameter null_pointer_constant.  Do not
8049         call decl_constant_value_for_broken_optimization.  pedwarn for
8050         initializers not constant expressions.  Update calls to
8051         convert_for_assignment.
8052         (constructor_nonconst): New.
8053         (struct constructor_stack): Add nonconst element.
8054         (really_start_incremental_init, push_init_level, pop_init_level):
8055         Handle constructor_nonconst and nonconst element.
8056         (set_init_index): Call constant_expression_warning for array
8057         designators.
8058         (output_init_element): Fold value.  Set constructor_nonconst as
8059         applicable.  pedwarn for initializers not constant expressions.
8060         Update call to digest_init.  Call constant_expression_warning
8061         where constant initializers are required.
8062         (process_init_element): Use c_save_expr.
8063         (c_finish_goto_ptr): Fold expression.
8064         (c_finish_return): Fold return value.  Update call to
8065         convert_for_assignment.
8066         (c_start_case): Fold switch expression.
8067         (c_process_expr_stmt): Fold expression.
8068         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
8069         ensure statement expression is not evaluated in constant expression.
8070         (build_binary_op): Track whether results are integer constant
8071         expressions or may occur in such, disable folding and wrap results
8072         as applicable.  Fold operands for -Wsign-compare warnings unless
8073         in_late_binary_op.
8074         (c_objc_common_truthvalue_conversion): Handle results folded to
8075         integer constants that are not integer constant expressions.
8076         * doc/extend.texi: Document when typeof operands are evaluated,
8077         that condition of __builtin_choose_expr is an integer constant
8078         expression, and more about use of __builtin_constant_p in
8079         initializers.
8080
8081 2009-03-29  Richard Guenther  <rguenther@suse.de>
8082
8083         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8084         propagate addresses of array references.
8085
8086 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
8087
8088         * regmove.c (perhaps_ends_bb_p): Remove.
8089         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
8090         from INSN and check that the main loop stays within that basic block.
8091         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
8092         (regmove_forward_pass): Split out from regmove_optimize.  Use
8093         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
8094         (regmove_backward_pass): Split out from regmove_optimize.  Use
8095         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
8096         (regmove_optimize): Simplify.
8097
8098 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
8099
8100         PR target/39545
8101         * config/i386/i386.c (classify_argument): Ignore flexible array
8102         member in struct and warn ABI change.
8103
8104 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
8105
8106         * config/i386/i386-protos.h (ix86_agi_dependent): New.
8107
8108         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
8109         (ix86_adjust_cost): Updated.
8110
8111 2009-03-29  Jan Hubicka  <jh@suse.cz>
8112
8113         PR middle-end/28850
8114         * tree-pass.h (pass_cleanup_eh): New function.
8115         (remove_unreachable_regions): Break code handling RTL
8116         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
8117         that can not be reached by runtime.
8118         (can_be_reached_by_runtime): New function.
8119         (label_to_region_map): New function.
8120         (num_eh_regions): New function.
8121         (rtl_remove_unreachable_regions): New function.
8122         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
8123         (remove_eh_region): New function.
8124         * except.h: Include sbitmap and vecprim.
8125         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
8126         num_eh_regions): Declare.
8127         * passes.c (init_optimization_passes): Schedule cleanup_eh.
8128         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
8129         * tree-eh.c (tree_remove_unreachable_handlers): New function.
8130         (tree_empty_eh_handler_p): New function.
8131         (cleanup_empty_eh): New function.
8132         (cleanup_eh): New function.
8133         (pass_cleanup_eh): New function.
8134
8135 2009-03-29  Jan Hubicka  <jh@suse.cz>
8136
8137         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
8138         for removed regions.
8139
8140 2009-03-29  Jan Hubicka  <jh@suse.cz>
8141
8142         * except.c (dump_eh_tree): Dump all datastructures.
8143
8144 2009-03-29  Jan Hubicka  <jh@suse.cz>
8145
8146         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8147         (duplicate_eh_regions_1): Likewise.
8148         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8149         vector; call EH verification.
8150         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8151         Be ready for region being removed.
8152
8153 2009-03-29  Jan Hubicka  <jh@suse.cz>
8154
8155         * bitmap.c (bitmap_last_set_bit): New function.
8156         * bitmap.h (bitmap_last_set_bit): Declare.
8157
8158 2009-03-29  David Ayers  <ayers@fsfe.org>
8159
8160         PR objc/27377
8161         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8162         by calling objc_compare_types and surpress warnings about
8163         incompatible C pointers that are compatible ObjC pointers.
8164
8165 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
8166
8167         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8168         call initialize_inline_failed.
8169         (initialize_inline_failed): Move it from here ...
8170         * cgraph.c (initialize_inline_failed): ... to here.
8171         (cgraph_create_edge): Call initialize_inline_failed rather than
8172         setting inline_failed directly.
8173
8174 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8175
8176         PR target/32542
8177         * sysv4.opt (msdata): Improve comment.
8178         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8179         * sysv4.h (SVR4_ASM_SPEC): Likewise.
8180
8181 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8182
8183         PR target/30451
8184         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8185         load and store attributes.
8186
8187 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8188
8189         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8190         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8191         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8192         * doc/extend.texi (X86 Built-in Functions): Add index entries for
8193         __builtin_infq and __builtin_huge_valq.
8194
8195 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
8196
8197         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8198         atmega8m1 devices.
8199         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8200         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8201
8202 2009-03-28  Xinliang David Li  <davidxl@google.com>
8203
8204         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8205         (do_dbg_cnt): New function.
8206
8207 2009-03-28  Jan Hubicka  <jh@suse.cz>
8208
8209         Merge from pretty-ipa:
8210
8211         2009-03-27  Jan Hubicka  <jh@suse.cz>
8212
8213         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8214         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8215         * passes.c (function_called_by_processed_nodes_p): New.
8216         * ipa-pure-const.c (check_call): Fix handling of operands.
8217         (analyze_function): Dump debug output for skipped bodies.
8218         (local_pure_const): Use function_called_by_processed_nodes_p.
8219         * dwarf2out.c (reference_to_unused): Use output.
8220         * passes.c (do_per_function_toporder): Likewise.
8221
8222         2008-11-12  Jan Hubicka  <jh@suse.cz>
8223
8224         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8225         * ipa-pure-const.c (funct_state_d): Add can throw field; make
8226         state_set_in_source enum
8227         (check_decl): Ignore memory tags; do not set fake looping flags;
8228         dump diagnostics.
8229         (check_operand, check_tree, check_rhs_var, check_lhs_var,
8230         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8231         (check_call, analyze_function): Rewrite.
8232         (check_stmt): New.
8233         (add_new_function): Update call of analyze_function.
8234         (generate_summary): Add call of analyze_function.
8235         (propagate): Propagate can_throw; handle state_set_in_source correctly.
8236         (local_pure_const): New function.
8237         (pass_local_pure_const): New pass.
8238         * ipa-inline.c (inline_transform): Set after_inlining.
8239         * tree-eh.c (stmt_can_throw_external): New.
8240         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8241         work with aliasing built.
8242         * tree-flow.h (stmt_can_throw_external): New.
8243         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8244         and local pure/const pass in early and late optimization queue.
8245
8246 2009-03-28  Martin Jambor  <mjambor@suse.cz>
8247
8248         * fold-const.c (get_pointer_modulus_and_residue): New parameter
8249         allow_func_align.
8250         (fold_binary): Allow function decl aligment consideration is the
8251         second argument is integer constant one.
8252         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8253         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8254         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8255
8256 2009-03-28  Jan Hubicka  <jh@suse.cz>
8257
8258         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8259         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8260         * function.h (rtl_data): Add nothrow flag.
8261         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8262         set DECL_NOTHROW for AVAILABLE functions.
8263
8264 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
8265
8266         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8267         following vector keyword has expansion starting with pixel or bool
8268         keyword, expand vector to __vector and pixel or bool to __pixel or
8269         __bool.
8270
8271         PR c++/39554
8272         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8273         warn_if_disallowed_function_p): Removed.
8274         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8275         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8276         warning_if_disallowed_function_p.
8277         * flags.h (warn_if_disallowed_function_p,
8278         warn_disallowed_functions): Removed.
8279         * common.opt (Wdisallowed-function-list=): Removed.
8280         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8281
8282 2009-03-28  Richard Guenther  <rguenther@suse.de>
8283
8284         PR tree-optimization/38723
8285         * tree-ssa-pre.c (compute_avail): Add all default definitions to
8286         the entry block.
8287
8288 2009-03-28  Jan Hubicka  <jh@suse.cz>
8289
8290         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8291         test introduced by my previous patch.
8292
8293 2009-03-28  Richard Guenther  <rguenther@suse.de>
8294
8295         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8296         the PHIs value undefined.
8297
8298 2009-03-28  Jan Hubicka  <jh@suse.cz>
8299
8300         * tree-pass.h (pass_fixup_cfg): New pass.
8301         * ipa-inline.c (inline_transform): Set
8302         always_inline_functions_inlined/after_inlining.
8303         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8304         (pass_fixup_cfg): New pass.
8305         * passes.c (init_optimization_passes): Add fixup_cfg.
8306
8307 2009-03-28  Richard Guenther  <rguenther@suse.de>
8308
8309         PR tree-optimization/38458
8310         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8311         argument use the arguments copy-of value.
8312
8313 2009-03-28  Richard Guenther  <rguenther@suse.de>
8314
8315         PR tree-optimization/38180
8316         * tree-ssa-ccp.c (get_default_value): Simplify.
8317         (likely_value): Likewise.
8318         (surely_varying_stmt_p): Properly handle VOP case.
8319         (ccp_initialize): Likewise.
8320         (ccp_fold): Handle propagating through *&.
8321         (fold_const_aggregate_ref): Also handle decls.
8322
8323 2009-03-28  Jan Hubicka  <jh@suse.cz>
8324
8325         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8326         * cgraph.h (cgraph_node): Likewise.
8327         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8328         (cgraph_reset_node): Use process flag.
8329         (cgraph_mark_functions_to_output): Likewise.
8330         (cgraph_expand_function): Likewise.
8331         (cgraph_expand_all_functions): Likewise.
8332         (cgraph_output_in_order): Likewise.
8333         * dwarf2out.c (reference_to_unused): Likewise.
8334         * passes.c do_per_function_toporder): Likewise.
8335
8336 2009-03-28  Jan Hubicka  <jh@suse.cz>
8337
8338         Bring from lto-branch:
8339
8340         2008-09-03  Doug Kwan  <dougkwan@google.com>
8341
8342         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8343         enums instead of reason strings.
8344         * cgraph.c (cgraph_create_edge): Same.
8345         (cgraph_inline_failed_string): New function.
8346         * cgraph.h (cgraph_inline_failed_t): New enum type.
8347         (cgraph_inline_failed_string): New prototype.
8348         (struct cgraph_edge): Change type of INLINED_FAILED from constant
8349         char pointer to cgraph_inline_failed_t.
8350         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8351         (cgraph_default_inline_p): Ditto.
8352         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8353         to cgraph_inline_failed_t pointer.
8354         * cif-code.def: New file.
8355         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8356         reason string.
8357         (cgraph_check_inline_limits): Change type of REASON to pointer to
8358         cgraph_inline_failed_t.  Replace reason strings with enums.
8359         (cgraph_default_inline_p): Ditto.
8360         (cgraph_recursive_inlining_p): Ditto.
8361         (update_caller_keys): Change type of FAILED_REASON to
8362         cgraph_inline_failed_t.
8363         (cgraph_set_inline_failed): Change type of REASON to pointer to
8364         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
8365         convert enums to strings for text output.
8366         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8367         to be of type cgraph_inline_failed_t.  Replace reason strings with
8368         enums.  Call cgraph_inline_failed_string to covert enums
8369         to strings for text output.
8370         (cgraph_decide_inlining): Replace reason strings with enums.
8371         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8372         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
8373         for text output.
8374         * tree-inline.c (expand_call_inline): Change type of REASON
8375         to cgraph_inline_failed_t.  Replace reason strings with enums.
8376         Call cgraph_inline_failed_string for text output.
8377         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8378         (cgraph.o): Ditto.
8379
8380 2009-03-28  Jan Hubicka  <jh@suse.cz>
8381
8382         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8383         cgraph_clone_node): Remove master clone handling.
8384         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8385         * cgraph.h (master_clone): Remove.
8386         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8387         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8388         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8389
8390 2009-03-28  Jan Hubicka  <jh@suse.cz>
8391
8392         * cgraph.c (cgraph_function_body_availability): Functions declared
8393         inline are always safe to assume that it is not going to be replaced.
8394
8395 2009-03-28  Richard Guenther  <rguenther@suse.de>
8396
8397         PR tree-optimization/38513
8398         * tree-ssa-pre.c (eliminate): Remove redundant stores.
8399         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8400         EXC_PTR_EXPR and FILTER_EXPR.
8401         (get_ref_from_reference_ops): Likewise.
8402
8403 2009-03-28  Richard Guenther  <rguenther@suse.de>
8404
8405         PR tree-optimization/38968
8406         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8407         Use FLOOR_MOD_EXPR to compute misalignment.
8408
8409 2009-03-28  Richard Guenther  <rguenther@suse.de>
8410
8411         PR tree-optimization/37795
8412         * tree.h (combine_comparisons): Declare.
8413         * fold-const.c (combine_comparisons): Export.
8414         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8415         comparisons.
8416         (ifcombine_iforif): Use combine_comparisons.
8417
8418 2009-03-28  Jan Hubicka  <jh@suse.cz>
8419
8420         * tree-eh.c (inlinable_call_p): New function.
8421         (make_eh_edges): Use it.
8422         (verify_eh_edges): Use it.
8423         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8424         * except.c (reachable_next_level): Add inlinable_function argument
8425         (sjlj_find_directly_reachable_regions): Update.
8426         (add_reachable_handler): Do not set saw_any_handlers.
8427         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8428         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8429         Add new inlinable call parameter.
8430         (can_throw_internal, can_throw_external): Update.
8431         * except.h (can_throw_internal_1, can_throw_external_1,
8432         foreach_reachable_handler): Update declaration.
8433
8434 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
8435
8436         * config/arm/t-arm-coff, config/h8300/coff.h,
8437         config/i386/i386-aout.h, config/i386/i386-coff.h,
8438         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8439         config/pdp11/2bsd.h, config/rs6000/aix41.h,
8440         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8441         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8442         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8443         sys-types.h: Remove.
8444         * Makefile.in: Remove protoize and fixproto support and references
8445         in comments.
8446         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8447         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8448         Remove.
8449         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8450         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8451         unprotoize$(exeext).
8452         (rest.encap): Don't depend on $(STMP_FIXPROTO)
8453         (.PHONY): Don't depend on proto.
8454         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8455         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8456         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8457         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8458         build/gen-protos.o, build/scan.o, xsys-protos.h,
8459         build/fix-header$(build_exeext), build/fix-header.o,
8460         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8461         stmp-install-fixproto): Remove.
8462         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8463         SYSCALLS.c or fixproto files.
8464         (install-common): Don't install protoize.
8465         (install-headers-tar, install-headers-cpio, install-headers-cp):
8466         Don't depend on $(STMP_FIXPROTO).
8467         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
8468         install fixproto files or write out fixproto settings.
8469         (uninstall): Don't uninstall protoize.
8470         * config.gcc (use_fixproto): Remove.
8471         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8472         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8473         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8474         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8475         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8476         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8477         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8478         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8479         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8480         * config/t-vxworks (STMP_FIXPROTO): Remove.
8481         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8482         STMP_FIXPROTO): Remove.
8483         * config.in, configure: Regenerate.
8484         * crtstuff.c (gid_t, uid_t): Don't undefine.
8485         * doc/install.texi: Change m68k-coff to m68k-elf in example.
8486         (arm-*-coff, arm-*-aout: Remove target entries.
8487         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8488         Remove mention of AIX 4.1.
8489         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8490         * doc/invoke.texi (Running Protoize): Remove.
8491         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8492         (Protoize Caveats): Remove.
8493         * tsystem.h: Update comments on headers assumed to exist.
8494
8495 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8496
8497         * genautomata.c: Add a new year to the copyright.  Add a new
8498         reference.
8499         (struct insn_reserv_decl): Add comments for member bypass_list.
8500         (find_bypass): Remove.
8501         (insert_bypass): New.
8502         (process_decls): Use insert_bypass.
8503         (output_internal_insn_latency_func): Output all bypasses with the
8504         same input insn in one switch case.
8505
8506         * rtl.def (define_bypass): Describe bypass choice.
8507         * doc/md.texi (define_bypass): Ditto.
8508
8509 2009-03-27  Richard Guenther  <rguenther@suse.de>
8510
8511         * gimplify.c (mark_addressable): Export.
8512         * tree-flow.h (mark_addressable): Declare.
8513         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8514         * tree-ssa.c (verify_phi_args): Verify that address taken
8515         variables have TREE_ADDRESSABLE set.
8516
8517 2009-03-27  Richard Guenther  <rguenther@suse.de>
8518
8519         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8520         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
8521         Do not mark decls TREE_ADDRESSABLE.
8522         (build_fold_addr_expr): Adjust.
8523         (fold_addr_expr): Remove.
8524         (fold_unary): Use build_fold_addr_expr.
8525         (fold_comparison): Likewise.
8526         (split_address_to_core_and_offset): Likewise.
8527         * coverage.c (tree_coverage_counter_addr): Mark the array decl
8528         TREE_ADDRESSABLE.
8529         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8530         (gimplify_modify_expr_to_memcpy): Mark source and destination
8531         addressable.
8532         * omp-low.c (create_omp_child_function): Mark the object decl
8533         TREE_ADDRESSABLE.
8534         (lower_rec_input_clauses): Mark the var we take the address of
8535         TREE_ADDRESSABLE.
8536         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8537
8538 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8539
8540         PR middle-end/39315
8541         * cfgexpand.c (expand_one_stack_var_at): Change alignment
8542         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8543
8544 2009-03-27  Richard Guenther  <rguenther@suse.de>
8545
8546         PR tree-optimization/39120
8547         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8548         constraints.
8549         (handle_lhs_call): Process return constraints.  Add escape
8550         constraints if necessary.
8551         (handle_const_call): Fill out return constraints.  Make nested
8552         case more precise.  Avoid consttmp if possible.
8553         (handle_pure_call): Fill out return constraints.  Avoid
8554         callused if possible.
8555         (find_func_aliases): Simplify call handling.
8556
8557 2009-03-27  Richard Guenther  <rguenther@suse.de>
8558
8559         PR tree-optimization/39120
8560         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8561         as a representative.
8562         (solve_graph): Do propagate CALLUSED.
8563         (handle_pure_call): Use a scalar constraint from CALLUSED for
8564         the return value.
8565         (find_what_p_points_to): CALLUSED shall not appear in poins-to
8566         solutions.
8567
8568 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8569
8570         PR c/39323
8571         * c-common.c (handle_aligned_attribute): Properly check alignment
8572         overflow.  Use (1U << i) instead of (1 << i).
8573
8574         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
8575
8576         * expr.h (get_mem_align_offset): Updated.
8577
8578         * tree.h (tree_decl_common): Change align to "unsigned int" and
8579         move it before pointer_alias_set.
8580
8581 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8582             Jakub Jelinek  <jakub@redhat.com>
8583
8584         PR target/38034
8585         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8586         gr_register_operand with gr_reg_or_0_operand.
8587         (cmpxchg_rel_di): Likewise.
8588         (sync_lock_test_and_set<mode>): Likewise.
8589
8590 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8591
8592         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8593         (true_regnum): Likewise.
8594
8595         * rtlanal.c (subreg_info): Moved to ...
8596         * rtl.h (subreg_info): Here.  New.
8597         (subreg_get_info): New.
8598
8599         * rtlanal.c (subreg_get_info): Make it extern.
8600
8601 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8602
8603         PR target/39472
8604         * config/i386/i386.c (ix86_abi): New.
8605         (override_options): Handle -mabi=.
8606         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
8607         (ix86_call_abi_override): Likewise.
8608         (init_cumulative_args): Likewise.
8609         (function_arg_advance): Likewise.
8610         (function_arg_64): Likewise.
8611         (function_arg): Likewise.
8612         (ix86_pass_by_reference): Likewise.
8613         (ix86_function_value_regno_p): Likewise.
8614         (ix86_build_builtin_va_list_abi): Likewise.
8615         (setup_incoming_varargs_64): Likewise.
8616         (is_va_list_char_pointer): Likewise.
8617         (ix86_init_machine_status): Likewise.
8618         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
8619         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
8620         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
8621         (ix86_function_abi): Make it static and return enum calling_abi.
8622         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
8623         with ix86_abi.
8624         (ix86_fn_abi_va_list): Updated.
8625
8626         * config/i386/i386.h (ix86_abi): New.
8627         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8628         (CONDITIONAL_REGISTER_USAGE): Likewise.
8629         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8630         (machine_function): Likewise.
8631
8632         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8633         with ix86_abi.
8634         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8635         (STACK_BOUNDARY): Likewise.
8636         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8637
8638         * config/i386/i386.opt (mabi=): New.
8639
8640         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8641         return enum calling_abi.
8642         (ix86_function_type_abi): Likewise.
8643         (ix86_function_abi): Removed.
8644
8645         * doc/invoke.texi: Document -mabi= option for x86.
8646
8647 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8648
8649         * builtins.c (real_dconstp): Delete.
8650         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8651
8652 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
8653             Jakub Jelinek  <jakub@redhat.com>
8654
8655         PR debug/37959
8656         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8657         (gen_subprogram_die): When a function is explicit, generate the
8658         DW_AT_explicit attribute.
8659         * langhooks.h (struct lang_hooks_for_decls): Add
8660         function_decl_explicit_p langhook.
8661         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8662         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8663
8664 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
8665
8666         * builtins.c (fold_builtin_memory_op): Optimize memmove
8667         into memcpy if we can prove source and destination don't overlap.
8668
8669         * tree-inline.c: Include gt-tree-inline.h.
8670         (clone_fn_id_num): New variable.
8671         (clone_function_name): New function.
8672         (tree_function_versioning): Use it.
8673         * Makefile.in (GTFILES): Add tree-inline.c.
8674
8675 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
8676
8677         * BASE-VER: Change to 4.5.0.
8678
8679 2009-03-27  Xinliang David Li  <davidxl@google.com>
8680
8681         PR tree-optimization/39557
8682         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8683
8684 2009-03-27  Xinliang David Li  <davidxl@google.com>
8685
8686         PR tree-optimization/39548
8687         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
8688         candidate check.
8689
8690 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8691
8692         * c-common.c (pointer_int_sum): Use %wd on return from
8693         tree_low_cst.
8694
8695 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8696
8697         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8698         on return from tree_low_cst.
8699
8700 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8701
8702         PR c++/36799
8703         * ginclude/stdarg.h (va_copy): Define also for
8704         __GXX_EXPERIMENTAL_CXX0X__.
8705
8706 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8707
8708         PR c++/35652
8709         * builtins.h (c_strlen): Do not warn here.
8710         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8711         * c-common.c (pointer_int_sum): Take an explicit location.
8712         Warn about offsets out of bounds.
8713         * c-common.h (pointer_int_sum): Adjust declaration.
8714
8715 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8716
8717         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8718         markup glitch.
8719
8720 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
8721
8722         PR c++/39554
8723         * opts.c (warn_if_disallowed_function_p): Don't assume
8724         get_callee_fndecl must return non-NULL.
8725
8726 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8727
8728         PR rtl-optimization/39522
8729         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8730         when reg_reloaded_valid is set.
8731
8732 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8733
8734         * config/spu/divv2df3.c: New file.
8735         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8736         (DPBIT_FUNCS): Filter out _div_df.
8737
8738 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8739
8740         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8741         a jump insn, count that jump in the distance to the loop start.
8742
8743 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
8744
8745         PR target/39523
8746         * config/sh/sh.c (calc_live_regs): Fix condition for global
8747         registers except PIC_OFFSET_TABLE_REGNUM.
8748
8749 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
8750
8751         PR/39518
8752         * doc/invoke.texi (-mconsole): New.
8753         (-mcygwin): New.
8754         (-mno-cygwin): New.
8755         (-mdll): New.
8756         (-mnop-fun-dllimport): New.
8757         (-mthread): New.
8758         (-mwin32): New.
8759         (-mwindows): New.
8760         (sub section "i386 and x86-64 Windows Options"): New.
8761
8762 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
8763
8764         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8765         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8766
8767 2009-03-25  Richard Guenther  <rguenther@suse.de>
8768
8769         PR middle-end/39497
8770         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8771         of -Wno-error.
8772
8773 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
8774
8775         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8776         neither of haifa/selective schedulers are working.
8777
8778 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8779
8780         * doc/invoke.texi (Debugging Options): Fix description of
8781         -fno-merge-debug-strings.
8782
8783 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
8784
8785         * config/cris/libgcc.ver: New version-script.
8786         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8787
8788         * configure.ac <GAS features, nop mnemonic>: Add pattern
8789         crisv32-*-* for "nop".
8790         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
8791         * configure: Regenerate.
8792
8793 2009-03-24  Ira Rosen  <irar@il.ibm.com>
8794
8795         PR tree-optimization/39529
8796         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8797         mark_sym_for_renaming for the tag copied to the new vector
8798         pointer.
8799
8800 2009-03-24  Arthur Loiret  <aloiret@debian.org>
8801
8802         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
8803         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8804         EXTRA_SPEC_FUNCTIONS.
8805         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8806         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8807         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8808         -march and -mtune options.
8809
8810 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
8811
8812         * config/m68k/t-rtems: Add m5329 multilib.
8813
8814 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
8815             Jakub Jelinek  <jakub@redhat.com>
8816
8817         PR debug/39524
8818         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8819         nodes.
8820
8821 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8822
8823         PR c/39495
8824         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8825         instead of c_parser_expression_conv, if original_code isn't one of the
8826         4 allowed comparison codes, fail.
8827
8828 2009-03-23  Richard Guenther  <rguenther@suse.de>
8829
8830         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8831         * tree.h (struct tree_type): Likewise.
8832         * reload.h (struct insn_chain): Likewise.
8833         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8834         * function.h (struct function): Likewise.
8835         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8836
8837 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8838
8839         PR tree-optimization/39516
8840         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8841
8842 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
8843
8844         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
8845         should be set true if BITS_PER_WORD of target is bigger than 32
8846
8847 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
8848
8849         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8850         Translate -B-options to -rpath-link.  Correct existing
8851         rpath-link and conditionalize on !nostdlib.
8852
8853 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8854
8855         * doc/extend.texi (Function Attributes, Variable Attributes):
8856         Fix typos.
8857         * doc/invoke.texi (Debugging Options, Optimize Options)
8858         (i386 and x86-64 Options, MCore Options): Likewise.
8859
8860 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
8861
8862         PR debug/37890
8863         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8864         it for block local namespace aliases.
8865         (gen_decl_die): Pass context_die to gen_namespace_die.
8866
8867 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8868
8869         PR c/39495
8870         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8871         minimum or maximum value.
8872
8873 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
8874
8875         * reginfo.c (globalize_reg): Recompute derived reg sets.
8876
8877 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
8878
8879         PR target/39063
8880         * libgcc2.c (mprotect): Do not use signed arguments for
8881         VirtualProtect, use DWORD arguments.  Also fix the 'may
8882         be used uninitialized' warning for the np variable.
8883
8884 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8885
8886         PR target/39496
8887         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8888         functions using regparm calling conventions when not optimizing.
8889         (ix86_function_sseregparm): Similarly for sseregparm calling
8890         conventions.
8891
8892 2009-03-19  Li Feng  <nemokingdom@gmail.com>
8893
8894         PR middle-end/39500
8895         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8896         dependence if the first conflict is after niter iterations.
8897
8898 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
8899
8900         PR middle-end/38609
8901         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8902         functions with dynamic stack-pointer adjustments.
8903
8904 2009-03-19  Ben Elliston  <bje@au.ibm.com>
8905
8906         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8907         option; change to -msdata=data.
8908
8909 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8910
8911         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8912         and -fopenmp.
8913
8914 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
8915
8916         PR target/35180
8917         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8918
8919 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
8920
8921         * doc/invoke.texi (Code Gen Options): Expand discussion of
8922         -fno-common.
8923
8924 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
8925
8926         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8927         * matrix-reorg.c (struct matrix_info): Likewise.
8928         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8929         * rtl.h (struct mem_attrs): Likewise.
8930         * df.h (struct df): Likewise.
8931         * tree-data-ref.h (struct data_dependence_relation): Likewise.
8932         * ira-int.h (struct ira_allocno): Likewise.
8933         * df-scan.c (struct df_collection_rec): Likewise.
8934         * ira.c (struct equivalence): Likewise.
8935         * function.c (struct temp_slot): Likewise.
8936         * cfgloop.h (struct loop): Likewise.
8937
8938         PR debug/39485
8939         * function.c (use_register_for_decl): When not optimizing, disregard
8940         register keyword for variables with types containing methods.
8941
8942 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
8943
8944         PR middle-end/39447
8945         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8946         (is_simple_operand): Call contains_component_ref_p before calling data
8947         reference analysis that would fail on COMPONENT_REFs.
8948
8949         * tree-vrp.c (search_for_addr_array): Fix formatting.
8950
8951 2009-03-18  Richard Guenther  <rguenther@suse.de>
8952
8953         * tree-vect-transform.c (vect_loop_versioning): Fold the
8954         generated comparisons.
8955         * tree-vectorizer.c (set_prologue_iterations): Likewise.
8956         (slpeel_tree_peel_loop_to_edge): Likewise.
8957
8958 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8959
8960         PR middle-end/37805
8961         * opts.c (print_specific_help): In addition to `undocumented',
8962         accept `separate' and `joined' flags if passed alone.  Describe
8963         output by the first matched one of those.
8964         (common_handle_option): Skip over empty strings.
8965         * gcc.c (display_help): Fix help string for `--help='.
8966         * doc/invoke.texi (Option Summary, Overall Options): With
8967         `--help=', classes and qualifiers can both be repeated, but
8968         only the latter can be negated.  One should not pass only
8969         negated qualifiers.  Fix markup and examples.
8970
8971         Revert
8972         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
8973         PR middle-end/37805
8974         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8975         and -fhelp=separate.
8976
8977 2009-03-17  Jing Yu  <jingyu@google.com>
8978
8979         PR middle-end/39378
8980         * function.h (struct rtl_data): Move is_thunk from here...
8981         (struct function): ...to here.
8982         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
8983         * varasm.c (assemble_start_function): Change is_thunk from crtl to
8984         cfun.
8985         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8986         cfun.
8987         (alpha_does_function_need_gp, alpha_start_function): Likewise.
8988         (alpha_output_function_end_prologue): Likewise.
8989         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8990         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8991         (rs6000_output_function_epilogue): Likewise.
8992         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
8993
8994 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
8995
8996         PR target/39482
8997         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8998         from different units in a single alternative.
8999         (*truncdfsf_i387): Ditto.
9000         (*truncxfsf2_mixed): Ditto.
9001         (*truncxfdf2_mixed): Ditto.
9002
9003 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
9004
9005         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
9006         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
9007
9008         PR debug/39474
9009         * tree-ssa-live.c (remove_unused_locals): Don't remove local
9010         unused non-artificial variables when not optimizing.
9011
9012         PR debug/39471
9013         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
9014         DW_TAG_imported_module even if decl is IMPORTED_DECL with
9015         NAMESPACE_DECL in its DECL_INITIAL.
9016
9017         PR middle-end/39443
9018         * optabs.c (set_user_assembler_libfunc): New function.
9019         * expr.h (set_user_assembler_libfunc): New prototype.
9020         * c-common.c: Include libfuncs.h.
9021         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
9022         for memcmp, memset, memcpy, memmove and abort.
9023         * Makefile.in (c-common.o): Depend on libfuncs.h.
9024
9025         PR debug/39412
9026         * dwarf2out.c (gen_inlined_enumeration_type_die,
9027         gen_inlined_structure_type_die, gen_inlined_union_type_die,
9028         gen_tagged_type_instantiation_die): Removed.
9029         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
9030         do nothing.
9031
9032 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
9033
9034         PR testsuite/38526
9035         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
9036         its use.
9037         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
9038         (check-parallel-%): Ditto.
9039         (check-consistency): Ditto.
9040
9041 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
9042
9043         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
9044         local variable rhs by NULL_TREE.
9045
9046 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9047
9048         PR target/39477
9049         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
9050
9051 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9052
9053         PR target/39476
9054         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
9055
9056 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9057
9058         PR target/39473
9059         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
9060         for ms->sysv ABI calls only in 64bit mode.
9061
9062         * config/i386/i386.md (untyped_call): Support 32bit.
9063
9064 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9065
9066         * doc/extend.texi: Replace x86_65 with x86_64.
9067
9068 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
9069
9070         PR tree-optimization/39455
9071         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
9072         mismatches for POINTER_TYPE_P (type).
9073         (number_of_iterations_le): Likewise.
9074
9075 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9076
9077         * config/picochip/picochip.c: Removed profiling support.
9078         * config/picochip/picochip.md: Removed profiling instruction.
9079         * config/picochip/picochip.h: Removed profiling builtin.
9080
9081 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
9082
9083         * doc/install.texi (--with-host-libstdcxx): Document.
9084
9085 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
9086
9087         PR target/34299
9088         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
9089         generate a warning if the function name does not begin with
9090         "__vector" and the function has either the 'signal' or 'interrupt'
9091         attribute, from here to ...
9092         (avr_declare_function_name): ...here. New function.
9093         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
9094         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
9095
9096 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
9097
9098         PR bootstrap/39454
9099         * cse.c (fold_rtx): Don't modify original const_arg1 when
9100         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
9101         separate variable instead.
9102         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
9103         from out of range shift counts.
9104         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
9105
9106 2009-03-13  Catherine Moore  <clm@codesourcery.com>
9107
9108         * config/i386/x-mingw32 (host-mingw32.o): Replace
9109         diagnostic.h with $(DIAGNOSTIC_H).
9110
9111 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
9112
9113         PR target/39431
9114         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
9115         predicate.
9116         * config/i386/sync.md (sync_compare_and_swap<mode>,
9117         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
9118         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
9119         into a register.
9120         (sync_double_compare_and_swapdi_pic,
9121         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
9122         cmpxchg8b_pic_memory_operand instead of just memory_operand.
9123
9124 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9125
9126         PR target/39445
9127         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
9128
9129 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9130
9131         PR target/39327
9132         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9133         (avx_addsubv4df3): Likewise.
9134         (*avx_addsubv4sf3): Likewise.
9135         (sse3_addsubv4sf3): Likewise.
9136
9137 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9138
9139         PR target/38824
9140         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
9141
9142 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
9143
9144         PR debug/39432
9145         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9146         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9147         registers for allocnos created from user-defined variables.
9148
9149 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9150
9151         PR target/39181
9152         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9153         of non-integer mode as well.
9154
9155 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
9156
9157         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9158         for functions for which the parameter types are unknown.
9159
9160 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
9161
9162         PR target/39137
9163         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9164         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9165         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9166         * config/i386/i386.c (ix86_local_alignment): For
9167         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9168         long long variables on the stack to avoid dynamic realignment.
9169         Allow the first argument to be a decl rather than type.
9170         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9171
9172 2009-03-11  Nick Clifton  <nickc@redhat.com>
9173
9174         PR target/5362
9175         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9176         options.
9177         Add description to mno-lsim option.
9178         * config/mcore/mcore.h: Remove comment about deprecated m4align
9179         option.
9180         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9181         * doc/invoke.texi: Add description of mno-lsim and
9182         mstack-increment options.
9183
9184         * config/fr30/fr30.opt: Document the -mno-lsim option.
9185         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9186         and -mno-lsim options.
9187
9188 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9189
9190         * fold-const.c (fold_comparison): Only call fold_inf_compare
9191         if the mode supports infinities.
9192
9193 2009-03-11  Jason Merrill  <jason@redhat.com>
9194
9195         PR debug/39086
9196         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9197         end already did.  Notice GIMPLE_CALL modifications of the result.
9198         Don't copy debug information from an ignored decl or a decl from
9199         another function.
9200
9201 2009-03-10  Richard Guenther  <rguenther@suse.de>
9202             Nathan Froyd  <froydnj@codesourcery.com>
9203
9204         PR middle-end/37850
9205         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9206         (__divMODE3): Likewise.
9207
9208 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
9209
9210         PR tree-optimization/39394
9211         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9212         DECL_SIZE_UNIT of variable length FIELD_DECLs.
9213
9214 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9215
9216         * recog.c (verfiy_changes): Disallow renaming of hard regs in
9217         inline asms for register asm ("") declarations.
9218
9219 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9220
9221         * fold-const.c (fold_unary): Fix comment.
9222
9223 2009-03-07  Jan Hubicka  <jh@suse.cz>
9224
9225         PR target/39361
9226         * tree-inline.c (setup_one_parameter): Do replacement of const
9227         argument by constant in SSA form.
9228
9229 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9230
9231         PR middle-end/38028
9232         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9233         determine alignment passed to assign_stack_local.
9234         (assign_parms_unsplit_complex): Likewise.
9235         * except.c (sjlj_build_landing_pads): Likewise.
9236
9237 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9238
9239         PR middle-end/39360
9240         * tree-flow.h (add_referenced_var): Return bool instead of void.
9241         * tree-dfa.c (add_referenced_var): Return result of
9242         referenced_var_check_and_insert call.
9243         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9244         of referenced_var_check_and_insert.
9245
9246         PR debug/39372
9247         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9248         (gen_variable_die): Emit DW_AT_location on abstract static variable's
9249         DIE, don't emit it if abstract origin already has it.
9250         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9251         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9252
9253 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9254
9255         * genpreds.c (needs_variable): Fix parentheses at variable name
9256         detection.
9257         (write_tm_constrs_h): Indent generated code.
9258
9259 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9260
9261         * doc/extend.texi (Function Attributes): Add documentation
9262         for isr attributes.
9263
9264 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9265
9266         PR debug/39387
9267         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9268         take locus from its DECL_SOURCE_LOCATION instead of input_location.
9269
9270 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9271
9272         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9273         the loop as bad.
9274
9275 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
9276
9277         PR debug/39379
9278         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9279         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9280
9281 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
9282
9283         * config/i386/i386.md (R8_REG, R9_REG): New constants.
9284         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9285         constants instead of magic numbers.
9286         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9287         (QI_REG_P): Ditto.
9288         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9289         (x86_64_ms_abi_int_parameter_registers): Ditto.
9290         (x86_64_int_return_registers): Ditto.
9291         (ix86_maybe_switch_abi): Ditto.
9292         (ix86_expand_call): Ditto for clobbered_registers array.
9293         (ix86_hard_regno_mode_ok): Ditto.
9294         (x86_extended_QIreg_mentioned_p): Ditto.
9295
9296 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
9297
9298         PR tree-optimization/39349
9299         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9300
9301         * combine.c (gen_lowpart_for_combine): Use omode when generating
9302         clobber.
9303
9304 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
9305
9306         PR rtl-optimization/39235
9307         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9308
9309 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9310
9311         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9312
9313 2009-03-04  Richard Guenther  <rguenther@suse.de>
9314
9315         PR tree-optimization/39362
9316         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9317         that occur in abnormal PHIs should be varying.
9318
9319 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9320
9321         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9322         Extend comments.
9323         (simple_iv):  Take loop as an argument instead of statement.
9324         * tree-scalar-evolution.h (simple_iv): Declaration changed.
9325         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9326         to simple_iv.
9327         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9328         Ditto.
9329         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9330         * matrix-reorg.c (analyze_transpose): Ditto.
9331         * tree-data-ref.c (dr_analyze_innermost): Ditto.
9332         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9333         * tree-predcom.c (ref_at_iteration): Ditto.
9334         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9335
9336 2009-03-04  Richard Guenther  <rguenther@suse.de>
9337
9338         PR tree-optimization/39358
9339         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9340         escaped_id and callused_id.
9341         (solve_graph): Likewise.
9342
9343 2009-03-04  Richard Guenther  <rguenther@suse.de>
9344
9345         PR tree-optimization/39339
9346         * tree-sra.c (try_instantiate_multiple_fields): Make it
9347         no longer ICE on the above.
9348
9349 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
9350
9351         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9352         that fits within Pmode.
9353
9354 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9355
9356         PR middle-end/10109
9357         * tm.texi (LIBCALL_VALUE): Update description.
9358
9359 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9360
9361         PR middle-end/34443
9362         * doc/extend.texi (section): Update description.
9363
9364 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
9365
9366         PR middle-end/39345
9367         * tree-inline.c (remapped_type): New.
9368         (can_be_nonlocal): Call remapped_type instead of remap_type.
9369
9370 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9371
9372         PR fortran/39354
9373         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9374         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9375
9376 2009-03-03  Richard Guenther  <rguenther@suse.de>
9377
9378         PR middle-end/39272
9379         * tree.c (tree_nonartificial_location): New function.
9380         * tree.h (tree_nonartificial_location): Declare.
9381         * builtins.c (expand_builtin_memory_chk): Provide location
9382         of the call location for artificial function pieces.
9383         (maybe_emit_chk_warning): Likewise.
9384         (maybe_emit_sprintf_chk_warning): Likewise.
9385         (maybe_emit_free_warning): Likewise.
9386         * expr.c (expand_expr_real_1): Likewise.
9387
9388 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9389
9390         PR tree-optimization/39343
9391         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9392         COMPONENT_REF t has ARRAY_TYPE.
9393
9394 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9395
9396         PR middle-end/39335
9397         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9398         when the type precision of the induction variable should be
9399         larger than the type precision of nit.
9400         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9401         * graphite.c (graphite_loop_normal_form): Same.
9402         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9403
9404 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9405
9406         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9407         (*call_1_rex64_ms_sysv): Use named constants instead of magic
9408         numbers to describe clobbered registers.
9409         (*call_value_0_rex64_ms_sysv): Ditto.
9410         * config/i386/mmx.md (mmx_emms): Ditto.
9411         (mmx_femms): Ditto.
9412
9413 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
9414
9415         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9416         of ABI_64.
9417
9418 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9419
9420         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9421         (spu_section_type_flags): New function.
9422
9423 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9424
9425         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9426         reg_class_contents of FLOAT_REGS into a temporary.
9427
9428 2009-03-02  Richard Guenther  <rguenther@suse.de>
9429             Ira Rosen  <irar@il.ibm.com>
9430
9431         PR tree-optimization/39318
9432         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9433         information to the vectorized statement.
9434
9435 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
9436
9437         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9438         variable.  Use defined names instead of magic constants for REX SSE
9439         registers.
9440
9441 2009-03-01  Richard Guenther  <rguenther@suse.de>
9442
9443         PR tree-optimization/39331
9444         * omp-low.c (lower_send_shared_vars): Do not receive new
9445         values for the reference of DECL_BY_REFERENCE parms or results.
9446
9447 2009-03-01  Jan Hubicka  <jh@suse.cz>
9448
9449         PR debug/39267
9450         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9451         BLOCK_NONLOCALIZED_VAR): New macros.
9452         (tree_block): Add nonlocalized_vars.
9453         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9454         gen_decl_die): Add origin argument.  Allow generation of die with
9455         origin at hand only.
9456         (gen_member_die, gen_type_die_with_usage, force_decl_die,
9457         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9458         of gen_*.
9459         (gen_block_die): Fix checking for unused blocks.
9460         (process_scope_var): Break out from .... ; work with origins only.
9461         (decls_for_scope) ... here; process nonlocalized list.
9462         (dwarf2out_ignore_block): Look for nonlocalized vars.
9463         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9464         vars.
9465         (dump_scope_block): Dump them.
9466         * tree-inline.c (remap_decls): Handle nonlocalized vars.
9467         (remap_block): Likewise.
9468         (can_be_nonlocal): New predicate.
9469         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9470
9471 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9472
9473         * configure: Regenerate.
9474
9475 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9476
9477         * optc-gen.awk: No need to duplicate option flags twice.
9478         Reuse help texts for duplicate options which do not have any.
9479
9480         * gcc.c (display_help): Document --version.
9481
9482         * gcc.c (main): If print_help_list and verbose_flag, ensure
9483         driver output comes before subprocess output.
9484
9485         * optc-gen.awk: Assign all remaining fields to help string,
9486         space-separated, for multi-line help in *.opt.
9487
9488         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9489         -Wno-pedantic-ms-format is for MinGW targets only.
9490
9491         * doc/options.texi (Option file format): Fix bad indentation,
9492         restoring dropped sentence.
9493
9494 2009-02-28  Jan Hubicka  <jh@suse.cz>
9495
9496         * tree-inline.c (tree_function_versioning): Output debug info.
9497
9498 2009-02-28  Jan Hubicka  <jh@suse.cz>
9499
9500         PR debug/39267
9501         * tree-inline.c (setup_one_parameter): Do not copy propagate
9502         arguments when not optimizing.
9503
9504 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9505
9506         PR target/39327
9507         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9508         (avx_addsubv4df3): Likewise.
9509         (*avx_addsubv4sf3): Likewise.
9510         (sse3_addsubv4sf3): Likewise.
9511         (*avx_addsubv2df3): Likewise.
9512         (sse3_addsubv2df3): Likewise.
9513         (avx_unpckhps256): Correct item selectors.
9514         (avx_unpcklps256): Likewise.
9515         (avx_unpckhpd256): Likewise.
9516         (avx_unpcklpd256): Likewise.
9517
9518 2009-02-28  Jan Hubicka  <jh@suse.cz>
9519
9520         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9521         static vars.
9522         (copy_arguments_for_versioning): If var is declared don't declare it.
9523         (tree_function_versioning): First setup substitutions and then copy
9524         args.
9525
9526 2009-02-27  Jan Hubicka  <jh@suse.cz>
9527
9528         PR debug/39267
9529         * cgraph.h (varpool_output_debug_info): Remove.
9530         * cgraphunit.c (varpool_output_debug_info): Remove.
9531         * dwarf2out.c (deferred_locations_struct): New struct
9532         (deferred_locations): New type.
9533         (deferred_locations_list): New static var.
9534         (deffer_location): New function.
9535         (gen_variable_die): Use it.
9536         (decls_for_scope): Output info on local static vars.
9537         (dwarf2out_finish): Process deferred locations.
9538         * varpool.c (varpool_output_debug_info): Remove.
9539
9540 2009-02-27  Jan Hubicka  <jh@suse.cz>
9541
9542         PR debug/39267
9543         * tree.h (TREE_PROTECTED): Fix comment.
9544         (BLOCK_HANDLER_BLOCK): Remove.
9545         (struct tree_block): Remove handler_block add body_block.
9546         (inlined_function_outer_scope_p): New.
9547         (is_body_block): Remove.
9548         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9549         * dwarf2out.c (is_inlined_entry_point): Remove.
9550         (add_high_low_attributes): Use inlined_function_outer_scope_p.
9551         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
9552         code.
9553         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9554         * gimplify.c (gimplify_expr): Gimplify body blocks.
9555         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9556         block with multiple subblocks.
9557         (dump_scope_block): Prettier output; dump more flags and info.
9558         (dump_scope_blocks): New.
9559         (remove_unused_locals): Use dump_scope_blocks.
9560         * tree-flow.h (dump_scope_blocks): Declare.
9561         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9562         * stmt.c (is_body_block): Remove.
9563         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9564         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9565
9566 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
9567
9568         PR middle-end/39308
9569         * graphite.c (graphite_loop_normal_form): Do not call
9570         number_of_iterations_exit from a gcc_assert.
9571
9572 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9573
9574         * config/s390/s390.c (s390_swap_cmp): Look for conditional
9575         jumps if COND is NULL.
9576         (find_cond_jump): New function.
9577         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
9578         * config/s390/s390.md: Remove z10_cobra attribute value.
9579
9580 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
9581
9582         * config/alpha/alpha.h (alpha_expand_mov): Return false if
9583         force_const_mem returns NULL_RTX.
9584
9585 2009-02-26  Jan Hubicka  <jh@suse.cz>
9586
9587         PR debug/39267
9588         * cgraph.h (varpool_output_debug_info): Remove.
9589         * cgraphunit.c (varpool_output_debug_info): Remove.
9590         * dwarf2out.c (deferred_locations_struct): New struct
9591         (deferred_locations): New type.
9592         (deferred_locations_list): New static var.
9593         (deffer_location): New function.
9594         (gen_variable_die): Use it.
9595         (decls_for_scope): Output info on local static vars.
9596         (dwarf2out_finish): Process deferred locations.
9597         * varpool.c (varpool_output_debug_info): Remove.
9598
9599 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9600
9601         PR rtl-optimization/39241
9602         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9603         to subreg_offset_representable_p.
9604
9605 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9606
9607         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9608         execute function prototype.  Get f and nregs from max_reg_num
9609         and get_insns.  Remove the first backward pass as it's dead,
9610         guard the forward pass by flag_expensive_optimizations.
9611         (rest_of_handle_regmove): Delete.
9612         (pass_regmove): Replace it with regmove_optimize.
9613
9614 2009-02-25  Martin Jambor  <mjambor@suse.cz>
9615
9616         PR tree-optimization/39259
9617         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
9618         calls_alloca function flags.
9619         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9620         calls are detected.
9621
9622 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9623
9624         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9625         flags_set_1_rtx, flags_set_1_set): Delete.
9626         (regmove_optimize): Do not call mark_flags_life_zones.
9627
9628 2009-02-24  Julian Brown  <julian@codesourcery.com>
9629
9630         PR target/35965
9631         * config/arm/arm.c (require_pic_register): Only set
9632         cfun->machine->pic_reg once per function.
9633
9634 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
9635
9636         * doc/invoke.texi (Link Options): Document an easier way to pass
9637         options that take arguments to the GNU linker using -Xlinker and -Wl.
9638
9639 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
9640
9641         PR target/33785
9642         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9643
9644 2009-02-24  Richard Guenther  <rguenther@suse.de>
9645
9646         PR debug/39285
9647         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9648
9649 2009-02-24  Richard Guenther  <rguenther@suse.de>
9650             Zdenek Dvorak  <ook@ucw.cz>
9651
9652         PR tree-optimization/39233
9653         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9654         from converting them to a generic type.
9655
9656 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
9657
9658         PR tree-optimization/39260
9659         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9660         contains a condition with a real type.
9661         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9662
9663 2009-02-23  Jason Merrill  <jason@redhat.com>
9664
9665         PR c++/38880
9666         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9667         narrowing_initializer_constant_valid_p.
9668         (narrowing_initializer_constant_valid_p): Don't return
9669         null_pointer_node for adding a pointer to itself.
9670
9671 2009-02-23  Jan Hubicka  <jh@suse.cz>
9672
9673         PR c/12245
9674         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9675         resizing.
9676
9677 2009-02-23  Jan Hubicka  <jh@suse.cz>
9678
9679         PR tree-optimization/37709
9680         * tree.c (block_ultimate_origin): Move here from dwarf2out.
9681         * tree.h (block_ultimate_origin): Declare.
9682         * dwarf2out.c (block_ultimate_origin): Move to tree.c
9683         * tree-ssa-live.c (remove_unused_scope_block_p):
9684         Eliminate blocks containig no instructions nor live variables nor
9685         nested blocks.
9686         (dump_scope_block): New function.
9687         (remove_unused_locals): Enable removal of dead blocks by default;
9688         enable dumping at TDF_DETAILS.
9689
9690 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9691
9692         * config/i386/i386.c (classify_argument): Don't allow COImode
9693         and OImode.
9694         (function_arg_advance_32): Don't allow OImode.
9695         (function_arg_32): Likewise.
9696         (function_value_32): Likewise.
9697         (return_in_memory_32): Likewise.
9698         (function_arg_64): Remove OImode comment.
9699
9700 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9701
9702         PR target/39261
9703         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9704         ix86_expand_vector_set for V4DImode in 64bit mode only.
9705         (ix86_expand_vector_init_one_var): Likewise.
9706
9707 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
9708
9709         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9710
9711 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9712
9713         PR bootstrap/39257
9714         * loop-iv.c: Revert last change.
9715         * emit-rtl.c: Likewise.
9716
9717 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9718
9719         PR target/39256
9720         * config/i386/i386.c (type_natural_mode): Remove an extra
9721         space in the warning message.
9722         (function_value_32): Handle 32-byte vector modes.
9723         (return_in_memory_32): Likewise.
9724
9725 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9726
9727         * loop-iv.c (truncate_value): New function.
9728         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9729         of lowpart_subreg.
9730         (lowpart_subreg): Move to...
9731         * emit-rtl.c: ...here.
9732
9733 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
9734
9735         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9736         accidental and undocumented change at revision 140860.
9737
9738 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
9739
9740         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9741         take gimple_seq * arguments.
9742         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9743         types_compatible_p langhook.
9744
9745 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
9746             Joseph Myers  <joseph@codesourcery.com>
9747
9748         * config/arm/arm.c (arm_builtin_va_list): New function.
9749         (arm_expand_builtin_va_start): Likewise.
9750         (arm_gimplify_va_arg_expr): Likewise.
9751         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9752         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9753         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9754         (va_list_type): New variable.
9755         (arm_mangle_type): Mangle va_list_type appropriately.
9756
9757 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9758
9759         PR middle-end/39157
9760         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9761         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9762         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9763         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9764         parameter to 1000 for -O1 by default.
9765         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9766         parameter.
9767         * loop-invariant.c: Include params.h.
9768         (move_loop_invariants): Don't call move_single_loop_invariants on
9769         very large loops.
9770
9771 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
9772
9773         * calls.c (emit_library_call_value_1): Use slot_offset instead of
9774         offset when calculating bounds for indexing stack_usage_map.  Fixes
9775         a buffer overflow with certain target setups.
9776
9777 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9778
9779         PR target/39240
9780         * calls.c (expand_call): Clear try_tail_call if caller and callee
9781         disagree in promotion of function return value.
9782
9783 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
9784
9785         PR target/39175
9786         * c-common.c (c_determine_visibility): If visibility changed and
9787         DECL_RTL has been already set, call make_decl_rtl to update symbol
9788         flags.
9789
9790 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9791
9792         PR c++/39188
9793         * varasm.c (assemble_variable): Don't check DECL_NAME when
9794         globalizing a variable.
9795
9796 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
9797
9798         PR c/38483
9799         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9800         expression before any __builtin_trap call.
9801         * c-typeck.c (build_function_call): Convert and check function
9802         arguments before generating a call to a trap.  Evaluate the
9803         function arguments before the trap.
9804
9805 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
9806
9807         PR target/39228
9808         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9809         (UNSPEC_FXAM_MEM): New unspec.
9810         (fxam<mode>2_i387_with_temp): New insn and split pattern.
9811         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
9812         memory using fxam<mode>2_i387_with_temp to remove excess precision.
9813
9814 2009-02-19  Richard Guenther  <rguenther@suse.de>
9815
9816         PR tree-optimization/39207
9817         PR tree-optimization/39074
9818         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9819         storedanything_tree): New.
9820         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
9821         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9822         (build_succ_graph): Add edges from STOREDANYTHING to all
9823         non-direct nodes.
9824         (init_base_vars): Initialize STOREDANYTHING.
9825         (compute_points_to_sets): Free substitution info after
9826         building the succ graph.
9827         (ipa_pta_execute): Likewise.
9828
9829         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9830         field.
9831         (do_ds_constraint): Do not add to special var or non-pointer
9832         field solutions.
9833         (type_could_have_pointers): Split out from ...
9834         (could_have_pointers): ... here.  For arrays use the element type.
9835         (create_variable_info_for): Initialize may_have_pointers.
9836         (new_var_info): Likewise.
9837         (handle_lhs_call): Make the HEAP variable unknown-sized.
9838         (intra_create_variable_infos): Use a type with pointers for
9839         PARM_NOALIAS, make it unknown-sized.
9840
9841 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9842
9843         PR target/39224
9844         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
9845
9846 2009-02-18  Jason Merrill  <jason@redhat.com>
9847
9848         PR target/39179
9849         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9850         value if DECL_EXTERNAL.
9851         * tree-sra.c (sra_walk_gimple_assign): Likewise.
9852         * target.h (gcc_target::binds_local_p): Clarify "module".
9853         * tree.h (TREE_PUBLIC): Clarify "module".
9854
9855 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
9856
9857         PR target/38891
9858         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9859         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9860
9861 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
9862
9863         PR target/39082
9864         * c.opt (Wabi): Support C and ObjC.
9865         (Wpsabi): New.
9866
9867         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9868
9869         * config/i386/i386.c (classify_argument): Warn once about the ABI
9870         change when passing union with long double.
9871
9872         * doc/invoke.texi: Update -Wabi for warning psABI changes.
9873
9874 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
9875
9876         PR c/35447
9877         * c-parser.c (c_parser_compound_statement): Always enter and leave
9878         a scope.
9879
9880 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9881
9882         PR target/34587
9883         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9884
9885 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
9886
9887         PR tree-optimization/36922
9888         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9889         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9890         Likewise.
9891
9892 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9893
9894         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9895         to 0 for EABI64.
9896
9897 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9898
9899         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9900
9901 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9902
9903         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9904         tree sharing.
9905
9906 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
9907             Richard Sandiford  <rdsandiford@googlemail.com>
9908
9909         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9910         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9911         (loongson_biadd): ...this.
9912
9913 2009-02-17  Richard Guenther  <rguenther@suse.de>
9914
9915         PR tree-optimization/39202
9916         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9917         a var make sure to follow existing collapses.
9918
9919 2009-02-17  Richard Guenther  <rguenther@suse.de>
9920
9921         PR middle-end/39214
9922         * langhooks.c (lhd_print_error_function): Check for NULL block.
9923
9924 2009-02-17  Richard Guenther  <rguenther@suse.de>
9925
9926         PR tree-optimization/39204
9927         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9928         of the PHI arg.
9929
9930 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
9931
9932         * config/soft-fp/double.h: Update from glibc CVS.
9933
9934 2009-02-17  Richard Guenther  <rguenther@suse.de>
9935
9936         PR tree-optimization/39207
9937         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9938         strict-aliasing warnings for pointers pointing to NULL.
9939
9940 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
9941
9942         PR c/35446
9943         * c-parser.c (c_parser_braced_init): Call pop_init_level when
9944         skipping until next close brace.
9945
9946 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
9947
9948         PR target/37049
9949         * config/i386/i386.c (ix86_expand_push): Set memory alignment
9950         to function argument boundary.
9951
9952 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9953
9954         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9955         in the lea_add. Reload eventually constraints it properly.
9956         * config/picochip/constraints.md: Remove the target constraint
9957         "b", since it is not needed anymore.
9958
9959 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
9960
9961         * gthr-dce.h: Uglify function parameter and local variable names.
9962         * gthr-gnat.h: Likewise.
9963         * gthr-mipssde.h: Likewise.
9964         * gthr-nks.h: Likewise.
9965         * gthr-posix95.h: Likewise.
9966         * gthr-posix.h: Likewise.
9967         * gthr-rtems.h: Likewise.
9968         * gthr-single.h: Likewise.
9969         * gthr-solaris.h: Likewise.
9970         * gthr-tpf.h: Likewise.
9971         * gthr-vxworks.h: Likewise.
9972         * gthr-win32.h: Likewise.
9973
9974 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
9975
9976         PR target/39196
9977         * config/i386/i386.md: Restrict the new peephole2 to move
9978         between MMX/SSE registers.
9979
9980 2009-02-15  Richard Guenther  <rguenther@suse.de>
9981
9982         Revert
9983         2009-02-13  Richard Guenther  <rguenther@suse.de>
9984
9985         * configure.ac: Enable LFS.
9986         * configure: Re-generate.
9987         * config.in: Likewise.
9988
9989 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9990
9991         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9992         spu_srqwbyte, spu_srqwbytebc): Define.
9993         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9994         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9995         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9996         "shrqby_<mode>"): New insn-and-split patterns.
9997         * config/spu/spu.c (expand_builtin_args): Determine and return
9998         number of operands using spu_builtin_description data.
9999         (spu_expand_builtin_1): Use it.
10000
10001 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
10002
10003         PR target/38056
10004         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
10005         TARGET_CONST_GP.
10006
10007 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10008
10009         PR target/39149
10010         * config/i386/i386.c (override_options): Correct warning
10011         messages for -malign-loops, -malign-jumps and -malign-functions.
10012
10013 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10014
10015         PR target/39152
10016         * config/i386/i386.md: Restrict the new peephole2 to move
10017         between the general purpose registers.
10018
10019 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10020
10021         PR target/39162
10022         * config/i386/i386.c (type_natural_mode): Add a new argument.
10023         Return the original mode and warn ABI change if vector size is 32byte.
10024         (function_arg_advance): Updated.
10025         (function_arg): Likewise.
10026         (ix86_function_value): Likewise.
10027         (ix86_return_in_memory): Likewise.
10028         (ix86_sol10_return_in_memory): Likewise.
10029         (ix86_gimplify_va_arg): Likewise.
10030         (function_arg_32): Don't warn ABX ABI change here.
10031         (function_arg_64): Likewise.
10032
10033 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10034
10035         * loop-iv.c (implies_p): In the final case, test that operands 0
10036         of the two comparisons match.
10037
10038         * config/bfin/bfin.c (find_prev_insn_start): New function.
10039         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
10040         (find_next_insn_start): Move.
10041
10042 2009-02-13  Richard Guenther  <rguenther@suse.de>
10043
10044         * configure.ac: Enable LFS.
10045         * configure: Re-generate.
10046         * config.in: Likewise.
10047
10048 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
10049
10050         PR c/35444
10051         * c-parser.c (c_parser_parms_list_declarator): Discard pending
10052         sizes on syntax error after some arguments have been parsed.
10053
10054 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
10055
10056         * doc/invoke.texi (-fira): Remove.
10057
10058 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10059
10060         * caller-save.c: Replace regclass.c with reginfo.c in comments.
10061         * recog.c: Likewise.
10062         * rtl.h: Likewise.
10063
10064 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
10065
10066         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
10067         (umul_ppmm): Likewise.
10068         (count_leading_zeros): Likewise.
10069         (count_trailing_zeros): Likewise.
10070         (UMUL_TIME): Likewise.
10071
10072 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10073
10074         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
10075         soft-fp/t-softfp to tmake_file.
10076
10077         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
10078         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
10079         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
10080         IA64_BUILTIN_INFQ]: New.
10081         (ia64_init_builtins): Initialize __builtin_infq,
10082         __builtin_fabsq and __builtin_copysignq if not HPUX.
10083         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
10084         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
10085
10086         * config/ia64/lib1funcs.asm (__divtf3): Define only if
10087         SHARED is defined.
10088         (__fixtfti): Likewise.
10089         (__fixunstfti): Likewise.
10090         (__floattitf): Likewise.
10091
10092         * config/ia64/libgcc-glibc.ver: New.
10093         * config/ia64/t-fprules-softfp: Likewise.
10094         * config/ia64/sfp-machine.h: Likewise.
10095
10096         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
10097         (LIBGCC2_TF_CEXT): Likewise.
10098         (TF_SIZE): Likewise.
10099         (TARGET_INIT_LIBFUNCS): Likewise.
10100
10101         * config/ia64/t-glibc (SHLINB_MAPFILES):
10102         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
10103
10104 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10105
10106         * config/i386/i386.c (construct_container): Rewrite processing
10107         BLKmode with X86_64_SSE_CLASS.
10108
10109 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
10110
10111         PR target/39152
10112         * config/i386/i386.md: Replace simplify_replace_rtx with
10113         replace_rtx in the new peephole2.
10114
10115 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
10116
10117         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
10118         loop unrolling do not happen at -O2.
10119
10120 2009-02-12  Michael Matz  <matz@suse.de>
10121
10122         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
10123
10124 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
10125
10126         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
10127         for -g3.
10128
10129 2009-02-12  Ben Elliston  <bje@au.ibm.com>
10130
10131         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
10132         patterns when updating the back chain.  Missed in the 2009-02-10
10133         change.
10134
10135 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
10136
10137         * doc/extend.texi (Decimal Floating Types): Update identifier of
10138         draft TR and list of missing support.
10139
10140 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
10141
10142         PR middle-end/39154
10143         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10144         bit to variable length decl's flags, add it also to its
10145         pointer replacement variable.
10146
10147 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
10148             Jakub Jelinek  <jakub@redhat.com>
10149
10150         PR target/39118
10151         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10152         (memory_blockage): New expander.
10153         (*memory_blockage): New insn pattern.
10154         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10155         instead of general blockage at the end of function prologue when
10156         frame pointer is used to access red zone area.  Do not emit blockage
10157         when profiling, it is emitted in generic code.
10158         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10159         function epilogue when frame pointer is used to access red zone area.
10160
10161 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
10162
10163         PR target/38824
10164         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10165         by arithmetic with memory operands.
10166         * config/i386/predicates.md (commutative_operator): New.
10167
10168 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
10169
10170         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10171         bulleted lists.
10172
10173 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10174
10175         * alias.h (record_alias_subset): Declare.
10176         * alias.c (record_alias_subset): Make global.
10177
10178 2009-02-10  Nick Clifton  <nickc@redhat.com>
10179
10180         * tree-parloops.c: Change license to GPLv3.
10181         * ipa-struct-reorg.c: Change license to GPLv3.
10182         * ipa-struct-reorg.h: Change license to GPLv3.
10183
10184 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
10185
10186         PR c/39084
10187         * c-decl.c (start_struct): Return NULL on error.
10188
10189 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
10190
10191         PR middle-end/39124
10192         * cfgloopmanip.c (remove_path): Call remove_bbs after
10193         cancel_loop_tree, not before it.
10194
10195         PR target/39139
10196         * function.h (struct function): Add has_local_explicit_reg_vars bit.
10197         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10198         VAR_DECLs were seen.
10199         * tree-ssa-live.c (remove_unused_locals): Recompute
10200         cfun->has_local_explicit_reg_vars.
10201         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10202         copies or clearings if cfun->has_local_explicit_reg_vars.
10203
10204 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
10205
10206         PR target/39118
10207         * config/i386/i386.c (expand_prologue): Emit blockage at the end
10208         of function prologue when frame pointer is used to access
10209         red zone area.
10210
10211 2009-02-10  Richard Guenther  <rguenther@suse.de>
10212
10213         PR middle-end/39127
10214         * gimplify.c (gimple_regimplify_operands): Always look if
10215         we need to create a temporary.
10216
10217 2009-02-10  Richard Guenther  <rguenther@suse.de>
10218
10219         PR tree-optimization/39132
10220         * tree-loop-distribution.c (todo): New global var.
10221         (generate_memset_zero): Trigger TODO_rebuild_alias.
10222         (tree_loop_distribution): Return todo.
10223
10224 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10225
10226         PR target/39119
10227         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10228         (x86_64_reg_class_name): Removed.
10229         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
10230         first one isn't X86_64_SSE_CLASS or any other ones aren't
10231         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
10232         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10233         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
10234         and 3 X86_64_SSEUP_CLASS.
10235         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
10236         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10237
10238 2009-02-10  Ben Elliston  <bje@au.ibm.com>
10239
10240         * config/rs6000/rs6000.md (allocate_stack): Always use an update
10241         form instruction to update the stack back chain word, even if the
10242         user has disabled the generation of update instructions.
10243         (movdi_<mode>_update_stack): New.
10244         (movsi_update_stack): Likewise.
10245         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10246         always use an update form instruction to update the stack back
10247         chain word.
10248
10249 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
10250
10251         PR middle-end/38953
10252         * graphite.c (if_region_set_false_region): After moving a region in
10253         the false branch of a condition, remove the empty dummy basic block.
10254         (gloog): Remove wrong fix for PR38953.
10255
10256 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10257
10258         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10259         generation due to implicit sign extension.
10260
10261 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10262
10263         PR middle-end/38981
10264         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10265         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10266
10267 2009-02-09  Richard Guenther  <rguenther@suse.de>
10268
10269         PR middle-end/35202
10270         * convert.c (convert_to_real): Disable (float)fn((double)x)
10271         to fnf(x) conversion if errno differences may occur and
10272         -fmath-errno is set.
10273
10274 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
10275
10276         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10277         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10278         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10279
10280 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10281
10282         PR c/35434
10283         * c-common.c (handle_alias_attribute): Disallow attribute for
10284         anything not a FUNCTION_DECL or VAR_DECL.
10285
10286 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
10287
10288         PR c/39035
10289         * real.c (do_compare): Special-case compare of zero against
10290         decimal float value.
10291
10292 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10293
10294         PR c/36432
10295         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10296         as indicating flexible array members unless the field itself is
10297         being declarared as the incomplete array.
10298
10299 2009-02-06  Jan Hubicka  <jh@suse.cz>
10300
10301         PR tree-optimization/38844
10302         * ipa-inline.c (try_inline): Stop inlining recursion when edge
10303         is already inlined.
10304
10305 2009-02-06  Richard Guenther  <rguenther@suse.de>
10306
10307         PR middle-end/38977
10308         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10309         fork because we may expand it as __gcov_fork.
10310
10311 2009-02-06  Nick Clifton  <nickc@redhat.com>
10312
10313         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10314
10315 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
10316
10317         PR tree-optimization/35659
10318         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10319         vn_phi_eq): Shortcut if hashcode does not match.
10320         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10321         NULL operands.
10322         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10323         and avoid iterative_hash_expr.
10324         (FOR_EACH_VALUE_ID_IN_SET): New.
10325         (value_id_compare): Remove.
10326         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10327         sort expressions by value id.
10328
10329 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10330
10331         PR target/38991
10332         * config/sh/predicates.md (general_movsrc_operand): Don't check
10333         the subreg of system registers here.
10334
10335 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
10336
10337         PR c++/39106
10338         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10339         on the copied decl.
10340
10341 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
10342
10343         PR rtl-optimization/39110
10344         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10345         addresses, not aligned ones.
10346
10347 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
10348             Richard Guenther  <rguenther@suse.de>
10349
10350         PR tree-optimization/39100
10351         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10352         comment says and add edges.
10353
10354 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
10355
10356         PR c/35435
10357         * c-common.c (handle_tls_model_attribute): Ignore attribute for
10358         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10359
10360 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
10361
10362         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10363         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10364         register_bb_in_sese, new_sese, free_sese): Moved.
10365         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10366         outermost_loop_in_scop, build_scop_iteration_domain,
10367         expand_scalar_variables_ssa_name, get_vdef_before_scop,
10368         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10369         Use loop_in_sese_p instead of loop_in_scop_p.
10370         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10371         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10372         (scopdet_basic_block_info): Fix bug in scop detection.
10373         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10374         eq_loop_to_cloog_loop): Remove.
10375         (nb_loops_around_loop_in_scop, nb_loop
10376         ref_nb_loops): Moved here...
10377         * graphite.h (ref_nb_loops): ... from here.
10378         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10379         (loop_domain_dim, loop_iteration_vector_dim): Remove.
10380         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10381         * testsuite/gcc.dg/graphite/scop-19.c: New
10382
10383 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
10384             Hans-Peter Nilsson  <hp@axis.com>
10385
10386         PR rtl-optimization/37889
10387         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10388         Move offset handling from PLUS to before the switch.  Use new
10389         arguments when considering SYMBOL_REFs too.
10390         (rtx_addr_can_trap_p): Pass dummy offset and size.
10391         (enum may_trap_p_flags): Remove.
10392         (may_trap_p_1): Pass size from MEM_SIZE.
10393
10394         PR rtl-optimization/38921
10395         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10396         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10397         * rtlanal.c (may_trap_after_code_motion_p): Delete.
10398         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10399
10400 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
10401
10402         AVX Programming Reference (January, 2009)
10403         * config/i386/sse.md (*vpclmulqdq): New.
10404
10405 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
10406
10407         PR tree-optimization/38977
10408         PR gcov-profile/38292
10409         * calls.c (special_function_p): Disregard __builtin_ prefix.
10410
10411 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10412
10413         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10414         non-indexable addresses even before reload.
10415
10416 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10417
10418         PR c/29129
10419         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10420         as having variable size.  Do not give an error for unnamed
10421         parameters with [*] declarators.  Give a warning for type names
10422         with [*] declarators and mark them as variable size.
10423         * c-parser.c (c_parser_sizeof_expression): Do not give an error
10424         for sizeof applied to [*] type names.
10425
10426 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10427
10428         PR C++/36607
10429         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10430
10431 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10432
10433         * gcc.c (process_command): Update copyright notice dates.
10434         * gcov.c (print_version): Likewise.
10435         * gcov-dump.c (print_version): Likewise.
10436         * mips-tfile.c (main): Likewise.
10437         * mips-tdump.c (main): Likewise.
10438
10439 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10440
10441         PR c/35433
10442         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10443         for composite type involving a zero-length array type.
10444
10445 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10446
10447         PR target/35318
10448         * function.c (match_asm_constraints_1): Skip over
10449         initial optional % in the constraint.
10450
10451         PR inline-asm/39059
10452         * c-parser.c (c_parser_postfix_expression): If fixed point is not
10453         supported, don't accept FIXED_CSTs.
10454         * c-decl.c (finish_declspecs): Error if fixed point is not supported
10455         and _Sat is used without _Fract/_Accum.  Set specs->type to
10456         integer_type_node for cts_fract/cts_accum if fixed point is not
10457         supported.
10458
10459 2009-02-02  Catherine Moore  <clm@codesourcery.com>
10460
10461         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
10462
10463 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10464
10465         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10466         (ABI_HAS_64BIT_SYMBOLS): Use it.
10467         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10468
10469 2009-02-02  Paul Brook  <paul@codesourcery.com>
10470
10471         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10472
10473 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
10474
10475         PR inline-asm/39058
10476         * recog.h (asm_operand_ok): Add constraints argument.
10477         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
10478         recurse on matching constraint.
10479         (check_asm_operands): Pass constraints as 3rd argument to
10480         asm_operand_ok.  Don't look up matching constraint here.
10481         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10482         to asm_operand_ok.
10483
10484 2009-02-02  Ben Elliston  <bje@au.ibm.com>
10485
10486         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10487         TARGET_NARROW_VOLATILE_BITFIELD macro names.
10488
10489 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10490
10491         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10492         information.  Remove some obsolete information.  Reorganize.
10493
10494         * config/pa/fptr.c: Revert license to GPL 2.
10495         * config/pa/milli64.S: Likewise.
10496
10497 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10498
10499         PR target/38904
10500         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
10501         LIBRARY name in, instead of hard-coding it.
10502         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
10503         extra target make frag to tmake_files according to EH model.
10504         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
10505         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
10506         frags that define makefile variable EH_MODEL appropriately.
10507         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
10508         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
10509         to "-sjlj" according to type of EH configured.
10510         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10511         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
10512         to "_sjlj" according to type of EH configured.
10513         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10514         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
10515         (SHLIB_LINK):  Add missing semicolon to if-else construct.
10516         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10517         string value of "pe_dll" command-line option.
10518         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
10519         (SHLIB_SONAME):  Use it when overriding t-cygming default.
10520         (SHLIB_IMPLIB):  Override t-cygming default.
10521         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10522         string value of "pe_dll" command-line option.
10523
10524 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10525
10526         PR target/38952
10527         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
10528         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
10529
10530 2009-01-31  Richard Guenther  <rguenther@suse.de>
10531
10532         PR tree-optimization/38937
10533         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10534         computing the transitive closure.
10535
10536 2009-01-30  Richard Guenther  <rguenther@suse.de>
10537
10538         PR tree-optimization/39041
10539         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10540         Propagate variable indices only if the types match for this stmt.
10541
10542 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
10543
10544         PR target/39013
10545         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10546         inline but never defined.
10547
10548 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
10549
10550         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10551         (*insv_h_di_reg_extimm): New insn.
10552         (*insv_l<mode>_reg_extimm): New insn.
10553
10554 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10555
10556         * config/picochip/picochip.c (flag_conserve_stack): set
10557         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10558         fconserve-stack. Reduce call-overhead used by inliner.
10559
10560 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10561
10562         PR/38157
10563         * common.opt (flag_conserve_stack): Initialised to zero.
10564
10565 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
10566
10567         PR/39002
10568         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10569         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10570         method.
10571
10572 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10573
10574         * ira-color.c (allocno_reload_assign): Update comments.
10575         * regmove.c (regmove_optimize): Likewise.
10576
10577         * ra.h: Removed.
10578
10579 2009-01-29  Robert Millan  <rmh@aybabtu.com>
10580
10581         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10582         * config/i386/kopensolaris-gnu.h: New file.  Undefine
10583         `MD_UNWIND_SUPPORT'.
10584         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
10585
10586 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
10587
10588         PR tree-optimization/39007
10589         * tree-loop-distribution.c (generate_builtin): Use
10590         recompute_dominator to compute the immediate dominator of the
10591         basic block just after the loop.
10592
10593 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10594
10595         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10596         (ASM_OUTPUT_DWARF_PCREL): Define.
10597
10598 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
10599
10600         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10601         * doc/passes.texi: Remove entries about regclass, local-alloc, and
10602         global.  Modify entries about regmove and IRA.
10603
10604         * ra-conflict.c: Remove the file.
10605
10606         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10607
10608         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10609         (pass_regclass_init): Rename to pass_reginfo_init.
10610
10611         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10612
10613         * toplev.h (flag_ira): Remove.
10614
10615         * caller-save.c (setup_save_areas): Remove flag_ira.
10616
10617         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
10618
10619         * global.c: Remove the file.
10620
10621         * opts.c (decode_options): Remove flag_ira.
10622
10623         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10624
10625         * regmove.c: Modify file description.
10626         (find_use_as_address, try_auto_increment): Define them only if
10627         AUTO_INC_DEC is defined.
10628         (replacement_quality, replace_in_call_usage, fixup_match_1,
10629         stable_and_no_regs_but_for_p): Remove.
10630         (reg_set_in_bb): Make it static.
10631         (regmove_optimize): Remove flag_ira and code which worked for
10632         !flag_ira.
10633
10634         * local-alloc.c: Remove the file.
10635
10636         * common.opt (fira): Remove.
10637
10638         * ira.c: Include except.h.
10639         (eliminable_regset): Move from global.c.
10640         (mark_elimination): Ditto.  Remove flag_ira.
10641         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10642         equiv_mem_modified, validate_equiv_mem_from_store,
10643         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10644         contains_replace_regs, memref_referenced_p, memref_used_between_p,
10645         no_equiv, recorded_label_ref): Move from local-alloc.c.
10646         (update_equiv_regs): Ditto.  Make it static.
10647         (print_insn_chain, print_insn_chains): Move it from global.c.
10648         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
10649         (build_insn_chain): Ditto.  Make it static.
10650         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
10651         Rename to init_live_subregs.
10652         (gate_ira): Remove flag_ira.
10653
10654         * regclass.c: Rename reginfo.c.  Change file description.
10655         (FORBIDDEN_INC_DEC_CLASSES): Remove.
10656         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
10657         (init_reg_sets_1): Remove code for evaluation of
10658         reg_class_superclasses and losing_caller_save_reg_set.
10659         (init_regs): Remove init_reg_autoinc.
10660         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10661         ok_for_base_p_nonstrict): Remove.
10662         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
10663         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
10664         corresponding entries.
10665         (dump_regclass, record_operand_costs, scan_one_insn,
10666         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10667         record_address_regs, auto_inc_dec_reg_p): Remove.
10668         (gt-regclass.h): Rename to gt-reginfo.h.
10669
10670         * rtl.h (dump_global_regs, retry_global_alloc,
10671         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
10672
10673         * Makefile.in (RA_H): Remove.
10674         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10675         Rename regclass.o to reginfo.o.
10676         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
10677         gt-reginfo.h.
10678         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10679         (GTFILES): Rename regclass.c to reginfo.c.
10680
10681         * passes.c (init_optimization_passes): Remove pass_local_alloc and
10682         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
10683
10684         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10685         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10686         Remove flag_ira.
10687         (finish_spills): Ditto.  Remove code for !flag_ira.
10688
10689 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
10690
10691         PR middle-end/35854
10692         * doc/invoke.texi (rtl debug options): Complete rewrite.
10693         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10694         to auto_inc_dec".
10695         * mode-switching.c (pass_mode_switching): Rename pass from
10696         "mode-sw" to "mode_sw".
10697         * except.c (pass_convert_to_eh_ranges): Rename pass from
10698         "eh-ranges" to "eh_ranges".
10699         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10700         to "subreg1".
10701
10702
10703 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
10704             Alexander Monakov  <amonakov@ispras.ru>
10705
10706         PR middle-end/38857
10707         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10708         register.
10709         (move_exprs_to_boundary): Change return type and pass through
10710         should_move from move_op.  Relax assert.  Update usage ...
10711         (schedule_expr_on_boundary): ... here.  Use should_move instead of
10712         cant_move.
10713         (move_op_orig_expr_found): Indicate that insn was disconnected from
10714         stream.
10715         (code_motion_process_successors): Do not call after_merge_succs
10716         callback if original expression was not found when traversing any of
10717         the branches.
10718         (code_motion_path_driver): Change return type.  Update prototype.
10719         (move_op): Update comment.  Add a new parameter (should_move).  Update
10720         prototype.  Set *should_move based on indication provided by
10721         move_op_orig_expr_found.
10722
10723 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
10724
10725         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10726         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10727         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10728         * config/rs6000/rs6000.c (rs6000_override_options): Default
10729         avoid-indexed-addresses on for Power6, off for everything else.
10730         (avoiding_indexed_address_p): New function.
10731         (rs6000_legitimize_address): Use it.
10732         (rs6000_legitimate_address): Likewise.
10733         * config/rs6000/rs6000.md (movXX_updateX): Likewise
10734
10735 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
10736
10737         PR tree-optimization/38997
10738         * tree-loop-distribution.c (generate_memset_zero): Use
10739         POINTER_PLUS_EXPR for a pointer addition.
10740
10741 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
10742
10743         * config/s390/s390.md (bswap<mode>2): New pattern added.
10744
10745 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10746
10747         * config/s390/s390.md (*tls_load_31): Added type attribute.
10748
10749 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10750
10751         * config/s390/s390.md: Fix a few comments.
10752
10753 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10754
10755         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10756         (*tm<mode>_full): Fixed z10prop attribute.
10757         (*tst<mode>_extimm): Fixed z10prop attribute.
10758         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10759         (*tstqiCCT_cconly): Fixed z10prop attribute.
10760         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10761         (*movsi_larl): Fixed z10prop attribute.
10762         (*movsi_zarch): Fixed z10prop attribute.
10763         (*movsi_eas): Fixed z10prop attribute.
10764         (*movhi): Fixed z10prop attribute.
10765         (*movqi): Fixed z10prop attribute.
10766         (*movstrictqi): Fixed z10prop attribute.
10767         (*mov<mode>): Fixed z10prop attribute.
10768         (*movcc): Fixed z10prop attribute.
10769         (*sethighpartdi_64): Fixed z10prop attribute.
10770         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10771         (*negdi2_sign_cc): Fixed z10prop attribute.
10772         (*negdi2_sign): Fixed z10prop attribute.
10773         (*absdi2_sign_cc): Fixed z10prop attribute.
10774         (*absdi2_sign): Fixed z10prop attribute.
10775         (*negabsdi2_sign_cc): Fixed z10prop attribute.
10776         (*negabsdi2_sign): Fixed z10prop attribute.
10777         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10778         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10779         (doloop_si64): Fixed z10prop attribute.
10780         (doloop_si31): Fixed z10prop attribute.
10781         (doloop_long): Fixed z10prop attribute.
10782         (indirect_jump): Fixed z10prop attribute.
10783         (nop): Fixed z10prop attribute.
10784         (main_base_64): Fixed z10prop attribute.
10785         (reload_base_64): Fixed z10prop attribute.
10786
10787 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10788
10789         PR rtl-optimization/38740
10790         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10791         if !optimize.
10792         * config/mips/mips.c (mips_reorg): Likewise.
10793
10794 2009-01-28  Richard Guenther  <rguenther@suse.de>
10795
10796         PR tree-optimization/38926
10797         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10798         with the correct value id to a value.
10799         (do_regular_insertion): Use the value number of edoubleprime
10800         for the value number of the expr.
10801
10802         Revert
10803         2008-08-21  Richard Guenther  <rguenther@suse.de>
10804
10805         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10806         a PHI ask VN if it is already available.
10807         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10808         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10809
10810 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10811
10812         PR middle-end/38934
10813         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10814         set to varying whenever max has TREE_OVERFLOW set, similarly
10815         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10816
10817 2009-01-28  Richard Guenther  <rguenther@suse.de>
10818
10819         PR middle-end/38908
10820         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10821         uninitialized aggregate uses in call arguments.
10822
10823 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
10824
10825         PR tree-optimization/38984
10826         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10827         the nothing_id variable if -fno-delete-null-pointer-checks.
10828
10829 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
10830
10831         PR target/38988
10832         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10833         (set_got_offset_rex64): Ditto.
10834
10835 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10836
10837         PR target/38941
10838         * doc/extend.texi: Improve local variable with asm reg.
10839
10840 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
10841
10842         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10843         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10844         was not supplied then set warn_packed_bitfield_compat to the
10845         default value of 1.
10846         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10847         against 1.
10848
10849 2009-01-27  Richard Guenther  <rguenther@suse.de>
10850
10851         PR tree-optimization/38503
10852         * cfgexpand.c (expand_gimple_basic_block): Ignore
10853         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10854         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10855         variables that cannot have TBAA applied.
10856         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10857         statements.
10858
10859 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
10860
10861         PR middle-end/38969
10862         * calls.c (initialize_argument_information): Do not wrap complex
10863         arguments in SAVE_EXPR.
10864
10865 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
10866
10867         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
10868         (INSTALL_LIBGCC): Revert typo commit.
10869
10870 2009-01-26  Richard Guenther  <rguenther@suse.de>
10871
10872         PR tree-optimization/38745
10873         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10874         from special handling.
10875
10876 2009-01-26  Richard Guenther  <rguenther@suse.de>
10877
10878         PR tree-optimization/38745
10879         * tree-ssa.c (execute_update_addresses_taken): Do not include
10880         variables that cannot possibly be a register in not_reg_needs.
10881         Do not clear TREE_ADDRESSABLE on vars that may not become
10882         registers.
10883         * tree-ssa.c (update_alias_info_1): Include those in the set
10884         of addressable vars.
10885
10886 2009-01-26  Richard Guenther  <rguenther@suse.de>
10887
10888         PR middle-end/38851
10889         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10890         * tree-ssa-dse.c: Include langhooks.h
10891         (execute_simple_dse): Remove stores with zero size.
10892
10893 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
10894
10895         PR c/38957
10896         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10897         as PLUS_EXPR.
10898
10899 2009-01-24  Julian Brown  <julian@codesourcery.com>
10900
10901         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10902         config/arm/linux-atomic.c.
10903         * config/arm/linux-atomic.c: New.
10904
10905 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
10906
10907         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10908         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10909         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10910
10911 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10912
10913         PR c/38938
10914         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
10915         properly.
10916
10917 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
10918
10919         PR tree-optimization/38953
10920         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10921         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10922         (gloog): Split the exit of the scop when the scop exit is a loop exit.
10923         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10924         changed the CFG.
10925
10926 2009-01-24  Paul Brook  <paul@codesourcery.com>
10927
10928         * config/arm/neon.md (neon_type): Move to arm.md.
10929         (neon_mov<VSTRUCT>): Add neon_type attribute.
10930         * config/arm/arm.md (neon_type): Move to here.
10931         (conds): Add "unconditioal" and use as default for NEON insns.
10932
10933 2009-01-24  Ben Elliston  <bje@au.ibm.com>
10934
10935         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10936         void *' warning from -Wc++-compat.
10937         * Makefile.in (dominance.o-warn): Remove.
10938
10939 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
10940
10941         PR tree-optimization/38932
10942         * fold-const.c (fold_unary_ignore_overflow): New.
10943         * tree.h (fold_unary_ignore_overflow): Declare.
10944         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10945         * tree-ssa-sccvn.c (visit_reference_op_load,
10946         simplify_unary_expression): Likewise.
10947
10948 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
10949
10950         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10951         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
10952         regardless of their type.
10953         * c-common.c (handle_packed_attribute): Don't ignore packed on
10954         bitfields.
10955         * c.opt (Wpacked-bitfield-compat): New warning option.
10956         * stor-layout.c (place_field): Warn if offset of a field changed.
10957         * doc/extend.texi (packed): Mention the ABI change.
10958         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10959         (Warning Options): Add it to the list.
10960
10961 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10962
10963         * c-opts.c (c_common_post_options): Fix a typo in comments.
10964
10965 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
10966
10967         PR middle-end/38615
10968         * gimplify.c (gimplify_init_constructor): Fix promotion of const
10969         variables to static.
10970         * doc/invoke.texi (-fmerge-all-constants): Update description.
10971
10972 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
10973
10974         PR target/38931
10975         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10976         (*movdi_1_rex64): Use type "mmx" for alternative 5.
10977
10978 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
10979
10980         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10981         a word boundary.
10982         (LOCAL_ALIGNMENT): Similarly.
10983
10984 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10985             Joseph Myers  <joseph@codesourcery.com>
10986
10987         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10988         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10989         * config/arm/arm-tune.md: Regenerate.
10990         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10991         -march=iwmmxt2.
10992
10993 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10994
10995         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10996         version number to five.
10997
10998 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
10999
11000         PR c++/38930
11001         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
11002         * c-common.c (set_underlying_type): Likewise.
11003         (is_typedef_decl ): Likewise
11004         * tree.h: Likewise
11005         (set_underlying_type): Likewise.
11006         (is_typedef_type): Likewise.
11007
11008 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11009
11010         PR middle-end/38587
11011         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
11012         crossing setjmps.
11013
11014 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
11015
11016         PR bootstrap/37660
11017         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
11018         (LIBGCC_SPEC):  Don't define.
11019         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
11020
11021 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
11022
11023         PR rtl-optimization/38879
11024         * alias.c (base_alias_check): Unaligned access via AND address can
11025         alias all surrounding object types except those with sizes equal
11026         or wider than the size of unaligned access.
11027
11028 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
11029
11030         PR c++/26693
11031         * c-decl.c (clone_underlying_type): Move this ...
11032         * c-common.c (set_underlying_type): ... here.
11033         Also, make sure the function properly sets TYPE_STUB_DECL() on
11034         the newly created typedef variant type.
11035         (is_typedef_decl ): New entry point.
11036         * tree.h: Added a new member member_types_needing_access_check to
11037         struct tree_decl_non_common.
11038         (set_underlying_type): New entry point.
11039         (is_typedef_type): Likewise.
11040
11041 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
11042
11043         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
11044         Check whether two instructions have memory references that
11045         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
11046         are helper functions for traversing.
11047         * alias.h (insn_alias_sets_confilict_p): New prototypes.
11048         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
11049         not to draw dependency edge for instructions with non-conflicting
11050         alias sets.
11051
11052 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
11053
11054         PR other/38758
11055         * longlong.h: Update copyright years.  Use soft-fp license notice.
11056         Sync __clz_tab declaration with glibc.
11057
11058 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
11059
11060         PR target/30687
11061         * doc/extend.texi (syscall_linkage): New.
11062         (version_id): Modify.
11063
11064 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11065             Richard Guenther  <rguenther@suse.de>
11066
11067         PR tree-optimization/38747
11068         PR tree-optimization/38748
11069         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
11070         conversion if the base address is an indirect reference and the
11071         aliasing sets could cause issues.
11072
11073 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
11074
11075         * common.opt (fgraphite, fgraphite-identity): Add comment for
11076         explaining why these options are not documented.
11077
11078 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
11079
11080         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
11081         gimple_call_lhs is NULL.
11082
11083 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
11084
11085         PR target/38868
11086         * emit-rtl.c (adjust_address_1): Make sure memref is never
11087         overwritten.
11088
11089 2009-01-20  Ben Elliston  <bje@au.ibm.com>
11090
11091         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11092         const qualifier from arg parameter. Remove unnecessary cast to char *.
11093         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11094         const qualifier from arg 2.
11095
11096 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
11097
11098         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
11099
11100 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
11101
11102         PR c/38869
11103         * rtl.h (reinit_regs): New prototype.
11104         * regclass.c: Include ira.h.
11105         (reinit_regs): New.
11106         * Makefile.in (regclass.o): Add ira.h.
11107         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
11108
11109 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
11110
11111         PR target/38736
11112         * c-common.c (handle_aligned_attribute): Use
11113         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
11114         default alignment value.
11115
11116         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
11117
11118         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
11119         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
11120
11121         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
11122         __BIGGEST_ALIGNMENT__.
11123
11124         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
11125
11126 2009-01-18  Richard Guenther  <rguenther@suse.de>
11127
11128         PR tree-optimization/38819
11129         * tree-flow.h (operation_could_trap_helper_p): Declare.
11130         * tree-eh.c (operation_could_trap_helper_p): Export.
11131         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
11132         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
11133         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
11134         are about to insert a possibly trapping instruction and fail
11135         in this case.
11136
11137 2009-01-18  Andreas Schwab  <schwab@suse.de>
11138
11139         * doc/install.texi (Configuration): Remove obsolete paragraph
11140         about use of --with-gnu-ld with --with-gnu-as.
11141
11142 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
11143
11144         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11145         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11146         Follow spelling conventions.
11147
11148 2009-01-18  Ben Elliston  <bje@au.ibm.com>
11149
11150         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11151         C++ warning about implicit conversion from void * to struct
11152         bitmap_head_def *.
11153         (bitmap_obstack_free): Likewise for bitmap_element *.
11154         * Makefile.in (bitmap.o-warn): Remove.
11155
11156 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
11157
11158         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
11159
11160 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
11161             Tobias Grosser  <tobi.grosser@amd.com>
11162
11163         * graphite.c (graphite_trans_scop_block): Do not block single
11164         nested loops.
11165
11166 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
11167
11168         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11169         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11170         test with assertion.
11171
11172 2009-01-16  Richard Guenther  <rguenther@suse.de>
11173
11174         PR tree-optimization/38835
11175         PR middle-end/36227
11176         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11177         and INT + PTR -> (INT)(PTR p+ INT) folding.
11178         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11179
11180 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
11181
11182         PR target/38554
11183         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11184         the subreg from a lowpart subreg if it is also casting the value.
11185
11186 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11187             Tobias Grosser  <tobi.grosser@amd.com>
11188
11189         * graphite.c (compare_prefix_loops): New.
11190         (build_scop_canonical_schedules): Rewritten.
11191         (graphite_transform_loops): Move build_scop_canonical_schedules
11192         after build_scop_iteration_domain.
11193
11194 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11195             Tobias Grosser  <tobi.grosser@amd.com>
11196
11197         * graphite.c (add_conditions_to_domain): Add the loops to
11198         the dimension of the iteration domain.  Do copy the domain
11199         only when it exists.
11200         (build_scop_conditions_1): Do not call add_conditions_to_domain.
11201         (add_conditions_to_constraints): New.
11202         (can_generate_code_stmt, can_generate_code): Removed.
11203         (gloog): Do not call can_generate_code.
11204         (graphite_transform_loops): Call add_conditions_to_constraints
11205         after building the iteration domain.
11206
11207 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
11208
11209         PR tree-optimization/38789
11210         * tree-ssa-threadedge.c
11211         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11212         __builtin_constant_p.
11213
11214 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
11215
11216         * dce.c (delete_unmarked_insns): Reversed the order that insns are
11217         examined before deleting them.
11218
11219 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
11220
11221         * function.c (aggregate_value_p): Correctly extract the function
11222         type from CALL_EXPR_FN lookup.
11223
11224 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11225
11226         * config/picochip/picochip.c (picochip_override_options): Revert
11227         CFI asm flag disable commited previously.
11228
11229 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11230             Tobias Grosser  <tobi.grosser@amd.com>
11231             Jan Sjodin  <jan.sjodin@amd.com>
11232
11233         * graphite.c (scan_tree_for_params): On substractions negate
11234         all the coefficients of the term.
11235         (clast_to_gcc_expression_red): New.  Handle reduction expressions
11236         of more than two operands.
11237         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11238         (get_vdef_before_scop): Handle also the case of default definitions.
11239
11240 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
11241
11242         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11243         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11244         Also use them when walking CALL_INSN_FUNCTION_USAGE.
11245
11246 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
11247             Joey Ye  <joey.ye@intel.com>
11248
11249         PR middle-end/37843
11250         * cfgexpand.c (expand_stack_alignment): Don't update stack
11251         boundary nor check incoming stack boundary here.
11252         (gimple_expand_cfg): Update stack boundary and check incoming
11253         stack boundary here.
11254
11255 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
11256
11257         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11258
11259 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
11260
11261         PR rtl-optimization/38245
11262         * calls.c (expand_call): Add stack arguments to
11263         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11264         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11265         in regs and partially in memory or BLKmode arguments.
11266         (emit_library_call_value_1): Add stack arguments to
11267         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11268         ACCUMULATE_OUTGOING_ARGS).
11269         * dce.c: Include tm_p.h.
11270         (find_call_stack_args): New function.
11271         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
11272         argument.
11273         (mark_insn): Call find_call_stack_args for CALL_Ps.
11274         (prescan_insns_for_dce): Walk insns backwards in bb rather than
11275         forwards.  Allocate and free arg_stores bitmap if needed, pass it
11276         down to deletable_insn_p, don't mark stores set in arg_stores
11277         bitmap, clear the bitmap at the beginning of each bb.
11278         * Makefile.in (dce.o): Depend on $(TM_P_H).
11279
11280 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
11281
11282         PR target/22599
11283         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11284         to make sure the insn is a conditional test (bug 22599).  Reformat a
11285         few long lines.
11286
11287 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
11288
11289         PR middle-end/38431
11290         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11291         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11292         (gloog): Do not call cleanup_tree_cfg.
11293         (graphite_transform_loops): Call cleanup_tree_cfg after all
11294         scops have been code generated.
11295
11296 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
11297         * doc/gty.texi (Invoking the garbage collector): Added new node
11298         and section documenting ggc_collect.
11299
11300 2009-01-14  Richard Guenther  <rguenther@suse.de>
11301
11302         PR tree-optimization/38826
11303         PR middle-end/38477
11304         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11305         initialization notes only if we actually emitted a warning.
11306         (intra_create_variable_infos): Add constraints for a result decl
11307         that is passed by hidden reference.
11308         (build_pred_graph): Mark all related variables non-direct on
11309         address-taking.
11310
11311 2009-01-14  Nick Clifton  <nickc@redhat.com>
11312
11313         * ira-conflicts.c: Include addresses.h for the definition of
11314         base_reg_class.
11315         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11316         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11317
11318 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11319
11320         PR target/38811
11321         * Makefile.in (ira-lives.o): Add except.h.
11322
11323         * ira-lives.c: Include except.h.
11324         (process_bb_node_lives): Process can_throw_internal.
11325
11326 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
11327
11328         PR rtl-optimization/38774
11329         * combine.c (simplify_set): When undoing cc_use change, don't do
11330         PUT_CODE on the newly created comparison, but instead put back the
11331         old comparison.
11332
11333 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
11334
11335         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11336         values.  Remove duplicate arm8 entry.
11337
11338 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11339
11340         PR tree-optimization/38786
11341         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11342         the SSA_NAME case of expand_scalar_variables_expr.
11343         Set the type of an expression to the type of its assign statement.
11344         (expand_scalar_variables_expr): Also gather the scalar computation
11345         used to index the memory access.  Do not pass loop_p.
11346         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
11347         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11348         the gimple_stmt_iterator where it inserts new code.
11349         Do not pass loop_p.
11350         (copy_bb_and_scalar_dependences): Do not pass loop_p.
11351         (translate_clast): Update call to copy_bb_and_scalar_dependences.
11352
11353 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11354
11355         * graphite.h (debug_value): Removed.
11356         * graphite.c (debug_value): Removed.
11357
11358 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11359
11360         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11361         ldrd/strd with two 32-bit instructions.
11362
11363 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11364
11365         * config/arm/arm.c (struct processors): Pass for speed down into
11366         cost helper functions.
11367         (const_ok_for_op): Handle COMPARE and inequality nodes.
11368         (arm_rtx_costs_1): Rewrite.
11369         (arm_size_rtx_costs): Update prototype.
11370         (arm_rtx_costs): Pass speed down to helper functions.
11371         (arm_slowmul_rtx_costs): Rework cost calculations.
11372         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11373         (arm_9e_rtx_costs): Likewise.
11374
11375 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
11376
11377         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11378         relocations of local symbols wider than UNITS_PER_WORD are not valid.
11379         (alpha_legitimize_address): Do not split local symbols wider than
11380         UNITS_PER_WORD into HIGH/LO_SUM parts.
11381
11382 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
11383
11384         PR bootstrap/38580
11385         * gcc.c (process_command): Replace call to execvp with calls
11386         to pex_one and exit.
11387
11388 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
11389
11390         PR target/29141
11391         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11392         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11393         variant for devices with 3-byte PC.
11394         (__tablejump_elpm__): New.
11395
11396 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11397
11398         PR c/32041
11399         * c-parser.c (c_parser_postfix_expression): Allow `->' in
11400         offsetof member-designator, handle it as `[0].'.
11401
11402 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11403
11404         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11405         function when not using named sections on targets with named sections
11406         if branch distance is less than 262132.
11407
11408 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
11409
11410         * combine.c (combine_instructions):  Recompute
11411         optimize_this_for_speed_p  for each BB in the main combine loop.
11412
11413 2009-01-12  Tomas Bily  <tbily@suse.cz>
11414
11415         PR middlend/38385
11416         * tree-loop-distribution.c (prop_phis): New function.
11417         (generate_builtin): Call prop_phis.
11418         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11419
11420 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11421
11422         PR tree-optimization/38807
11423         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11424         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11425
11426 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
11427
11428         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11429         subreg of op0 to the original op0.
11430
11431 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
11432
11433         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11434
11435 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
11436
11437         PR debug/7055
11438         * mips-tfile.c (parse_def): Fix parsing of def strings
11439         starting with digits.
11440
11441 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
11442
11443         PR target/38695
11444         * config/arm/arm.c (arm_is_long_call_p): Don't call
11445         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11446
11447 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
11448
11449         * regrename.c (regrename_optimize): Fix dumping.
11450         (find_oldest_value_reg): Preserve REG_POINTER.
11451         (copy_hardreg_forward_1): Likewise.
11452
11453 2009-01-09  Diego Novillo  <dnovillo@google.com>
11454
11455         * gimple.h (struct gimple_statement_base) <uid>: Document
11456         the restrictions on its use.
11457         (gimple_uid): Tidy.
11458         (gimple_set_uid): Tidy.
11459
11460 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11461
11462         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11463         zero guard even if align_bytes != 0 and count is smaller than
11464         size_needed.
11465
11466 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
11467
11468         PR rtl-optimization/38495
11469         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
11470         (add_range_and_copies_from_move_list): Print all added ranges.
11471         Add ranges to memory optimized destination.
11472
11473 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11474
11475         PR target/38686
11476         PR target/38708
11477         * config/i386/i386.c (override_options): Reject
11478         -mstringop-strategy=rep_8byte with -m32.
11479         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11480         to 1.  Do count comparison against epilogue_size_needed at compile
11481         time even when count_exp was constant forced into register.  For
11482         size_needed don't jump to epilogue, instead just avoid aligning
11483         and invoke the body algorithm.  If need_zero_guard, add zero guard
11484         even if count is non-zero, but smaller than size_needed + number of
11485         bytes that could be stored for alignment.
11486         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11487         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
11488         but smaller than size_needed + number of bytes that could be stored
11489         for alignment.  Compare size_needed with epilogue_size_needed instead
11490         of desired_align - align, don't adjust size_needed, pass
11491         epilogue_size_needed to the epilogue expanders.
11492
11493         PR c/35742
11494         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
11495
11496 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11497
11498         * pa.c (last_address): Change to unsigned.
11499         (update_total_code_bytes): Change argument to unsigned.  Don't
11500         check if insn addresses are set.
11501         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11502         addresses are not set.
11503         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11504
11505 2009-01-09  Nick Clifton  <nickc@redhat.com>
11506
11507         * config/sh/symbian.c: Replace uses of DECL_INLINE with
11508         DECL_DECLARED_INLINE_P.
11509
11510 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11511
11512         PR middle-end/38347
11513         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11514         GET_MODE (op0) in operand_subword_force calls.
11515
11516         PR middle-end/38771
11517         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11518         fold_convert arg0 operands to TREE_TYPE (op0) first.
11519
11520 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
11521
11522         * params.def (ira-max-conflict-table-size): Decrease default value
11523         to 1000.
11524
11525 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
11526
11527         PR tree-optimization/37031
11528         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11529         on parameter_set.
11530         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11531         allocate it using gc instead of heap, use VEC_quick_push instead of
11532         VEC_safe_push.
11533         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11534         instead of heap, use VEC_quick_push instead of VEC_safe_push.
11535         * tree-data-ref.h (struct access_matrix): Change matrix to gc
11536         allocated vector from heap allocated.
11537         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11538         * tree-loop-linear.c (linear_transform_loops): Allocate nest
11539         vector only after perfect_loop_nest_depth call.
11540
11541 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
11542             Jan Sjodin  <jan.sjodin@amd.com>
11543
11544         PR tree-optimization/38559
11545         * graphite.c (debug_value, copy_constraint,
11546         swap_constraint_variables, scale_constraint_variable, ): New.
11547         (get_lower_bound, get_upper_bound): Removed.
11548         (graphite_trans_bb_strip_mine): Clean up this code that works
11549         only for constant number of iterations.  Fully copy upper and
11550         lower bound constraints, not only the constant part of them.
11551         * graphite.h (debug_value): Declared.
11552
11553 2009-01-08  Ira Rosen  <irar@il.ibm.com>
11554
11555         PR tree-optimization/37194
11556         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
11557         Don't add the cost of cost model guard in prologue to scalar
11558         outside cost in case of known number of iterations.
11559
11560 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11561             Alan Modra  <amodra@bigpond.net.au>
11562
11563         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11564         non-word-aligned REG+CONST addressing.
11565
11566 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11567
11568         PR target/38706
11569         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11570         free_after_compilation when outputting a thunk.
11571         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11572         Do not call free_after_compilation here.
11573
11574 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11575
11576         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
11577         (ix86_valid_target_attribute_inner_p): Ditto.
11578
11579 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
11580
11581         PR tree-optimization/38492
11582         PR tree-optimization/38498
11583         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11584         * tree-chrec.h (scev_is_linear_expression): Declared.
11585         * graphite.c (graphite_cannot_represent_loop_niter): New.
11586         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11587         (graphite_loop_normal_form): Use gcc_assert.
11588         (scan_tree_for_params): Use CASE_CONVERT.
11589         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11590         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11591         Use gcc_assert.  Discard scops that contain unhandled cases.
11592         (build_scop_conditions): Return a boolean status for unhandled cases.
11593         (strip_mine_profitable_p): Print the loop number, not its depth.
11594         (is_interchange_valid): Pass the depth of the loop nest, don't
11595         recompute it wrongly.
11596         (graphite_trans_bb_block): Same.
11597         (graphite_trans_bb_block): Print tentative of loop blocking.
11598         (graphite_trans_scop_block): Do not print that the loop has been
11599         blocked.
11600         (graphite_transform_loops): Do not handle scops that contain condition
11601         scalar phi nodes.
11602
11603 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11604
11605         AVX Programming Reference (December, 2008)
11606         * config/i386/avxintrin.h (_mm256_stream_si256): New.
11607         (_mm256_stream_pd): Likewise.
11608         (_mm256_stream_ps): Likewise.
11609
11610         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11611         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11612         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11613         (bdesc_special_args): Add __builtin_ia32_movntdq256,
11614         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11615         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11616         (ix86_expand_special_args_builtin): Likewise.
11617
11618         * config/i386/sse.md (AVXMODEDI): New.
11619         (avx_movnt<mode>): Likewise.
11620         (avx_movnt<mode>): Likewise.
11621         (<sse>_movnt<mode>): Remove AVX support.
11622         (sse2_movntv2di): Likewise.
11623
11624 2009-01-07  Richard Guenther  <rguenther@suse.de>
11625
11626         PR middle-end/38751
11627         * fold-const.c (extract_muldiv): Remove obsolete comment.
11628         (fold_plusminus_mult_expr): Undo MINUS_EXPR
11629         to PLUS_EXPR canonicalization for the canonicalization.
11630
11631 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
11632
11633         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11634         hosted cross-compilers generating less efficient code.
11635
11636 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11637
11638         * function.h (rtl_data): Add a dbr_scheduled_p field.
11639         * reorg.c (dbr_schedule): Set it.
11640         (gate_handle_delay_slots): Check it.
11641         * config/mips/mips.c (mips_base_delayed_branch): Delete.
11642         (mips_reorg): Check flag_delayed_branch instead of
11643         mips_base_delayed_branch.
11644         (mips_override_options): Don't set mips_base_delayed_branch
11645         or flag_delayed_branch.
11646
11647 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11648
11649         PR rtl-optimization/38426.
11650         * ira.c (ira): Set current_function_is_leaf earlier.
11651
11652 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
11653
11654         PR rtl-optimization/38722
11655         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11656         too early, only set a flag and modify after last possible
11657         undo_all point.
11658
11659 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
11660
11661         PR c/34252
11662         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11663         * real.c (decimal_single_format): Correct values of emin and emax.
11664         (decimal_double_format): Ditto.
11665         (decimal_quad_format): Ditto.
11666         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11667         computation of DECnn_MIN and DECnn_MAX for corrected values of
11668         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
11669         __DECnn_MIN__, and adjust its computation for the corrected value
11670         of emin.
11671
11672 2009-01-06  Jan Hubicka  <jh@suse.cz>
11673
11674         PR target/38744
11675         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
11676
11677 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11678
11679         * doc/contrib.texi (Contributors): Slightly adjust the end note.
11680         Add Robert Clark to the list of testers.
11681
11682 2009-01-06  Jan Hubicka  <jh@suse.cz>
11683             Kai Tietz  <kai.tietz@onevision.com>
11684
11685         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11686         * config/i386/i386.c (ix86_expand_call): Add clobbers.
11687
11688 2009-01-06  Jan Hubicka  <jh@suse.cz>
11689             Kai Tietz  <kai.tietz@onevision.com>
11690
11691         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11692         for w64 ABI.
11693         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
11694         (ix86_nsaved_regs): Count only general purpose regs.
11695         (ix86_nsaved_sseregs): New.
11696         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11697         to 16 for w64; compute padding and size of sse reg save area.
11698         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11699         general purpose regs.
11700         (ix86_emit_save_sse_regs_using_mov): New.
11701         (ix86_expand_prologue): Save SSE regs if needed.
11702         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11703         (ix86_emit_restore_sse_regs_using_mov): New.
11704         (ix86_expand_epilogue): Save SSE regs if needed.
11705
11706 2009-01-06  Jan Hubicka  <jh@suse.cz>
11707             Kai Tietz  <kai.tietz@onevision.com>
11708
11709         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11710         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11711         functions when accumulate outgoing args is off.
11712
11713 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11714
11715         PR bootstrap/38742
11716         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11717         before using pseudos_have_intersected_live_ranges_p.
11718
11719         * ira-int.h (ira_assert): Always define.
11720
11721 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11722
11723         AVX Programming Reference (December, 2008)
11724         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11725         (_mm256_permute2_pd): Likewise.
11726         (_mm_permute2_ps): Likewise.
11727         (_mm256_permute2_ps): Likewise.
11728         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11729         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11730
11731         * config/i386/i386.c (ix86_builtins): Remove
11732         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11733         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11734         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11735         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11736         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11737         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11738         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11739         __builtin_ia32_vpermil2ps256.
11740         (ix86_init_mmx_sse_builtins): Updated.
11741         (ix86_expand_args_builtin): Likewise.
11742
11743 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11744
11745         * pa.c (output_call): Relocate non-jump insns in the delay slot of
11746         long absolute calls when generating PA 2.0 code.
11747
11748 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
11749
11750         PR rtl-optimization/38583
11751         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11752
11753         * params.def (ira-max-conflict-table-size): New.
11754
11755         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
11756
11757         * ira.h (ira_conflicts_p): New external definition.
11758
11759         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11760         table.  Report this.  Return result of building.
11761         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
11762         building conflict table.
11763
11764         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
11765         (ira_color): Use ira_conflicts_p.
11766
11767         * global.c: Include ira.h.
11768         (pseudo_for_reload_consideration_p, build_insn_chain): Use
11769         ira_conflicts_p.
11770
11771         * Makefile.in (global.o): Add ira.h.
11772
11773         * ira-build.c (mark_all_loops_for_removal,
11774         propagate_some_info_from_allocno): New.
11775         (remove_unnecessary_allocnos): Call
11776         propagate_some_info_from_allocno.
11777         (remove_low_level_allocnos): New.
11778         (remove_unnecessary_regions): Add parameter.  Call
11779         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
11780         parameter to remove_unnecessary_regions.
11781         (ira_build): Remove all regions but root if the conflict table was
11782         not built.  Update conflict hard regs for allocnos crossing calls.
11783
11784         * ira.c (ira_conflicts_p): New global.
11785         (ira): Define and use ira_conflicts_p.
11786
11787         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11788         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
11789         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
11790
11791 2009-01-06  Ben Elliston  <bje@au.ibm.com>
11792
11793         * gengtype-lex.l (YY_NO_INPUT): Define.
11794
11795 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11796
11797         PR c/34911
11798         * c-common.c (handle_vector_size_attribute): Also reject
11799         BOOLEAN_TYPE types.
11800
11801 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
11802
11803         PR tree-optimization/38492
11804         * graphite.c (rename_map_elt, debug_rename_elt,
11805         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11806         rename_map_elt_info, eq_rename_map_elts,
11807         get_new_name_from_old_name, bb_in_sese_p): Moved around.
11808         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11809         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11810         (sese_build_livein_liveouts): New.
11811         (new_sese, free_sese): New.
11812         (new_scop): Call new_sese.
11813         (free_scop): Call free_sese.
11814         (rename_variables_from_edge, rename_phis_end_scop): Removed.
11815         (register_old_new_names): Renamed register_old_and_new_names.
11816         (register_scop_liveout_renames, add_loop_exit_phis,
11817         insert_loop_close_phis, struct igp,
11818         default_liveout_before_guard, add_guard_exit_phis,
11819         insert_guard_phis, copy_renames): New.
11820         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11821         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11822         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11823         (scop_adjust_phis_for_liveouts): New.
11824         (gloog): Call scop_adjust_phis_for_liveouts.
11825
11826         * graphite.h (struct sese): Documented.  Added fields liveout,
11827         num_ver and livein.
11828         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11829         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11830         (struct scop): Added field liveout_renames.
11831         (SCOP_LIVEOUT_RENAMES): New.
11832
11833 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11834
11835         PR tree-optimization/38510
11836         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11837         (translate_clast): Call recompute_all_dominators before
11838         graphite_verify.
11839         (gloog): Call recompute_all_dominators before graphite_verify.
11840
11841 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11842             Jan Sjodin  <jan.sjodin@amd.com>
11843
11844         PR tree-optimization/38500
11845         * graphite.c (create_sese_edges): Call fix_loop_structure after
11846         splitting blocks.
11847
11848 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
11849
11850         * config.gcc: Add m32r*-*-rtems*.
11851         * config/m32r/rtems.h: New file.
11852
11853 2009-01-05  Ben Elliston  <bje@au.ibm.com>
11854
11855         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11856         (.po.pox): Likewise.
11857         (po/gcc.pot): Likewise.
11858
11859 2009-01-04  David S. Miller  <davem@davemloft.net>
11860
11861         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11862         (STARTING_FRAME_OFFSET): Always set to zero.
11863
11864 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11865
11866         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11867         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11868         fixed-point types, and vectors of the same.
11869
11870 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11871
11872         * config/mips/sync.md (*mb_barrier): Rename to...
11873         (*memory_barrier): ...this.
11874
11875 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11876
11877         * doc/extend.texi (Function Attributes): Move @cindex after @item
11878         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
11879         and put in alphabetical order. Fix 'target' name and put in order.
11880         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11881         typos.
11882
11883 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
11884
11885         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11886         (memory_barrier): Expand as unspec instead of unspec_volatile.
11887         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11888         (*memory_barrier): Define as unspec instead of unspec_volatile.
11889         Use (match_dup 0) as input operand.
11890
11891         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11892         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11893         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
11894         scratch register.  Remove operand 1.
11895         (*stbar): Define as unspec instead of unspec_volatile.
11896         Use (match_dup 0) as input operand, remove (const_int 8).
11897         (*membar): Define as unspec instead of unspec_volatile.
11898         Use (match_dup 0) as input operand, remove input operand 2.
11899
11900         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11901         (memory_barrier): Expand as unspec instead of unspec_volatile.
11902         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11903         (*memory_barrier): Define as unspec instead of unspec_volatile.
11904         Use (match_dup 0) as input operand.
11905
11906         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11907         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11908         Set volatile flag on operand 0.
11909         (*memory_barrier): New insn pattern.
11910
11911         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11912         insn operands.
11913         (*memory_barrier): Use (match_dup 0) as input operand.
11914
11915         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11916         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11917         Set volatile flag on operand 0.
11918         (*mb_internal): New insn pattern.
11919
11920         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11921
11922 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11923
11924         PR middle-end/38586
11925         * function.c (struct temp_slot): Move to the section of the file
11926         that deals with temp slots.  Remove field 'address'.
11927         (temp_slot_address_table): New hash table of address -> temp slot.
11928         (struct temp_slot_address_entry): New struct, items for the table.
11929         (temp_slot_address_compute_hash, temp_slot_address_hash,
11930         temp_slot_address_eq, insert_temp_slot_address): Support functions
11931         for the new table.
11932         (find_temp_slot_from_address): Rewrite to use the new hash table.
11933         (remove_unused_temp_slot_addresses): Remove addresses of temp
11934         slots that have been made available.
11935         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11936         worker function for remove_unused_temp_slot_addresses.
11937         (assign_stack_temp_for_type): Don't clear the temp slot address list.
11938         Add the temp slot address to the address -> temp slot map.
11939         (update_temp_slot_address): Update via insert_temp_slot_address.
11940         (free_temp_slots): Call remove_unused_temp_slot_addresses.
11941         (pop_temp_slots): Likewise.
11942         (init_temp_slots): Allocate the address -> temp slot map, or empty
11943         the map if it is already allocated.
11944         (prepare_function_start): Initialize temp slot processing.
11945
11946 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11947
11948         PR middle-end/38584
11949         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11950         Calculate the size of all stack vars assuming no packing of stack
11951         vars will happen, replacing a quadratic algorithm with a linear one.
11952
11953 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11954
11955         PR target/38707
11956         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11957         can't be used.
11958
11959 2009-01-03  Diego Novillo  <dnovillo@google.com>
11960
11961         * doc/contrib.texi: Update contributions.
11962
11963 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11964
11965         PR c++/38705
11966         * builtins.c (fold_builtin_memory_op): Give up if either operand
11967         is volatile.  Set srctype or desttype to non-qualified version
11968         of the other type.
11969
11970         PR c/38700
11971         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11972         and FUNCTION_DECLs.
11973
11974 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
11975
11976         PR rtl-optimization/35805
11977         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11978         problem if fast dce is able to remove any instructions.
11979         * dce.c (dce_process_block): Fix dump message.
11980
11981 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
11982
11983         PR 33649
11984         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11985
11986 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
11987
11988         PR middle-end/38690
11989         * tree-flow.h (op_code_prio, op_prio): New prototypes.
11990         * tree-pretty-print.c (op_code_prio): New function.
11991         (op_prio): No longer static.  Use op_code_prio.
11992         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11993         Use op_prio and op_code_prio to determine if () should be
11994         printed around operand(s) or not.
11995
11996         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11997         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11998         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11999         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
12000         pp_character instead of pp_string for single letter printing.
12001
12002 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
12003
12004         * doc/extend.texi: Fix '#pragma GCC option' typo.
12005
12006 2009-01-02  Richard Guenther  <rguenther@suse.de>
12007
12008         * doc/install.texi (--enable-checking): Mention different
12009         default for stage1.
12010         (--enable-stage1-checking): Document.
12011
12012 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
12013
12014         PR middle-end/30142
12015         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
12016         case to be an error.
12017
12018 2009-01-02  Ben Elliston  <bje@au.ibm.com>
12019
12020         * config/fp-bit.h (pack_d): Constify argument.
12021         * config/fp-bit.c (makenan): Constify return type. Remove casts.
12022         (isnan): Constify argument.
12023         (isinf): Likewise.
12024         (iszero): Likewise.
12025         (pack_d): Likewise.
12026         (_fpadd_parts): Constify return type.
12027         (_fpmul_parts): Likewise.
12028         (_fpdiv_parts): Likewise.
12029
12030 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
12031
12032         PR c/36489
12033         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
12034         warn about overwriting initializer with side-effects or
12035         -Woverride-init if !IMPLICIT.
12036         (output_init_element): Likewise.  Pass IMPLICIT down to
12037         add_pending_init.
12038         (process_init_element): Add IMPLICIT argument.  Pass it down
12039         to output_init_element.
12040         (push_init_element, pop_init_level, set_designator): Adjust
12041         process_init_element callers.
12042         (set_nonincremental_init, set_nonincremental_init_from_string):
12043         Adjust add_pending_init callers.
12044         (output_pending_init_elements): Adjust output_init_element callers.
12045         * c-tree.h (process_init_element): Adjust prototype.
12046         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
12047         process_init_element callers.
12048
12049 \f
12050 Copyright (C) 2009 Free Software Foundation, Inc.
12051
12052 Copying and distribution of this file, with or without modification,
12053 are permitted in any medium without royalty provided the copyright
12054 notice and this notice are preserved.