OSDN Git Service

* doc/invoke.texi (max-early-inliner-iterations): New flag.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-15  Jan Hubicka  <jh@suse.cz>
2
3         * doc/invoke.texi (max-early-inliner-iterations): New flag.
4         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
5         (try_inline): Fix return value.
6         (cgraph_decide_inlining_incrementally): Honor new value.
7         (cgraph_early_inlining): Handle indirect inlining.
8         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
9
10 2009-05-15  Jan Hubicka  <jh@suse.cz>
11
12         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
13         * cgraphunit.c (cgraph_finalize_function): Set it.
14         (cgraph_expand_function): Use it.
15
16 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
17
18         * real.c (encode_ieee_half): Define.
19         (decode_ieee_half): Define.
20         (ieee_half_format): Define.
21         (arm_half_format): Define.
22         * real.h (ieee_half_format): Declare.
23         (arm_half_format): Declare.
24
25 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
26
27         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
28         swapped, and reversed optabs exist before trying to use them.
29
30 2009-05-15  Paul Brook  <paul@codesourcery.com>
31             Sandra Loosemore  <sandra@codesourcery.com>
32
33         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
34         loads.  Allow PRE_DEC.
35         (output_move_neon): Handle PRE_DEC.
36         (arm_print_operand): Add 'A' for neon structure loads.
37         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
38         * config/arm/neon.md (neon_mov): Update comment.
39         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
40         calls.
41         (Um): New constraint.
42
43 2009-05-15  Jan Hubicka  <jh@suse.cz>
44
45         Revert the following patch until testsuite fallout is fixed:
46         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
47         * cgraph.h (struct inline_summary): New filed self_wize,
48         size_inlining_benefit, self_time and time_inlining_benefit.
49         (struct cgraph_global_info): Replace insns by time ans size fields.
50         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
51         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
52         (ipcp_update_callgraph): Do not touch function bodies.
53         * ipa-inline.c: Include except.h
54         MAX_TIME: New constant.
55         (overall_insns): Remove
56         (overall_size, max_benefit): New static variables.
57         (cgraph_estimate_time_after_inlining): New function.
58         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
59         (cgraph_clone_inlined_nodes): Update size.
60         (cgraph_mark_inline_edge): Update size.
61         (cgraph_estimate_growth): Use size info.
62         (cgraph_check_inline_limits): Check size.
63         (cgraph_default_inline_p): Likewise.
64         (cgraph_edge_badness): Compute badness based on benefit and size cost.
65         (cgraph_decide_recursive_inlining): Check size.
66         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
67         (cgraph_decide_inlining): Likewise.
68         (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
69         (likely_eliminated_by_inlining_p): New predicate.
70         (estimate_function_body_sizes): New function.
71         (compute_inline_parameters): Use it.
72         * except.c (must_not_throw_labels): New function.
73         * except.h (must_not_throw_labels): Declare.
74         * tree-inline.c (init_inline_once): Kill inlining_weigths
75         * tree-ssa-structalias.c: Avoid uninitialized warning.
76         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
77         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
78         (PARAM_INLINE_CALL_COST): Remove.
79         (PARAM_EARLY_INLINING_INSNS): New.
80
81 2009-05-15  Richard Guenther  <rguenther@suse.de>
82
83         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
84         not TODO_update_ssa.
85
86 2009-05-15  Richard Guenther  <rguenther@suse.de>
87
88         PR tree-optimization/39999
89         * gimple.h (gimple_expr_type): Use the expression type looking
90         through useless conversions.
91         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
92         (vn_nary_op_insert_stmt): Likewise.
93         (simplify_binary_expression): Likewise.
94
95 2009-05-15  Richard Guenther  <rguenther@suse.de>
96
97         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
98         New options, enabled by default.
99         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
100         Document.
101         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
102         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
103         * tree-ssa-structalias.c (gate_tree_pta): New function.
104         (pass_build_alias): Use it.
105
106 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
107
108         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
109         recurse on an invariant address if a conversion from a pointer
110         type to a wider integer type is involved.
111
112 2009-05-15  Jan Hubicka  <jh@suse.cz>
113
114         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
115         * cgraph.h (struct inline_summary): New filed self_wize,
116         size_inlining_benefit, self_time and time_inlining_benefit.
117         (struct cgraph_global_info): Replace insns by time ans size fields.
118         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
119         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
120         (ipcp_update_callgraph): Do not touch function bodies.
121         * ipa-inline.c: Include except.h
122         MAX_TIME: New constant.
123         (overall_insns): Remove
124         (overall_size, max_benefit): New static variables.
125         (cgraph_estimate_time_after_inlining): New function.
126         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
127         (cgraph_clone_inlined_nodes): Update size.
128         (cgraph_mark_inline_edge): Update size.
129         (cgraph_estimate_growth): Use size info.
130         (cgraph_check_inline_limits): Check size.
131         (cgraph_default_inline_p): Likewise.
132         (cgraph_edge_badness): Compute badness based on benefit and size cost.
133         (cgraph_decide_recursive_inlining): Check size.
134         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
135         (cgraph_decide_inlining): Likewise.
136         (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
137         (likely_eliminated_by_inlining_p): New predicate.
138         (estimate_function_body_sizes): New function.
139         (compute_inline_parameters): Use it.
140         * except.c (must_not_throw_labels): New function.
141         * except.h (must_not_throw_labels): Declare.
142         * tree-inline.c (init_inline_once): Kill inlining_weigths
143         * tree-ssa-structalias.c: Avoid uninitialized warning.
144         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
145         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
146         (PARAM_INLINE_CALL_COST): Remove.
147         (PARAM_EARLY_INLINING_INSNS): New.
148         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
149         (inline-call-cost): Remove.
150         (early-inlining-insns): New.
151
152 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
153
154         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
155         for bounds.
156         (print_int_cst_bounds_in_octal_p): Likewise.
157         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
158         with subtypes.
159         * dwarf2out.c (base_type_die): Likewise.
160         (is_subrange_type): Delete.
161         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
162         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
163         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
164         the destination type is boolean.
165         (build_range_check): Do not special-case subtypes.
166         (fold_sign_changed_comparison): Likewise.
167         (fold_unary): Likewise.
168         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
169         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
170         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
171         * tree.c (subrange_type_for_debug_p): New predicate based on the former
172         is_subrange_type.
173         * tree.h (subrange_type_for_debug_p): Declare.
174         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
175         (convert_affine_scev): Remove call to above function.
176         (chrec_convert_aggressive): Likewise.
177         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
178         false for conversions involving subtypes.
179         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
180         (vrp_val_min): Likewise.
181         (needs_overflow_infinity): Likewise.
182         (extract_range_from_unary_expr): Likewise.
183
184 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
185
186         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
187         * config/frv/frv.c: Likewise.
188         * config/s390/s390.c: Likewise.
189         * config/sparc/sparc.h: Likewise.
190         * config/i386/i386.h: Likewise.
191         * config/i386/i386.c: Likewise.
192         * config/crx/crx.c: Likewise.
193         * config/m68hc11/m68hc11.h: Likewise.
194         * config/iq2000/iq2000.c: Likewise.
195         * config/mn10300/mn10300.h: Likewise.
196         * config/mn10300/mn10300.c: Likewise.
197         * config/m68k/m68k.c: Likewise.
198         * config/rs6000/rs6000.c: Likewise.
199         * config/rs6000/xcoff.h: Likewise.
200         * config/rs6000/linux64.h: Likewise.
201         * config/rs6000/sysv4.h: Likewise.
202         * config/score/score3.c: Likewise.
203         * config/score/score7.c: Likewise.
204         * config/score/score.c: Likewise.
205         * config/arm/arm.md: Likewise.
206         * config/mips/mips.c: Likewise.
207         * config/mips/mips.md: Likewise.
208         * config/bfin/bfin.h: Likewise.
209         * config/pa/pa.c: Likewise.
210         * config/pa/constraints.md: Likewise.
211
212         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
213         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
214         * config/pdp11/pdp11.h: Use memory_address_p instead.
215
216 2009-05-14  Ian Lance Taylor  <iant@google.com>
217
218         * passes.c (finish_optimization_passes): Change i to int.
219         * plugin.c (plugins_active_p): Change event to int.
220         (dump_active_plugins): Likewise.
221         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
222         Add cast.
223         * tree.c (tree_range_check_failed): Change c to unsigned int.
224         (omp_clause_range_check_failed): Likewise.
225         (build_common_builtin_nodes): Change mode to int.  Add cast.
226         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
227         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
228
229         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
230         ++ or -- with a variable of enum type.
231
232 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
233
234         PR driver/40144
235         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
236
237 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
238
239         * store-motion.c: Do not include params.h
240         * Makefile.in: Fix dependencies for various files.
241
242 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
243
244         * auto-inc-dec.c: Fix pass description, remove apparent
245         accidental duplication.
246
247 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
248
249         PR middle-end/40147
250         * ipa-utils.h (memory_identifier_string): Moved to ...
251         * tree.h (memory_identifier_string): Here.  Add GTY(()).
252
253 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
254
255         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
256         in the former documentation of...
257         (GO_IF_LEGITIMATE_ADDRESS): ... this.
258         * ira-conflicts.c (get_dup_num): Use address_operand.
259         * targhooks.c (default_legitimate_address_p): New.
260         * targhooks.h (default_legitimate_address_p): New.
261         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
262         Call hook.
263         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
264         * target.h (struct target): Add legitimate_address_p.
265         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
266         (TARGET_INITIALIZER): Include it.
267
268         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
269         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
270         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
271         (TARGET_LEGITIMATE_ADDRESS_P): New.
272
273         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
274         (REG_OK_STRICT_P): Delete.
275         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
276         (frv_legitimate_address_p_1): ... this.
277         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
278         (frv_legitimate_address_p_1): ... the renamed old
279         frv_legitimate_address_p.
280         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
281         (TARGET_LEGITIMATE_ADDRESS_P): New.
282
283         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
284         * config/s390/s390-protos.h (legitimate_address_p): Remove.
285         * config/s390/s390.c (legitimate_address_p): Rename to...
286         (s390_legitimate_address_p): ... this, make static.
287         (legitimize_address): Adjust call.
288         (TARGET_LEGITIMATE_ADDRESS_P): New.
289         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
290
291         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
292         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
293         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
294         (TARGET_LEGITIMATE_ADDRESS_P): New.
295
296         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
297         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
298         * config/spu/spu.c (spu_legitimate_address): Rename to...
299         (spu_legitimate_address_p): ... this, make static.
300         (TARGET_LEGITIMATE_ADDRESS_P): New.
301
302         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
303         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
304         * config/sparc/sparc.c (legitimate_address_p): Rename to...
305         (sparc_legitimate_address_p): ... this, make static and return bool.
306         (legitimize_address): Adjust call.
307         (TARGET_LEGITIMATE_ADDRESS_P): New.
308
309         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
310         * config/i386/i386-protos.h (legitimate_address_p): Remove.
311         * config/i386/i386.c (legitimate_address_p): Rename to...
312         (ix86_legitimate_address_p): ... this, make static.
313         (constant_address_p): Move after it, adjust call.
314         (TARGET_LEGITIMATE_ADDRESS_P): New.
315
316         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
317         * config/avr/avr-protos.h (legitimate_address_p): Remove.
318         * config/avr/avr.c (legitimate_address_p): Rename to...
319         (avr_legitimate_address_p): ... this, make static.
320         (legitimize_address): Adjust call.
321         (TARGET_LEGITIMATE_ADDRESS_P): New.
322
323         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
324         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
325         * config/crx/crx.c (crx_legitimate_address_p): Make static.
326         (TARGET_LEGITIMATE_ADDRESS_P): New.
327
328         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
329         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
330         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
331         (TARGET_LEGITIMATE_ADDRESS_P): New.
332
333         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
334         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
335         Remove.
336         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
337         Make static.
338         (TARGET_LEGITIMATE_ADDRESS_P): New.
339
340         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
341         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
342         Remove.
343         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
344         Rename to...
345         (m68hc11_legitimate_address_p): ... this, make static.
346         (go_if_legitimate_address_internal): Rename to...
347         (m68hc11_legitimate_address_p_1): ... this.
348         (legitimize_address): Adjust call.
349         (TARGET_LEGITIMATE_ADDRESS_P): New.
350
351         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
352         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
353         Remove.
354         * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
355         Make static.
356         (TARGET_LEGITIMATE_ADDRESS_P): New.
357
358         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
359         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
360         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
361         (mn10300_legitimate_address_p): ... this, make static.
362         (TARGET_LEGITIMATE_ADDRESS_P): New.
363
364         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
365         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
366         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
367         (TARGET_LEGITIMATE_ADDRESS_P): New.
368
369         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
370         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
371         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
372         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
373         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
374         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
375         (rs6000_legitimate_address_p): ... this, make static.
376         (TARGET_LEGITIMATE_ADDRESS_P): New.
377         (REG_MODE_OK_FOR_BASE_P): Delete.
378         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
379
380         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
381         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
382         Delete.
383         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
384         static, adjust types.
385         (TARGET_LEGITIMATE_ADDRESS_P): New.
386
387         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
388         * config/score/score.c (score_address_p): Rename to...
389         (score_legitimate_address_p): ... this.
390         (TARGET_LEGITIMATE_ADDRESS_P): New.
391         * config/score/score3.c (score3_address_p): Rename to...
392         (score3_legitimate_address_p): ... this.
393         * config/score/score7.c (score7_address_p): Rename to...
394         (score7_legitimate_address_p): ... this.
395
396         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
397         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
398         GO_IF_LEGITIMATE_ADDRESS): Delete.
399         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
400         thumb2_legitimate_address_p): Delete.
401         (arm_legitimate_address_p): Rename to...
402         (arm_legitimate_address_outer_p): ... this.
403         * config/arm/constraints.md ("Uq"): Adjust call.
404         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
405         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
406         (arm_legitimate_address_outer_p): ... this.
407         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
408         (TARGET_LEGITIMATE_ADDRESS_P): New.
409
410         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
411         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
412         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
413         (TARGET_LEGITIMATE_ADDRESS_P): New.
414
415         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
416         * config/vax/vax-protos.h (legitimate_address_p): Remove.
417         * config/vax/vax.c (legitimate_address_p): Rename to...
418         (vax_legitimate_address_p): ... this, make static.
419         (TARGET_LEGITIMATE_ADDRESS_P): New.
420
421         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
422         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
423         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
424         (TARGET_LEGITIMATE_ADDRESS_P): New.
425
426         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
427         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
428         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
429         (mmix_legitimate_address_p): ... this, make static.
430         (TARGET_LEGITIMATE_ADDRESS_P): New.
431
432         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
433         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
434         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
435         (TARGET_LEGITIMATE_ADDRESS_P): New.
436
437 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
438
439         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
440         of MODE_COMPLEX_INT.
441
442 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
443
444         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
445         LCT_NORMAL in function call.
446         * mips-tdump.c (print_file_desc): Add cast to enum type.
447         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
448         (mark_stabs): Add casts to enum types.
449         (parse_stabs_common): Add casts to enum types.
450
451 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
452
453         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
454         Check for invalid values of LETTER.
455
456 2009-05-13  Taras Glek  <tglek@mozilla.com>
457
458         * attribs.c (register_attribute): moved out attribute registration into
459         register_attribute.
460         * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
461         * gcc-plugin.h: Added forward decl for register_attribute.
462         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
463         * plugin.c (register_callback, invoke_plugin_callbacks): Added
464         PLUGIN_ATTRIBUTES boilerplate.
465
466 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
467
468         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
469         values even in sentinel and empty entries.
470         (ms_printf_flag_specs):  Likewise.
471         (ms_scanf_flag_specs):  Likewise.
472         (ms_strftime_flag_specs):  Likewise.
473         (ms_print_char_table):  Likewise.
474         (ms_scan_char_table):  Likewise.
475         (ms_time_char_table):  Likewise.
476
477 2009-05-13  Doug Kwan  <dougkwan@google.com>
478
479         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
480
481 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
482
483         * config/mips/mips.md (store): Add attributes for QI and HI.
484         Update comment.
485         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
486         (truncdi<mode>2): ... this new pattern.
487
488 2009-05-13  Brad Hards  <bradh@kde.org>
489
490         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
491
492 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
493             Ben Elliston <bje@au.ibm.com>
494
495         PR middle-end/40035
496         * dse.c (check_mem_read_rtx): Guard against width == -1.
497
498 2009-05-13  Michael Matz  <matz@suse.de>
499
500         PR middle-end/39976
501         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
502         (trivially_conflicts_p): New function.
503         (insert_backedge_copies): Use it.
504
505 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
506
507         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
508         (handle_stdc_pragma): Use new enum constant names.
509         (handle_pragma_float_const_decimal64): Ditto.
510
511 2009-05-13  Ian Lance Taylor  <iant@google.com>
512
513         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
514         tree.def.
515
516 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
517
518         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
519         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
520         multilibs.
521         * config/m68k/m68k.h (FL_UCLINUX): Define.
522
523 2009-05-13  Jan Hubicka  <jh@suse.cz>
524
525         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
526
527 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
528
529         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
530         unless -fschedule-insns is specified.
531
532 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
533
534         PR target/39561
535         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
536         TARGET_EXPAND_CBRANCHDI4.
537         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
538         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
539         (cmpeqdi): Fix comment.
540
541 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
542
543         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
544         (sh_legitimate_address_p): Likewise.
545         * config/sh/sh.c (sh_legitimate_index_p): New.
546         (sh_legitimate_address_p): Likewise.
547         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
548         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
549         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
550         (MAYBE_BASE_REGISTER_RTX_P): New macro.
551         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
552         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
553         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
554         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
555         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
556
557 2009-05-12  Jan Hubicka  <jh@suse.cz>
558
559         * tree-inline.c (estimate_operator_cost): Add operands;
560         when division happens by constant, it is cheap.
561         (estimate_num_insns): Loads and stores are not having cost of 0;
562         EH magic stuff is cheap; when computing runtime cost of switch,
563         use log2 base of amount of its cases; builtin_expect has cost of 0;
564         compute cost for moving return value of call.
565         (init_inline_once): Initialize time_based flags.
566         * tree-inline.h (eni_weights_d): Add time_based flag.
567
568 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
569
570         * df-core.c: Update head documentation.
571
572 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
573
574         PR bootstrap/40118
575         * rs6000.c (rs6000_generate_compare): Use op1b instead of
576         shadowing exisiting variable op1.
577
578 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
579
580         PR target/37179
581         * config/i386/driver-i386.c (processor_signatures): New enum.
582         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
583         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
584         processor signature to detect geode processor.
585
586 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
587
588         Revert:
589
590         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
591
592         * optabs.c (prepare_cmp_insn): Temporarily disable test that
593         causes spurious differences between trunk and cond-optab branch.
594
595 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
596
597         * dojump.c (compare_from_rtx): Delete.
598         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
599         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
600         if the comparison does not satisfy the predicate; test predicates for
601         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
602         further if one existing pattern fails.
603         * expr.h (compare_from_rtx): Delete.
604         (prepare_operand): Declare it.
605         * optabs.c: Change "lib call" to "libcall" throughout.
606         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
607         HAVE_conditional_trap, emit_cmp_insn): Delete.
608         (can_compare_p): Delete cmp_optab case.
609         (prepare_float_lib_cmp): Return an rtx and a machine mode.
610         Accept other parameters by value.
611         (prepare_operand): Make non-static.
612         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
613         other parameters by value.  Try to widen operands here based on
614         an optab_methods argument and looking at cbranch_optab.
615         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
616         loop.  Use cbranch_optab directly.
617         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
618         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
619         assertion.
620         (emit_conditional_move, emit_conditional_add): Inline what's needed
621         of compare_from_rtx, using new prepare_cmp_insn for the rest.
622         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
623         with COMPARE.  Move cmov_optab and cstore_optab above
624         with cbranch_optab, move cmp_optab down with ucmp_optab,
625         remove tst_otpab.  Do not initialize trap_rtx.
626         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
627         for trap code.  Do not check HAVE_conditional_trap.  Use
628         prepare_cmp_insn.  Accept no predicate for operand 3.
629         * optabs.h (OTI_cmp): Mark as used only for libcalls.
630         (OTI_ctrap, ctrap_optab): New.
631         (tst_optab): Delete.
632         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
633         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
634         with lookup of ctrap_optab.
635         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
636         setcc_gen_code): Delete.
637         (ctrap_optab): New.
638
639         * combine.c (combine_simplify_rtx, simplify_set): Do not
640         special case comparing against zero for cc0 machines.
641         * simplify-rtx.c (simplify_binary_operation_1): Never remove
642         COMPARE on cc0 machines.
643         (simplify_relational_operation): Return a new expression when
644         a COMPARE could be removed.
645         * final.c (final_scan_insn): Compare cc_status values
646         against LHS of a (compare FOO (const_int 0)) cc0 source.
647         Also check if cc_status.value is the full compare.
648
649         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
650         (cstoreMM4): Document.
651         (conditional_trap): Document ctrapMM4 instead.
652         (sync_compare_and_swapMM): Refer to cbranchcc4.
653         (Dependent Patterns): Eliminate obsolete information referring to
654         the old jump optimization phase.
655         (Canonicalization): Include cbranchcc4 case, omit canonicalization
656         of compares with 0 on cc0 machines.
657         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
658         avoiding references to cc0.  Remove text about storing operands
659         in cmpMM.
660         * doc/tm.texi (Condition Codes): Include blurb on different
661         condition code representations, separate into subsections for
662         CC0, MODE_CC and conditional execution.
663
664         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
665         alpha_emit_setcc): Accept operands and a machine mode.
666         * config/alpha/alpha.c (alpha_emit_conditional_branch):
667         Get code/op0/op1 from operands, use machine mode argument
668         instead of alpha_compare.fp_p.  Emit the branch here.
669         (alpha_emit_setcc): Likewise, and return boolean.
670         (alpha_emit_conditional_move): Likewise.  Assert that
671         cmp_op_mode == cmp_mode, and simplify accordingly.
672         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
673         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
674         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
675         Delete.
676         (stack probe test): Use cbranchdi4.
677         * config/alpha/predicates.md (alpha_cbranch_operator): New.
678
679         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
680         * config/arc/arc.h (movsicc, movsfcc): Use it.
681         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
682         (cbranchsi4, cstoresi4): New.
683         (cmpsi, bCC and sCC expanders): Remove. 
684
685         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
686         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
687         * config/arm/predicates.md (arm_comparison_operator): Only include
688         floating-point operators if there is a hardware floating-point unit.
689         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
690         deferring to cbranch_cc and cstore_cc respectively.
691         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
692         cbranch_cc, cstore_cc): New.
693         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
694         arm_compare_op1.
695         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
696
697         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
698         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
699         as an argument.
700         (adjust_insn_length): Adjust calls.
701         (avr_reorg): Handle (compare (foo) (const_int 0)).
702         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
703         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
704         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
705         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
706         (bCC): Remove.
707         (cbranchqi4, cbranchhi4, cbranchsi4): New.
708         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
709
710         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
711         (cbranchsi4, cstorebi4, cstoresi4): New.
712         (movbisi): This insn is duplicate, split it to zero_extend.
713         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
714         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
715         (bfin_optimize_loop): Use cbranch expander.
716         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
717         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
718         (bfin_bimode_comparison_operator): ... this.
719         (bfin_direct_comparison_operator): New.
720  
721         * config/cris/cris.c (cris_normal_notice_update_cc): Look
722         inside (compare FOO (const_int 0)).
723         (cris_rtx_costs): Handle ZERO_EXTRACT.
724         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
725         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
726         (*tstdi_v32): Delete.
727         (*cmpdi_non_v32): Add M alternative for operand 1.
728         (cmpsi, cmp<mode>): Make private.
729         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
730         with COMPARE.
731         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
732
733         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
734         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
735         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
736         (cc_reg_operand): New.
737         (any_cond): Delete.
738         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
739         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
740         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
741         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
742         crx_expand_scond): Delete.
743
744         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
745         (cbranchsi4): New.
746         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
747         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
748
749         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
750         cstoresi4, cstoresf4, cstoredf4): New.
751         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
752         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
753         Receive the entire operands array.
754         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
755         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
756         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
757         Get test/op0/op1 from the operands array.
758         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
759
760         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
761         (h8300_expand_store): New.
762         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
763         (const_int 0)).
764         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
765         (h8300_expand_store): New.
766         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
767         or do not try to produce (set (cc0) REG).
768         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
769         change a compare into a move to a scratch register.  Disable some
770         peepholes when comparing with zero.
771         (tstsi, tsthi, tstsi, cmpqi): Make private.
772         (cmphi): Delete.
773         (bCC, sCC): Delete.
774         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
775         cstoresi4): New.
776
777         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
778         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
779         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
780         (ix86_emit_i387_log1p): Use cbranchxf2.
781         (ix86_expand_setcc): Return void.
782         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
783         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
784         cmp<MODEF>, cmpcc): Remove.
785         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
786         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
787         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
788         (sCC and bCC expanders): Remove.
789         (stack_protect_test): Use cbranchcc4.
790
791         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
792         Delete.
793         (ia64_expand_compare): Accept three rtx by reference and return void.
794         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
795         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
796         from *expr.  Update *expr with the BImode comparison to do.
797         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
798         cmptf, bCC, sCC, conditional_trap): Delete.
799         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
800         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
801         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
802         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
803         * config/ia64/predicates.md (ia64_cbranch_operator): New.
804
805         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
806         type of last argument.
807         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
808         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
809         use machine mode argument instead of branch_type.  Remove dead
810         code for floating-point comparisons.
811         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
812         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
813         Remove.
814         (cbranchsi4, cstoresi4): New.
815         * config/iq2000/predicates.md (reg_or_const_operand): New.
816
817         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
818         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
819         (b<code>_op): Rewrite to...
820         (bcc_op): ... this, using match_operator.
821         (s<code>_op): Rewrite to...
822         (scc_op): ... this, using match_operator.
823         (s<code>_24_op): Rewrite to...
824         (scc_op_24): ... this, using match_operator.
825         (s<code>_<mode>): Rewrite to...
826         (cstore<mode>4): ... this, using match_operator.
827         (s<code>_<mode>_24): Rewrite to...
828         (cstore<mode>4_24): ... this, using match_operator.
829         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
830         m32c_unpend_compare, m32c_expand_scc): Delete.
831         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
832         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
833         (m32c_expand_movcc): Change NE to EQ if necessary.
834         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
835
836         * config/m32r/m32r-protos.h (gen_cond_store): New.
837         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
838         (gen_cond_store): New, from sCC patterns.
839         (m32r_expand_block_move): Use cbranchsi4.
840         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
841         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
842         (cbranchsi4, cstoresi4): New.
843         
844         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
845         Delete.
846         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
847         (m68hc11_notice_update_cc): Look into a compare with 0.
848         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
849         Delete.
850         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
851         cmphi, cmpqi, bCC): Delete.
852         (cbranchsi4, cbranchhi4, cbranchqi4): New.
853         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
854         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
855         sets with COMPARE.
856
857         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
858         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
859         * config/m68k/constraints.md (H): New.
860         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
861         the define_insn below.
862         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
863         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
864         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
865         patterns): Wrap RHS with COMPARE.
866         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
867         (*cmpdi_internal): Name this pattern.
868         (cmpdi): Change to define_insn.
869         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
870         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
871         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
872         predicate.
873         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
874         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
875         (conditional_trap): Change to...
876         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
877         (*conditional_trap): Use the ordered_comparison_operator and
878         const1_operand predicates.
879         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
880         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
881         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
882         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
883
884         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
885         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
886         (mcore_gen_compare): New. 
887         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
888         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
889         (mcore_gen_compare): ... this.
890         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
891         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
892         (stack probe pattern): Use cbranchsi4.
893
894         * config/mips/predicates.md (mips_cstore_operator): New.
895         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
896         * config/mips/mips.md (any_cond): Delete.
897         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
898         always succeed.
899         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
900         fixuns_truncsfdi2): Use cbranch patterns.
901         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
902         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
903         Adjust call to mips_expand_conditional_branch.
904         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
905         cstore<GPR:mode>4.
906         * config/mips/mips-protos.h (mips_expand_conditional_branch,
907         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
908         * config/mips/mips.c (cmp_operands): Delete.
909         (mips_emit_compare): Get comparison operands from *op0/*op1.
910         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
911         that it succeeds.  Use op0/op1 instead of cmp_operands.
912         (mips_expand_conditional_branch, mips_expand_conditional_move,
913         mips_expand_conditional_trap): Likewise.
914         (mips_block_move_loop): Use cbranch patterns. 
915         * config/mips/mips.h (cmp_operands): Delete.
916
917         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
918         (mmix_gen_compare_reg): Just return a register in the right CC mode.
919         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
920         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
921         (*cmpcc_folded): Rename to...
922         (*cmpdi_folded): this.
923         (*cmpcc): Rename to...
924         (*cmps): ... this.
925         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
926         (bCC): Remove.
927         (cbranchdi4): New.
928         (cbranchdf4): New.  Handle invalid comparisons here.
929         * config/mmix/predicates.md (float_comparison_operator): New.
930
931         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
932         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
933         * config/mn10300/mn10300.md (tst): Delete.
934         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
935         Name these patterns and wrap RHS in a compare.
936         (*cmpsi): Make this pattern private.  Include tst.
937         (*cmpsf): Make this pattern private.
938         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
939         (compare with zero peepholes): Likewise.
940         (bCC): Remove.
941         (cbranchsi4, cbranchsf4): New.
942         (casesi): Use cbranchsi4.
943
944         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
945         hppa_branch_type): Delete.
946         (return_addr_rtx): Use cbranchsi4.
947         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
948         Emit CCFPmode comparison here.
949         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
950         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
951         hppa_branch_type): Delete.
952         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
953         (movsicc, movdicc): Remove references to hppa_compare_op0,
954         hppa_compare_op1 and compare_from_rtx.
955         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
956         (casesi): Use cbranchsi4.
957
958         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
959         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
960         * config/pdp11/pdp11.md (register_or_const0_operand): New.
961         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
962         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
963         (bCC): Delete.
964         (cbranchdf4, cbranchhi4, cbranchqi4): New.
965         (*branch, *branch_inverted): New.
966
967         * config/picochip/picochip.md (cbranchhi4): Use
968         ordered_comparison_operator.
969         (cmphi, bCC): Remove.
970
971         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
972         (trap_comparison_operator): Delete.
973         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
974         rs6000_emit_cbranch): Accept mode and operands.
975         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
976         rs6000_compare_fp_p): Delete.   
977         (rs6000_generate_compare): Accept mode and comparison.  Extract code
978         and op0/op1 from there.  Replace references to rs6000_compare_op0
979         and rs6000_compare_op1.
980         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
981         extract result from passed operands.
982         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
983         extract loc from passed operands.
984         (rs6000_emit_cmove): Likewise.
985         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
986         rs6000_compare_fp_p): Delete.
987         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
988         (cbranch<GPR>4, cbranch<FP>4): New.
989         (cstore<mode>4): New.  Consolidate here all choices about when to use
990         portable or specialized sCC sequences.
991         (stack_protect_test): Use cbranchsi4.
992         (conditional_trap): Replace with ctrap<GPR>4.
993         (conditional trap insn): Replace trap_comparison_operator with
994         ordered_comparison_operator. 
995
996         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
997         (s390_emit_prologue): Use ctrap.
998         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
999         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
1000         New predicates replacing...
1001         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
1002         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
1003         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
1004         (add<mode>cc): Do not use s390_compare_op0/op1.
1005         (s<code>): Change to...
1006         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
1007         (seq): Change to...
1008         (cstorecc4): ... this.  Handle EQ or NE equally.
1009         (*sne): Un-privatize for use in cstorecc4.
1010         (b<code>): Change to...
1011         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
1012         (conditional_trap): Replace with...
1013         (ctrap<GPR>4, ctrap<FP>4): ... these.
1014         (stack_protect): Use cbranchcc4.
1015
1016         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
1017         * config/score/score-protos.h (score_gen_cmp): Delete.
1018         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
1019         (score_block_move-loop): Use cbranchsi4.
1020         * config/score/score.md (cbranchsi4): New.
1021         (cmpsi, bCC): Delete.
1022         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
1023         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1024         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
1025         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1026         * config/score/score3.h (score3_gen_cmp): Delete.
1027         * config/score/score7.h (score7_gen_cmp): Delete.
1028
1029         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
1030         (sh_emit_scc_to_t): ... this.  Return void.
1031         (from_compare): Rename to...
1032         (sh_emit_compare_and_branch): ... this.
1033         (sh_emit_compare_and_set): New.
1034         (sh_expand_t_scc): Accept operands.
1035         * config/sh/predicates.md (sh_float_comparison_operator): New.
1036         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
1037         (prepare_scc_operands): Rename to...
1038         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
1039         arguments.
1040         (sh_emit_cheap_store_flag): New.
1041         (sh_emit_set_t_insn): New.
1042         (from_compare): Rename to...
1043         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
1044         handling of TARGET_SH2E floating point to avoid recursive call.
1045         Generate branch here.
1046         (sh_emit_compare_and_set): New.
1047         (sh_expand_t_scc): Get op0/op1 from arguments.
1048         (sh_emit_cheap_store_flag): New.
1049         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
1050         cases.
1051         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
1052         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
1053         (movsicc, movdicc): Do nothing when it recreated operands from
1054         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
1055         prepare_scc_operands (now sh_emit_scc_to_t).
1056         (udivdi3): Use cstoresi4.
1057         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
1058         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
1059         (cbranchint4_media, cbranchfp4_media): New.
1060         (casesi): Use cbranchdi4.
1061         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
1062         Delete.
1063         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
1064         (movnegt): Remove second operand.
1065         (cbranchsf4, cbranchdf4): New.
1066         (stack_protect): Use cbranchdi4/cbranchsi4.
1067
1068         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
1069         (gen_compare_reg): Accept comparison, extract part of it to...
1070         (gen_compare_reg_1): ... this. 
1071         (gen_compare_operator): Delete.
1072         (gen_v9_scc): Accept separate destination, comparison code and arms.
1073         Do not use sparc_compare_op0/sparc_compare_op1.
1074         (emit_scc_insn, emit_conditional_branch_insn): New.
1075         (emit_v9_brxx): Make static.  Remove useless assertion.
1076         (sparc_emit_float_lib_cmp): Return RTL instead of calling
1077         emit_cmp_insn.
1078         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
1079         * config/sparc/sparc-protos.h (gen_compare_reg,
1080         sparc_emit_float_lib_cmp): Adjust prototype.
1081         (emit_scc_insn, emit_conditional_branch_insn): New.
1082         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
1083         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
1084         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
1085         iterators to the top.
1086         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
1087         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
1088         snedi_special_trunc): Delete.
1089         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
1090         and snedi_special_trunc.
1091         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
1092         cbranchdi4, cbranch<F:mode>4): New.
1093         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
1094         here.  Use gen_compare_reg instead of gen_compare_operator.
1095         (conditional_trap): Replace with...
1096         (ctrapsi4, ctrapdi4): ... this.
1097         (stack_protect_test): Use cbranchcc4.
1098
1099         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
1100         argument to rtx.
1101         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
1102         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
1103         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
1104         from operands[0] or operands[3] depending on is_set.
1105         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
1106         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
1107         cmpdf, bCC), sCC: Remove.
1108         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
1109         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
1110         cstoredf4): New.
1111         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
1112         spu_emit_branch_or_set.
1113
1114         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
1115         Add two arguments.
1116         * config/stormy16/stormy16.h (xstormy16_compare_op0,
1117         xstormy16_compare_op1): Delete.
1118         * config/stormy16/stormy16.c (xstormy16_compare_op0,
1119         xstormy16_compare_op1): Delete. 
1120         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
1121         Adjust calls.
1122         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
1123         (cmphi, cmpsi, bCC): Remove.
1124
1125         * config/v850/v850.md (tstsi, cmpsi): Fold into...
1126         (*cmpsi): ... this one.
1127         (cbranchsi4, cstoresi4): New.
1128         (bCC expanders): Delete.
1129         (sCC insns): Fold into...
1130         (*setcc): ... this one.
1131         (casesi): Do not use gen_cmpsi and gen_bgtu. 
1132         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
1133         (movsicc): Simplify.
1134         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
1135
1136         * config/vax/vax-protos.h (cond_name): New.
1137         (vax_output_conditional_branch): Remove.
1138         * config/vax/vax.c (cond_name): New.
1139         (vax_output_conditional_branch): Remove.
1140         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
1141         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
1142         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
1143         (bit<VAXint>): Wrap source with (compare).
1144         (b<code> and following unnamed pattern): Rename to *branch and
1145         *branch_reversed.  Change macroization to match_operator.
1146         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
1147
1148         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
1149         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
1150         Change last argument to machine_mode.
1151         (xtensa_expand_scc): Add machine_mode argument.
1152         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
1153         (gen_conditional_move, xtensa_expand_conditional_branch,
1154         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
1155         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
1156         Adjust operand numbers.
1157         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
1158         Delete.
1159         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
1160         (cmpsi, cmpsf, b<code>, s<code>): Delete.
1161         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
1162
1163 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1164
1165         * optabs.c (prepare_cmp_insn): Temporarily disable test that
1166         causes spurious differences between trunk and cond-optab branch.
1167
1168 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
1169
1170         PR target/37137
1171         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
1172
1173 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
1174
1175         * tree.c (iterative_hash_pointer): Delete.
1176         (iterative_hash_expr): Short-circuit handling of NULL pointer.
1177         Hash UIDs and versions of SSA names.  Don't special-case built-in
1178         function declarations.
1179
1180 2009-05-11  Ian Lance Taylor  <iant@google.com>
1181
1182         PR bootstrap/40103
1183         * graphite.c: Force -Wc++-compat to only be a warning before
1184         #including "cloog/cloog.h".
1185
1186 2009-05-11  Martin Jambor  <mjambor@suse.cz>
1187
1188         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
1189         
1190 2009-05-11  Jan Hubicka  <jh@suse.cz>
1191
1192         * tree-ssa-loop-ivcanon.c: Include target.h
1193         (struct loop_size): new structure.
1194         (constant_after_peeling): New predicate.
1195         (tree_estimate_loop_size): New function.
1196         (estimated_unrolled_size): Rewrite for new estimates.
1197         (try_unroll_loop_completely): Use new estimates.
1198         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
1199
1200 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1201
1202         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
1203         libcpp interface change.
1204         (spu_macro_to_expand): Likewise.
1205
1206 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
1207
1208         PR tree-optimization/40026
1209         * gimplify.c (gimplify_init_constructor): Change initial conditional
1210         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
1211         optimize_compound_literals_in_ctor.
1212
1213 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1214
1215         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
1216         New devices.
1217         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
1218
1219 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1220
1221         * tree-vect-data-refs.c (vect_analyze_group_access): Use
1222         HOST_WIDE_INT for gap.
1223
1224 2009-05-11  Ira Rosen  <irar@il.ibm.com>
1225
1226         PR tree-optimization/40074
1227         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
1228         account in group size and step comparison.
1229
1230 2009-05-11  Richard Guenther  <rguenther@suse.de>
1231
1232         * passes.c (init_optimization_passes): Strip now incorrect comment.
1233         (execute_function_todo): Do not set PROP_alias.
1234         * tree-pass.h (PROP_alias): Remove.
1235         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1236         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1237         * tree-nrv.c (pass_return_slot): Likewise.
1238         * tree-object-size.c (pass_object_sizes): Likewise.
1239         * tree-ssa-dom.c (pass_dominator): Likewise.
1240         (pass_phi_only_cprop): Likewise.
1241         * tree-ssa-dse.c (pass_dse): Likewise.
1242         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1243         (pass_cselim): Likewise.
1244         * tree-ssa-pre.c (pass_pre): Likewise.
1245         (pass_fre): Likewise.
1246         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1247         * tree-ssa-sink.c (pass_sink_code): Likewise.
1248         * tree-stdarg.c (pass_stdarg): Likewise.
1249         * tree-tailcall.c (pass_tail_calls): Likewise.
1250         * tree-vrp.c (pass_vrp): Likewise.
1251
1252 2009-05-10  Ian Lance Taylor  <iant@google.com>
1253
1254         * basic-block.h (enum profile_status): Break out of struct
1255         control_flow_graph.
1256         * cgraph.h (struct inline_summary): Break out of struct
1257         cgraph_local_info.
1258         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1259         of struct cgraph_order_sort.
1260         * combine.c (enum undo_kind): New enum, broken out of struct undo.
1261         * cse.c (struct branch_path): Break out of struct
1262         cse_basic_block_data.
1263         * except.h (enum eh_region_type): Break out of struct eh_region.
1264         * gcc.c (enum add_del): Break out of struct modify_target.
1265         * genrecog.c (enum decision_type): Break out of struct decision_test.
1266         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1267         ggc_pch_data.
1268         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1269         * regmove.c (enum match_use): New enum, broken out of struct match.
1270         * sched-int.h (enum post_call_group): New enum, broken out of
1271         struct deps.
1272         (struct deps_reg): Break out of struct deps.
1273         * target.h (struct asm_int_op): Break out of struct gcc_target.
1274         * tree-eh.c (struct goto_queue_node): Break out of struct
1275         leh_tf_state.
1276         * tree-inline.h (enum copy_body_cge_which): Break out of
1277         copy_body_data.
1278         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1279
1280         * c-decl.c (in_struct, struct_types): New static variables.
1281         (pushtag): Add loc parameter.  Change all callers.
1282         (lookup_tag): Add ploc parameter.  Change all callers.
1283         (check_compound_literal_type): New function.
1284         (parser_xref_tag): Add loc parameter.  Change all callers.  If
1285         -Wc++-compat, warn about struct/union/enum types defined within a
1286         struct or union.
1287         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1288         and loc parameters.  Change all callers.  Change error calls to
1289         error_at, using loc.  For a redefinition, if the location of the
1290         original definition is known, report it.  Set in_struct and
1291         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
1292         (finish_struct): Add new parameters enclosing_in_struct and
1293         enclosing_struct_types.  Change all callers.  Set
1294         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1295         in the struct.  If in a struct, add this struct to struct_types.
1296         (start_enum): Add loc parameter.  Change all callers.  Use
1297         error_at for errors, using loc.  For a redefinition, if the
1298         location of the original definition is known, report it.  If in a
1299         struct, add this enum type to struct_types.  If -Wc++-compat warn
1300         if in sizeof, typeof, or alignof.
1301         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1302         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1303         (c_parser_enum_specifier): Get enum location for start_enum.
1304         (c_parser_struct_or_union_specifier): Get struct location for
1305         start_struct.  Save in_struct and struct_types status between
1306         start_struct and finish_struct.
1307         (c_parser_cast_expression): Get location of cast.
1308         (c_parser_alignof_expression): Get location of type.
1309         (c_parser_postfix_expression): Likewise.
1310         (c_parser_postfix_expression_after_paren_type): Add type_loc
1311         parameter.  Change all callers.  Call check_compound_literal_type.
1312         Use type_loc for error about variable size type.
1313         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1314         of an enum constant from an enum type defined in a struct or union.
1315         (c_cast_expr): Add loc parameter.  Change all callers.  If
1316         -Wc++-compat, warn about defining a type in a cast.
1317         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1318         (start_enum, start_struct, finish_struct): Update declarations.
1319         (parser_xref_tag, c_cast_expr): Update declarations.
1320         (check_compound_literal_type): Declare.
1321
1322 2009-05-11  Ben Elliston  <bje@au.ibm.com>
1323
1324         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1325         for recent libcpp interface change.
1326         (rs6000_macro_to_expand): Likewise.
1327
1328 2009-05-10  Michael Matz  <matz@suse.de>
1329
1330         PR target/40031
1331         * config/arm/arm.c (require_pic_register): Emit on entry edge,
1332         not at entry of function.
1333
1334 2009-05-10  Richard Guenther  <rguenther@suse.de>
1335
1336         PR tree-optimization/40081
1337         Revert
1338         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1339         using the main variant of the element type.  Do not fiddle with
1340         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1341
1342         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1343         structs with volatile fields.
1344
1345 2009-05-10  Jan Hubicka  <jh@suse.cz>
1346
1347         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1348         (estimate_move_cost): Assert that it does not get called for
1349         VOID_TYPE_P.
1350         (estimate_num_insns): Skip VOID types in argument handling.
1351         (optimize_inline_calls): Delete unreachable blocks and verify that
1352         callgraph is valid.
1353
1354 2009-05-10  Jan Hubicka  <jh@suse.cz>
1355
1356         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1357         * cgraph.c (cgraph_mark_address_taken_node): New function.
1358         (dump_cgraph_node): Dump new flag.
1359         * cgraph.h (struct cgraph_node): Add address_taken.
1360         (cgraph_mark_address_taken_node): New function.
1361         * ipa.c (cgraph_postorder): Prioritize functions with address taken
1362         since new direct calls can be born.
1363
1364 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1365
1366         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1367         tok->val.node.node.
1368
1369 2009-05-10  Jan Hubicka  <jh@suse.cz>
1370
1371         PR middle-end/40084
1372         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1373         argument; rewrite.
1374         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1375         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1376         * tree-inline.c (copy_bb): Set frequency correctly.
1377         (fold_marked_statements): Update call to
1378         cgraph_update_edges_for_call_stmt.
1379
1380 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1381
1382         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1383         identifiers in diagnostics.
1384         * config/arm/arm.c (arm_handle_fndecl_attribute,
1385         arm_handle_isr_attribute): Likewise.
1386         * config/avr/avr.c (avr_handle_progmem_attribute,
1387         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1388         Likewise.
1389         * config/bfin/bfin.c (handle_int_attribute,
1390         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1391         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1392         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1393         Likewise.
1394         * config/darwin.c (darwin_handle_kext_attribute,
1395         darwin_handle_weak_import_attribute): Likewise.
1396         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1397         h8300_handle_eightbit_data_attribute,
1398         h8300_handle_tiny_data_attribute): Likewise.
1399         * config/i386/i386.c (ix86_handle_cconv_attribute,
1400         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1401         Likewise.
1402         * config/i386/winnt.c (ix86_handle_shared_attribute,
1403         ix86_handle_selectany_attribute): Likewise.
1404         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1405         * config/m32c/m32c.c (function_vector_handler): Likewise.
1406         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1407         m68hc11_handle_fntype_attribute): Likewise.
1408         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1409         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1410         * config/mips/mips.c (mips_insert_attributes,
1411         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1412         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1413         rs6000_handle_struct_attribute): Likewise.
1414         * config/sh/sh.c (sh_insert_attributes,
1415         sh_handle_resbank_handler_attribute,
1416         sh_handle_interrupt_handler_attribute,
1417         sh2a_handle_function_vector_handler_attribute,
1418         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1419         Likewise.
1420         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1421         * config/spu/spu.c (spu_handle_fndecl_attribute,
1422         spu_handle_vector_attribute): Likewise.
1423         * config/stormy16/stormy16.c
1424         (xstormy16_handle_interrupt_attribute): Likewise.
1425         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1426         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1427
1428 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1429
1430         * pretty-print.h (struct pretty_print_info): Add
1431         translate_identifiers.
1432         (pp_translate_identifiers): New.
1433         (pp_identifier): Only conditionally translate identifier to locale
1434         character set.
1435         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1436         (pp_base_tree_identifier): Only conditionally translate identifier
1437         to locale character set.
1438         * c-pretty-print.c (M_): Define.
1439         (pp_c_type_specifier, pp_c_primary_expression): Mark English
1440         fragments for conditional translation with M_.
1441         * tree-pretty-print.c (maybe_init_pretty_print): Disable
1442         identifier translation.
1443
1444 2009-05-10  Richard Guenther  <rguenther@suse.de>
1445
1446         PR tree-optimization/40081
1447         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1448         using the main variant of the element type.  Do not fiddle with
1449         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1450
1451 2009-05-09  Jan Hubicka  <jh@suse.cz>
1452
1453         PR middle-end/40080
1454         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1455         indirect calls; verify cgraph afterwards.
1456
1457 2009-05-09  Jan Hubicka  <jh@suse.cz>
1458
1459         PR bootstrap/40082
1460         * ipa.c (update_inlined_to_pointer): New function.
1461         (cgraph_remove_unreachable_nodes): Use it.
1462
1463 2009-05-09  Jan Hubicka  <jh@suse.cz>
1464
1465         * tree-eh.c (struct leh_state): Remove prev_try.
1466         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1467         not track prev_try.
1468         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
1469         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1470         remove_eh_handler_and_replace, foreach_reachable_handler,
1471         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1472         * except.h (struct eh_region): Remove eh_region_u_cleanup.
1473         (gen_eh_region_cleanup): Update prototype.
1474
1475 2009-05-09  Jan Hubicka  <jh@suse.cz>
1476
1477         PR middle-end/40043
1478         * except.c (copy_eh_region): Always set prev_try.
1479         (redirect_eh_edge_to_label): Find outer try.
1480         (foreach_reachable_handler): When looking for prev try
1481         handle case where previous try is not going to be taken.
1482
1483 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1484
1485         PR tree-optimization/40049
1486         * tree-vect-stmts.c (vectorizable_operation): If the machine has
1487         only vector/vector shifts, convert the type of the constant to the
1488         appropriate type to avoid building incorrect trees, which
1489         eventually have problems with garbage collection.
1490
1491 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1492
1493         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1494         -1 for complex floating-point types if honoring signed zeros.
1495
1496 2009-05-08  Jan Hubicka  <jh@suse.cz>
1497
1498         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1499         argument; handle correctly when profile is absent.
1500         (build_cgraph_edges): Update.
1501         (rebuild_cgraph_edges): Update.
1502         * cgraph.c: Do not include varray.h.
1503         (cgraph_set_call_stmt_including_clones): New function.
1504         (cgraph_create_edge_including_clones): Likewise
1505         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1506         (cgraph_update_edges_for_call_stmt): Handle clones.
1507         (cgraph_remove_node): Handle clone tree.
1508         (cgraph_remove_node_and_inline_clones): New function.
1509         (dump_cgraph_node): Dump clone tree.
1510         (cgraph_clone_node): Handle clone tree.
1511         (clone_function_name): Bring here from tree-inline.c.
1512         (cgraph_create_virtual_clone): New function.
1513         * cgraph.h (ipa_replace_map): Move here from ipa.h.
1514         (cgraph_clone_info): New function.
1515         (strut cgraph_node): Add clone_info and new clone tree pointers.
1516         (cgraph_remove_node_and_inline_clones,
1517         cgraph_set_call_stmt_including_clones,
1518         cgraph_create_edge_including_clones,
1519         cgraph_create_virtual_clone): Declare.
1520         (cgraph_function_versioning): Use VEC argument.
1521         (compute_call_stmt_bb_frequency): Update prototype.
1522         (cgraph_materialize_all_clones): New function.
1523         * ipa-cp.c (ipcp_update_cloned_node): Remove.
1524         (ipcp_create_replace_map): Update to VECtors.
1525         (ipcp_update_callgraph): Use virtual clones.
1526         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1527         (ipcp_update_profiling): Do not update local profiling.
1528         (ipcp_insert_stage): Use VECtors and virtual clones.
1529         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1530         (clone_of_p): New function.
1531         (cgraph_preserve_function_body_p): Use clone tree.
1532         (cgraph_optimize): Materialize clones.
1533         (cgraph_function_versioning): Update for VECtors.
1534         (save_inline_function_body): Use clone tree.
1535         (cgraph_materialize_clone): New function.
1536         (cgraph_materialize_all_clones): Likewise.
1537         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1538         * ipa.c: Include gimple.h.
1539         (cgraph_remove_unreachable_nodes): Use clone tree.
1540         * ipa-prop.c (ipa_note_param_call): Update call to
1541         compute_call_stmt_bb_frequencycall.
1542         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
1543         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
1544         (copy_bb): Handle updating of clone tree; add new edge when new call
1545         appears.
1546         (expand_call_inline): Be strict about every call having edge.
1547         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1548         (delete_unreachable_blocks_update_callgraph): New function.
1549         (tree_function_versioning): Use VECtors; always remove unreachable
1550         blocks and fold conditionals.
1551         * tree-inline.h: Do not include varray.h.
1552         (tree_function_versioning): Remove.
1553         * Makefile.in (GTFILES): Remove tree-inline.c
1554         * passes.c (do_per_function): Do only functions having body.
1555         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1556         tree.
1557
1558 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
1559             Andrew Morrow  <acm@google.com>
1560
1561         PR c/36892
1562         * c-common.c (c_common_attribute_table): Permit deprecated
1563         attribute to take an optional argument.
1564         (handle_deprecated_attribute): If the optional argument to
1565         __attribute__((deprecated)) is not a string ignore the attribute
1566         and emit a warning.
1567
1568         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1569         * c-typeck.c (build_component_ref): Likewise.
1570         (build_external_ref): Likewise.
1571
1572         * toplev.c (warn_deprecated_use): Add an attribute argument.
1573         Emit the message associated with __attribute__((deprecated)).
1574
1575         * toplev.h (warn_deprecated_use): Updated.
1576
1577         * doc/extend.texi: Document new optional parameter to
1578         __attribute__((deprecated))
1579
1580 2009-05-08  Michael Eager <eager@eagercon.com>
1581
1582         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1583         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1584
1585 2009-05-08  Richard Guenther  <rguenther@suse.de>
1586
1587         PR tree-optimization/40062
1588         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1589         Avoid exponential behavior.
1590
1591 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1592
1593         PR rtl-optimization/33928
1594         PR 26854
1595         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1596         process_uses, build_single_def_use_links): New.
1597         (update_df): Update use_def_ref.
1598         (forward_propagate_into): Use get_def_for_use instead of use-def
1599         chains.
1600         (fwprop_init): Call build_single_def_use_links and let it initialize
1601         dataflow.
1602         (fwprop_done): Free use_def_ref.
1603         (fwprop_addr): Eliminate duplicate call to df_set_flags.
1604         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
1605         df_rd_simulate_one_insn): New.
1606         (df_rd_bb_local_compute_process_def): Update head comment.
1607         (df_chain_create_bb): Use the new RD simulation functions.
1608         * df.h (df_rd_simulate_artificial_defs_at_top, 
1609         df_rd_simulate_one_insn): New.
1610         * opts.c (decode_options): Enable fwprop at -O1.
1611         * doc/invoke.texi (-fforward-propagate): Document this.
1612
1613 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1614
1615         PR c/24581
1616         * c-typeck.c (build_binary_op): Handle arithmetic between one real
1617         and one complex operand specially.
1618         * tree-complex.c (some_nonzerop): Do not identify a real value as
1619         zero if flag_signed_zeros.
1620
1621 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1622
1623         PR rtl-optimization/33928
1624         * loop-invariant.c (record_use): Fix && vs. || mishap.
1625
1626 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1627
1628         PR rtl-optimization/33928
1629         * loop-invariant.c (struct use): Add addr_use_p.
1630         (struct def): Add n_addr_uses.
1631         (struct invariant): Add cheap_address.
1632         (create_new_invariant): Set cheap_address.
1633         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
1634         (record_uses): Pass df_ref to record_use.
1635         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1636         used only as such.
1637
1638 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1639
1640         * config/sh/sh.c: Do not include c-pragma.h.
1641
1642 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1643
1644         * config/spu/spu.c: Remove include of c-common.h.
1645
1646 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
1647
1648         PR c/39037
1649         * c-common.h (mark_valid_location_for_stdc_pragma,
1650         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1651         clear_float_const_decimal64, float_const_decimal64_p): New.
1652         * c.opt (Wunsuffixed-float-constants): New.
1653         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1654         unsuffixed float constant, handle new warning.
1655         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1656         * c-decl.c (c_scope): New flag float_const_decimal64.
1657         (set_float_const_decimal64, clear_float_const_decimal64,
1658         float_const_decimal64_p): New.
1659         (push_scope): Set new flag.
1660         * c-parser.c (c_parser_translation_unit): Mark when it's valid
1661         to use STDC pragmas.
1662         (c_parser_external_declaration): Ditto.
1663         (c_parser_compound_statement_nostart): Ditto.
1664         * c-pragma.c (valid_location_for_stdc_pragma,
1665         mark_valid_location_for_stdc_pragma,
1666         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1667         handle_pragma_float_const_decimal64): New.
1668         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1669         * cp/semantics.c (valid_location_for_stdc_pragma_p,
1670         set_float_const_decimal64, clear_float_const_decimal64,
1671         float_const_decimal64_p): New dummy functions.
1672         * doc/extend.texi (Decimal Float): Remove statement that the
1673         pragma, and suffix for double constants, are not supported.
1674         * doc/invoke.texi (Warning Options): List new option.
1675         (-Wunsuffixed-float-constants): New.
1676
1677 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
1678
1679         * config/i386/i386.c: Do not include c-common.h.
1680
1681 2009-05-07  Mark Heffernan  <meheff@google.com>
1682
1683         * doc/invoke.texi (Debugging Options): Document change of debugging
1684         dump location.
1685         * opts.c (decode_options): Make dump_base_name relative to
1686         aux_base_name directory.
1687
1688 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
1689
1690         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1691         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1692
1693 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
1694
1695         * Makefile.in (install-plugin): Simplify a bit.
1696
1697 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
1698
1699         * Makefile.in (OBJS-common): Add regcprop.o.
1700         (regcprop.o): New.
1701         * timevar.def (TV_CPROP_REGISTERS): New.
1702         * regrename.c (regrename_optimize): Return 0.
1703         (rest_of_handle_regrename): Delete.
1704         (pass_rename_registers): Point to regrename_optimize.
1705         (struct value_data_entry, struct value_data, 
1706         kill_value_one_regno, kill_value_regno, kill_value,
1707         set_value_regno, init_value_data, kill_clobbered_value,
1708         kill_set_value, kill_autoinc_value, copy_value,
1709         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1710         replace_oldest_value_reg, replace_oldest_value_addr,
1711         replace_oldest_value_mem, copyprop_hardreg_forward_1,
1712         debug_value_data, validate_value_data): Move...
1713         * regcprop.c: ... here.
1714         (rest_of_handle_cprop): Delete.
1715         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1716
1717 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
1718
1719         PR middle-end/40057
1720         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1721         GEN_INT for 1 << bitnum.
1722         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1723         build_int_cst_type.
1724
1725 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
1726
1727         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
1728         Remove wrong description of "nand" operation.
1729
1730 2009-05-06  Richard Guenther  <rguenther@suse.de>
1731             Adam Nemet  <anemet@caviumnetworks.com>
1732
1733         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1734         comment.  Add that if LHS is not a gimple register, then RHS1 has
1735         to be a single object (GIMPLE_SINGLE_RHS).
1736
1737 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
1738
1739         * expr.c (get_def_for_expr): Move it up in the file.
1740         (store_field): When expanding a bit-field store, look at the
1741         defining gimple stmt for the masking conversion.
1742
1743 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
1744
1745         PR middle-end/39986
1746         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1747         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1748         32-bit memcpy into long.
1749
1750 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
1751
1752         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1753         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1754         new_reg_loc_descr.
1755         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1756         instead of appending DW_OP_deref*.
1757
1758 2009-05-06  Michael Matz  <matz@suse.de>
1759
1760         PR middle-end/40021
1761         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1762         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1763
1764 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
1765
1766         * Makefile.in (install-plugin): Fix srcdir handling.
1767
1768 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
1769
1770         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1771         when processing for not_regs_needed bitmap.
1772         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1773         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
1774         handling it for rhs. 
1775
1776 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1777
1778         * config/i386/i386.md (unnamed inc/dec peephole): Use
1779         optimize_insn_for_size_p instead of optimize_size.
1780         * config/i386/predicates.md (incdec_operand): Likewise.
1781         (aligned_operand): Likewise.
1782         * config/i386/sse.md (divv8sf3): Likewise.
1783         (sqrtv8sf2): Likewise.
1784
1785 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1786
1787         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1788
1789         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1790
1791 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1792
1793         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1794         ssemodesuffixf2c with avxmodesuffixf2c.
1795
1796 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
1797
1798         PR c/40032
1799         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1800
1801 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
1802
1803         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1804         (struct tree_base): Adjust spacing for 8 bit boundaries.
1805         (struct tree_decl_common): Add decl_by_reference_flag bit.
1806         (DECL_BY_REFERENCE): Adjust.
1807         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1808         print DECL_BY_REFERENCE bit.
1809         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1810         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1811         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1812         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
1813         unconditionally.
1814
1815         PR middle-end/39666
1816         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1817         range of the type, but default label is missing, add it with one
1818         of the existing labels instead of adding a new label for it.
1819
1820 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
1821
1822         * dwarf.h: Remove.
1823
1824 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
1825
1826         * Makefile.in (enable_plugin, plugin_includedir): New.
1827         (install): Depend on install-plugin.
1828         (PLUGIN_HEADERS): New.
1829         (install-plugin): New.
1830         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1831
1832 2009-05-05  Richard Guenther  <rguenther@suse.de>
1833
1834         PR tree-optimization/40022
1835         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1836         the only vuse.
1837         (phivn_valid_p): Fix tuplification error, simplify.
1838         (phiprop_insert_phi): Add dumps.
1839         (propagate_with_phi): Simplify.
1840
1841 2009-05-05  Richard Guenther  <rguenther@suse.de>
1842
1843         PR middle-end/40023
1844         * builtins.c (gimplify_va_arg_expr): Properly build the address.
1845
1846 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
1847
1848         * tree.h (strip_float_extensions): Remove duplicate declaration.
1849         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1850         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1851         block_ultimate_origin): Rearrange the declarations line to match the
1852         comment that indicates the .c file which the functions are defined.
1853         (dwarf2out_*, set_decl_rtl): Add comment.
1854         (get_base_address): Adjust comment.
1855         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1856         declarations line and add comment.
1857         (is_builtin_name): Add blank after function name, for clarity.
1858
1859 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1860
1861         * attribs.c (decl_attributes): Use %qE for identifiers in
1862         diagnostics.
1863         * cgraphunit.c (verify_cgraph_node): Translate function names to
1864         locale character set in diagnostics.
1865         * coverage.c (get_coverage_counts): Use %qE for identifiers in
1866         diagnostics.
1867         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1868         Document that functions are named in UTF-8.
1869         * expr.c (expand_expr_real_1): Translate function names to locale
1870         character set in diagnostics.
1871         * gimplify.c (omp_notice_variable, omp_is_private,
1872         gimplify_scan_omp_clauses): Use %qE for identifiers in
1873         diagnostics.
1874         * langhooks.c (lhd_print_error_function): Translate function names
1875         to locale character set.
1876         * langhooks.h (decl_printable_name): Document that return value is
1877         in internal character set.
1878         * stmt.c: Include pretty-print.h
1879         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1880         diagnostics.
1881         (resolve_operand_name_1): Translate named operand name to locale
1882         character set.
1883         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1884         diagnostics.
1885         * toplev.c (announce_function): Translate function names to locale
1886         character set.
1887         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1888         (default_tree_printer): Use pp_identifier or translate identifiers
1889         to locale character set.  Mark "<anonymous>" for translation.
1890         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1891         for identifiers in diagnostics.
1892         * tree.c (handle_dll_attribute): Use %qE for identifiers in
1893         diagnostics.
1894         * varasm.c (output_constructor): Use %qE for identifiers in
1895         diagnostics.
1896
1897 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
1898
1899         * configure.ac: use ` ` instead of $()
1900         * configure: Regenerate.
1901
1902 2009-05-05  Ben Elliston  <bje@au.ibm.com>
1903
1904         * config/pa/linux-atomic.c: Eliminate conditional include of
1905         errno.h on non-LP64 systems to simplify build requirements.
1906
1907 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1908
1909         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1910         diagnostics.
1911         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1912         and pass value to identifier_to_locale.
1913         (warn_variable_length_array): Make name a tree.
1914         (grokdeclarator): Separate diagnostic texts for named and unnamed
1915         declarators.  Use %qE for named declarators.
1916         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1917         diagnostics.
1918         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1919         identifiers in diagnostics.
1920         * c-typeck.c (push_member_name, start_init): Pass identifiers to
1921         identifier_to_locale.  Mark "anonymous" strings for translation.
1922
1923 2009-05-04  Michael Eager <eager@eagercon.com>
1924
1925         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
1926         address for DImode/DFmode only if double-precision FP regs.
1927
1928 2009-05-04  Michael Eager <eager@eagercon.com>
1929
1930         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1931         TARGET_SINGLE_FLOAT check.
1932
1933 2009-05-04  Michael Eager <eager@eagercon.com>
1934
1935         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1936
1937 2009-05-04  Michael Eager <eager@eagercon.com>
1938
1939         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1940         * config/rs6000/t-xilinx: New
1941
1942 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
1943
1944         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
1945         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1946         * gcc/explow.c (memory_address): Use target hook.
1947         * gcc/targhooks.c (default_legitimize_address): New.
1948         * gcc/targhooks.h (default_legitimize_address): New.
1949         * gcc/target.h (legitimize_address): New.
1950         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1951         (TARGET_INITIALIZER): Include it.
1952         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1953
1954         * config/bfin/bfin-protos.h (legitimize_address): Remove.
1955         * config/bfin/bfin.c (legitimize_address): Remove.
1956         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
1957         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1958         Remove.
1959         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1960         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1961
1962         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1963         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1964         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1965         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1966         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1967         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1968         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1969         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1970         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1971         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1972         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1973         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1974         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1975         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1976         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1977         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1978         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1979         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1980         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1981         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1982         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1983         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1984         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1985
1986         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1987         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1988         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1989         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1990         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1991         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1992         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1993         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1994         (thumb_legitimize_address): Delete.
1995         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1996         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1997         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1998         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1999         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
2000         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
2001         Delete.
2002         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
2003         Delete.
2004
2005         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
2006         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
2007         * config/m32r/m32r.c (m32r_legitimize_address): New.
2008         * config/m68k/m68k.c (m68k_legitimize_address): New.
2009         * config/score/score.c (score_legitimize_address): Standardize.
2010         * config/score/score3.c (score3_legitimize_address): Standardize.
2011         * config/score/score3.h (score3_legitimize_address): Adjust.
2012         * config/score/score7.c (score7_legitimize_address): Standardize.
2013         * config/score/score7.h (score7_legitimize_address): Adjust.
2014         * config/sh/sh.c (sh_legitimize_address): New.
2015         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
2016
2017         * gcc/config/s390/s390.c (legitimize_address): Rename to...
2018         (s390_legitimize_address): ... this.
2019         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
2020         (sparc_legitimize_address): ... this.
2021         * gcc/config/i386/i386.c (legitimize_address): Rename to...
2022         (ix86_legitimize_address): ... this.
2023         * gcc/config/avr/avr.c (legitimize_address): Rename to...
2024         (avr_legitimize_address): ... this.
2025         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
2026         (mn10300_legitimize_address): ... this.
2027         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
2028         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
2029         (alpha_expand_mov): Adjust call.
2030
2031         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
2032         * config/spu/spu.c (spu_legitimize_address): Likewise.
2033         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
2034         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
2035
2036 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
2037
2038         * intl.c (locale_encoding, locale_utf8): New.
2039         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
2040         * intl.h (locale_encoding, locale_utf8): Declare.
2041         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
2042         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
2043         New.
2044         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
2045         argument.
2046         (pp_tree_identifier): Define to call pp_base_tree_identifier.
2047         (pp_base_tree_identifier): Declare as function.
2048         (identifier_to_locale): Declare.
2049         * Makefile.in (pretty-print.o): Update dependencies.
2050         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
2051
2052 2009-05-04  Richard Guenther  <rguenther@suse.de>
2053
2054         PR middle-end/40015
2055         * builtins.c (fold_builtin_memory_op): Do not decay to element
2056         type if the size matches the whole array.
2057
2058 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
2059
2060         * expmed.c (synth_mult): When trying out a shift, pass the result
2061         of a signed shift.
2062
2063 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
2064
2065         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
2066         (shiftsub1_cost): New.
2067         (init_expmed): Compute shiftsub1_cost.
2068         (synth_mult): Optimize multiplications by constants of the form
2069         -(2^^m-1) for some constant positive integer m.
2070
2071 2009-05-03  Richard Guenther  <rguenther@suse.de>
2072
2073         PR c/39983
2074         * c-typeck.c (array_to_pointer_conversion): Do not built
2075         ADDR_EXPRs of arrays of pointer-to-element type.
2076         * c-gimplify.c (c_gimplify_expr): Revert change fixing
2077         up wrong ADDR_EXPRs after-the-fact.
2078         * c-common.c (strict_aliasing_warning): Strip pointer
2079         conversions for obtaining the original type.
2080         * builtins.c (fold_builtin_memset): Handle array types.
2081         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
2082         and array types
2083
2084 2009-05-03  Richard Guenther  <rguenther@suse.de>
2085
2086         PR middle-end/23329
2087         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
2088         Do not lose casts from array types with unknown extent to array
2089         types with known extent.
2090         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
2091         alias set compatibility.
2092
2093 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2094
2095         * flags.h (extra_warnings): Delete.
2096         * toplev.c (process_options): Handle Wuninitialized here.
2097         * opts.c (extra_warnings): Delete.
2098         (set_Wextra): Delete.
2099         (common_handle_option): -Wextra can be handled automatically.
2100         * c-opts.c (c_common_handle_option): Delete obsolete code.
2101         (c_common_post_options): Simplify comment.
2102         * common.opt (W): Add Var.
2103         (Wextra): Add Var.
2104         (Wuninitialized): Initialize to -1.
2105
2106 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
2107             Richard Guenther  <rguenther@suse.de>
2108
2109         * expr.c (get_def_for_expr): New function.
2110         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
2111         SSA rather than trees.
2112         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
2113         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
2114         
2115 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
2116
2117         * c-common.c (reswords): Add _Imaginary.
2118         * c-common.c (enum rid): Add RID_IMAGINARY.
2119
2120 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
2121
2122         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
2123         Patch by Richard Guenther.
2124
2125 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
2126
2127         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
2128         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2129         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
2130         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
2131         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
2132         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
2133         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
2134         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
2135         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
2136         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
2137         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
2138         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
2139         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
2140         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
2141         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
2142         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
2143         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
2144         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
2145
2146 2009-05-02  Richard Guenther  <rguenther@suse.de>
2147
2148         PR tree-optimization/39940
2149         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
2150         doing so.
2151
2152 2009-05-02  Richard Guenther  <rguenther@suse.de>
2153
2154         PR middle-end/40001
2155         * tree-ssa.c (execute_update_addresses_taken): Properly check
2156         if we can mark a variable DECL_GIMPLE_REG_P.
2157         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
2158         back to the end of the function.
2159         (is_gimple_reg_type): Remove complex type special casing.
2160         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
2161         if not optimizing.
2162
2163 2009-05-02  Ben Elliston  <bje@au.ibm.com>
2164
2165         * doc/collect2.texi (Collect2): Document search path behaviour
2166         when configured with --with-ld.
2167
2168 2009-05-02  Jan Hubicka  <jh@suse.cz>
2169
2170         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
2171         parameter; update callers.
2172         (coalesce_cost_edge): EH edges are costier because they needs
2173         splitting even if not critical and even more costier when there are
2174         multiple EH predecestors.
2175
2176 2009-05-02  Jan Hubicka  <jh@suse.cz>
2177
2178         * except.c (remove_eh_handler_and_replace): Handle updating after
2179         removing TRY blocks.
2180
2181 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2182
2183         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
2184
2185 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
2186
2187         * varasm.c: Do not include c-pragma.h.
2188         * attribs.c: Do not incude c-common.h.
2189
2190 2009-05-01  Michael Matz  <matz@suse.de>
2191
2192         * calls.c (initialize_argument_information): Handle SSA names like
2193         decls with a non MEM_P DECL_RTL.
2194
2195 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
2196
2197         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
2198         * ipa-utils.c: Likewise.
2199         * ipa-type-escape.c: Likewise.
2200         * cgraphunit.c Do not include c-common.h.
2201         * ipa-pure-const.c: Likewise.
2202         * tree-if-conv.c: Likewise.
2203         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
2204         * ipa-struct-reorg.c: Likewise.
2205         * tree-nomudflap.c: Likewise.
2206         * tree-ssa-structalias.c: Likewise.
2207
2208 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
2209
2210         * store-motion.c: Many cleanups to make this pass a first-class
2211         citizen instead of an appendix to gcse load motion.  Add TODO list
2212         to make this pass faster/cleaner/better.
2213
2214         (struct ls_expr): Post gcse.c-split cleanups.
2215         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
2216         "stores" field to "avail_stores".
2217         (pre_ldst_mems): Rename to store_motion_mems.
2218         (pre_ldst_table): Rename to store_motion_mems_table.
2219         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
2220         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
2221         (ldst_entry): Rename to st_expr_entry, update users.
2222         (free_ldst_entry): Rename to free_st_expr_entry, update users.
2223         (free_ldst_mems): Rename to free_store_motion_mems, update users.
2224         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
2225         update caller.
2226         (first_ls_expr): Rename to first_st_expr, update users.
2227         (next_ls_expr): Rename to next_st_expr, update users.
2228         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
2229         fields properly for store motion instead of names inherited from load
2230         motion in gcse.c.
2231         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
2232         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
2233         are done with it.
2234
2235         (ae_kill): Rename to st_kill, update users.
2236         (ae_gen): Rename to st_avloc, update users.
2237         (transp): Rename to st_transp, update users.
2238         (pre_insert_map): Rename to st_insert_map, update users.
2239         (pre_delete_map): Rename to st_delete_map, update users.
2240         (insert_store, build_store_vectors, free_store_memory,
2241         one_store_motion_pass): Update for abovementioned changes.
2242
2243         (gcse_subst_count, gcse_create_count): Remove.
2244         (one_store_motion_pass): New statistics counters "n_stores_deleted"
2245         and "n_stores_created", local variables.
2246
2247         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2248         use for_each_rtx.
2249
2250         (regvec, compute_store_table_current_insn): Remove.
2251         (reg_set_info, reg_clear_last_set): Remove.
2252         (compute_store_table): Use DF caches instead of local dataflow
2253         solvers.
2254
2255 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
2256
2257         * c-objc-common.c (c_tree_printer): Print identifiers with
2258         pp_identifier, not pp_string.  Mark "({anonymous})" for
2259         translation.
2260         * c-pretty-print.c (pp_c_ws_string): New.
2261         (pp_c_cv_qualifier, pp_c_type_specifier,
2262         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2263         pp_c_storage_class_specifier, pp_c_function_specifier,
2264         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2265         pp_c_primary_expression, pp_c_postfix_expression,
2266         pp_c_unary_expression, pp_c_shift_expression,
2267         pp_c_relational_expression, pp_c_equality_expression,
2268         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2269         use pp_string and pp_c_ws_string in place of pp_identifier and
2270         pp_c_identifier for non-identifiers.  Mark English strings for
2271         translation.
2272         * c-pretty-print.h (pp_c_ws_string): Declare.
2273
2274 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
2275             Roland McGrath <roland@redhat.com>
2276
2277         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2278         (ENABLE_LD_BUILDID): New configuration option.
2279         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2280         (LINK_BUILDID_SPEC): New macro.
2281         (init_spec): If defined, prepend it between LINK_EH_SPEC and
2282         link_spec.
2283         * doc/install.texi: Document --enable-linker-build-id option.
2284         * configure: Rebuild.
2285         * config.in: Rebuild.
2286
2287 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
2288
2289         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2290         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2291         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
2292         MIPS_GP_SAVE_AREA_SIZE.
2293         * config/mips/mips.c (struct mips_frame_info): Update comment
2294         before arg_pointer_offset and hard_frame_pointer_offset.
2295         (mips_compute_frame_info): Update diagram before function: to
2296         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2297         indicate the position of frame_pointer_rtx with -fstack-protector and
2298         to show args_size.  Don't allocate cprestore area for leaf functions
2299         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
2300         cprestore_size.
2301         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2302
2303 2009-04-30  Michael Matz  <matz@suse.de>
2304
2305         PR tree-optimization/39955
2306         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2307
2308 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2309
2310         * ira.c (setup_cover_and_important_classes):  Use safe macro
2311         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2312         directly.
2313         * genpreds.c (write_tm_preds_h):  Output suitable definition of
2314         REG_CLASS_FOR_CONSTRAINT.
2315
2316 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2317
2318         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2319         instead of an int.
2320         * bitmap.c (bitmap_descriptor): Likewise.
2321         * ggc-common.c (loc_descriptor): Likewise.
2322         * varray.c (varray_descriptor): Likewise.
2323         * vec.c (vec_descriptor): Likewise.
2324
2325 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2326
2327         * Makefile.in (dce.o): Add $(EXCEPT_H).
2328         * dce.c: Include except.h and delete redundant vector definitions.
2329         (deletable_insn_p): Return false for non-call insns that can throw
2330         if DF is running.
2331
2332 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2333
2334         * gcse.c (ae_gen): Remove.
2335         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2336         and make non-static function to make it available in store-motion.c.
2337         Update call sites with search-and-replace.
2338         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2339         extract_mentioned_regs, extract_mentioned_regs_helper,
2340         find_moveable_store, compute_store_table, load_kills_store, find_loads,
2341         store_killed_in_insn, store_killed_after, store_killed_before,
2342         build_store_vectors, insert_insn_start_basic_block, insert-store,
2343         remove_reachable_equiv_notes, replace_store_insn, delete_store,
2344         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2345         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2346         * store-motion.c: ...new file.  Also copy data structures from gcse.c
2347         and clean up to remove parts not used by store motion.
2348         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2349         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2350
2351 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2352
2353         PR target/38571
2354         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2355         when optimizing for size.
2356
2357 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
2358
2359         * gcse.c (gcse_constant_p): Fix typo in last change.
2360
2361 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2362
2363         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2364
2365 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2366
2367         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2368
2369 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
2370
2371         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2372         CONST_HIGH_PART result.
2373
2374 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
2375
2376         * config/avr/avr.c (initial_elimination_offset): Rename to
2377         avr_initial_elimination_offset.
2378         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2379         change return type to bool.
2380         (avr_can_eliminate): New function.
2381         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2382         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2383         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2384         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2385         avr_initial_elimination_offset.
2386         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2387         (avr_initial_elimination_offset): Define.
2388
2389 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
2390             Steven Bosscher  <steven@gcc.gnu.org>
2391
2392         PR rtl-optimization/39938
2393         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2394         * cfgrtl.c: Include insn-attr.h.
2395         (rest_of_pass_free_cfg): New function.
2396         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2397         * resource.c (init_resource_info): Remove call to df_analyze.
2398
2399 2009-04-29  Richard Guenther  <rguenther@suse.de>
2400
2401         PR target/39943
2402         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2403         allow conversion to signed integers.
2404
2405 2009-04-29  Richard Guenther  <rguenther@suse.de>
2406
2407         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2408         shifts of floating point vectors if the shift amount is
2409         a constant multiple of the element size.
2410
2411 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2412             Michael Matz  <matz@suse.de>
2413
2414         PR middle-end/39927
2415         PR bootstrap/39929
2416         * tree-outof-ssa.c (emit_partition_copy): New function.
2417         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2418         insert_part_to_rtx_on_edge): Perform the partition base var
2419         copy using emit_partition_copy.
2420         (insert_value_copy_on_edge): Convert constants to the right mode.
2421         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2422         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2423
2424 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2425
2426         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2427         scan backwards to try to find a constant to initialize it.
2428
2429         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2430         insn before the loop_end instruction, don't look past labels.
2431
2432 2009-04-29  Richard Guenther  <rguenther@suse.de>
2433
2434         PR middle-end/39937
2435         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2436         loose type conversions.
2437         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
2438         stmts only if there are no uses of its definition.
2439
2440 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2441
2442         * config/bfin/bfin.h (splitting_loops): Declare.
2443         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2444         Reorder bit definitions to be ascending.
2445         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2446         * config/bfin/bfin.c (splitting_loops): New variable.
2447         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2448         (struct loop_info): Remove members INIT and LOOP_INIT.
2449         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
2450         the LSETUP sequence.  Allow LC to be loaded from any register, but
2451         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2452         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2453         set to 1.
2454         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2455         of reload_completed.
2456
2457         From Jie Zhang:
2458         * config/bfin/bfin.md (movsi_insn): Refine constraints.
2459
2460 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
2461
2462         * Makefile.in (PLUGIN_VERSION_H): New.
2463         (OBJS-common): Remove plugin-version.o.
2464         (plugin.o): Depend on (PLUGIN_VERSION_H).
2465         (plugin-version.o): Remove.
2466         * configure: Regenerate
2467         * configure.ac: Create plugin-version.h.
2468         * gcc-plugin.h (plugin_gcc_version): Remove.
2469         (plugin_default_version_check): Change signature.
2470         * plugin-version.c: Remove.
2471         * plugin.c: Include plugin-version.h.
2472         (str_plugin_gcc_version_name): Remove.
2473         (try_init_one_plugin): Pass gcc version to plugin_init.
2474         (plugin_default_version_check): Both gcc and plugin versions are now
2475         arguments.
2476
2477 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2478         
2479         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2480         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
2481         Remove special case testing for last insn of inner loops. Don't fail
2482         if the loop ends with a jump, emit an extra nop instead.
2483
2484         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2485         DREGS rather than comparing directly.  Remove code that tries to
2486         account for latencies.
2487
2488 2009-04-29  Richard Guenther  <rguenther@suse.de>
2489
2490         PR tree-optimization/39941
2491         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2492         eliminating an indirect call.
2493
2494 2009-04-29  Richard Guenther  <rguenther@suse.de>
2495
2496         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2497         parameter.  Allow invariants as base if !require_lvalue.
2498         (verify_gimple_assign_single): Adjust.
2499
2500 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2501
2502         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2503         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2504         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2505         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2506         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2507         a VEC_SELECT.
2508         * config/bfin/bfin.c (bfin_expand_builtin,
2509         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2510
2511 2009-04-28  Richard Guenther  <rguenther@suse.de>
2512
2513         * tree-vect-loop.c (get_initial_def_for_induction): Use
2514         correct types for pointer increment.
2515
2516 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2517
2518         * toplev.c (print_version): Update GMP version string calculation.
2519
2520 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2521
2522         PR rtl-optimization/39938
2523         * resource.c (init_resource_info): Add call to df_analyze.
2524
2525 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2526
2527         * config/alpha/alpha.md (usegp): Cast the result of
2528         alpha_find_lo_sum_using_gp to enum attr_usegp.
2529         * config/alpha/alpha.c (override_options): Remove end-of-structure
2530         marker element from cpu_table.  Use array size of cpu_table to handle
2531         -mcpu and -mtune options.
2532         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2533
2534 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
2535
2536         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2537         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
2538         tune_32 and tune_64.
2539         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2540         support on PowerPC.
2541         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2542         * config/rs6000/option-defaults.h: ... here.  New file.
2543         (OPT_64, OPT_32): Define.
2544         (MASK_64BIT): Define to 0 if not already defined.
2545         (OPT_ARCH64, OPT_ARCH32): Define.
2546         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2547         and tune_64.
2548
2549 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2550
2551         * config/arm/arm.c (arm_override_options): Emit error on using
2552         fpa with AAPCS.
2553
2554 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2555
2556         PR rtl-optimization/39914
2557         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2558         registers for allocnos created from user-defined variables only
2559         when not optimizing.
2560
2561 2009-04-28  Richard Guenther  <rguenther@suse.de>
2562
2563         PR middle-end/39937
2564         * fold-const.c (fold_binary): Use distribute_real_division only
2565         on float types.
2566
2567 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
2568
2569         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2570         add hpux-stdint.h to tm_file.
2571         (hppa[12]*-*-hpux11*): Ditto.
2572         (ia64*-*-hpux*): Ditto.
2573         * config/hpux-stdint.h: New.
2574         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
2575         __STDC_EXT__ for all compiles.
2576         * config/pa/pa-hpux.h: Ditto.
2577         * config/pa/pa-hpux10.h: Ditto.
2578         * config/pa/pa-hpux11.h: Ditto.
2579
2580 2009-04-28  Catherine Moore  <clm@codesourcery.com>
2581
2582         * debug.h (set_name): Add comment.
2583
2584 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
2585
2586         PR target/39929
2587         * config/darwin.c (machopic_gen_offset): Check
2588         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2589         * config/arm/arm.c (require_pic_register): Likewise.
2590
2591 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
2592
2593         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2594         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2595         m32c_promote_prototypes): Delete.
2596
2597 2009-04-28  Michael Matz  <matz@suse.de>
2598
2599         PR middle-end/39922
2600         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2601         constants.
2602
2603 2009-04-28  Richard Guenther  <rguenther@suse.de>
2604
2605         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2606
2607 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2608
2609         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2610         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2611         * config/arm/arm-tune.md: Regenerate.
2612
2613 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
2614
2615         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2616         block if there are complex incoming edges.
2617         (sel_merge_blocks): Remove useless assert.
2618         (sel_redirect_edge_and_branch): Check that edge was redirected.
2619         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2620         (sel_find_rgns): Delete declaration.
2621         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2622         the region when it is not a preheader.
2623
2624 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2625
2626         PR c/39323
2627         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2628
2629 2009-04-28  Richard Guenther  <rguenther@suse.de>
2630
2631         * tree.h (SSA_NAME_VALUE): Remove.
2632         (struct tree_ssa_name): Remove value_handle member.
2633         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2634         array for jump threading.
2635         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2636         SSA_NAME_VALUEs.
2637         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2638         * tree-flow.h (threadedge_initialize_values): Declare.
2639         (threadedge_finalize_values): Likewise.
2640         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2641         (SSA_NAME_VALUE): Define.
2642         (threadedge_initialize_values): New function.
2643         (threadedge_finalize_values): Likewise.
2644         * tree-ssa-dom.c (ssa_name_values): New global variable.
2645         (SSA_NAME_VALUE): Define.
2646         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
2647
2648 2009-04-28  Ira Rosen  <irar@il.ibm.com>
2649
2650         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2651         Use REPORT_VECTORIZED_LOCATIONS instead 
2652         REPORT_VECTORIZED_LOOPS.
2653         * tree-vectorizer.c (vect_verbosity_level): Make static.
2654         (vect_loop_location): Rename to vect_location.
2655         (vect_set_verbosity_level): Update comment.
2656         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2657         and vect_location.
2658         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2659         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2660         instead REPORT_UNVECTORIZED_LOOPS.
2661         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2662         and vect_loop_def to vect_external_def and vect_internal_def.
2663         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
2664         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
2665         REPORT_UNVECTORIZED_LOCATIONS.
2666         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2667         and vect_used_in_loop and to vect_unused_in_scope and 
2668         vect_used_in_scope.
2669         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2670         (vect_verbosity_level): Remove declaration.
2671         (vect_analyze_operations): Likewise.
2672         (vect_analyze_stmt): Declare.
2673         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2674         REPORT_UNVECTORIZED_LOCATIONS.
2675         (vect_get_loop_niters): Fix indentation.
2676         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2677         (vect_analyze_loop_operations): New function.
2678         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2679         vect_analyze_operations.
2680         (vect_is_simple_reduction): Use new names.
2681         (vectorizable_live_operation, vect_transform_loop): Likewise.
2682         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2683         to specify whether the data references can be a part of interleaving
2684         chain.
2685         (vect_analyze_data_ref_dependence): Use new names.
2686         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2687         (vect_create_addr_base_for_vector_ref): Remove redundant code.
2688         * tree-vect-patterns.c (widened_name_p): Use new names.
2689         (vect_recog_dot_prod_pattern): Likewise.
2690         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2691         (process_use, vect_mark_stmts_to_be_vectorized, 
2692         vect_model_simple_cost, vect_model_store_cost,
2693         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2694         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2695         vectorizable_operation, vectorizable_type_demotion,
2696         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2697         vectorizable_condition): Likewise.
2698         (vect_analyze_operations): Split into vect_analyze_loop_operations
2699         and ...
2700         (vect_analyze_stmt): ... new function.
2701         (new_stmt_vec_info): Use new names.
2702         (vect_is_simple_use): Use new names and fix comment.
2703         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2704         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2705
2706 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2707
2708         PR target/39911
2709         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2710         and integer modes for x87 operands.  Do not ICE for unsupported size,
2711         generate error instead.  Generate error for unsupported operand types.
2712         ['z']: Do not handle HImode memory operands specially.  Warning
2713         for floating-point operands.  Fallthru to 'Z' for unsupported operand
2714         types.  Do not ICE for unsupported size, generate error instead.
2715         (output_387_binary_op): Use %Z to output operands.
2716         (output_fp_compare): Ditto.
2717         (output_387_reg_move): Ditto.
2718
2719 2009-04-28  Ben Elliston  <bje@au.ibm.com>
2720
2721         PR c++/35652
2722         Revert:
2723
2724         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2725
2726         * builtins.c (c_strlen): Do not warn here.
2727         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2728         * c-common.c (pointer_int_sum): Take an explicit location.
2729         Warn about offsets out of bounds.
2730         * c-common.h (pointer_int_sum): Adjust declaration.
2731
2732 2009-04-27  Ian Lance Taylor  <iant@google.com>
2733
2734         * collect2.c (is_ctor_dtor): Change type of ret field in struct
2735         names to symkind.
2736         * dce.c (run_fast_df_dce): Change type of old_flags to int.
2737         * df-core.c (df_set_flags): Change return type to int.  Change
2738         type of old_flags to int.
2739         (df_clear_flags): Likewise.
2740         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2741         (df_get_conditional_uses): Likewise.
2742         * df.h (df_set_flags, df_clear_flags): Update declarations.
2743         * dwarf2out.c (struct indirect_string_node): Change type of form
2744         field to enum dwarf_form.
2745         (AT_string_form): Change return type to enum dwarf_form.
2746         * fixed-value.c (fixed_compare): Add cast to enum type.
2747         * fwprop.c (update_df): Change 0 to VOIDmode.
2748         * gensupport.c: Change 0 to UNKNOWN.
2749         * gimple.h (gimple_cond_code): Add cast to enum type.
2750         * haifa-sched.c (reemit_notes): Add cast to enum type.
2751         * hooks.c (hook_int_void_no_regs): Remove function.
2752         * hooks.h (hook_int_void_no_regs): Remove declaration.
2753         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
2754         * predict.c (combine_predictions_for_insn): Add casts to enum type.
2755         * real.c (real_arithmetic): Add cast to enum type.
2756         (real_compare): Likewise.
2757         * target.h (struct gcc_target): Change return type of
2758         branch_target_register_class to enum reg_class.
2759         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2760         default_branch_target_register_class.
2761         * targhooks.c (default_branch_target_register_class): New function.
2762         * targhooks.h (default_branch_target_register_class): Declare.
2763         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
2764         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2765         cast to int.
2766         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2767         ERROR_MARK.
2768         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2769         vect_uninitialized_def.  Change 0 to ERROR_MARK.
2770         * tree-vect-stmts.c (supportable_widening_operation): Don't
2771         initialize icode1 and icode2.
2772         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
2773         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2774         and to STD_C89.
2775         (cmn_err_flag_specs): Change 0 to STD_C89.
2776         (cmn_err_char_table): Likewise.
2777         * config/arm/arm.c (get_arm_condition_code): Change type of code
2778         to enum arm_cond_code.
2779         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2780         (IWMMXT_BUILTIN2): Likewise.
2781         (neon_builtin_type_bits): Don't define typedef.
2782         (neon_builtin_datum): Change type of bits field to int.
2783         (arm_expand_neon_args): Add cast to enum type.
2784         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2785         TLS_MODEL_NONE.
2786         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
2787         casts to enum type.
2788         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2789         MIPS_FP_COND_f.
2790         * config/mips/mips.md (jal_macro): Return enum constant.
2791         (single_insn): Likewise.
2792         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2793         CODE_FOR_nothing.
2794         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2795         casts to enum type.
2796         * config/s390/s390.c (s390_tune_flags): Change type to int.
2797         (s390_arch_flags): Likewise.
2798         (s390_handle_arch_option): Change flags field of struct pta to int.
2799         * config/s390/s390.h (s390_tune_flags): Update declaration.
2800         (s390_arch_flags): Likewise.
2801         * config/sh/sh.c (prepare_move_operands): Compare
2802         tls_symbolic_operand result with enum constant.
2803         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2804         (sh_expand_prologue): Add cast to enum type.
2805         (sh_expand_epilogue): Likewise.
2806         (tls_symbolic_operand): Change return type to enum tls_model.
2807         (fpscr_set_from_mem): Add cast to enum type.
2808         (legitimize_pic_address): Compare tls_symbolic_operand result with
2809         enum constant.
2810         (sh_target_reg_class): Change return type to enum reg_class.
2811         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2812         PROCESSOR_xxx.
2813         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2814         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
2815         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2816         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2817         (delayed_branch, tls_call_delay): Likewise.
2818         (eligible_for_sibcall_delay): Likewise.
2819         (eligible_for_return_delay): Likewise. 
2820         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2821         (spu_expand_builtin_1): Likewise.
2822
2823         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2824         for all types of conversions.
2825         (output_init_element): Issue -Wc++-compat warning if needed when
2826         initializing a bitfield with enum type.
2827         * c-parser.c (c_parser_expression): Set original_type to
2828         original_type of right hand operand of comman operator.
2829
2830 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2831
2832         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2833         grammar nits.
2834         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
2835         * doc/cpp.texi (Standard Predefined Macros)
2836         (Implementation-defined behavior): Likewise.
2837         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
2838         * doc/gimple.texi (GIMPLE Exception Handling)
2839         (@code{GIMPLE_ASSIGN}): Likewise.
2840         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
2841         * doc/invoke.texi (Warning Options, Optimize Options)
2842         (AVR Options, Darwin Options): Likewise.
2843         (Optimize Options): Reformulate -fwhole-program description.
2844         * doc/loop.texi (Lambda): Likewise.
2845         * doc/md.texi (Output Template, Define Constraints)
2846         (Standard Names, Insn Splitting): Likewise.
2847         * doc/options.texi (Option properties): Likewise.
2848         * doc/passes.texi (Tree-SSA passes): Likewise.
2849         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2850         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2851         (File Names and DBX): Likewise.
2852         * doc/trouble.texi (Incompatibilities): Likewise.
2853
2854 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2855
2856         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2857         instruction is correct.
2858
2859 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2860
2861         Allow non-constant arguments to conversion intrinsics.
2862         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2863         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2864         * spu.c (print_operand): Handle 'v' and 'w'.
2865         (exp2_immediate_p, spu_gen_exp2): Define.
2866         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2867         spu_convtf_1): Update parameter descriptions.
2868         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
2869         * constraints.md ('v', 'w'): New.
2870         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2871         Remove.
2872         (i2f, I2F): New define_mode_attr.
2873         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2874         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2875         fixuns_truncv4sfv4si2):  Update to use mode attribute.
2876         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2877         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2878         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2879         patterns for combine.
2880
2881 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
2882
2883         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2884         (cprop, hoist, pre, store_motion): New debug counters.
2885         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2886         is not an RTL pass anymore.
2887         (pass_profiling): Remove extern decl for pass removed in 2005.
2888         (pass_gcse, pass_jump_bypass): Remove.
2889         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2890         to 0 for clean state.
2891         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2892         * cse.c (gate_handle_cse_after_global_opts,
2893         rest_of_handle_cse_after_global_opts): New functions.
2894         (pass_cse_after_global_opts): New pass, does local CSE.
2895         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2896         (TV_CPROP): New timevar.
2897         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2898         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2899         (gcse_main, recompute_all_luids): Remove.
2900         (compute_hash_table_work): Call max_reg_num instead of reading
2901         max_gcse_regno.
2902         (cprop_jump): Don't set run_jump_opt_after_gcse.
2903         (constprop_register): Always allow to alter jumps.
2904         (cprop_insn): Likewise.
2905         (do_local_cprop): Likewise.
2906         (local_cprop_pass): Likewise.  Return non-zero if something changed.
2907         (cprop): Remove function, fold interesting bits into one_cprop_pass.
2908         (find_implicit_sets): Add note about missed optimization opportunity.
2909         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2910         pass_rtl_cprop execute function.
2911         Don't bother tracking the pass number, each pass gets its own dumpfile
2912         now anyway.
2913         Always allow to alter jumpsand bypass jumps.
2914         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2915         will just find no suitable set.
2916         (pre_edge_insert): Fix dumping, this function is for PRE only.
2917         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2918         pass_rtl_pre execute function.
2919         (hoist_code): Return non-zero if something changed.  Keep track of
2920         substitutions and insertions for statistics gathering similar to PRE.
2921         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2922         called from the pass_rtl_hoist execute function.  Show pass statistics.
2923         (compute_store_table): Use max_reg_num directly instead of using the
2924         formerly global max_gcse_regno.
2925         (build_store_vectors): Likewise.
2926         (replace_store_insn): Fix dumping.
2927         (store_motion): Rename to ...
2928         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
2929         pass, called from the pass_rtl_store_motion execute function.  Keep
2930         track of substitutions and insertions for statistics gathering similar
2931         to PRE.
2932         (bypass_jumps): Remove, fold interesting bits into ...
2933         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
2934         from the pass_rtl_cprop execute function.
2935         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2936         pass_jump_bypass): Remove.
2937         (gate_handle_gcse, rest_of_handle_gcse): Remove.
2938         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2939         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2940         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2941         (gate_rtl_store_motion, execute_rtl_store_motion,
2942         pass_rtl_store_motion): New.
2943         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2944         make it clear that -fcse-skip-blocks is a no-op for backward compat.
2945         * passes.c (init_optimization_passes): Remove pass_gcse and
2946         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
2947         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
2948         instead of pass_jump_bypass.
2949
2950 2009-04-27  Richard Guenther  <rguenther@suse.de>
2951
2952         PR middle-end/39928
2953         * gimplify.c (gimplify_expr): If we are required to create
2954         a temporary make sure it ends up as register.
2955
2956 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
2957
2958         PR target/39903
2959         * config/i386/i386.c (construct_container): Don't call
2960         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2961         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2962
2963 2009-04-27  Michael Matz  <matz@suse.de>
2964
2965         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2966         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2967         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2968         (dump_replaceable_exprs): Take a bitmap.
2969         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2970         array.
2971         (expand_gimple_basic_block): Likewise.
2972         * tree-ssa-ter.c (struct temp_expr_table_d): Make
2973         replaceable_expressions member a bitmap.
2974         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2975         (mark_replaceable): Likewise.
2976         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2977         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2978
2979 2009-04-27  Richard Guenther  <rguenther@suse.de>
2980
2981         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2982         (verify_stmts): Dispatch to gimple/type verification code.
2983         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2984         issue with call argument types.
2985
2986 2009-04-27  Michael Matz  <matz@suse.de>
2987
2988         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2989         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2990         to above.
2991
2992 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2993             Eric Botcazou  <ebotcazou@adacore.com>
2994
2995         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2996         a label's basic block.
2997         (mark_target_live_regs): Tidy and rework obsolete comments.
2998         Change back DF problem to LIVE.  If a label starts a basic block,
2999         assume that all registers that used to be live then still are.
3000         (init_resource_info): If a label starts a basic block, set its
3001         BLOCK_FOR_INSN accordingly.
3002         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
3003
3004 2009-04-27  Richard Guenther  <rguenther@suse.de>
3005
3006         * tree-flow-inline.h (function_ann): Remove.
3007         (get_function_ann): Likewise.
3008         * tree-dfa.c (create_function_ann): Remove.
3009         * tree-flow.h (struct static_var_ann_d): Remove.
3010         (struct function_ann_d): Likewise.
3011         (union tree_ann_d): Remove fdecl member.
3012         (function_ann_t): Remove.
3013         (function_ann, get_function_ann, create_function_ann): Remove
3014         declarations.
3015
3016 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
3017
3018         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
3019
3020 2009-04-27  Jan Hubicka  <jh@suse.cz>
3021
3022         * ipa-pure-const.c (struct funct_state_d): New fields
3023         state_previously_known, looping_previously_known; remove
3024         state_set_in_source.
3025         (analyze_function): Use new fields.
3026         (propagate): Avoid assumption that state_set_in_source imply
3027         nonlooping.
3028
3029         * tree-ssa-loop-niter.c (finite_loop_p): New function.
3030         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
3031         * cfgloop.h (finite_loop_p): Declare.
3032
3033 2009-04-26  Michael Matz  <matz@suse.de>
3034
3035         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
3036
3037 2009-04-26  Michael Matz  <matz@suse.de>
3038
3039         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
3040         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
3041         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
3042         pass_mark_used_blocks): Remove.
3043         * tree-optimize.c (pass_free_datastructures,
3044         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
3045         * passes.c (init_optimization_passes): Don't call
3046         pass_mark_used_blocks, remove dead code.
3047
3048 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
3049
3050         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
3051         * tree-ssa-live.h (register_ssa_partition): Likewise.
3052
3053 2009-04-26  Michael Matz  <matz@suse.de>
3054
3055         Expand from SSA.
3056         * builtins.c (fold_builtin_next_arg): Handle SSA names.
3057         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
3058         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
3059         SSA names. 
3060         (compare_pairs): Swap cost comparison.
3061         (coalesce_ssa_name): Don't use change_partition_var.
3062         * tree-nrv.c (struct nrv_data): Add modified member.
3063         (finalize_nrv_r): Set it.
3064         (tree_nrv): Use it to update statements.
3065         (pass_nrv): Require PROP_ssa.
3066         * tree-mudflap.c (mf_decl_cache_locals,
3067         mf_build_check_statement_for): Use make_rename_temp.
3068         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
3069         * alias.c (find_base_decl): Handle SSA names.
3070         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
3071         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
3072         * rtl.h (set_reg_attrs_for_parm): Declare.
3073         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
3074         to "optimized", remove unused locals at finish.
3075         (execute_free_datastructures): Make global, call
3076         delete_tree_cfg_annotations.
3077         (execute_free_cfg_annotations): Don't call
3078         delete_tree_cfg_annotations.
3079
3080         * ssaexpand.h: New file.
3081         * expr.c (toplevel): Include ssaexpand.h.
3082         (expand_assignment): Handle SSA names the same as register variables.
3083         (expand_expr_real_1): Expand SSA names.
3084         * cfgexpand.c (toplevel): Include ssaexpand.h.
3085         (SA): New global variable.
3086         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
3087         (SSAVAR): New macro.
3088         (set_rtl): New helper function.
3089         (add_stack_var): Deal with SSA names, use set_rtl.
3090         (expand_one_stack_var_at): Likewise.
3091         (expand_one_stack_var): Deal with SSA names.
3092         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
3093         before unique numbers.
3094         (expand_stack_vars): Use set_rtl.
3095         (expand_one_var): Accept SSA names, add asserts for them, feed them
3096         to above subroutines.
3097         (expand_used_vars): Expand all partitions (without default defs),
3098         then only the local decls (ignoring those expanded already).
3099         (expand_gimple_cond): Remove edges when jumpif() expands an
3100         unconditional jump.
3101         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
3102         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
3103         SSA name.
3104         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
3105         members of SA; deal with PARM_DECL partitions here; expand
3106         all PHI nodes, free tree datastructures and SA.  Commit instructions
3107         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
3108         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
3109         info and statements at start, collect garbage at finish.
3110         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
3111         (VAR_ANN_PARTITION) Remove.
3112         (change_partition_var): Don't declare.
3113         (partition_to_var): Always return SSA names.
3114         (var_to_partition): Only accept SSA names.
3115         (register_ssa_partition): Only check argument.
3116         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
3117         member.
3118         (delete_var_map): Don't free it.
3119         (var_union): Only accept SSA names, simplify.
3120         (partition_view_init): Mark only useful SSA names as used.
3121         (partition_view_fini): Only deal with SSA names.
3122         (change_partition_var): Remove.
3123         (dump_var_map): Use ssa_name instead of partition_to_var member.
3124         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
3125         basic blocks.
3126         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
3127         (struct _elim_graph): New member const_dests; nodes member vector of
3128         ints.
3129         (set_location_for_edge): New static helper.
3130         (create_temp): Remove.
3131         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
3132         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
3133         (new_elim_graph): Allocate const_dests member.
3134         (clean_elim_graph): Truncate const_dests member.
3135         (delete_elim_graph): Free const_dests member.
3136         (elim_graph_size): Adapt to new type of nodes member.
3137         (elim_graph_add_node): Likewise.
3138         (eliminate_name): Likewise.
3139         (eliminate_build): Don't take basic block argument, deal only with
3140         partition numbers, not variables.
3141         (get_temp_reg): New static helper.
3142         (elim_create): Use it, deal with RTL temporaries instead of trees.
3143         (eliminate_phi): Adjust all calls to new signature.
3144         (assign_vars, replace_use_variable, replace_def_variable): Remove.
3145         (rewrite_trees): Only do checking.
3146         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
3147         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
3148         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
3149         contains_tree_r, MAX_STMTS_IN_LATCH,
3150         process_single_block_loop_latch, analyze_edges_for_bb,
3151         perform_edge_inserts): Remove.
3152         (expand_phi_nodes): New global function.
3153         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
3154         functions, initialize new parameter, remember partitions having a
3155         default def.
3156         (finish_out_of_ssa): New global function.
3157         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
3158         don't reset in_ssa_p here, don't disable TER when mudflap.
3159         (pass_del_ssa): Remove.
3160         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
3161         partition members.
3162         (execute_free_datastructures): Declare.
3163         * Makefile.in (SSAEXPAND_H): New variable.
3164         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
3165         * basic-block.h (commit_one_edge_insertion): Declare.
3166         * passes.c (init_optimization_passes): Move pass_nrv and
3167         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
3168         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
3169         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
3170         (redirect_branch_edge): Deal with super block when expanding, split
3171         out jump patching itself into ...
3172         (patch_jump_insn): ... here, new static helper.
3173
3174 2009-04-26  Michael Matz  <matz@suse.de>
3175
3176         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
3177         beyond num_ssa_names.
3178         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
3179         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3180
3181 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
3182
3183         PR inline-asm/39543
3184         * fwprop.c (forward_propagate_asm): New function.
3185         (forward_propagate_and_simplify): Propagate also into __asm, if it
3186         doesn't increase the number of referenced registers.
3187
3188         PR c/39889
3189         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
3190
3191 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
3192
3193         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
3194         note_nonlocal_vla_type for nonlocal VLAs.
3195         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
3196         contains_remapped_vars, remap_vla_decls): New functions.
3197         (convert_nonlocal_reference_stmt): If not optimizing, call
3198         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
3199         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
3200         if it wasn't found in var_map.
3201         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
3202         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
3203         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
3204         declare_vars.
3205         * gimplify.c (nonlocal_vlas): New variable.
3206         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
3207         referenced VLAs.
3208         (gimplify_body): Create and destroy nonlocal_vlas.
3209
3210         * dwarf2out.c (loc_descr_plus_const): New function.
3211         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
3212         mem_loc_descriptor, loc_descriptor_from_tree_1,
3213         descr_info_loc, gen_variable_die): Use it.
3214
3215         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
3216         !TREE_STATIC VAR_DECLs.
3217         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
3218         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
3219         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
3220         DECL_BY_REFERENCE is valid.
3221         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
3222         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
3223         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
3224         Copy DECL_BY_REFERENCE.
3225         (struct nesting_copy_body_data): New type.
3226         (nesting_copy_decl): New function.
3227         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
3228         if they have variable length.
3229
3230 2009-04-26  Michael Matz  <matz@suse.de>
3231
3232         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3233         mark new temporaries for renaming.
3234
3235 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3236
3237         PR c/39581
3238         * c-decl.c (global_bindings_p): Return negative value.
3239         (c_variable_size): New.  Based on variable_size from
3240         stor-layout.c.
3241         (grokdeclarator): Call c_variable_size not variable_size.
3242
3243 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
3244
3245         * config/i386/i386.c (print_operand) ['z']: Fix typo.
3246
3247 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
3248
3249         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3250         Redefine it to just use mingw/include.
3251         (ASM_SPEC): Rules for -m32 and -m64.
3252         (LINK_SPEC): Use Likewise.
3253         (SPEC_32): New define.
3254         (SPEC_64): Likewise.
3255         (SUB_LINK_SPEC): Likewise.
3256         (MULTILIB_DEFAULTS): New define.
3257         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3258         Add multilib options.
3259         (MULTILIB_DIRNAMES): Likewise.
3260         (MULTILIB_OSDIRNAMES): Likewise.
3261         (LIBGCC): Likewise.
3262         (INSTALL_LIBGCC): Likewise.
3263
3264 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3265
3266         PR c/39556
3267         * c-tree.h (enum c_inline_static_type): New.
3268         (record_inline_static): Declare.
3269         * c-decl.c (struct c_inline_static, c_inline_statics,
3270         record_inline_static, check_inline_statics): New.
3271         (pop_file_scope): Call check_inline_statics.
3272         (start_decl): Call record_inline_static instead of pedwarning
3273         directly for static in inline function.
3274         * c-typeck.c (build_external_ref): Call record_inline_static
3275         instead of pedwarning directly for static referenced in inline
3276         function.
3277
3278 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
3279
3280         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3281         not new but only being rescanned.
3282         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3283         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3284         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3285         record_set_info, compute_set, grealloc): Remove.
3286         (recompute_all_luids): New function.
3287         (gcse_main): Don't compute sets, and don't do related memory
3288         allocations/free-ing.  If something changed before the end of the
3289         pass, update LUIDs using recompute_all_luids.
3290         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
3291         (free_gcse_mem): Don't free it either.
3292         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3293         Use the df insn LUIDs.
3294         (load_killed_in_block): Likewise.
3295         (compute_hash_table_work): Don't compute reg_set_in_block.
3296         (compute_transp): Use DF_REG_DEF_CHAINs.
3297         (local_cprop_pass): Don't use compute_sets and related functions.
3298         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3299         Use get_max_uid() instead of max_cuid.
3300         (insert_insn_end_basic_block, pre_insert_copy_insn,
3301         update_ld_motion_stores): Don't try to
3302         keep reg_set tables up to date.
3303         (pre_insert_copies): Use df insn LUIDs.
3304         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3305         (reg_set_info): Don't use extra bitmap argument.
3306         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
3307         information to compute regs_set_in_block.
3308         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3309         (bypass_jumps): Don't use compute_sets and friends.
3310
3311 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3312
3313         PR testsuite/39710
3314         * opts.c (undocumented_msg): Do not leave blank even with
3315         ENABLE_CHECKING.
3316
3317 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3318
3319         * c-decl.c (build_enumerator): Allow values folding to integer
3320         constants but not integer constant expressions with a pedwarn if
3321         pedantic.
3322
3323 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3324
3325         PR c/39582
3326         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3327         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3328         type is an integer constant.
3329
3330 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3331
3332         PR target/39897
3333         * config/i386/i386.c (print_operand) ['z']: Revert handling of
3334         HImode operands.
3335
3336 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3337
3338         PR c/39564
3339         * c-decl.c (grokdeclarator): Diagnose declarations of functions
3340         with variably modified return type and no storage class
3341         specifiers, except for the case of nested functions.  Distinguish
3342         extern declarations of functions with variably modified return
3343         types from those of objects with variably modified types.
3344
3345 2009-04-25  Jan Hubicka  <jh@suse.cz>
3346
3347         * tree.c (list_equal_p): New function.
3348         * tree.h (list_equal_p): Declare.
3349         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3350         basic_block_def, basic_block, const_basic_block): New.
3351         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3352         (redirect_eh_edge): New function.
3353         (make_eh_edge_update_phi): EH edges are not abnormal.
3354         * except.c: Include tree-flow.h.
3355         (list_match): New function.
3356         (eh_region_replaceable_by_p): New function.
3357         (replace_region): New function.
3358         (hash_type_list): New function.
3359         (hash_eh_region): New function.
3360         (eh_regions_equal_p): New function.
3361         (merge_peers): New function.
3362         (remove_unreachable_regions): Verify EH tree when checking;
3363         merge peers.
3364         (copy_eh_region_1): New function.
3365         (copy_eh_region): New function.
3366         (push_reachable_handler): New function.
3367         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3368         regions without label but with live RESX.
3369         * except.h (redirect_eh_edge_to_label): New.
3370         * tree-flow.h (redirect_eh_edge): New.
3371         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3372         basic_block_def, basic_block, const_basic_block): Remove.
3373         * Makefile.in (except.o): Add dependency on tree-flow.h
3374         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3375         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3376         Remove.
3377
3378 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3379
3380         PR bootstrap/39645
3381         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3382         on the destination of memcpy.
3383
3384 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
3385
3386         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3387         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3388         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3389
3390 2009-04-25  Jan Hubicka  <jh@suse.cz>
3391
3392         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3393         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3394         to be reached by different label than left.
3395         (update_eh_edges): Update comment; remove edge_to_remove if possible
3396         and return true if suceeded.
3397         (cleanup_empty_eh): Accept sharing map; handle shared regions.
3398         (cleanup_eh): Compute sharing map.
3399         * except.c (remove_eh_handler_and_replace): Add argument if we should
3400         update regions.
3401         (remove_unreachable_regions): Update for label sharing.
3402         (label_to_region_map): Likewise.
3403         (get_next_region_sharing_label): New function.
3404         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3405         prev_try pointers.
3406         (remove_eh_handler): Update.
3407         (remove_eh_region_and_replace_by_outer_of): New function.
3408         * except.h (struct eh_region): Add next_region_sharing_label.
3409         (remove_eh_region_and_replace_by_outer_of,
3410         get_next_region_sharing_label): Declare.
3411         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3412
3413 2009-04-25  Jan Hubicka  <jh@suse.cz>
3414
3415         * tree-cfg.c (split_critical_edges): Split also edges where we can't
3416         insert code even if they are not critical.
3417
3418 2009-04-25  Jan Hubicka  <jh@suse.cz>
3419
3420         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3421         (gimple_can_remove_branch_p): EH edges won't remove branch by
3422         redirection.
3423         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3424         updating of non-abnormal EH edges.
3425         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3426         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3427         (split_critical_edges): Split also edges where emitting code on them
3428         will lead to splitting later.
3429
3430 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3431             H.J. Lu  <hongjiu.lu@intel.com>
3432
3433         PR target/39590
3434         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3435         the configured assembler supports fildq and fistpq mnemonics.
3436         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3437         * configure: Regenerated.
3438         * config.in: Ditto.
3439
3440         * config/i386/i386.c (print_operand): Handle 'Z'.
3441         ['z']: Remove handling of special fild/fist suffixes.
3442         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3443         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3444         suffix of fild insn.
3445         (*floatsi<mode>2_vector_mixed): Ditto.
3446         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3447         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3448         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3449         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3450         * config/i386/gas.h (GAS_MNEMONICS): Remove.
3451
3452 2009-04-25  Ben Elliston  <bje@au.ibm.com>
3453  
3454         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3455         the source of a set operation.
3456
3457 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
3458
3459         * target.h (struct gcc_target): Add case_values_threshold field.
3460         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3461         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3462         * targhooks.c (default_case_values_threshold): New function.
3463         * targhooks.h (default_case_values_threshold): Declare function.
3464         * stmt.c (expand_case): Use case_values_threshold target hook.
3465         * expr.h (case_values_threshold): Remove declartation.
3466         * expr.c (case_values_threshold): Remove function.
3467         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3468
3469         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3470         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3471         (avr_case_values_threshold): Declare as static.
3472         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3473
3474         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3475         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3476         (mn10300_case_values_threshold): New function.
3477
3478 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3479
3480         * ira.c (setup_cover_and_important_classes): Add enum cast.
3481
3482 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3483
3484         * genpreds.c (write_enum_constraint_num): Output definition of
3485         CONSTRAINT_NUM_DEFINED_P macro.
3486         * ira.c (setup_cover_and_important_classes): Use
3487         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3488         
3489 2009-04-24  DJ Delorie  <dj@redhat.com>
3490
3491         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3492         __SH2A_SINGLE_ONLY__ also.
3493
3494 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
3495
3496         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3497         (movdf_internal): Ditto.
3498         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3499         SFmode and DFmode constants.
3500         (ia64_print_operand): Add 'G' format for printing
3501         floating point constants.
3502
3503 2009-04-24  Richard Guenther  <rguenther@suse.de>
3504
3505         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3506         from unsigned additions.
3507
3508 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
3509
3510         * c-typeck.c (set_init_index): Allow array designators that are
3511         not integer constant expressions with a pedwarn if pedantic.
3512
3513 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3514
3515         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3516         zero if no overlap in nonzero bits between the operands.
3517
3518 2009-04-24  Ian Lance Taylor  <iant@google.com>
3519
3520         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3521         (record_dead_and_set_regs): Likewise.
3522         * df.h (struct df_mw_hardreg): Change flags field to int.
3523         (struct df_base_ref): Likewise.
3524         (struct df): Change changeable_flags field to int.
3525         * df-scan.c (df_defs_record): Change clobber_flags to int.
3526         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3527         constants rather than #define macros.
3528         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3529         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3530         (enum dwarf_calling_convention): Likewise.
3531         (enum dwarf_line_number_x_ops): Likewise.
3532         (enum dwarf_call_frame_info): Likewise.
3533         (enum dwarf_source_language): Likewise.
3534         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3535         (add_calling_convention_attribute): Likewise.
3536         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3537         (combine_comparisons): Change compcode to int.  Add cast to enum type.
3538         * genrecog.c (maybe_both_true_2): Change c to int.
3539         (write_switch): Likewise.  Add cast to enum type.
3540         * gimplify.c (gimplify_omp_for): Handle return values from
3541         gimplify_expr using MIN rather than bitwise or.
3542         (gimplify_expr): Add cast to enum type.
3543         * ipa-prop.c (update_jump_functions_after_inlining): Change
3544         IPA_BOTTOM to IPA_JF_UNKNOWN.
3545         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3546         Add casts to enum type.
3547         (setup_cover_and_important_classes): Change cl to int.  Add casts
3548         to enum type.
3549         (setup_class_translate): Change cl and mode to int.
3550         (ira_init_once): Change mode to int.
3551         (free_register_move_costs): Likewise.
3552         (setup_prohibited_mode_move_regs): Add casts to enum type.
3553         * langhooks.c (add_builtin_function_common): Rework assertion that
3554         value fits bitfield.
3555         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3556         * omega.c (omega_do_elimination): Avoid math on enum types.
3557         * optabs.c (expand_vec_shift_expr): Remove casts to int.
3558         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
3559         int local to handle integral_argment value.
3560         * regmove.c (try_auto_increment): Change PUT_MODE to
3561         PUT_REG_NOTE_KIND.
3562         * reload.c (push_secondary_reload): Add casts to enum type.
3563         (secondary_reload_class, find_valid_class): Likewise.
3564         * reload1.c (emit_input_reload_insns): Likewise.
3565         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3566         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3567         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3568         constant.
3569         * tree.c (build_common_builtin_nodes): Add casts to enum type.
3570         * tree-complex.c (complex_lattice_t): Typedef to int rather than
3571         enum type.
3572         (expand_complex_libcall): Add casts to enum type.
3573         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3574         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3575         with ERROR_MARK, not NUM_TREE_CODES.
3576         (vect_create_epilog_for_reduction): Likewise.
3577         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
3578         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
3579         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3580         enum machine_mode.
3581         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3582         vect_unused_in_loop.  Change 0 to loop_vect.
3583         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
3584         * var-tracking.c (get_init_value): Change return type to enum
3585         var_init_status.
3586         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3587         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3588         arm_fp_model.
3589         (arm_override_options): Add casts to enum type.
3590         (arm_emit_tls_decoration): Likewise.
3591         * config/i386/i386.c (ix86_function_specific_restore): Add casts
3592         to enum type.
3593         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3594         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3595         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3596         enum type.
3597         * config/s390/s390.c (code_for_builtin_64): Change to array of
3598         enum insn_code.
3599         (code_for_builtin_31): Likewise.
3600         (s390_expand_builtin): Change code_for_builtin to enum insn_code
3601         const *.
3602         * config/sparc/sparc.c (sparc_override_options): Change value
3603         field in struct code_model to enum cmodel.  In initializer change
3604         0 to NULL and add cast to enum type.
3605
3606         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3607         Change all callers.  Issue a -Wc++-compat warning using
3608         lhs_origtype if necessary.
3609         (convert_for_assignment): Issue -Wc++-compat warnings about
3610         invalid conversions to enum type on assignment.
3611         * c-common.h (build_modify_expr): Update declaration.
3612
3613 2009-04-24  Nick Clifton  <nickc@redhat.com>
3614
3615         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3616         (function_arg_advance): Likewise.
3617         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3618         5th alternative.
3619
3620 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3621
3622         * config/s390/constraints.md ('I', 'J'): Fix condition.
3623
3624 2009-04-24  Diego Novillo  <dnovillo@google.com>
3625
3626         * gengtype-parse.c (parse_error): Add newline after message.
3627
3628 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3629
3630         * config/i386/sse.md (avxmodesuffixs): Removed.
3631         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3632         (*avx_pinsr<ssevecsize>): This.
3633
3634 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3635
3636         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3637         follow chains of regs with a single definition, and allow expressions
3638         that are function_invariant_p.
3639         (simple_rhs_p): Allow expressions that are function_invariant_p.
3640
3641 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
3642
3643         PR middle-end/39867
3644         * fold-const.c (fold_cond_expr_with_comparison): When folding
3645         > and >= to MAX, make sure the MAX uses the same type as the
3646         comparison's operands.
3647
3648 2009-04-24  Nick Clifton  <nickc@redhat.com>
3649
3650         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3651         addressing for DImode accesses.
3652         (frv_print_operand_address): Handle PLUS case.
3653         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
3654
3655 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
3656
3657         PR rtl-optimization/39794
3658         * alias.c (canon_true_dependence): Add x_addr argument.
3659         * rtl.h (canon_true_dependence): Adjust prototype.
3660         * cse.c (check_dependence): Adjust canon_true_dependence callers.
3661         * cselib.c (cselib_invalidate_mem): Likewise.
3662         * gcse.c (compute_transp): Likewise.
3663         * dse.c (scan_reads_nospill): Likewise.
3664         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
3665         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3666         canon_base_addr of the group, plus optional offset.
3667         (struct group_info): Rename canon_base_mem to
3668         canon_base_addr.
3669         (get_group_info): Set canon_base_addr to canon_rtx of base, not
3670         canon_rtx of base_mem.
3671
3672 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
3673
3674         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3675         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3676
3677 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3678
3679         * config/spu/spu-builtins.h: Delete file.
3680
3681         * config/spu/spu.h (enum spu_builtin_type): Move here from
3682         spu-builtins.h.
3683         (struct spu_builtin_description): Likewise.  Add GTY marker.
3684         Do not use enum spu_function_code or enum insn_code.
3685         (spu_builtins): Add extern declaration.
3686
3687         * config/spu/spu.c: Do not include "spu-builtins.h".
3688         (enum spu_function_code, enum spu_builtin_type_index,
3689         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3690         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3691         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3692         unsigned_V2DI_type_node): Move here from spu-builtins.h.
3693         (spu_builtin_types): Make static.  Add GTY marker.
3694         (spu_builtins): Add extern declaration with GTY marker.
3695         Include "gt-spu.h".
3696
3697         * config/spu/spu-c.c: Do not include "spu-builtins.h".
3698         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3699         Check programmatically whether all parameters are scalar.
3700
3701         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3702
3703 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3704
3705         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3706         assignment from the constructor either if the target is volatile.
3707
3708 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
3709
3710         * config/arm/arm.md (insv): Do not share operands[0].
3711
3712 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
3713
3714         * config/vxlib-tls.c (active_tls_threads): Delete.
3715         (delete_hook_installed): New.
3716         (tls_delete_hook): Don't delete the delete hook.
3717         (tls_destructor): Delete it here.
3718         (__gthread_set_specific): Adjust installing the delete hook.
3719         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3720         __gthread_leave_tsd_dtor_context.
3721
3722 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
3723
3724         * c-format.c (gcc_tdiag_char_table): Add support for %E.
3725
3726 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
3727
3728         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3729         enum type.
3730         (alpha_rtx_costs): Ditto.
3731         (emit_unlikely_jump): Use add_reg_note.
3732         (emit_frame_store_1): Ditto.
3733         (alpha_expand_prologue): Ditto.
3734         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3735         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3736
3737 2009-04-23  Nick Clifton  <nickc@redhat.com>
3738
3739         * config/v850/v850.md (epilogue): Remove suppressed code.
3740         (return): Rename to return_simple and remove test of frame size.
3741         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3742         to gen_return_simple.
3743
3744 2009-04-22  Jing Yu  <jingyu@google.com>
3745
3746         PR testsuite/39781
3747         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3748
3749 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3750
3751         PR C/31499
3752         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3753         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
3754         value is a VECTOR_CST, the element type is the element type of the
3755         vector.
3756
3757 2009-04-22  DJ Delorie  <dj@redhat.com>
3758
3759         * config/m32c/m32c.h: Update GTY annotations to new syntax.
3760
3761 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
3762
3763         * alias.c (find_base_term): Move around LO_SUM case, so that
3764         CONST falls through into PLUS/MINUS handling.
3765
3766         PR c/39855
3767         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3768         into 0, use omit_one_operand.
3769
3770 2009-04-23  Ben Elliston  <bje@au.ibm.com>
3771
3772         * config/rs6000/linux-unwind.h (get_regs): Remove type
3773         puns. Change the type of `pc' to an array of unsigned ints and
3774         update all users.  Constify frame24.
3775
3776 2009-04-22  DJ Delorie  <dj@redhat.com>
3777
3778         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3779         declarations before code.
3780         (current_function_special_page_vector): Likewise.
3781         (m32c_expand_insv): Silence a warning.
3782
3783 2009-04-21  Taras Glek  <tglek@mozilla.com>
3784
3785         * alias.c: Update GTY annotations to new syntax.
3786         * basic-block.h: Likewise.
3787         * bitmap.h: Likewise.
3788         * c-common.h: Likewise.
3789         * c-decl.c: Likewise.
3790         * c-parser.c: Likewise.
3791         * c-pragma.c: Likewise.
3792         * c-tree.h: Likewise.
3793         * cfgloop.h: Likewise.
3794         * cgraph.h: Likewise.
3795         * config/alpha/alpha.c: Likewise.
3796         * config/arm/arm.h: Likewise.
3797         * config/avr/avr.h: Likewise.
3798         * config/bfin/bfin.c: Likewise.
3799         * config/cris/cris.c: Likewise.
3800         * config/darwin.c: Likewise.
3801         * config/frv/frv.c: Likewise.
3802         * config/i386/i386.c: Likewise.
3803         * config/i386/i386.h: Likewise.
3804         * config/i386/winnt.c: Likewise.
3805         * config/ia64/ia64.h: Likewise.
3806         * config/iq2000/iq2000.c: Likewise.
3807         * config/mips/mips.c: Likewise.
3808         * config/mmix/mmix.h: Likewise.
3809         * config/pa/pa.c: Likewise.
3810         * config/pa/pa.h: Likewise.
3811         * config/rs6000/rs6000.c: Likewise.
3812         * config/s390/s390.c: Likewise.
3813         * config/sparc/sparc.c: Likewise.
3814         * config/xtensa/xtensa.c: Likewise.
3815         * cselib.h: Likewise.
3816         * dbxout.c: Likewise.
3817         * dwarf2out.c: Likewise.
3818         * except.c: Likewise.
3819         * except.h: Likewise.
3820         * fixed-value.h: Likewise.
3821         * function.c: Likewise.
3822         * function.h: Likewise.
3823         * gimple.h: Likewise.
3824         * integrate.c: Likewise.
3825         * optabs.c: Likewise.
3826         * output.h: Likewise.
3827         * real.h: Likewise.
3828         * rtl.h: Likewise.
3829         * stringpool.c: Likewise.
3830         * tree-data-ref.c: Likewise.
3831         * tree-flow.h: Likewise.
3832         * tree-scalar-evolution.c: Likewise.
3833         * tree-ssa-address.c: Likewise.
3834         * tree-ssa-alias.h: Likewise.
3835         * tree-ssa-operands.h: Likewise.
3836         * tree.c: Likewise.
3837         * tree.h: Likewise.
3838         * varasm.c: Likewise.
3839         * varray.h: Likewise.
3840         * vec.h: Likewise.
3841         * coretypes.h: Do not define GTY macro if it is already defined.
3842         * doc/gty.texi: Update GTY documentation to new syntax.
3843         * gengtype-lex.l: Enforce attribute-like syntax for GTY
3844         annotations on structs.
3845         * gengtype-parse.c: Likewise.
3846
3847 2009-04-22  Mark Heffernan  <meheff@google.com>
3848
3849         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
3850
3851 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3852
3853         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3854         where appropriate.
3855
3856 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3857
3858         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3859         the same as a PLUS without a shift.  Increase the cost of a
3860         CONST_INT in MULT.
3861
3862 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3863
3864         * Makefile.in: Update dependencies.
3865         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
3866         * errors.h: Remove bogus comment about compatibility.
3867         (warning): Update declaration.
3868         * genautomata.c: Update all calls to warning.
3869         * gimple.c: Do not include errors.h. Include toplev.h.
3870         * tree-ssa-structalias.c: Do not include errors.h.
3871         * omega.c: Likewise.
3872         * tree-ssa-reassoc.c: Likewise.
3873         * config/spu/spu-c.c: Likewise.
3874         * config/spu/t-spu-elf: Update dependencies.
3875
3876 2009-04-22  Richard Guenther  <rguenther@suse.de>
3877
3878         PR tree-optimization/39824
3879         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3880         make sure the types are compatible.
3881
3882 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3883
3884         PR c++/14875
3885         * c-common.c (c_parse_error): Take a token_flags parameter.
3886         Use token_type for the token type instead.
3887         Pass token_flags to cpp_type2name.
3888         * c-common.h (c_parse_error): Update declaration.
3889         * c-parser.c (c_parser_error): Pass 0 as token flags.
3890
3891 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
3892
3893         PR rtl-optimization/39580
3894         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
3895         
3896 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3897
3898         * function.c (expand_function_end): Do not emit a jump to the "naked"
3899         return label for fall-through returns.
3900         * except.c (sjlj_emit_function_exit): Always place the call to the
3901         unregister function at the location installed by expand_function_end.
3902
3903 2009-04-22  Richard Guenther  <rguenther@suse.de>
3904
3905         PR tree-optimization/39845
3906         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3907         (gen_inbound_check): Likewise.
3908
3909 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3910
3911         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3912         padding for PPC.
3913         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3914         * config/vxlib.c (__gthread_once): Add race guard for PPC.
3915
3916 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3917
3918         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3919         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3920         shift counts to avoid out-of-bounds array accesses.
3921
3922 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3923
3924         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3925         (Pmode): Move above.
3926
3927 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
3928
3929         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3930         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3931         GET_CODE macro.  Use IN_RANGE macro where appropriate.
3932         * config/alpha/alpha.h: Ditto.
3933         * config/alpha/alpha.md: Ditto.
3934         * config/alpha/constraints.md: Ditto.
3935         * config/alpha/predicates.md: Ditto.
3936         
3937 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3938
3939         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3940         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3941         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3942         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3943         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3944         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3945         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3946         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3947         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3948         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3949         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3950         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3951         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3952         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3953         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3954         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3955         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3956         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3957         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3958         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3959         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3960         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3961         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3962         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3963         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3964         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3965         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3966
3967 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3968
3969         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3970         references from comments.
3971         * cfgbuild.c: (count_basic_blocks): Delete.
3972         (find_basic_blocks_1): Delete.
3973         (find_basic_blocks): Delete.
3974         * except.c (finish_eh_generation): Make static.  Move comment from
3975         except.h here.  Remove find_basic_blocks references from comments.
3976         * except.h (finish_eh_generation): Delete.
3977         * basic-block.h (find_basic_blocks): Delete.
3978         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3979
3980 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3981
3982         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
3983         (sdbout_parms):  Likewise.
3984
3985 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3986
3987         * config/sh/sh.c (prepare_cbranch_operands): Use
3988         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3989         (expand_cbranchdi4): Likewise.
3990         (from_compare): Add cast to enum type.
3991         (expand_cbranchsi4): Use add_reg_note.
3992         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3993         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3994         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3995         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3996         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3997         instead of CODE_FOR_nothing.
3998         (cbranchdi4): Likewise.  Fix the order of arguments for
3999         gen_rtx_fmt_ee.
4000         (push_fpscr): Use add_reg_note.
4001         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
4002         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
4003         
4004 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
4005
4006         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
4007         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4008         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4009         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
4010         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
4011         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
4012         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
4013         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
4014         config/alpha/x-vms, config/arc/t-arc,
4015         config/arm/README-interworking, config/arm/arm-c.c,
4016         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
4017         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
4018         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
4019         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
4020         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
4021         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
4022         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
4023         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
4024         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
4025         config/cris/t-elfmulti, config/crx/t-crx,
4026         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
4027         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
4028         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
4029         config/h8300/t-h8300, config/i386/athlon.md,
4030         config/i386/darwin-libgcc.10.4.ver,
4031         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
4032         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
4033         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
4034         config/i386/t-linux64, config/i386/t-nwld,
4035         config/i386/t-rtems-i386, config/i386/t-sol2-10,
4036         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
4037         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
4038         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
4039         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
4040         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
4041         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
4042         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
4043         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
4044         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
4045         config/m68k/t-uclinux, config/mcore/t-mcore,
4046         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
4047         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
4048         config/mips/crtn.asm, config/mips/irix-crti.asm,
4049         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
4050         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
4051         config/mips/mips-fixed.md, config/mips/sb1.md,
4052         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
4053         config/mips/t-iris6, config/mips/t-isa3264,
4054         config/mips/t-libgcc-mips16, config/mips/t-linux64,
4055         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
4056         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
4057         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
4058         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
4059         config/mn10300/t-linux, config/mn10300/t-mn10300,
4060         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
4061         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
4062         config/picochip/libgccExtras/clzsi2.asm,
4063         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
4064         config/rs6000/darwin-libgcc.10.4.ver,
4065         config/rs6000/darwin-libgcc.10.5.ver,
4066         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
4067         config/rs6000/t-aix43, config/rs6000/t-aix52,
4068         config/rs6000/t-darwin, config/rs6000/t-fprules,
4069         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
4070         config/rs6000/t-lynx, config/rs6000/t-netbsd,
4071         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
4072         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
4073         config/rs6000/t-rtems, config/rs6000/t-spe,
4074         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
4075         config/score/t-score-elf, config/sh/divcost-analysis,
4076         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
4077         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
4078         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
4079         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
4080         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
4081         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
4082         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
4083         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
4084         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
4085         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
4086         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
4087         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
4088         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
4089         limitx.h, version.c, xcoff.h: Add copyright and license notices.
4090         * config/h8300/genmova.sh: Include copyright and license notices
4091         in generated output.
4092         * config/h8300/mova.md: Regenerate.
4093         * doc/install.texi2html: Include word "Copyright" in copyright
4094         notice and use name "Free Software Foundation, Inc.".
4095         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4096         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4097         ChangeLog-2007, ChangeLog-2008: Correct dates.
4098
4099 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4100
4101         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
4102         NE_EXPR operations as well.
4103         * c-parser.c (c_parser_condition): Do not set location information on
4104         the condition.
4105         (c_parser_conditional_expression): Likewise.
4106         (c_parser_binary_expression): Set location information on operators.
4107         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
4108         TRUTH_NOT_EXPR has been folded.
4109         * fold-const.c (fold_truth_not_expr): Copy location information from
4110         the incoming expression to the outgoing one.
4111         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
4112         recursive calls on the LHS of the operator but pass that of the
4113         operator to recursive calls on the RHS of the operator.  Set it
4114         on the COND_EXPR.
4115         (shortcut_cond_expr): Set the locus of the operator on the second
4116         COND_EXPR and that of the expression on the first in degenerate cases.
4117         Pass the locus of the expression to calls to shortcut_cond_r.
4118         Set the locus of the 'then' block on the associated jump, if any.
4119         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
4120         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
4121         expression to call to gimplify_boolean_expr.
4122
4123 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
4124
4125         * config.gcc: Add additional configuration for
4126         i686-w64-mingw* and x86_64-w64-mingw* triplet.
4127         * config/i386/mingw-w64.h: New mingw-w64 specific header.
4128         (CPP_SPEC): Redefine for allowing -municode option.
4129         (STARTFILE_SPEC): Likewise.
4130         * config/i386/t-mingw-w64: New.
4131         * config/i386/mingw-w64.opt: New.
4132         (municode): Add new target option.
4133         * doc/invoke.texi (municode): Add documentation for new option.
4134
4135 2009-04-21  Ian Lance Taylor  <iant@google.com>
4136
4137         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4138         Correct test for number of arguments.
4139         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
4140
4141 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
4142
4143         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
4144         argument of emit_library_call.
4145
4146 2009-04-21  Richard Guenther  <rguenther@suse.de>
4147
4148         PR middle-end/39829
4149         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
4150         inside VIEW_CONVERT_EXPRs.
4151
4152 2009-04-21  Martin Jambor  <mjambor@suse.cz>
4153
4154         * tree-switch-conversion.c (build_constructors): Split a long line.
4155         (constructor_contains_same_values_p): New function.
4156         (build_one_array): Create assigns of constants if possible, do not
4157         call mark_sym_for_renaming, call update_stmt.
4158         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
4159         make_rename_temp.  Do not call mark_symbols_for_renaming, call
4160         update_stmt.
4161         (gen_def_assigns): Do not call mark_symbols_for_renaming or
4162         find_new_referenced_vars, call update_stmt.
4163         (gen_inbound_check): Use create_tmp_var and create ssa names manually
4164         instead of calling make_rename_temp.  Do not call
4165         find_new_referenced_vars or mark_symbols_for_renaming, call
4166         update_stmt.
4167
4168 2009-04-21  Richard Guenther  <rguenther@suse.de>
4169
4170         PR tree-optimization/39827
4171         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
4172         (tree_ssa_phiprop): Pass the correct array size.
4173
4174 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
4175
4176         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
4177
4178 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4179
4180         PR 16202
4181         * c-typeck.c (lvalue_p): Move declaration ...
4182         * c-common.h (lvalue_p): ... to here.
4183         * c-common.c (candidate_equal_p): New.
4184         (add_tlist): Use it.
4185         (merge_tlist): Use it.
4186         (warn_for_collisions_1): Likewise.
4187         (warning_candidate_p): Accept more candidates.
4188         (verify_tree): A warning candidate can be an expression. Use
4189         candidate_equal_p.
4190
4191 2009-04-21  Ben Elliston  <bje@au.ibm.com>
4192
4193         PR target/5267
4194         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4195         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
4196         options.  Remove -mcall-solaris documentation.
4197
4198 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4199
4200         PR c++/13358
4201         * doc/invoke.texi (-Wlong-long): Update description.
4202         * c-lex (interpret_integer): Only warn if there was no previous
4203         overflow and -Wlong-long is enabled.
4204         * c-decl.c (declspecs_add_type): Drop redundant flags.
4205         * c.opt (Wlong-long): Init to -1.
4206         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
4207         and front-end warn_long_long. Wlong-long only depends on other
4208         flags if it is uninitialized.
4209         * c-parser.c (disable_extension_diagnostics): warn_long_long is
4210         the same for CPP and FE.
4211         (restore_extension_diagnostics): Likewise.
4212
4213 2009-04-20  Ian Lance Taylor  <iant@google.com>
4214
4215         Fix enum conversions which are invalid in C++:
4216         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
4217         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
4218         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
4219         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
4220         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
4221         (dbxout_parms): Likewise.
4222         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
4223         (df_clear_flags): Likewise.
4224         * df-problems.c (df_rd_bb_local_compute_process_def): Change
4225         top_flag parameter to int.
4226         (df_chain_create_bb_process_use): Likewise.
4227         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
4228         Remove cast.
4229         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
4230         (df_ref_create_structure, df_def_record_1): Likewise.
4231         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
4232         (df_notes_rescan): Change 0 to VOIDmode in function call.
4233         (df_get_call_refs, df_insn_refs_collect): Likewise.
4234         (df_bb_regs_collect): Likewise.
4235         (df_entry_block_defs_collect): Likewise.
4236         (df_exit_block_uses_collect): Likewise.
4237         * df.h: Update declarations.
4238         * double-int.c (double_int_divmod): Add cast to enum type.
4239         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4240         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4241         (based_loc_descr): Likewise.
4242         (loc_descriptor_from_tree_1): Change first_op and second_op to
4243         enum dwarf_location_atom.  Add cast to enum type.
4244         * expmed.c (init_expmed): Change 0 to SET in function call.
4245         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
4246         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4247         (do_store_flag): Likewise.
4248         * fixed-value.h (struct fixed_value): Change mode to enum
4249         machine_mode.
4250         * function.c (assign_parms): Change 0 to VOIDmode in function call.
4251         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4252         function call.
4253         (insert_insn_decl, insert_decl, insert_state): Likewise.
4254         (automata_list_finish): Likewise.
4255         * genrecog.c (process_define_predicate): Add cast to enum type.
4256         * gensupport.c (init_predicate_table): Add cast to enum type.
4257         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4258         function call.
4259         (gimple_build_call_1, gimple_build_label): Likewise.
4260         (gimple_build_goto, gimple_build_asm_1): Likewise.
4261         (gimple_build_switch_1, gimple_build_cdt): Likewise.
4262         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4263         (enum fallback): Rename from enum fallback_t.
4264         (fallback_t): Typedef as int.
4265         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4266         GSI_SAME_STMT in function call.
4267         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4268         enum type.
4269         (setup_reg_class_relations): Likewise.
4270         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
4271         (setup_prohibited_class_mode_regs): Add cast to enum type.
4272         (setup_prohibited_mode_move_regs): Likewise.
4273         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4274         (record_address_regs): Change i to enum reg_class.
4275         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4276         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4277         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4278         (GET_MODE_2XWIDER_MODE): Likewise.
4279         (GET_CLASS_NARROWEST_MODE): Likewise.
4280         * omp-low.c (expand_omp_for): Add cast to enum type.
4281         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4282         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4283         * postreload.c (reload_cse_simplify_operands): Change rclass local
4284         to enum reg_class.
4285         * predict.c (combine_predictions_for_insn): Change best_predictor
4286         and predictor to enum br_predictor.
4287         (combine_predictions_for_bb): Likewise.
4288         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4289         use SET_PREDICT_EXPR_OUTCOME.
4290         * real.c (real_arithmetic): Change icode to code in function call.
4291         * reginfo.c (init_move_cost): Add casts to enum type.
4292         (init_reg_sets_1, init_fake_stack_mems): Likewise.
4293         * regmove.c (regclass_compatible_p): Change class0 and class1 to
4294         enum reg_class.
4295         * reload.c (find_valid_class): Add casts to enum type.
4296         (push_reload): Change 0 to NO_REGS in function call.
4297         (find_reloads): Change this_alternative to array of enum
4298         reg_class.  Remove some now-unnecessary casts.
4299         (make_memloc): Change 0 to VOIDmode in function call.
4300         * reload1.c (reload): Change 0 to VOIDmode in function call.
4301         (eliminate_regs_1, elimination_effects): Likewise.
4302         (eliminate_regs_in_insn): Likewise.
4303         (emit_input_reload_insns): Add cast to enum type.
4304         (delete_output_reload): Change 0 to VOIDmode in function call.
4305         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4306         to enum type in function call.
4307         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4308         (SET_PREDICT_EXPR_OUTCOME): Define.
4309         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4310         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4311         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4312         (dump_function): Likewise.
4313         * tree-dump.h: Update declarations.
4314         * tree-pass.h: Update declarations.
4315         * varasm.c (assemble_integer): Change mclass to enum mode_class.
4316         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4317         enum type.
4318         (arm_rtx_costs_1): Correct parenthesization.
4319         (arm_rtx_costs): Add casts to enum type.
4320         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4321         (vfp_emit_fstmd): Use add_rg_note.
4322         (emit_multi_reg_push, emit_sfm): Likewise.
4323         (thumb_set_frame_pointer): Likewise.
4324         (arm_expand_prologue): Likewise.
4325         (arm_regno_class): Change return type to enum reg_class.
4326         (thumb1_expand_prologue): Use add_reg_note.
4327         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4328         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4329         in function call.
4330         * config/arm/gentune.sh: Add cast to enum type.
4331         * config/arm/arm-tune.md: Rebuild.
4332         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4333         (ix86_split_fp_branch, predict_jump): Likewise.
4334         (ix86_expand_multi_arg_builtin): Change sub_code from enum
4335         insn_code to enum rtx_code.
4336         (ix86_builtin_vectorized_function): Add cast to enum type.
4337         * config/i386/i386.md (truncdfsf2): Change slot to enum
4338         ix86_stack_slot.
4339         (truncxf<mode>2, isinf<mode>2): Likewise.
4340         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4341         enum type.
4342         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4343         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4344         (insert_bundle_state): Change 1 to INSERT in function call.
4345         (ia64_add_bundle_selector_before): Likewise.
4346         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4347         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4348         (restore_stack_nonlocal): Likewise.
4349         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4350         function call.
4351         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4352         function call.
4353         (mips_rtx_costs): Likewise.
4354         (mips_override_options): Add casts to enum type.
4355         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4356         in function call.
4357         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4358         (store_reg, set_reg_plus_d): Likewise.
4359         (hppa_expand_prologue, hppa_profile_hook): Likewise.
4360         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4361         cast to enum type.
4362         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4363         function call.
4364         (emit_unlikely_jump): Use add_reg_note.
4365         (rs6000_emit_allocate_stack): Likewise.
4366         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4367         (output_toc): Change 1 to INSERT in function call.
4368         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4369         (rs6000_initialize_trampoline): Likewise.
4370         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4371         function call.
4372         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4373         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4374         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4375         (save_gprs): Use add_reg_note.
4376         (s390_emit_prologue): Likewise.
4377         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4378         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4379         (sparc_fold_builtin): Add cast to enum type.
4380         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4381         enum insn_code.
4382         (spu_expand_prologue): Use add_reg_note.
4383         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4384
4385 2009-04-20  Ian Lance Taylor  <iant@google.com>
4386
4387         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4388         (c_parser_postfix_expression_after_primary): Get VEC for list of
4389         arguments.  Get original types of arguments.  Call
4390         build_function_call_vec.
4391         (cached_expr_list_1, cached_expr_list_2): New static variables.
4392         (c_parser_expr_list): Change return type to VEC *.  Add
4393         p_orig_types parameter.  Change all callers.
4394         (c_parser_release_expr): New static function.
4395         (c_parser_vec_to_tree_list): New static function.
4396         * c-typeck.c (build_function_call): Rewrite to build a VEC and
4397         call build_function_call_vec.
4398         (build_function_call_vec): New function, based on old
4399         build_function_call.
4400         (convert_arguments): Remove nargs and argarray parameters.  Change
4401         values to a VEC.  Add origtypes parameter.
4402         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
4403         (convert_for_assignment): Add origtype parameter.  Change all
4404         callers.  If warn_cxx_compat, check for conversion to an enum
4405         type when calling a function.
4406         (store_init_value): Add origtype parameter.  Change all callers.
4407         (digest_init): Likewise.
4408         (struct init_node): Add origtype field.
4409         (add_pending_init): Add origtype parameter.  Change all callers.
4410         (output_init_element): Likewise.
4411         (output_pending_init_elements): Pass origtype from init_node to
4412         output_init_element.
4413         (process_init_element): Pass origtype from c_expr to
4414         output_init_element.
4415         (c_finish_return): Add origtype parameter.  Change all callers.
4416         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
4417         caller.
4418         (sync_resolve_params): Likewise.
4419         (sync_resolve_return): Change params to first_param.  Change caller.
4420         (resolve_overloaded_builtins): Change params to VEC *.  Change
4421         callers.  Save first parameter around call to build_function_call_vec.
4422         * c-decl.c (finish_decl): Add origtype parameter.  Change all
4423         callers.  Call build_function_call_vec rather than
4424         build_function_call for cleanup.
4425         * c-tree.h: Update declarations.
4426         * c-common.h: Update declarations.
4427         * stub-objc.c (objc_rewrite_function_call): Change parameter from
4428         params to first_param.
4429         * target.h (struct gcc_target): Change resolve_overloaded_builtin
4430         params parameter from tree to void *.
4431         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4432         Change arglist parameter to have type void *, and to be a pointer
4433         to a VEC.
4434         * config/rs6000/rs6000-protos.h
4435         (altivec_resolve_overloaded_builtin): Update declaration.
4436         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4437         fnargs parameter to have type void *, and to be a pointer to a
4438         VEC.  Call build_function_call_vec instead of
4439         build_function_call.
4440         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4441
4442 2009-04-20  Joey Ye  <joey.ye@intel.com>
4443             Xuepeng Guo  <xuepeng.guo@intel.com>
4444             H.J. Lu  <hongjiu.lu@intel.com>
4445
4446         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4447
4448         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4449         (IX86_LEA_PRIORITY): Likewise.
4450         (distance_non_agu_define): New function.
4451         (distance_agu_use): Likewise.
4452         (ix86_lea_for_add_ok): Likewise.
4453         (ix86_dep_by_shift_count): Likewise.
4454
4455         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4456         should split for LEA.
4457
4458         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4459         function.
4460         (ix86_dep_by_shift_count): Likewise.
4461
4462 2009-04-20  Richard Guenther  <rguenther@suse.de>
4463
4464         * expr.c (handled_component_p): Move ...
4465         * tree.h (handled_component_p): ... here.
4466         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4467         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4468         and REALPART_EXPR to be in one group.
4469
4470 2009-04-20  Richard Guenther  <rguenther@suse.de>
4471
4472         * basic-block.h (get_all_dominated_blocks): Declare.
4473         * dominance.c (get_all_dominated_blocks): New function.
4474         * tree-cfg.c (get_all_dominated_blocks): Remove.
4475         (remove_edge_and_dominated_blocks): Adjust.
4476         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4477         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
4478         instead of recursing.
4479
4480 2009-04-20  Doug Kwan  <dougkwan@google.com>
4481
4482         * cgraph.h (cgraph_node_ptr): New type for vector functions.
4483         (struct cgraph_node_set_def): New type.
4484         (cgraph_node_set) New type. Also declare vector functions.
4485         (struct cgraph_node_set_element_def): New type.
4486         (cgraph_node_set_element): Ditto.
4487         (cgraph_node_set_iterator): New iterator type.
4488         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4489         cgraph_node_set_remove, dump_cgraph_node_set,
4490         debug_cgraph_node_set): New prototypes.
4491         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4492         cgraph_node_set_size): New inlines.
4493         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4494         including cgraph.h.
4495         (struct ipa_opt_pass): Add struct cgraph_node_set_def
4496         argument to function 'write_summary'.
4497         * ipa.c: Include ggc.h.
4498         (hash_cgraph_node_set_element,
4499         eq_cgraph_node_set_element, cgraph_node_set_new,
4500         cgraph_node_set_add, cgraph_node_set_remove,
4501         cgraph_node_set_find, dump_cgraph_node_set,
4502         debug_cgraph_node_set): New functions.
4503         * Makefile.in (ipa.o): Add dependency on GGC_H.
4504
4505 2009-04-20  Ira Rosen  <irar@il.ibm.com>
4506
4507         PR tree-optimization/39675
4508         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4509         check of the return code of vect_schedule_slp. Check that
4510         stmt_vec_info still exists for the statement, before checking its
4511         vectorization type.
4512
4513 2009-04-20  Michael Matz  <matz@suse.de>
4514
4515         * Makefile.in (generated_files): Take out $(simple_generated_c).
4516
4517 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
4518
4519         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
4520         (UINTPTR_TYPE):  Likewise.
4521
4522 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4523
4524         PR c/37481
4525         * c-typeck.c (digest_init): Check for initializing an array with a
4526         string literal.
4527
4528 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4529
4530         PR c/19771
4531         * c-semantics.c (pop_stmt_list): Propagate
4532         STATEMENT_LIST_HAS_LABEL to parent statement list.
4533
4534 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
4535
4536         * config/mips/mips.h (mips_tune_attr): New macro.
4537         * config/mips/mips.md (cpu): Use it.
4538
4539 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4540
4541         PR c/38243
4542         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4543         declaring a tag.
4544
4545 2009-04-19  Diego Novillo  <dnovillo@google.com>
4546
4547         * toplev.c (compile_file): Move call to coverage_finish ...
4548         * cgraphunit.c (ipa_passes): ... here.
4549         Call cgraph_process_new_functions.
4550         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4551         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4552
4553 2009-04-19  Jan Hubicka  <jh@suse.cz>
4554
4555         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4556         cfun.
4557         (dump_cgraph_node): Dump can throw external flag.
4558         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4559
4560 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4561
4562         PR c/32061
4563         PR c++/36954
4564         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4565         * common.opt (Wlogical-op): Move from here...
4566         * c.opt (Wlogical-op): ... to here.
4567         * c-typeck.c (parser_build_binary_op): Update call to
4568         warn_logical_operator.
4569         * c-opts.c (c_common_post_options): Enable warn_logical_op with
4570         extra_warnings.
4571         * c-common.c (warn_logical_op): Update.
4572         * c-common.h (warn_logical_op): Update declaration.
4573
4574 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4575
4576         * tree.c (protected_set_expr_location): Fix formatting.
4577
4578 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4579
4580         PR c/27676
4581         * c-typeck.c (readonly_warning): new.
4582         (build_unary_op, build_modify_expr): Use readonly_warning for
4583         storing into something readonly but not const-qualified.
4584
4585 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4586
4587         PR c/22367
4588         * c-typeck.c (build_unary_op): Check for taking address of
4589         expression of type void.
4590
4591 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4592
4593         PR c/35210
4594         * c-typeck.c (build_function_call): Check for calling a function
4595         with qualified void return types.  Call require_complete_type when
4596         generating a trap.
4597
4598 2009-04-18  Jan Hubicka  <jh@suse.cz>
4599
4600         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4601         Set nothrow flag.
4602         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4603         can_throw_external flag.
4604         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4605         * ipa-pure-const.c (ignore_edge): New function.
4606         (propagate): Compute order for NOTHROW computation; set NOTHROWs
4607         only over can_throw_external edges.
4608         (local_pure_const): Add nothrow flag.
4609         * ipa-utils.c (searchc): Add ignore_edge callback.
4610         (ipa_utils_reduced_inorder): Add ignore_edge callback.
4611         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4612         (set_nothrow_function_flags): Update cgraph.
4613         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4614
4615 2009-04-18  Richard Guenther  <rguenther@suse.de>
4616
4617         PR middle-end/39804
4618         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4619         (fold_stmt): ... this and ...
4620         (fold_stmt_inplace): ... this.
4621         (fold_stmt_1): Fold references in calls and asms.
4622         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4623
4624 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4625
4626         * tree-vrp.c (ssa_name_nonzero_p): Remove.
4627         * tree.h: Remove the prototype for ssa_name_nonzero_p.
4628
4629 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4630
4631         * tree.c (function_args_count): Remove.
4632         * tree.h: Remove the prototype for function_args_count.
4633
4634 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4635
4636         * tree-iterator.c (expr_only): Remove.
4637         * tree.h: Remove the prototype for expr_only.
4638
4639 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4640
4641         * reginfo.c (cannot_change_mode_set_regs): Remove.
4642         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4643
4644 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
4645
4646         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4647         whether operands 0 and 1 overlaps.
4648
4649 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4650
4651         PR middle-end/36902
4652         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4653         pointer. Use warning_at instead of warning.
4654         (search_for_addr_array): Likewise.
4655         (check_array_bounds): Likewise.
4656         (check_all_array_refs): Check that the incoming edge is not in the
4657         list of edges to be removed.
4658         (check_all_array_refs): Avoid the temporal pointer.
4659         (vrp_visit_cond_stmt): Fix typo.
4660         (simplify_switch_using_ranges): Handle the case where the switch
4661         index is an integer constant.
4662
4663 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
4664
4665         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4666
4667 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4668
4669         * doc/extend.texi, doc/invoke.texi: Fix typos.
4670
4671 2009-04-17  Cary Coutant  <ccoutant@google.com>
4672
4673         * tree-flow-inline.h (get_lineno): Fix inverted test.
4674
4675 2009-04-17  Diego Novillo  <dnovillo@google.com>
4676
4677         * tree-ssa-pre.c (create_expression_by_pieces): Remove
4678         assertion for AVAIL_OUT.
4679
4680 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
4681
4682         PR target/38627
4683         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4684         * config/sh/linux-atomic.asm: Likewise.
4685
4686 2009-04-17  Diego Novillo  <dnovillo@google.com>
4687
4688         * except.c (debug_eh_tree): New.
4689         (struct eh_region, struct eh_status): Move ...
4690         * except.h: ... here.
4691         (add_type_for_runtime): Declare extern.
4692         (lookup_type_for_runtime): Likewise.
4693         (debug_eh_tree): Declare.
4694         * Makefile.in (GTFILES): List except.h before except.c
4695
4696 2009-04-17  Diego Novillo  <dnovillo@google.com>
4697
4698         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
4699         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4700         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4701         (find_vars_r): ... here.
4702         * tree-flow.h (find_referenced_vars_in): Declare.
4703         * tree-ssa-pre.c (create_expression_by_pieces): Assert
4704         that AVAIL_OUT exists for BLOCK.
4705         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4706         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4707         (tree-parloops.o): Likewise.
4708
4709 2009-04-17  Simon Baldwin  <simonb@google.com>
4710
4711         * toplev.c (default_tree_printer): Add handling for %E format.
4712
4713 2009-04-17  Diego Novillo  <dnovillo@google.com>
4714
4715         * tree-pretty-print.c (dump_generic_node): Add break after
4716         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
4717         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
4718         FUNCTION_TYPE together.  Call print_struct_decl when printing
4719         structures and TDF_SLIM is not given.
4720         (print_struct_decl): Fix logic for detecting recursion.
4721
4722 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4723
4724         PR 31567
4725         * gcc.c (create_at_file): New.
4726         (compile_input_file_p): New.
4727         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4728         * main.c (main): Update call to toplev_main.
4729         * toplev.c (toplev_main): Change signature. Call expandargv.
4730         * toplev.h (toplev_main): Change signature.
4731
4732 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4733
4734         * dwarf2out.c (field_byte_offset): Use the type size as the field size
4735         if the latter is not constant.
4736
4737 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
4738
4739         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4740
4741 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4742
4743         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4744         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4745
4746 2009-04-17  Richard Guenther  <rguenther@suse.de>
4747
4748         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4749         Handle component references view-converting an invariant address.
4750
4751 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
4752
4753         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4754         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4755         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4756         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4757         Use @deftypevr rather than @deftypevar.
4758
4759 2009-04-17  Richard Guenther  <rguenther@suse.de>
4760
4761         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
4762         (get_prop_source_stmt): Likewise.
4763         (can_propagate_from): Likewise.
4764
4765 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
4766
4767         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4768         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4769         (--with-multilib-list): Add default value.
4770         * configure: Regenerate.
4771         * Makefile.in (TM_ENDIAN_CONFIG): Define.
4772         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4773         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4774         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4775         Don't add default cpu to multilib list unnecessarily, but do enable
4776         the relevant compiler option..
4777         Add support for --with-multilib-list=<blank> and
4778         --with-multilib-list=!<somelib> to supress unwanted multilibs.
4779         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4780         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4781         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4782         TM_MULTILIB_CONFIG.
4783         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4784         (MULTILIB_OSDIRNAMES): New variable.
4785         * config/sh/t-1e: Delete file.
4786         * config/sh/t-mlib-sh1: Delete file.
4787         * config/sh/t-mlib-sh2: Delete file.
4788         * config/sh/t-mlib-sh2a: Delete file.
4789         * config/sh/t-mlib-sh2a-nofpu: Delete file.
4790         * config/sh/t-mlib-sh2a-single: Delete file.
4791         * config/sh/t-mlib-sh2a-single-only: Delete file.
4792         * config/sh/t-mlib-sh2e: Delete file.
4793         * config/sh/t-mlib-sh3e: Delete file.
4794         * config/sh/t-mlib-sh4: Delete file.
4795         * config/sh/t-mlib-sh4-nofpu: Delete file.
4796         * config/sh/t-mlib-sh4-single: Delete file.
4797         * config/sh/t-mlib-sh4-single-only: Delete file.
4798         * config/sh/t-mlib-sh4a: Delete file.
4799         * config/sh/t-mlib-sh4a-nofpu: Delete file.
4800         * config/sh/t-mlib-sh4a-single: Delete file.
4801         * config/sh/t-mlib-sh4a-single-only: Delete file.
4802         * config/sh/t-mlib-sh4al: Delete file.
4803         * config/sh/t-mlib-sh5-32media: Delete file.
4804         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4805         * config/sh/t-mlib-sh5-64media: Delete file.
4806         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4807         * config/sh/t-mlib-sh5-compact: Delete file.
4808         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4809         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4810         * doc/install.texi (Options specification): Add
4811         --with-multilib-list and --with-endian.
4812
4813 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4814
4815         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4816         REVISION_c.
4817         (OBJS-common): Add plugin-version.o.
4818         (plugin-version.o): New.
4819         * gcc-plugin.h (plugin_gcc_version): New.
4820         (plugin_default_version_check): New.
4821         (plugin_init_func, plugin_init): Add version argument.
4822         * plugin-version.c: New.
4823         * plugin.c (str_plugin_gcc_version_name): New.
4824         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4825         pass it to the init function.
4826         (plugin_default_version_check): New.
4827
4828 2009-04-17  Richard Guenther  <rguenther@suse.de>
4829
4830         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4831         for decl-vs-decl disambiguation.
4832
4833 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4834
4835         * config/s390/s390.h (s390_tune_attr): New macro definition.
4836         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4837
4838 2009-04-17  Richard Guenther  <rguenther@suse.de>
4839
4840         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4841         (fold_stmt_r): Likewise.
4842         (maybe_fold_reference): New function.
4843         (fold_gimple_assign): Handle cases fold_stmt_r did.
4844         (fold_stmt): Do not use fold_stmt_r.
4845         (fold_stmt_inplace): Likewise.
4846
4847 2009-04-17  Richard Guenther  <rguenther@suse.de>
4848
4849         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4850         (record_equivalences_from_stmt): Remove useless checks and
4851         simplifications.
4852         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4853         the type is already suitable.
4854
4855 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
4856
4857         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4858
4859 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
4860
4861         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4862         (CMPtype): Define as __gcc_CMPtype.
4863
4864 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
4865
4866         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4867         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4868
4869 2009-04-17  Richard Guenther  <rguenther@suse.de>
4870
4871         PR tree-optimization/39746
4872         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4873         special-casing for builtins and static variable use/def.
4874         (call_may_clobber_ref_p_1): Likewise.
4875
4876 2009-04-16  Ian Lance Taylor  <iant@google.com>
4877
4878         * df.h: Include "timevar.h".
4879         (struct df_problem): Change tv_id field to timevar_id_t.
4880         * tree-pass.h: Include "timevar.h".
4881         (struct opt_pass): Change tv_id field to timevar_id_t.
4882         * timevar.h (timevar_id_t): Define TV_NONE.
4883         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4884         TV_NONE rather than tv_id != 0.
4885         (execute_one_pass): Likewise.
4886         * Makefile.in (DF_H): Add $(TIMEVAR_H).
4887         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
4888         dependencies to $(TREE_PASS_H).
4889         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4890         to TV_NONE.
4891         (pass_branch_target_load_optimize2): Likewise.
4892         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4893         (pass_outof_cfg_layout_mode): Likewise.
4894         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4895         (pass_rebuild_cgraph_edges): Likewise.
4896         (pass_remove_cgraph_callee_edges): Likewise.
4897         * df-core.c (pass_df_initialize_opt): Likewise.
4898         (pass_df_initialize_no_opt): Likewise.
4899         (pass_df_finish): Likewise.
4900         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4901         * except.c (pass_set_nothrow_function_flags): Likewise.
4902         (pass_convert_to_eh_region_ranges): Likewise.
4903         * final.c (pass_compute_alignments): Likewise.
4904         * function.c (pass_instantiate_virtual_regs): Likewise.
4905         (pass_init_function): Likewise.
4906         (pass_leaf_regs): Likewise.
4907         (pass_match_asm_constraints): Likewise.
4908         * gimple-low.c (pass_lower_cf): Likewise.
4909         (pass_mark_used_blocks): Likewise.
4910         * init-regs.c (pass_initialize_regs): Likewise.
4911         * integrate.c (pass_initial_value_sets): Likewise.
4912         * ira.c (pass_ira): Likewise.
4913         * jump.c (pass_cleanup_barriers): Likewise.
4914         * omp-low.c (pass_expand_omp): Likewise.
4915         (pass_lower_omp): Likewise.
4916         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4917         * recog.c (pass_split_all_insns): Likewise.
4918         (pass_split_after_reload): Likewise.
4919         (pass_split_before_regstack): Likewise.
4920         (pass_split_before_sched2): Likewise.
4921         (pass_split_for_shorten_branches): Likewise.
4922         * reginfo.c (pass_reginfo_init): Likewise.
4923         (pass_subregs_of_mode_init): Likewise.
4924         (pass_subregs_of_mode_finish): Likewise.
4925         * passes.c (pass_postreload): Likewise.
4926         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4927         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4928         (pass_warn_function_return): Likewise.
4929         (pass_warn_function_noreturn): Likewise.
4930         * tree-complex.c (pass_lower_complex): Likewise.
4931         (pass_lower_complex_O0): Likewise.
4932         * tree-if-conv.c (pass_if_conversion): Likewise.
4933         * tree-into-ssa.c (pass_build_ssa): Likewise.
4934         * tree-mudflap.c (pass_mudflap_1): Likewise.
4935         (pass_mudflap_2): Likewise.
4936         * tree-nomudflap.c (pass_mudflap_1): Likewise.
4937         (pass_mudflap_2): Likewise.
4938         * tree-nrv.c (pass_return_slot): Likewise.
4939         * tree-object-size.c (pass_object_sizes): Likewise.
4940         * tree-optimize.c (pass_all_optimizations): Likewise.
4941         (pass_early_local_passes): Likewise.
4942         (pass_all_early_optimizations): Likewise.
4943         (pass_cleanup_cfg): Likewise.
4944         (pass_cleanup_cfg_post_optimizing): Likewise.
4945         (pass_free_datastructures): Likewise.
4946         (pass_free_cfg_annotations): Likewise.
4947         (pass_fixup_cfg): Likewise.
4948         (pass_init_datastructures): Likewise.
4949         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4950         (pass_late_warn_uninitialized): Likewise.
4951         (pass_update_address_taken): Likewise.
4952         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4953         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4954         (pass_cse_sincos): Likewise.
4955         (pass_convert_to_rsqrt): Likewise.
4956         * tree-ssa-structalias.c (pass_build_alias): Likewise.
4957         * tree-stdarg.c (pass_stdarg): Likewise.
4958         * tree-tailcall.c (pass_tail_recursion): Likewise.
4959         (pass_tail_calls): Likewise.
4960         * tree-vect-generic.c (pass_lower_vector): Likewise.
4961         (pass_lower_vector_ssa): Likewise.
4962         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4963
4964 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
4965
4966         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4967         XLR entry.
4968         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4969         Handle -march=xlr.
4970         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4971         logical and signext.
4972
4973 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4974
4975         PR target/39767
4976         * config/sh/predicates.md (arith_operand): Check if the operand
4977         of TRUNCATE is a REG.
4978
4979 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4980
4981         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4982         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4983
4984 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4985
4986         * tree-iterator.c (tsi_split_statement_list_after,
4987         tsi_split_statement_list_before): Remove.
4988         * tree-iterator.h: Remove the prototypes for
4989         tsi_split_statement_list_after and tsi_split_statement_list_before.
4990
4991 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4992
4993         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4994         * tree-ssa-propagate.h: Remove the prototype for
4995         stmt_makes_single_load.
4996
4997 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4998
4999         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
5000         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
5001
5002 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5003
5004         * tree-iterator.c (EXPR_LAST_BODY): Remove.
5005
5006 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5007
5008         * except.c (eh_region_outer_p): Remove.
5009         * except.h: Remove the prototype for eh_region_outer_p.
5010
5011 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5012
5013         * function.c (current_function_assembler_name): Remove.
5014         * function.h: Remove the prototype for
5015         current_function_assembler_name.
5016
5017 2009-04-16  Ian Lance Taylor  <iant@google.com>
5018
5019         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
5020         (add_reg_note): Call alloc_reg_note.
5021         * rtl.h (alloc_reg_note): Declare.
5022         * combine.c (try_combine): Use alloc_reg_note.
5023         (recog_for_combine, move_deaths): Likewise.
5024         (distribute_notes): Use alloc_reg_note and add_reg_note.
5025         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
5026         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
5027         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
5028
5029 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
5030
5031         PR rtl-optimization/39762
5032         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
5033         ira_may_move_out_cost): Add comments about way of their usage.
5034         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
5035
5036         * ira-conflicts.c (process_regs_for_copy): Use function
5037         ira_get_register_move_cost instead of global
5038         ira_register_move_cost.
5039
5040         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
5041         color_pass, move_spill_restore, update_curr_costs): Ditto.
5042
5043         * ira-lives.c (process_single_reg_class_operands): Ditto.
5044
5045         * ira-emit.c (emit_move_list): Ditto.
5046
5047         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
5048         (record_reg_classes): Ditto.  Use functions
5049         ira_get_register_move_cost and ira_get_may_move_cost instead of
5050         global vars ira_register_move_cost, ira_may_move_out_cost and
5051         ira_may_move_in_cost.
5052         (record_address_regs): Don't call ira_init_register_move_cost.
5053         Use function ira_get_may_move_cost instead of global
5054         ira_may_move_in_cost.
5055         (process_bb_node_for_hard_reg_moves): Use function
5056         ira_get_register_move_cost instead of global ira_register_move_cost.
5057         (ira_costs): Don't call ira_init_register_move_cost.
5058
5059 2009-04-16  Richard Guenther  <rguenther@suse.de>
5060
5061         * tree-cfg.c (verify_gimple_assign_binary):
5062         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
5063         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
5064         (create_general_new_stmt): Note that this function is broken.
5065
5066 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5067
5068         * common.opt (fhelp): Add Var(help_flag).
5069         * gcc-plugin.h (plugin_info): Add help.
5070         * plugin.c (plugin_name_args): Add help.
5071         (register_plugin_info): Set plugin->help.
5072         (print_help_one_plugin): New.
5073         (print_plugins_help): New.
5074         * plugin.h (print_plugins_help): New.
5075         * toplev.c (toplev_main): Call print_plugins_help if needed.
5076
5077 2009-04-16  Richard Guenther  <rguenther@suse.de>
5078
5079         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
5080         (gimple_ior_addresses_taken_1): New function.
5081         (gimple_ior_addresses_taken): Likewise.
5082         * gimple.h (struct gimple_statement_with_ops_base): Remove
5083         addresses_taken member.
5084         (gimple_ior_addresses_taken): Declare.
5085         (gimple_addresses_taken, gimple_addresses_taken_ptr,
5086         gimple_set_addresses_taken): Remove.
5087         * ipa-reference.c (mark_address): New function.
5088         (scan_stmt_for_static_refs): Use it for marking addresses taken.
5089         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
5090         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
5091         (gimple_add_to_addresses_taken): Remove.
5092         (get_tmr_operands): Call mark_address_taken.
5093         (get_asm_expr_operands): Likewise.
5094         (get_expr_operands): Likewise.
5095         (build_ssa_operands): Do not clear the addresses_taken bitmap.
5096         (free_stmt_operands): Do not free it.
5097         * tree-ssa.c (delete_tree_ssa): Likewise.
5098         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
5099
5100 2009-04-16  Richard Guenther  <rguenther@suse.de>
5101
5102         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
5103         (walk_stmt_load_store_ops): Likewise.
5104         * gimple.c (get_base_loadstore): New function.
5105         (walk_stmt_load_store_addr_ops): Likewise.
5106         (walk_stmt_load_store_ops): Likewise.
5107         * ipa-pure-const.c (check_op): Simplify.
5108         (check_load, check_store): New functions.
5109         (check_stmt): Use walk_stmt_load_store_ops.
5110         * ipa-reference.c (mark_load): Adjust signature.
5111         (mark_store): Likewise.
5112         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
5113
5114 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5115
5116         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
5117         (plugin_info): New.
5118         * opts.c (common_handle_option): Don't call print_version.
5119         * plugin.c (plugin_name_args): Add version.
5120         (register_plugin_info): New.
5121         (register_callback): Handle PLUGIN_INFO.
5122         (try_init_one_plugin): New.
5123         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
5124         if failed to init.
5125         (finalize_one_plugin): New.
5126         (finalize_plugins): New.
5127         (print_one_plugin): New.
5128         (print_plugins_versions): New.
5129         * plugin.h (print_plugins_versions): New.
5130         (finalize_plugins): New.
5131         * toplev.c (compile_file): Don't call initialize_plugins.
5132         (print_version): Call print_plugins_versions.
5133         (toplev_main): Call initialize_plugins. Print version if needed.
5134         Call finalize_plugins.
5135
5136 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5137
5138         * common.opt (fversion): New.
5139         * gcc.c (print_version): New.
5140         (process_command): Don't print the version. Just set print_version.
5141         (main): Print version. Call subprocesses if print_version and
5142         verbose_flag are set.
5143         * opts.c (common_handle_option): Handle OPT_fversion.
5144
5145 2009-04-16  Richard Guenther  <rguenther@suse.de>
5146             Ira Rosen  <irar@il.ibm.com>
5147
5148         PR tree-optimization/39698
5149         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
5150         type of the reduction variable.  Only generate the def if
5151         it is needed.
5152
5153         * omp-low.c (expand_omp_for_generic): When converting to a pointer
5154         make sure to first convert to an integer of the same precision.
5155         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
5156         the type of the evolution correctly in computing the new
5157         induction variable base.
5158
5159 2009-04-16  Richard Guenther  <rguenther@suse.de>
5160
5161         PR middle-end/39625
5162         * tree-cfg.c (make_blocks): Split statements with to-be
5163         abnormal SSA names on the lhs.
5164
5165 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
5166
5167         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
5168         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
5169         * c-typeck.c (really_start_incremental_init): Likewise.
5170         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
5171         (TARGET_INITIALIZER): Remove it.
5172         * target.h (struct target): Remove vector_opaque_p.
5173         * tree.c (build_opaque_vector_type): New.
5174         * tree.h (TYPE_VECTOR_OPAQUE): New.
5175         (build_opaque_vector_type): Declare.
5176         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
5177         * config/rs6000/rs6000.c (build_opaque_vector_type,
5178         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
5179         (rs6000_init_builtins): Use build_opaque_vector_type for
5180         opaque_V4SI_type_node.
5181
5182 2009-04-15  Catherine Moore  <clm@codesourcery.com>
5183
5184         * debug.h (set_name):  Declare.
5185         * dwarf2out.c (dwarf2out_set_name): Declare.
5186         (dwarf2_debug_hooks): Add set_name.
5187         (find_AT_string): New.
5188         (add_AT_string): Call find_AT_string.
5189         (dwarf2out_set_name): New.
5190         * cp/decl.c (grokdeclarator): Call set_name.
5191         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
5192         * debug.c (do_nothing_debug_hooks):  Likewise.
5193         * dbxout.c (dbx_debug_hooks): Likewise.
5194         * sdbout.c (sdb_debug_hooks): Likewise.
5195
5196 2009-04-15  Michael Eager  <eager@eagercon.com>
5197
5198         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
5199         reg for single-precision FPU.
5200         * config/rs6000/rs6000.md (movsi_internal1): Only for
5201         !TARGET_SINGLE_FPU.
5202         (movsi_internal1_single): New. Add pattern to move SI values to/from
5203         single-precision FP regs.
5204
5205 2009-04-15  Richard Guenther  <rguenther@suse.de>
5206
5207         * omp-low.c (lower_rec_input_clauses): Build correct address
5208         expressions.
5209         (expand_omp_for_generic): Fix multiplication type.
5210         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
5211         (generate_memset_zero): Fix types.
5212         * tree-profile.c (prepare_instrumented_value): Correctly
5213         widen a pointer.
5214
5215 2009-04-15  Ian Lance Taylor  <iant@google.com>
5216
5217         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
5218         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
5219         for -Wall and for -Wc++-compat.
5220         (c_common_post_options): For C++, set warn_enum_compare if not
5221         already set.
5222         * c-tree.h (struct c_expr): Add field original_type.
5223         (build_external_ref): Update declaration.
5224         * c-parser.c (c_parser_braced_init): Set original_type.
5225         (c_parser_initelt): Likewise.
5226         (c_parser_expr_no_commas): Likewise.
5227         (c_parser_conditional_expression): Likewise.
5228         (c_parser_cast_expression): Likewise.
5229         (c_parser_unary_expression): Likewise.  Pull setting of
5230         original_code to top of function.
5231         (c_parser_sizeof_expression): Set original_type.
5232         (c_parser_alignof_expression): Likewise.
5233         (c_parser_postfix_expression): Likewise.  Pull setting of
5234         original_code to top of function.
5235         (c_parser_postfix_expression_after_paren_type): Set original_type.
5236         (c_parser_postfix_expression_after_primary): Likewise.
5237         (c_parser_expression): Likewise.
5238         * c-typeck.c (build_external_ref): Add type parameter.  Change all
5239         callers.
5240         (c_expr_sizeof_expr): Set original_type field.
5241         (parser_build_unary_op): Likewise.
5242         (parser_build_binary_op): Likewise.  Optionally warn about
5243         comparisons of enums of different types.
5244         (digest_init): Set original_type field.
5245         (really_start_incremental_init): Likewise.
5246         (push_init_level, pop_init_level): Likewise.
5247         * doc/invoke.texi (Warning Options): -Wenum-compare now
5248         supported in C.
5249
5250 2009-04-15  Richard Guenther  <rguenther@suse.de>
5251
5252         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5253         out a necessary conversion.
5254         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5255         names we didn't value number.
5256         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5257
5258 2009-04-15  Richard Guenther  <rguenther@suse.de>
5259
5260         PR tree-optimization/39764
5261         * tree-ssa-ccp.c (get_value): Canonicalize value with
5262         canonicalize_float_value.
5263
5264 2009-04-15  Jan Hubicka  <jh@suse.cz>
5265
5266         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5267         Wrong version of patch.
5268
5269 2009-04-15  Jan Hubicka  <jh@suse.cz>
5270
5271         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5272
5273 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
5274
5275         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5276         our distinct integral and vector types.
5277
5278 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
5279
5280         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5281         * init.c (build_vtbl_address): Remove call to assemble_external.
5282
5283 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
5284
5285         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5286         output for other floating point modes.
5287
5288 2009-04-14  Diego Novillo  <dnovillo@google.com>
5289
5290         * diagnostic.c (diagnostic_report_diagnostic): Do not
5291         warn about loaded plugins for DK_ERROR and DK_WARNING.
5292         * c-decl.c (declspecs_add_type): Move call to
5293         invoke_plugin_callbacks ...
5294         * c-parser.c (c_parser_declspecs): ... here.
5295         * plugin.c (dump_active_plugins): Tidy output.
5296
5297 2009-04-14  Diego Novillo  <dnovillo@google.com>
5298             Le-Chun Wu  <lcwu@google.com>
5299
5300         * configure.ac: Add --enable-plugin support.
5301         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5302         * Makefile.in (PLUGIN_H): Define.
5303         Export ENABLE_PLUGIN and GMPINC to site.exp.
5304         Add PLUGINLIBS to link command.
5305         Add/modify dependencies for plugin.o and files including plugin.h.
5306         (plugin.o): New.
5307         * config.in: Regenerate.
5308
5309         * opts.c (common_handle_option): Handle OPT_fplugin_ and
5310         OPT_fplugin_arg_.
5311
5312 2009-04-14  Le-Chun Wu  <lcwu@google.com>
5313
5314         * tree-pass.h (register_one_dump_file): Add a prototype for
5315         register_one_dump_file.
5316         * toplev.c (compile_file): Call initialize_plugins.
5317         (do_compile): Call invoke_plugin_callbacks.
5318         (toplev_main): Call invoke_plugin_callbacks.
5319         * common.opt: Add -fplugin= and -fplugin-arg-.
5320         * gcc-plugin.h: New public header file for plugins to include.
5321         * plugin.c: New source file.
5322         * plugin.h: New internal header file.
5323         * passes.c (register_one_dump_file): Make it external.
5324
5325         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5326
5327 2009-04-14  Diego Novillo  <dnovillo@google.com>
5328
5329         * doc/plugins.texi: New.
5330         * doc/gccint.texi: Add reference to Plugins chapter.
5331         * doc/invoke.texi: Document -fplugin and -fplugin-arg
5332         * diagnostic.c (diagnostic_report_diagnostic): Warn about
5333         loaded plugins, if any.
5334         * timevar.def (TV_PLUGIN_INIT): Define.
5335         (TV_PLUGIN_RUN): Define.
5336         * plugin.c: Include timevar.h
5337         (plugins_active_p): New.
5338         (dump_active_plugins): New.
5339         (debug_active_plugins): New.
5340
5341 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
5342
5343         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5344         library paths.
5345         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5346
5347 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
5348
5349         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5350         the same as a minus without a shift.
5351
5352 2009-04-14  Nick Clifton  <nickc@redhat.com>
5353
5354         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5355         comparisons with small integers will always produce a short
5356         branch.
5357
5358 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
5359
5360         Merge:
5361         2008-12-19  Diego Novillo  <dnovillo@google.com>
5362
5363         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5364
5365 2009-04-14  Richard Guenther  <rguenther@suse.de>
5366
5367         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5368         verification.
5369         (verify_gimple_assign_binary): Likewise.  Handle shifts and
5370         rotates correctly.
5371         (verify_gimple_phi): Print the mismatched argument position.
5372         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5373         Fix types.
5374         (vect_update_init_of_dr): Likewise.
5375         * matrix-reorg.c (transform_access_sites): Do what the
5376         comment suggests.
5377         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5378
5379 2009-04-13  Michael Eager  <eager@eagercon.com>
5380
5381         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5382         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5383         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
5384         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5385         remove duplicate config
5386
5387 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5388
5389         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5390         file_name:line_number type locator of the call site.
5391
5392 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5393
5394         * genautomata.c: Put blank after comma.
5395         (automaton_decls): New.
5396         (struct unit_usage): Add comments to member next.
5397         (store_alt_unit_usage): Keep the list ordered.
5398         (unit_present_on_list_p, equal_alternatives_p): New.
5399         (check_regexp_units_distribution): Check units distribution
5400         correctness correctly.
5401         (main): Don't write automata if error is found.  Return correct
5402         exit code.
5403
5404         * config/m68k/cf.md (cfv4_ds): Remove.
5405         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5406         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5407
5408         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5409         power4-load-ext, power4-store, power4-store-update,
5410         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5411         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5412         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5413         power4-sqrt, power4-isync): Modify reservation to make correct
5414         unit distribution to automata.
5415
5416         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5417         power5-store-update, power5-two, power5-three, power5-lmul,
5418         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5419
5420 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
5421
5422         * except.c (pass_set_nothrow_function_flags): Set name and add
5423         TODO_dump_func.
5424         (set_nothrow_function_flags): Mention in the dump file when
5425         changing a function to nothrow.
5426
5427 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
5428
5429         PR/39066
5430         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5431         instead of unsigned long.
5432
5433 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5434
5435         * config/arm/arm.c (return_used_this_function): Remove.
5436         (arm_output_function_prologue): Remove use of
5437         return_used_this_function.
5438         (output_return_instruction): Replace use of
5439         return_used_this_function
5440         by cfun->machine->return_used_this_function.
5441         (arm_output_epilogue): Likewise.
5442         (arm_output_function_epilogue): Likewise.
5443         (thumb_unexpanded_epilogue): Likewise.
5444         * config/arm/arm.h (struct machine_function):
5445         New member return_used_this_function.
5446
5447 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
5448
5449         * doc/install.texi: Correct description of default directory for
5450         --with-gxx-include-dir.
5451
5452 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5453
5454         * fold-const.c (build_range_check): Properly deal with enumeral and
5455         boolean base types.
5456
5457 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
5458
5459         * doc/invoke.texi (max_gcse_passes): Remove documentation.
5460         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5461         * params.h (MAX_GCSE_PASSES): Remove.
5462         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5463         in sequence.  Remove ability to run multiple passes.
5464         (bypass_jumps): Report run as third CPROP pass.
5465
5466 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
5467
5468         PR middle-end/39651
5469         * except.c (can_throw_external): Look at each insn in a SEQUENCE
5470         when deciding whether the whole SEQUENCE can throw.
5471
5472 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
5473
5474         PR target/39740
5475         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5476         offseted label references.
5477
5478 2009-04-11  Jan Hubicka  <jh@suse.cz>
5479
5480         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5481
5482 2009-04-11  Richard Guenther  <rguenther@suse.de>
5483
5484         PR middle-end/39732
5485         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5486         return variables as TREE_ADDRESSABLE.
5487
5488 2009-04-11  Richard Guenther  <rguenther@suse.de>
5489
5490         PR tree-optimization/39713
5491         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5492         reference trees have SSA_NAME operands.
5493
5494 2009-04-11  Richard Guenther  <rguenther@suse.de>
5495
5496         PR c/39712
5497         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5498         address expressions.
5499
5500 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5501
5502         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
5503         match changes in Cygwin 1.7
5504         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5505         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
5506
5507 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5508
5509         PR tree-optimization/39701
5510         * doc/invoke.texi (Optimization Options): Document change in
5511         meaning and initialization of -fdelete-null-pointer-checks.
5512
5513 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5514
5515         PR middle-end/39701
5516         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5517
5518         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5519         here.
5520
5521         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5522
5523 2009-04-10  Chao-ying Fu  <fu@mips.com>
5524
5525         * doc/tm.texi (Instruction Output): Document
5526         TARGET_ASM_FINAL_POSTSCAN_INSN.
5527         * target.h (final_postscan_insn): New field in asm_out.
5528         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5529         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5530         * final.c (final_scan_insn): Call
5531         targetm.asm_out.final_postscan_insn after outputting
5532         an asm macro and a normal instruction.
5533
5534         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5535         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5536         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5537         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5538         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5539
5540 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5541
5542         PR middle-end/39701
5543         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5544         variables as non-NULL even with -fdelete-null-pointer-checks.
5545
5546 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5547
5548         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5549
5550 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
5551
5552         PR target/39678
5553         * config/i386/i386.c (classify_argument): Handle SCmode with
5554         (bit_offset % 64) != 0.
5555
5556 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
5557
5558         * doc/invoke.texi (Optimize Options): Add cross-reference to
5559         -Q --help=optimizers examples.
5560
5561 2009-04-10  Ben Elliston  <bje@au.ibm.com>
5562
5563         PR target/36800
5564         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5565         regalign for the reg == fpr and TDmode case.
5566
5567 2009-04-09  David Ayers  <ayers@fsfe.org>
5568
5569         PR objc/29200
5570         * objc/objc-act.c (warn_with_method): Remove helper function.
5571         (check_duplicates): Call warning and inform directly.
5572         (really_start_method): Likewise.
5573
5574 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5575
5576         * expmed.c (expand_divmod): Always use a comparison for a division
5577         by a large unsigned integer.
5578
5579         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5580         for things others than variables or functions as nonzero.
5581
5582 2009-04-09  Nick Clifton  <nickc@redhat.com>
5583
5584         * unwind-compat.c: Change copyright header to refer to version
5585         3 of the GNU General Public License with version 3.1 of the
5586         GCC Runtime Library Exception and to point readers at the
5587         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
5588         * config/alpha/crtfastmath.c: Likewise.
5589         * config/alpha/linux-unwind.h: Likewise.
5590         * config/alpha/qrnnd.asm: Likewise.
5591         * config/alpha/vms-crt0-64.c: Likewise.
5592         * config/alpha/vms-crt0.c: Likewise.
5593         * config/alpha/vms-dwarf2.asm: Likewise.
5594         * config/alpha/vms-dwarf2eh.asm: Likewise.
5595         * config/alpha/vms-psxcrt0-64.c: Likewise.
5596         * config/alpha/vms-psxcrt0.c: Likewise.
5597         * config/alpha/vms_tramp.asm: Likewise.
5598         * config/arc/initfini.c: Likewise.
5599         * config/arc/lib1funcs.asm: Likewise.
5600         * config/arm/bpabi-v6m.S: Likewise.
5601         * config/arm/bpabi.S: Likewise.
5602         * config/arm/bpabi.c: Likewise.
5603         * config/arm/crti.asm: Likewise.
5604         * config/arm/crtn.asm: Likewise.
5605         * config/arm/ieee754-df.S: Likewise.
5606         * config/arm/ieee754-sf.S: Likewise.
5607         * config/arm/lib1funcs.asm: Likewise.
5608         * config/arm/libunwind.S: Likewise.
5609         * config/arm/linux-atomic.c: Likewise.
5610         * config/arm/mmintrin.h: Likewise.
5611         * config/arm/pr-support.c: Likewise.
5612         * config/arm/unaligned-funcs.c: Likewise.
5613         * config/arm/unwind-arm.c: Likewise.
5614         * config/arm/unwind-arm.h: Likewise.
5615         * config/avr/libgcc.S: Likewise.
5616         * config/bfin/crti.s: Likewise.
5617         * config/bfin/crtlibid.s: Likewise.
5618         * config/bfin/crtn.s: Likewise.
5619         * config/bfin/lib1funcs.asm: Likewise.
5620         * config/bfin/linux-unwind.h: Likewise.
5621         * config/cris/arit.c: Likewise.
5622         * config/cris/cris_abi_symbol.c: Likewise.
5623         * config/darwin-64.c: Likewise.
5624         * config/darwin-crt2.c: Likewise.
5625         * config/darwin-crt3.c: Likewise.
5626         * config/darwin.h: Likewise.
5627         * config/dbxelf.h: Likewise.
5628         * config/dfp-bit.c: Likewise.
5629         * config/dfp-bit.h: Likewise.
5630         * config/elfos.h: Likewise.
5631         * config/fixed-bit.c: Likewise.
5632         * config/fixed-bit.h: Likewise.
5633         * config/fp-bit.c: Likewise.
5634         * config/fp-bit.h: Likewise.
5635         * config/fr30/crti.asm: Likewise.
5636         * config/fr30/crtn.asm: Likewise.
5637         * config/fr30/lib1funcs.asm: Likewise.
5638         * config/freebsd-spec.h: Likewise.
5639         * config/frv/cmovd.c: Likewise.
5640         * config/frv/cmovh.c: Likewise.
5641         * config/frv/cmovw.c: Likewise.
5642         * config/frv/frvbegin.c: Likewise.
5643         * config/frv/frvend.c: Likewise.
5644         * config/frv/lib1funcs.asm: Likewise.
5645         * config/glibc-stdint.h: Likewise.
5646         * config/h8300/clzhi2.c: Likewise.
5647         * config/h8300/crti.asm: Likewise.
5648         * config/h8300/crtn.asm: Likewise.
5649         * config/h8300/ctzhi2.c: Likewise.
5650         * config/h8300/fixunssfsi.c: Likewise.
5651         * config/h8300/lib1funcs.asm: Likewise.
5652         * config/h8300/parityhi2.c: Likewise.
5653         * config/h8300/popcounthi2.c: Likewise.
5654         * config/i386/ammintrin.h: Likewise.
5655         * config/i386/att.h: Likewise.
5656         * config/i386/avxintrin.h: Likewise.
5657         * config/i386/biarch64.h: Likewise.
5658         * config/i386/bmmintrin.h: Likewise.
5659         * config/i386/cpuid.h: Likewise.
5660         * config/i386/cross-stdarg.h: Likewise.
5661         * config/i386/crtfastmath.c: Likewise.
5662         * config/i386/crtprec.c: Likewise.
5663         * config/i386/cygming-crtbegin.c: Likewise.
5664         * config/i386/cygming-crtend.c: Likewise.
5665         * config/i386/cygwin.asm: Likewise.
5666         * config/i386/emmintrin.h: Likewise.
5667         * config/i386/gmm_malloc.h: Likewise.
5668         * config/i386/gthr-win32.c: Likewise.
5669         * config/i386/i386.h: Likewise.
5670         * config/i386/immintrin.h: Likewise.
5671         * config/i386/linux-unwind.h: Likewise.
5672         * config/i386/linux64.h: Likewise.
5673         * config/i386/mm3dnow.h: Likewise.
5674         * config/i386/mmintrin-common.h: Likewise.
5675         * config/i386/mmintrin.h: Likewise.
5676         * config/i386/nmmintrin.h: Likewise.
5677         * config/i386/pmm_malloc.h: Likewise.
5678         * config/i386/pmmintrin.h: Likewise.
5679         * config/i386/smmintrin.h: Likewise.
5680         * config/i386/sol2-c1.asm: Likewise.
5681         * config/i386/sol2-ci.asm: Likewise.
5682         * config/i386/sol2-cn.asm: Likewise.
5683         * config/i386/sol2-gc1.asm: Likewise.
5684         * config/i386/tmmintrin.h: Likewise.
5685         * config/i386/unix.h: Likewise.
5686         * config/i386/w32-unwind.h: Likewise.
5687         * config/i386/wmmintrin.h: Likewise.
5688         * config/i386/x86-64.h: Likewise.
5689         * config/i386/x86intrin.h: Likewise.
5690         * config/i386/xmmintrin.h: Likewise.
5691         * config/ia64/crtbegin.asm: Likewise.
5692         * config/ia64/crtend.asm: Likewise.
5693         * config/ia64/crtfastmath.c: Likewise.
5694         * config/ia64/crti.asm: Likewise.
5695         * config/ia64/crtn.asm: Likewise.
5696         * config/ia64/fde-glibc.c: Likewise.
5697         * config/ia64/lib1funcs.asm: Likewise.
5698         * config/ia64/linux-unwind.h: Likewise.
5699         * config/ia64/quadlib.c: Likewise.
5700         * config/ia64/unwind-ia64.c: Likewise.
5701         * config/linux.h: Likewise.
5702         * config/m32c/m32c-lib1.S: Likewise.
5703         * config/m32c/m32c-lib2-trapv.c: Likewise.
5704         * config/m32c/m32c-lib2.c: Likewise.
5705         * config/m32r/initfini.c: Likewise.
5706         * config/m68hc11/larith.asm: Likewise.
5707         * config/m68hc11/m68hc11-crt0.S: Likewise.
5708         * config/m68k/cf.md: Likewise.
5709         * config/m68k/crti.s: Likewise.
5710         * config/m68k/crtn.s: Likewise.
5711         * config/m68k/lb1sf68.asm: Likewise.
5712         * config/m68k/linux-unwind.h: Likewise.
5713         * config/mcore/crti.asm: Likewise.
5714         * config/mcore/crtn.asm: Likewise.
5715         * config/mcore/lib1.asm: Likewise.
5716         * config/mips/linux-unwind.h: Likewise.
5717         * config/mips/loongson.h: Likewise.
5718         * config/mips/mips16.S: Likewise.
5719         * config/mmix/crti.asm: Likewise.
5720         * config/mmix/crtn.asm: Likewise.
5721         * config/pa/fptr.c: Likewise.
5722         * config/pa/hpux-unwind.h: Likewise.
5723         * config/pa/lib2funcs.asm: Likewise.
5724         * config/pa/linux-atomic.c: Likewise.
5725         * config/pa/linux-unwind.h: Likewise.
5726         * config/pa/milli64.S: Likewise.
5727         * config/pa/quadlib.c: Likewise.
5728         * config/pa/stublib.c: Likewise.
5729         * config/picochip/libgccExtras/adddi3.asm: Likewise.
5730         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5731         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5732         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5733         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5734         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5735         * config/picochip/libgccExtras/divmod15.asm: Likewise.
5736         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5737         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5738         * config/picochip/libgccExtras/longjmp.asm: Likewise.
5739         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5740         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5741         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5742         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5743         * config/picochip/libgccExtras/setjmp.asm: Likewise.
5744         * config/picochip/libgccExtras/subdi3.asm: Likewise.
5745         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5746         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5747         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5748         * config/rs6000/750cl.h: Likewise.
5749         * config/rs6000/altivec.h: Likewise.
5750         * config/rs6000/biarch64.h: Likewise.
5751         * config/rs6000/crtresfpr.asm: Likewise.
5752         * config/rs6000/crtresgpr.asm: Likewise.
5753         * config/rs6000/crtresxfpr.asm: Likewise.
5754         * config/rs6000/crtresxgpr.asm: Likewise.
5755         * config/rs6000/crtsavfpr.asm: Likewise.
5756         * config/rs6000/crtsavgpr.asm: Likewise.
5757         * config/rs6000/darwin-asm.h: Likewise.
5758         * config/rs6000/darwin-fallback.c: Likewise.
5759         * config/rs6000/darwin-fpsave.asm: Likewise.
5760         * config/rs6000/darwin-ldouble.c: Likewise.
5761         * config/rs6000/darwin-tramp.asm: Likewise.
5762         * config/rs6000/darwin-unwind.h: Likewise.
5763         * config/rs6000/darwin-vecsave.asm: Likewise.
5764         * config/rs6000/darwin-world.asm: Likewise.
5765         * config/rs6000/e500crtres32gpr.asm: Likewise.
5766         * config/rs6000/e500crtres64gpr.asm: Likewise.
5767         * config/rs6000/e500crtres64gprctr.asm: Likewise.
5768         * config/rs6000/e500crtrest32gpr.asm: Likewise.
5769         * config/rs6000/e500crtrest64gpr.asm: Likewise.
5770         * config/rs6000/e500crtresx32gpr.asm: Likewise.
5771         * config/rs6000/e500crtresx64gpr.asm: Likewise.
5772         * config/rs6000/e500crtsav32gpr.asm: Likewise.
5773         * config/rs6000/e500crtsav64gpr.asm: Likewise.
5774         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5775         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5776         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5777         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5778         * config/rs6000/eabi-ci.asm: Likewise.
5779         * config/rs6000/eabi-cn.asm: Likewise.
5780         * config/rs6000/eabi.asm: Likewise.
5781         * config/rs6000/linux-unwind.h: Likewise.
5782         * config/rs6000/linux64.h: Likewise.
5783         * config/rs6000/paired.h: Likewise.
5784         * config/rs6000/paired.md: Likewise.
5785         * config/rs6000/ppc64-fp.c: Likewise.
5786         * config/rs6000/ppu_intrinsics.h: Likewise.
5787         * config/rs6000/rs6000.h: Likewise.
5788         * config/rs6000/si2vmx.h: Likewise.
5789         * config/rs6000/sol-ci.asm: Likewise.
5790         * config/rs6000/sol-cn.asm: Likewise.
5791         * config/rs6000/spe.h: Likewise.
5792         * config/rs6000/spu2vmx.h: Likewise.
5793         * config/rs6000/sysv4.h: Likewise.
5794         * config/rs6000/tramp.asm: Likewise.
5795         * config/rs6000/vec_types.h: Likewise.
5796         * config/s390/linux-unwind.h: Likewise.
5797         * config/s390/tpf-unwind.h: Likewise.
5798         * config/score/crti.asm: Likewise.
5799         * config/score/crtn.asm: Likewise.
5800         * config/sh/crt1.asm: Likewise.
5801         * config/sh/crti.asm: Likewise.
5802         * config/sh/crtn.asm: Likewise.
5803         * config/sh/divtab-sh4-300.c: Likewise.
5804         * config/sh/divtab-sh4.c: Likewise.
5805         * config/sh/divtab.c: Likewise.
5806         * config/sh/lib1funcs-4-300.asm: Likewise.
5807         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5808         * config/sh/lib1funcs.asm: Likewise.
5809         * config/sh/lib1funcs.h: Likewise.
5810         * config/sh/linux-atomic.asm: Likewise.
5811         * config/sh/linux-unwind.h: Likewise.
5812         * config/sh/shmedia.h: Likewise.
5813         * config/sh/sshmedia.h: Likewise.
5814         * config/sh/ushmedia.h: Likewise.
5815         * config/sparc/crtfastmath.c: Likewise.
5816         * config/sparc/linux-unwind.h: Likewise.
5817         * config/sparc/sol2-c1.asm: Likewise.
5818         * config/sparc/sol2-ci.asm: Likewise.
5819         * config/sparc/sol2-cn.asm: Likewise.
5820         * config/spu/divmodti4.c: Likewise.
5821         * config/spu/divv2df3.c: Likewise.
5822         * config/spu/float_disf.c: Likewise.
5823         * config/spu/float_unsdidf.c: Likewise.
5824         * config/spu/float_unsdisf.c: Likewise.
5825         * config/spu/float_unssidf.c: Likewise.
5826         * config/spu/mfc_multi_tag_release.c: Likewise.
5827         * config/spu/mfc_multi_tag_reserve.c: Likewise.
5828         * config/spu/mfc_tag_release.c: Likewise.
5829         * config/spu/mfc_tag_reserve.c: Likewise.
5830         * config/spu/mfc_tag_table.c: Likewise.
5831         * config/spu/multi3.c: Likewise.
5832         * config/spu/spu_internals.h: Likewise.
5833         * config/spu/spu_intrinsics.h: Likewise.
5834         * config/spu/spu_mfcio.h: Likewise.
5835         * config/spu/vec_types.h: Likewise.
5836         * config/spu/vmx2spu.h: Likewise.
5837         * config/stormy16/stormy16-lib2.c: Likewise.
5838         * config/svr4.h: Likewise.
5839         * config/sync.c: Likewise.
5840         * config/v850/lib1funcs.asm: Likewise.
5841         * config/vxlib-tls.c: Likewise.
5842         * config/vxlib.c: Likewise.
5843         * config/vxworks-dummy.h: Likewise.
5844         * config/xtensa/crti.asm: Likewise.
5845         * config/xtensa/crtn.asm: Likewise.
5846         * config/xtensa/ieee754-df.S: Likewise.
5847         * config/xtensa/ieee754-sf.S: Likewise.
5848         * config/xtensa/lib1funcs.asm: Likewise.
5849         * config/xtensa/lib2funcs.S: Likewise.
5850         * config/xtensa/linux-unwind.h: Likewise.
5851         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5852         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5853         * coretypes.h: Likewise.
5854         * crtstuff.c: Likewise.
5855         * defaults.h: Likewise.
5856         * dwarf2.h: Likewise.
5857         * emutls.c: Likewise.
5858         * gbl-ctors.h: Likewise.
5859         * gcov-io.h: Likewise.
5860         * ginclude/float.h: Likewise.
5861         * ginclude/iso646.h: Likewise.
5862         * ginclude/stdarg.h: Likewise.
5863         * ginclude/stdbool.h: Likewise.
5864         * ginclude/stddef.h: Likewise.
5865         * ginclude/stdfix.h: Likewise.
5866         * ginclude/stdint-gcc.h: Likewise.
5867         * ginclude/tgmath.h: Likewise.
5868         * gthr-aix.h: Likewise.
5869         * gthr-dce.h: Likewise.
5870         * gthr-gnat.c: Likewise.
5871         * gthr-gnat.h: Likewise.
5872         * gthr-lynx.h: Likewise.
5873         * gthr-mipssde.h: Likewise.
5874         * gthr-nks.h: Likewise.
5875         * gthr-posix.c: Likewise.
5876         * gthr-posix.h: Likewise.
5877         * gthr-posix95.h: Likewise.
5878         * gthr-rtems.h: Likewise.
5879         * gthr-single.h: Likewise.
5880         * gthr-solaris.h: Likewise.
5881         * gthr-tpf.h: Likewise.
5882         * gthr-vxworks.h: Likewise.
5883         * gthr-win32.h: Likewise.
5884         * gthr.h: Likewise.
5885         * libgcc2.c: Likewise.
5886         * libgcc2.h: Likewise.
5887         * libgcov.c: Likewise.
5888         * tsystem.h: Likewise.
5889         * typeclass.h: Likewise.
5890         * unwind-c.c: Likewise.
5891         * unwind-compat.h: Likewise.
5892         * unwind-dw2-fde-compat.c: Likewise.
5893         * unwind-dw2-fde-darwin.c: Likewise.
5894         * unwind-dw2-fde-glibc.c: Likewise.
5895         * unwind-dw2-fde.c: Likewise.
5896         * unwind-dw2-fde.h: Likewise.
5897         * unwind-dw2.c: Likewise.
5898         * unwind-dw2.h: Likewise.
5899         * unwind-generic.h: Likewise.
5900         * unwind-pe.h: Likewise.
5901         * unwind-sjlj.c: Likewise.
5902         * unwind.inc: Likewise.
5903         * config/arm/neon-gen.ml: Change generated copyright header to
5904         refer to version 3 of the GNU General Public License with
5905         version 3.1 of the GCC Runtime Library Exception and to point
5906         readers at the COPYING3 and COPYING3.RUNTIME files and the
5907         FSF's license web page.
5908         * config/arm/arm_neon.h: Regenerate.
5909
5910 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
5911
5912         * config/cris/cris.md: Change copyright header to refer to version
5913         3 of the GNU General Public License.
5914         * doc/install.texi2html: Change copyright header to refer to version
5915         3 of the GNU General Public License and to point readers at the
5916         COPYING3 file and the FSF's license web page.
5917         * config/vax/linux.h: Likewise.
5918
5919 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5920
5921         * config/i386/i386.md (cmpcc): New.
5922         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5923         (sync_compare_and_swap_cc*): Delete.
5924
5925         * config/s390/s390.c (s390_compare_emitted): Remove.
5926         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5927         s390_compare_emitted used to be handled.  Assert that modes match.
5928         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5929         refer to sync_compare_and_swap_ccsi.
5930         * config/s390/s390.h (s390_compare_emitted): Remove.
5931         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5932         instead of s390_compare_emitted.
5933         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5934         instead of s390_compare_emitted.
5935         * config/s390/s390.md (cmpcc): New.
5936         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5937         CC_REGNUM, do not pretend it's set.
5938         (sync_compare_and_swap_cc*): Delete.
5939         * config/s390/predicates.md (cc_reg_operand): New.
5940
5941         * expr.c (sync_compare_and_swap_cc): Delete.
5942         * optabs.h (sync_compare_and_swap_cc): Delete.
5943         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5944         is being used with can_compare_p.
5945         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5946         (find_cc_set): New.
5947         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5948         look for a MODE_CC set instead.  Use emit_store_flag.
5949         (expand_compare_and_swap_loop): Likewise, with some additional
5950         complication to avoid a force_reg when useless.  Use
5951         emit_cmp_and_jump_insns.
5952         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5953         * doc/md.texi (sync_compare_and_swap_cc): Merge with
5954         sync_compare_and_swap documentation.
5955
5956 2009-04-09  Jan Hubicka  <jh@suse.cz>
5957
5958         * except.c (find_prev_try): Break out from ....
5959         (duplicate_eh_regions): ... here; properly update prev_try pointers
5960         when duplication part of tree.
5961         (dump_eh_tree): Improve dumping.
5962         (verify_eh_region): New.
5963         (verify_eh_tree): Use it.
5964
5965 2009-04-06  Richard Guenther  <rguenther@suse.de>
5966
5967         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5968         &ARRAY addresses by adjusting their types and prepending
5969         a conversion.
5970         * tree-cfg.c (verify_gimple_assign_single): Verify that
5971         addresses are correct.
5972
5973 2009-04-09  Richard Guenther  <rguenther@suse.de>
5974
5975         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5976         indices into an array reference if possible.
5977         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5978         Fold POINTER_PLUS_EXPR statements with invariant address.
5979
5980 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
5981
5982         PR target/39634
5983         * config.gcc (powerpc64-*-linux*): Always build biarch.
5984
5985 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
5986
5987         PR c/39613
5988         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5989         it and pedwarn if this results in an INTEGER_CST.
5990
5991 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5992
5993         * doc/install.texi: Update minimum GMP version.  Remove obsolete
5994         text in MPFR section.
5995
5996 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
5997
5998         * dwarf2out.c (class_scope_p): New static inline.
5999         (class_or_namespace_scope_p): Use it.
6000         (gen_variable_die): Use DW_TAG_member tag for static data member
6001         declarations instead of DW_TAG_variable.
6002
6003         PR middle-end/39573
6004         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
6005         variables.
6006
6007 2009-04-08  Richard Guenther  <rguenther@suse.de>
6008
6009         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
6010         valueize random data.
6011
6012 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
6013
6014         * config.gcc (aix tm_file):  Add aix-stdint.h.
6015         (aix tm clause use_gcc_stdint):  Set to wrap.
6016         * config/rs6000/aix-stdint.h:  New file.
6017
6018 2009-04-08  Richard Guenther  <rguenther@suse.de>
6019
6020         PR middle-end/36291
6021         * tree-dfa.c (add_referenced_var): Do not recurse into
6022         global initializers.
6023         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
6024         exposed variables.
6025         (fold_const_aggregate_ref): Likewise.
6026
6027 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
6028
6029         * recog.c (ordered_comparison_operator): New.
6030         * gensupport.c (std_preds): Add it.
6031         * doc/md.texi (Machine-Independent Predicates): Document it.
6032
6033 2009-04-08  Jan Hubicka  <jh@suse.cz>
6034
6035         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
6036         * function.h (rtl_eh): Remove exception_handler_label_map.
6037         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
6038         remove_exception_handler_label, for_each_eh_label_1): Remove.
6039         (rtl_remove_unreachable_regions): Remove.
6040         (convert_from_eh_region_ranges): Do not remove unreachable regions.
6041         (find_exception_handler_labels): Don't build the hashtable.
6042         (maybe_remove_eh_handler): Remove.
6043         (for_each_eh_label): Rewrite to walk the tree.
6044         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
6045         * except.h (maybe_remove_eh_handler): Remove.
6046         * passes.c (init_optimization_passes): Schedule second EH cleanup
6047         before out-of-ssa.
6048         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
6049         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
6050
6051 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
6052
6053         * genoutput.c (validate_optab_operands): New.
6054         (gen_insn, gen_expand): Call it.
6055
6056         * genflags.c (gen_insn): Detect misused iterators.
6057         (main): Pass line_no to gen_insn, exit with status 1 on error.
6058
6059         * genextract.c (line_no): Make global.
6060         (VEC_safe_set_locstr): Change assertion to error message.
6061         (main): Exit with status 1 on error.
6062
6063 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
6064
6065         PR c/39614
6066         PR c/39673
6067         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6068         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6069         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
6070         * c-convert.c (convert): Do not call fold on results of conversion
6071         functions when the result is a C_MAYBE_CONST_EXPR.
6072         * c-parser.c (c_parser_postfix_expression): Do not fold condition
6073         of __builtin_choose_expr.
6074         * c-typeck.c (remove_c_maybe_const_expr): New.
6075         (build_unary_op, build_conditional_expr, build_compound_expr,
6076         build_binary_op, c_objc_common_truthvalue_conversion): Call
6077         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
6078         integer operands.
6079
6080 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
6081
6082         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6083         CODE to produce a new one. Add a prototype to use fold_convert_const
6084
6085 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6086
6087         PR bootstrap/39660
6088         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
6089         mix declarations and code.
6090
6091 2009-04-08  Ben Elliston  <bje@au.ibm.com>
6092
6093         * gcc.c: Replace `CC' with `GCC' throughout.
6094
6095 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6096
6097         * doc/invoke.texi: Document Atom support.
6098
6099 2009-04-07  Jason Merrill  <jason@redhat.com>
6100
6101         PR c++/25185
6102         * c-common.h, c-common.c: Add flag_pretty_templates.
6103         * c-opts.c (c_common_handle_option): Set it.
6104         * c.opt: Add -fno-pretty-templates.
6105         * doc/invoke.texi (C++ Dialect Options): Likewise.
6106
6107 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
6108
6109         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
6110         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
6111         (ia64_expand_builtin): Likewise.
6112
6113 2009-04-07  Martin Jambor  <mjambor@suse.cz>
6114
6115         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
6116         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
6117         ADDR_EXPRS are include too.
6118
6119 2009-04-07  Richard Guenther  <rguenther@suse.de>
6120
6121         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
6122         decls are only used if passes as parameters or if they are
6123         local statics and the call is not to a builtin.
6124         (call_may_clobber_ref_p_1): Likewise.
6125
6126 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6127
6128         * expr.c (do_store_flag): Remove last argument.  Simplify code
6129         to avoid duplication of tests already done by can_compare_p.
6130         (expand_expr_real_1): Adjust caller.
6131
6132 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6133
6134         * optabs.c (can_compare_p): Test the predicate of a
6135         cbranch and cstore pattern.
6136
6137 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6138
6139         * expr.c (convert_move): Use emit_store_flag instead of
6140         "emulating" it.
6141
6142 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6143
6144         * config/i386/i386.c (ix86_compare_emitted): Remove.
6145         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
6146         ix86_compare_op0 like ix86_compare_emitted used to be handled.
6147         * config/i386/i386.h (ix86_compare_emitted): Remove.
6148         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
6149         instead of ix86_compare_emitted.
6150         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
6151
6152 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
6153
6154         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
6155         Add t-sysroot-suffix to tmake_file.
6156         * config/print-sysroot-suffix.sh: New file.
6157         * config/t-sysroot-suffix: New file.
6158
6159 2009-04-07  Ben Elliston  <bje@au.ibm.com>
6160
6161         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
6162         as the latter produces a warning when the target does not support
6163         infinity.
6164
6165 2009-04-07  Ben Elliston  <bje@au.ibm.com>
6166
6167         * dfp.c: Replace type punning assignments with memcpy throughout.
6168         * Makefile.in (dfp.o-warn): Remove.
6169
6170 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
6171
6172         PR target/39634
6173         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
6174         Include soft-fp/t-softfp after rs6000/t-linux64.
6175
6176 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6177
6178         * stor-layout.c (set_sizetype): Use the full precision of their
6179         machine mode for bitsize types.
6180
6181 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
6182
6183         * config/i386/i386.md: Revert 2 accidental checkins.
6184
6185 2009-04-06  Joey Ye  <joey.ye@intel.com>
6186             Xuepeng Guo  <xuepeng.guo@intel.com>
6187             H.J. Lu  <hongjiu.lu@intel.com>
6188
6189         Atom pipeline model, tuning and insn selection.
6190         * config.gcc (atom): Add atom config options and target.
6191
6192         * config/i386/atom.md: New.
6193
6194         * config/i386/i386.c (atom_cost): New cost.
6195         (m_ATOM): New macro flag.
6196         (initial_ix86_tune_features): Set m_ATOM.
6197         (x86_accumulate_outgoing_args): Likewise.
6198         (x86_arch_always_fancy_math_387): Likewise.
6199         (processor_target): Add Atom cost.
6200         (cpu_names): Add Atom cpu name.
6201         (override_options): Set Atom ISA.
6202         (ix86_issue_rate): New case PROCESSOR_ATOM.
6203         (ix86_adjust_cost): Likewise.
6204
6205         * config/i386/i386.h (TARGET_ATOM): New target macro.
6206         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
6207         (TARGET_OPT_AGU): New target option.
6208         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
6209         (processor_type): Add PROCESSOR_ATOM.
6210
6211         * config/i386/i386.md (cpu): Add new value "atom".
6212         (use_carry, movu): New attr.
6213         (atom.md): Include atom.md.
6214         (adddi3_carry_rex64): Set attr "use_carry".
6215         (addqi3_carry): Likewise.
6216         (addhi3_carry): Likewise.
6217         (addsi3_carry): Likewise.
6218         (*addsi3_carry_zext): Likewise.
6219         (subdi3_carry_rex64): Likewise.
6220         (subqi3_carry): Likewise.
6221         (subhi3_carry): Likewise.
6222         (subsi3_carry): Likewise.
6223         (x86_movdicc_0_m1_rex64): Likewise.
6224         (*x86_movdicc_0_m1_se): Likewise.
6225         (x86_movsicc_0_m1): Likewise.
6226         (*x86_movsicc_0_m1_se): Likewise.
6227         (*adddi_1_rex64): Emit add insn as much as possible.
6228         (*addsi_1): Likewise.
6229         (return_internal): Set atom_unit.
6230         (return_internal_long): Likewise.
6231         (return_pop_internal): Likewise.
6232         (*rcpsf2_sse): Set atom_sse_attr attr.
6233         (*qrt<mode>2_sse): Likewise.
6234         (*prefetch_sse): Likewise.
6235
6236         * config/i386/i386-c.c (ix86_target_macros_internal): New case
6237         PROCESSOR_ATOM.
6238         (ix86_target_macros_internal): Likewise.
6239
6240         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6241         (*prefetch_sse_rex): Likewise.
6242         (sse_rcpv4sf2): Likewise.
6243         (sse_vmrcpv4sf2): Likewise.
6244         (sse_sqrtv4sf2): Likewise.
6245         (<sse>_vmsqrt<mode>2): Likewise.
6246         (sse_ldmxcsr): Likewise.
6247         (sse_stmxcsr): Likewise.
6248         (*sse_sfence): Likewise.
6249         (sse2_clflush): Likewise.
6250         (*sse2_mfence): Likewise.
6251         (*sse2_lfence): Likewise.
6252         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6253         (<sse>_movup<ssemodesuffixf2c>): Likewise.
6254         (avx_movdqu<avxmodesuffix>): Likewise.
6255         (avx_lddqu<avxmodesuffix>): Likewise.
6256         (sse2_movntv2di): Change attr "type" to "ssemov".
6257         (sse2_movntsi): Likewise.
6258         (rsqrtv8sf2): Change attr "type" to "sseadd".
6259         (sse3_addsubv2df3): Set attr "atom_unit".
6260         (sse3_h<plusminus_insn>v4sf3): Likewise.
6261         (*sse2_pmaddwd): Likewise.
6262         (*vec_extractv2di_1_rex64): Likewise.
6263         (*vec_extractv2di_1_avx): Likewise.
6264         (sse2_psadbw): Likewise.
6265         (ssse3_phaddwv8hi3): Likewise.
6266         (ssse3_phaddwv4hi3): Likewise.
6267         (ssse3_phadddv4si3): Likewise.
6268         (ssse3_phadddv2si3): Likewise.
6269         (ssse3_phaddswv8hi3): Likewise.
6270         (ssse3_phaddswv4hi3): Likewise.
6271         (ssse3_phsubwv8hi3): Likewise.
6272         (ssse3_phsubwv4hi3): Likewise.
6273         (ssse3_phsubdv4si3): Likewise.
6274         (ssse3_phsubdv2si3): Likewise.
6275         (ssse3_phsubswv8hi3): Likewise.
6276         (ssse3_phsubswv4hi3): Likewise.
6277         (ssse3_pmaddubsw128): Likewise.
6278         (sse3_pmaddubsw: Likewise.
6279         (ssse3_palignrti): Likewise.
6280         (ssse3_palignrdi): Likewise.
6281
6282 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
6283
6284         * doc/install.texi (Specific): Fix two cross-references to MinGW.
6285
6286 2009-04-06  Richard Guenther  <rguenther@suse.de>
6287
6288         PR tree-optimization/28868
6289         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6290         of which PHI results we inserted.
6291         (insert_into_preds_of_block): Record inserted PHIs.
6292         (eliminate): Eliminate redundant PHI nodes.
6293         (init_pre): Init inserted_phi_names.
6294
6295 2009-04-06  Richard Guenther  <rguenther@suse.de>
6296
6297         PR tree-optimization/39643
6298         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6299         IMAGPART_EXPRs of complex constants.
6300         (execute_fold_all_builtins): If we folded a call queue
6301         TODO_update_address_taken.
6302
6303 2009-04-06  Jan Hubicka  <jh@suse.cz>
6304
6305         PR middle-end/39659
6306         * except.c (remove_unreachable_regions): Propagate may_contain_throw
6307         flag.
6308
6309 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
6310
6311         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6312         delay slot.
6313         (ic_invalidate_array): Likewise.
6314
6315 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6316
6317         * calls.c (emit_library_call_value_1): Fix a problem with parameter
6318         alignment for library calls.
6319
6320 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
6321
6322         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
6323         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
6324         * config/i386/mingw-stdint.h:  New file.
6325
6326 2009-04-05  Richard Guenther  <rguenther@suse.de>
6327
6328         PR tree-optimization/39648
6329         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6330         our &A vs. &A[0] IL deficiencies.
6331
6332 2009-04-04  Jan Hubicka  <jh@suse.cz>
6333
6334         * except.c (sjlj_find_directly_reachable_regions): Be ready for
6335         removed toplevel regions.
6336         (sjlj_mark_call_sites): Likewise.
6337
6338 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
6339
6340         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
6341         (cygwin tm clause use_gcc_stdint):  Set to wrap.
6342         * config/i386/cygwin-stdint.h:  New file.
6343
6344 2009-04-04  Richard Guenther  <rguenther@suse.de>
6345
6346         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6347         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6348         single-argument PHIs if we are in loop-closed SSA form.
6349         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6350         for the pre-condition.
6351         (slpeel_tree_peel_loop_to_edge): Likewise.
6352         (vect_build_loop_niters): Take an optional sequence to append stmts.
6353         (vect_generate_tmps_on_preheader): Likewise.
6354         (vect_do_peeling_for_loop_bound): Take extra guards for the
6355         pre-condition.
6356         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
6357         the cost model check.
6358         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6359         guards if we are going to peel.  Do not apply versioning in that case.
6360         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6361         (vect_do_peeling_for_loop_bound): Likewise.
6362         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6363         loop bound only record extra pre-conditions, do not apply loop
6364         versioning.
6365
6366 2009-04-04  Richard Guenther  <rguenther@suse.de>
6367
6368         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6369         renaming code.
6370
6371 2009-04-04  Jan Hubicka  <jh@suse.cz>
6372
6373         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6374         last_basic_block for size of bb->index indexed array.
6375         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6376         compute_out, link_btr_uses, build_btr_def_use_webs,
6377         build_btr_def_use_webs, migrate_btr_defs): Likewise.
6378
6379 2009-04-04  Jan Hubicka  <jh@suse.cz>
6380
6381         * except.c (remove_eh_handler_and_replace): Break out from ...
6382         (remove_eh_handler): ... here.
6383         (bring_to_root): New function.
6384         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6385         handled ones, bring others to root of tree.
6386
6387 2009-04-04  Jan Hubicka  <jh@suse.cz>
6388
6389         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6390         (all_phis_safe_to_merge): New function.
6391         (update_info): New structure.
6392         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6393         (cleanup_empty_eh): Update SSA if possible.
6394
6395 2009-04-04  Richard Guenther  <rguenther@suse.de>
6396
6397         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6398         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6399         (append_vuse): Likewise.
6400
6401 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
6402
6403         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6404         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6405         instead of REG_UNSAVED for DW_CFA_undefined.
6406         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6407         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6408         outermost frame.
6409
6410 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
6411
6412         PR target/39501
6413         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6414         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6415         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6416
6417 2009-04-04  Richard Guenther  <rguenther@suse.de>
6418
6419         PR tree-optimization/8781
6420         PR tree-optimization/37892
6421         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6422         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6423         (valueize_refs): Call it for *& valueizations.
6424         (shared_reference_ops_from_ref): Rename to ...
6425         (valueize_shared_reference_ops_from_ref): ... this and valueize.
6426         (shared_reference_ops_from_call): Rename to ...
6427         (valueize_shared_reference_ops_from_call): ... this and valueize.
6428         (vn_reference_lookup): Update.
6429         (visit_reference_op_call): Likewise.
6430         * tree-ssa-pre.c (phi_translate_1): Fold *&.
6431         (eliminate): Value-replace the call address in call statements.
6432
6433 2009-04-04  Richard Guenther  <rguenther@suse.de>
6434
6435         PR tree-optimization/39636
6436         * tree-ssa-forwprop.c
6437         (forward_propagate_addr_into_variable_array_index): Check for
6438         GIMPLE_ASSIGN before accessing the rhs code.
6439
6440 2009-04-03  Jason Merrill  <jason@redhat.com>
6441
6442         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6443
6444 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
6445
6446         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6447         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6448         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6449         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6450         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6451         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6452         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6453         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6454         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6455         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6456         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6457         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6458         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6459         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6460         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6461         Use fr_reg_or_fp01_operand instead of fr_register_operand
6462
6463         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6464         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6465         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6466
6467 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
6468
6469         PR rtl-optimization/39607
6470         PR rtl-optimization/39631
6471
6472         Revert:
6473
6474         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6475         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6476         instead of DF_LR_OUT.
6477         * ira-lives.c (process_bb_node_lives): Ditto.
6478         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6479         instead of DF_LR_{OUT,IN}.
6480         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6481         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6482
6483 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
6484
6485         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6486         (execute_lower_omp): Always run but take the short way out if -fopenmp
6487         is not given.
6488         (gate_lower_omp): Remove, forcing the pass manager to always run the
6489         pass and always set PROP_gimple_lomp.
6490         (pass_lower_omp): Remove gate function.
6491         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6492         PROP_trees.  Instead, require it.
6493         * ipa-cp.c (pass_ipa_cp): Likewise.
6494         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6495         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6496         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6497         and PROP_gimple_leh.
6498
6499 2009-04-03  Richard Guenther  <rguenther@suse.de>
6500
6501         PR middle-end/13146
6502         PR tree-optimization/23940
6503         PR tree-optimization/33237
6504         PR middle-end/33974
6505         PR middle-end/34093
6506         PR tree-optimization/36201
6507         PR tree-optimization/36230
6508         PR tree-optimization/38049
6509         PR tree-optimization/38207
6510         PR tree-optimization/38230
6511         PR tree-optimization/38301
6512         PR tree-optimization/38585
6513         PR middle-end/38895
6514         PR tree-optimization/38985
6515         PR tree-optimization/39299
6516         * tree-ssa-structalias.h: Remove.
6517         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6518         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6519         (struct vuse_element_d): Remove.
6520         (struct vuse_vec_d): Likewise.
6521         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6522         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6523         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6524         VUSE_ELEMENT_VAR): Likewise.
6525         (struct voptype_d): Likewise.
6526         (NUM_VOP_FREE_BUCKETS): Likewise.
6527         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6528         (struct stmt_operands_d): Remove.
6529         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6530         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6531         VDEF_NUM, VDEF_VECT): Likewise.
6532         (copy_virtual_operands): Remove.
6533         (operand_build_cmp): Likewise.
6534         (create_ssa_artificial_load_stmt): Likewise.
6535         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6536         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6537         vuse_index and mayuse_index members.  Pack and move done and iter_type
6538         members to the front.
6539         (SSA_OP_VMAYUSE): Remove.
6540         (SSA_OP_VIRTUAL_USES): Adjust.
6541         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6542         (unlink_stmt_vdef): Declare.
6543         (add_to_addressable_set): Remove.
6544         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6545         (vrp_visit_stmt): Likewise.
6546         * doc/tree-ssa.texi (Alias analysis): Update.
6547         * doc/invoke.texi (max-aliased-vops): Remove docs.
6548         (avg-aliased-vops): Likewise.
6549         * tree-into-ssa.c (syms_to_rename): Remove.
6550         (need_to_update_vops_p): Likewise.
6551         (need_to_initialize_update_ssa_p): Rename to ...
6552         (update_ssa_initialized_fn): ... this.  Track function we are
6553         initialized for.
6554         (symbol_marked_for_renaming): Simplify.
6555         (add_new_name_mapping): Do not set need_to_update_vops_p.
6556         (dump_currdefs): Use SYMS_TO_RENAME.
6557         (rewrite_update_stmt): Always walk all uses/defs.
6558         (dump_update_ssa): Adjust.
6559         (init_update_ssa): Take function argument.  Track what we are
6560         initialized for.
6561         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6562         (create_new_def_for): Initialize for cfun, assert we are initialized
6563         for cfun.
6564         (mark_sym_for_renaming): Simplify.
6565         (mark_set_for_renaming): Do not initialize update-ssa.
6566         (need_ssa_update_p): Simplify.  Take function argument.
6567         (name_mappings_registered_p): Assert we ask for the correct function.
6568         (name_registered_for_update_p): Likewise.
6569         (ssa_names_to_replace): Likewise.
6570         (release_ssa_name_after_update_ssa): Likewise.
6571         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
6572         (dump_decl_set): Do not print a newline.
6573         (debug_decl_set): Do it here.
6574         (dump_update_ssa): And here.
6575         * tree-ssa-loop-im.c (move_computations): Adjust.
6576         (movement_possibility): Likewise.
6577         (determine_max_movement): Likewise.
6578         (gather_mem_refs_stmt): Likewise.
6579         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6580         or NAME_MEMORY_TAG.
6581         * tree-complex.c (update_all_vops): Remove.
6582         (expand_complex_move): Adjust.
6583         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6584         Simplify test for memory referencing statement.  Exclude
6585         non-invariant ADDR_EXPRs.
6586         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6587         * tree-loop-distribution.c (generate_memset_zero): Adjust.
6588         (rdg_flag_uses): Likewise.
6589         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6590         related code.
6591         (tree_optimize_tail_calls_1): Also split the
6592         edge from the entry block if we have degenerate PHI nodes in
6593         the first basic block.
6594         * tree.c (init_ttree): Remove memory-tag related code.
6595         (tree_code_size): Likewise.
6596         (tree_node_structure): Likewise.
6597         (build7_stat): Re-write to be build6_stat.
6598         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6599         (SSA_VAR_P): Adjust.
6600         (struct tree_memory_tag): Remove.
6601         (struct tree_memory_partition_tag): Likewise.
6602         (union tree_node): Adjust.
6603         (build7): Re-write to be build6.
6604         * tree-pass.h (pass_reset_cc_flags): Remove.
6605         (TODO_update_address_taken): New flag.
6606         (pass_simple_dse): Remove.
6607         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6608         * params.h (MAX_ALIASED_VOPS): Remove.
6609         (AVG_ALIASED_VOPS): Likewise.
6610         * omp-low.c (expand_omp_taskreg): Update SSA form.
6611         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6612         aliases the lhs in a copy stmt.
6613         * tree-ssa-dse.c (struct address_walk_data): Remove.
6614         (memory_ssa_name_same): Likewise.
6615         (memory_address_same): Likewise.
6616         (get_kill_of_stmt_lhs): Likewise.
6617         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
6618         unused stores.  Look through PHI nodes into post-dominated regions.
6619         (dse_optimize_stmt): Simplify.  Properly remove stores.
6620         (tree_ssa_dse): Compute dominators.
6621         (execute_simple_dse): Remove.
6622         (pass_simple_dse): Likewise.
6623         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6624         gimple_loaded_syms and gimple_stored_syms computation.
6625         * toplev.c (dump_memory_report): Dump alias and pta stats.
6626         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6627         (vn_reference_eq): Likewise.
6628         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6629         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6630         valueize_vuses): Remove.
6631         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
6632         (get_def_ref_stmt_vuse): ... this.
6633         (vn_reference_lookup_2): New function.
6634         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6635         walking equivalent vuses.  Simplify.
6636         (vn_reference_lookup): Likewise.
6637         (vn_reference_insert): Likewise.
6638         (vn_reference_insert_pieces): Likewise.
6639         (visit_reference_op_call): Simplify.
6640         (visit_reference_op_load): Likewise.
6641         (visit_reference_op_store): Likewise.
6642         (init_scc_vn): Remove shared_lookup_vuses initialization.
6643         (free_scc_vn): Remove shared_lookup_vuses freeing.
6644         (sort_vuses, sort_vuses_heap): Remove.
6645         (get_ref_from_reference_ops): Export.
6646         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6647         vector with single vuse pointer.
6648         (vn_reference_lookup_pieces, vn_reference_lookup,
6649         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6650         (shared_vuses_from_stmt): Remove.
6651         (get_ref_from_reference_ops): Declare.
6652         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6653         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6654         memory-tag related code.
6655         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6656         (likely_value): Add comment, skip static-chain of call statements.
6657         (surely_varying_stmt_p): Adjust.
6658         (gimplify_and_update_call_from_tree): Likewise.
6659         (execute_fold_all_builtins): Do not rebuild alias info.
6660         (gimplify_and_update_call_from_tree): Properly update VOPs.
6661         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6662         (copy_ref_info): Remove memory-tag related code.
6663         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6664         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6665         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6666         computation.
6667         * tree-ssa-dom.c (gimple_p): Remove typedef.
6668         (eliminate_redundant_computations): Adjust.
6669         (record_equivalences_from_stmt): Likewise.
6670         (avail_expr_hash): Likewise.
6671         (avail_expr_eq): Likewise.
6672         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
6673         (stmt_makes_single_load): Likewise.
6674         (stmt_makes_single_store): Likewise.
6675         * tree-ssa-alias.c: Rewrite completely.
6676         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6677         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6678         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6679         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6680         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6681         Remove public functions.
6682         (pass_reset_cc_flags): Remove.
6683         (pass_build_alias): Move ...
6684         * tree-ssa-structalias.c (pass_build_alias): ... here.
6685         * tree-ssa-alias.c (may_be_aliased): Move ...
6686         * tree-flow-inline.h (may_be_aliased): ... here.
6687         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6688         count_uses_and_derefs): Move ...
6689         * gimple.c: ... here.
6690         * gimple.h (count_uses_and_derefs): Declare.
6691         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6692         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6693         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6694         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6695         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6696         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6697         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6698         New functions.
6699         * tree-dfa.c (refs_may_alias_p): Move ...
6700         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
6701         * tree-ssa-alias.h: New file.
6702         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6703         (statement_sink_location): Likewise.
6704         * opts.c (decode_options): Do not adjust max-aliased-vops or
6705         avg-aliased-vops values.
6706         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6707         (TV_CALL_CLOBBER): Likewise.
6708         (TV_FLOW_SENSITIVE): Likewise.
6709         (TV_FLOW_INSENSITIVE): Likewise.
6710         (TV_MEMORY_PARTITIONING): Likewise.
6711         (TV_ALIAS_STMT_WALK): New timevar.
6712         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6713         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6714         (get_address_description): Remove memory-tag related code.
6715         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6716         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6717         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6718         and immediate uses in statements.  Document.
6719         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6720         (dump_symbols): Remove.
6721         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6722         * alias.c (get_deref_alias_set): New function split out from ...
6723         (get_alias_set): ... here.
6724         * alias.h (get_deref_alias_set): Declare.
6725         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6726         type parameter.  Remove restrict pointer handling.  Create a
6727         ref-all pointer in case type-based alias sets do not conflict.
6728         (vect_analyze_data_refs): Remove SMT related code.
6729         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6730         (vectorizable_load): Likewise.
6731         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6732         (DR_SYMBOL_TAG, DR_VOPS): Remove.
6733         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6734         Ignore vops and SMTs.
6735         (dr_analyze_alias): Likewise..
6736         (free_data_ref): Likewise.
6737         (create_data_ref): Likewise.
6738         (analyze_all_data_dependences): Likewise.
6739         (get_references_in_stmt): Adjust.
6740         * tree-flow-inline.h (gimple_aliases_computed_p,
6741         gimple_addressable_vars, gimple_call_clobbered_vars,
6742         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6743         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6744         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6745         gimple_mem_ref_stats): Remove.
6746         (gimple_vop): New function.
6747         (op_iter_next_use): Remove vuses and mayuses cases.
6748         (op_iter_next_def): Remove vdefs case.
6749         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6750         (clear_and_done_ssa_iter): Do not set removed fields.
6751         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
6752         Assert we are not iterating over vuses or vdefs if not also
6753         iterating over uses or defs.
6754         (op_iter_init_use): Likewise.
6755         (op_iter_init_def): Likewise.
6756         (op_iter_next_vdef): Remove.
6757         (op_iter_next_mustdef): Likewise.
6758         (op_iter_init_vdef): Likewise.
6759         (compare_ssa_operands_equal): Likewise.
6760         (link_use_stmts_after): Handle vuse operand.
6761         (is_call_used): Use is_call_clobbered.
6762         (is_call_clobbered): Global variables are always call clobbered,
6763         query the call-clobbers bitmap.
6764         (mark_call_clobbered): Ignore global variables.
6765         (clear_call_clobbered): Likewise.
6766         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6767         virtual operands sanity check.
6768         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6769         Remove.
6770         (TARGET_MEM_REF): Remove TMR_TAG operand.
6771         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6772         Remove call-clobber related code.
6773         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
6774         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6775         partitions or escape reason.
6776         (get_single_def_stmt, get_single_def_stmt_from_phi,
6777         get_single_def_stmt_with_phi): Remove.
6778         (dump_referenced_vars): Tidy.
6779         (get_ref_base_and_extent): Allow bare decls.
6780         (collect_dfa_stats): Adjust.
6781         * graphite.c (rename_variables_in_stmt): Adjust.
6782         (graphite_copy_stmts_from_block): Likewise.
6783         (translate_clast): Likewise.
6784         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6785         (EXPR_DIES): New.
6786         (translate_vuse_through_block): Use the oracle.
6787         (phi_translate_1): Adjust.
6788         (value_dies_in_block_x): Use the oracle.  Cache the outcome
6789         in EXPR_DIES.
6790         (valid_in_sets): Check if the VUSE for
6791         a REFERENCE is available.
6792         (eliminate): Do not remove stmts during elimination,
6793         instead queue and remove them afterwards.
6794         (do_pre): Do not rebuild alias info.
6795         (pass_pre): Run TODO_rebuild_alias before PRE.
6796         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6797         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6798         (mark_all_v_defs_stmt): Remove.
6799         (mark_all_v_defs_seq): Adjust.
6800         (sra_replace): Likewise.
6801         (scalarize_use): Likewise.
6802         (scalarize_copy): Likewise.
6803         (scalarize_init): Likewise.
6804         (scalarize_ldst): Likewise.
6805         (todoflags): Remove.
6806         (tree_sra): Do not rebuild alias info.
6807         (tree_sra_early): Adjust.
6808         (pass_sra): Run TODO_update_address_taken before SRA.
6809         * tree-predcom.c (set_alias_info): Remove.
6810         (prepare_initializers_chain): Do not call it.
6811         (mark_virtual_ops_for_renaming): Adjust.
6812         (mark_virtual_ops_for_renaming_list): Remove.
6813         (initialize_root_vars): Adjust.
6814         (initialize_root_vars_lm): Likewise.
6815         (prepare_initializers_chain): Likewise.
6816         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6817         (may_propagate_copy_into_stmt): Likewise.
6818         (merge_alias_info): Do nothing for now.
6819         (propagate_tree_value_into_stmt): Adjust.
6820         (stmt_may_generate_copy): Likewise.
6821         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6822         not mark symbols for renaming.
6823         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6824         with the same statement, make sure to update the new pointed-to one.
6825         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6826         call statements, do not mark symbols for renaming.
6827         (mark_operand_necessary): Dump something.
6828         (ref_may_be_aliased): New function.
6829         (mark_aliased_reaching_defs_necessary_1): New helper function.
6830         (mark_aliased_reaching_defs_necessary): Likewise.
6831         (mark_all_reaching_defs_necessary_1): Likewise.
6832         (mark_all_reaching_defs_necessary): Likewise.
6833         (propagate_necessity): Do not process virtual PHIs.  For
6834         non-aliased loads mark all reaching definitions as necessary.
6835         For aliased loads and stores mark the immediate dominating
6836         aliased clobbers as necessary.
6837         (visited): New global static.
6838         (perform_tree_ssa_dce): Free visited bitmap after propagating
6839         necessity.
6840         (remove_dead_phis): Perform simple dead virtual PHI removal.
6841         (remove_dead_stmt): Properly unlink virtual operands when
6842         removing stores.
6843         (eliminate_unnecessary_stmts): Schedule PHI removal after
6844         stmt removal.
6845         * tree-ssa-ter.c (is_replaceable_p): Adjust.
6846         (process_replaceable): Likewise.
6847         (find_replaceable_in_bb): Likewise.
6848         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6849         based on the single gimple vop.
6850         (verify_flow_insensitive_alias_info): Remove.
6851         (verify_flow_sensitive_alias_info): Likewise.
6852         (verify_call_clobbering): Likewise.
6853         (verify_memory_partitions): Likewise.
6854         (verify_alias_info): Likewise.
6855         (verify_ssa): Adjust..
6856         (execute_update_addresses_taken): Export.  Update SSA
6857         manually.  Optimize only when optimizing.  Use a local bitmap.
6858         (pass_update_address_taken): Remove TODO_update_ssa, add
6859         TODO_dump_func.
6860         (pass_update_address_taken): Just use TODO_update_address_taken.
6861         (init_tree_ssa): Do not initialize addressable_vars.
6862         (verify_ssa): Verify new VUSE / VDEF properties.
6863         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6864         Do not call verify_alias_info.
6865         (delete_tree_ssa): Clear the VUSE, VDEF operands.
6866         Do not free the loaded and stored syms bitmaps.  Reset the escaped
6867         and callused solutions.  Do not free addressable_vars.
6868         Remove memory-tag related code.
6869         (warn_uninitialized_var): Aliases are always available.
6870         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6871         * lambda-code.c (can_put_in_inner_loop): Adjust.
6872         (can_put_after_inner_loop): Likewise.
6873         (perfect_nestify): Likewise.
6874         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6875         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6876         (vectorizable_conversion): Do not mark symbols for renaming.
6877         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6878         (expand_call_inline): Unlink the calls virtual operands before
6879         replacing it.
6880         (tree_function_versioning): Do not call update_ssa if we are not
6881         updating clones.  Simplify.
6882         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6883         (propagate_with_phi): Likewise..
6884         * tree-outof-ssa.c (create_temp): Remove memory tag and call
6885         clobber code.  Assert we are not aliased or global.
6886         * tree-flow.h: Include tree-ssa-alias.h
6887         (enum escape_type): Remove.
6888         (struct mem_sym_stats_d): Likewise.
6889         (struct mem_ref_stats_d): Likewise.
6890         (struct gimple_df): Add vop member.  Remove global_var,
6891         call_clobbered_vars, call_used_vars, addressable_vars,
6892         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
6893         escaped and callused members.
6894         (struct ptr_info_def): Remove all members, add points-to solution
6895         member pt.
6896         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6897         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6898         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6899         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6900         (tree-ssa-alias.o): Likewise.
6901         (toplev.o): Add tree-ssa-alias.h
6902         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6903         * gimple.c (gimple_set_bb): Fix off-by-one error.
6904         (is_gimple_reg): Do not handle memory tags.
6905         (gimple_copy): Also copy virtual operands.
6906         Delay updating the statement.  Do not reset loaded and stored syms.
6907         (gimple_set_stored_syms): Remove.
6908         (gimple_set_loaded_syms): Likewise.
6909         (gimple_call_copy_skip_args): Copy the virtual operands
6910         and mark the new statement modified.
6911         * tree-ssa-structalias.c (may_alias_p): Remove.
6912         (set_uids_in_ptset): Take the alias set to prune with as
6913         parameter.  Fold in the alias test of may_alias_p.
6914         (compute_points_to_sets): Compute whether a ptr is dereferenced
6915         in a local sbitmap.
6916         (process_constraint): Deal with &ANYTHING on the lhs, reject all
6917         other ADDRESSOF constraints on the lhs.
6918         (get_constraint_for_component_ref): Assert that we don't get
6919         ADDRESSOF constraints from the base of the reference.
6920         Properly generate UNKNOWN_OFFSET for DEREF if needed.
6921         (struct variable_info): Remove collapsed_to member.
6922         (get_varinfo_fc): Remove.
6923         (new_var_info): Do not set collapsed_to.
6924         (dump_constraint): Do not follow cycles.
6925         (dump_constraint_graph): Likewise.
6926         (build_pred_graph): Likewise.
6927         (build_succ_graph): Likewise.
6928         (rewrite_constraints): Likewise.
6929         (do_simple_structure_copy): Remove.
6930         (do_rhs_deref_structure_copy): Remove.
6931         (do_lhs_deref_structure_copy): Remove.
6932         (collapse_rest_of_var): Remove.
6933         (do_structure_copy): Re-implement.
6934         (pta_stats): New global variable.
6935         (dump_pta_stats): New function.
6936         (struct constraint_expr): Make offset signed.
6937         (UNKNOWN_OFFSET): Define special value.
6938         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6939         (solution_set_expand): New helper function split out from ...
6940         (do_sd_constraint): ... here.
6941         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
6942         (do_ds_constraint): Likewise.
6943         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
6944         and CALLUSED = *CALLUSED.
6945         (set_union_with_increment): Make inc argument signed.
6946         (type_safe): Remove.
6947         (get_constraint_for_ptr_offset): Handle unknown and negative
6948         constant offsets.
6949         (first_vi_for_offset): Handle offsets before start.  Bail
6950         out early for offsets beyond the variable extent.
6951         (first_or_preceding_vi_for_offset): New function.
6952         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6953         Together with ESCAPED = *ESCAPED this properly computes reachability.
6954         (find_what_var_points_to): New function.
6955         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6956         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6957         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6958         pt_solutions_intersect): New functions.
6959         (compute_call_used_vars): Remove.
6960         (compute_may_aliases): New main entry into PTA computation.
6961         * gimple.h (gimple_p): New typedef.
6962         (struct gimple_statement_base): Remove references_memory_p.
6963         (struct gimple_statement_with_memory_ops_base): Remove
6964         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
6965         members.
6966         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6967         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6968         gimple_set_references_memory): Remove.
6969         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6970         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6971         New functions.
6972         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6973         (verify_expr): Allow RESULT_DECL.
6974         (gimple_duplicate_bb): Do not copy virtual operands.
6975         (gimple_duplicate_sese_region): Adjust.
6976         (gimple_duplicate_sese_tail): Likewise.
6977         (mark_virtual_ops_in_region): Remove.
6978         (move_sese_region_to_fn): Do not call it.
6979         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6980         and pass_simple_dse.
6981         (execute_function_todo): Handle TODO_update_address_taken,
6982         call execute_update_addresses_taken for TODO_rebuild_alias.
6983         (execute_todo): Adjust.
6984         (execute_one_pass): Init dump files early.
6985         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6986         call-clobbered.
6987         (create_general_new_stmt): Clear vops.
6988         * tree-ssa-reassoc.c (get_rank): Adjust.
6989         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6990         symbols for renaming.
6991         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6992         (PARAM_AVG_ALIASED_VOPS): Likewise.
6993         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6994         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
6995         * tree-ssa-operands.c: Simplify for new virtual operand representation.
6996         (operand_build_cmp, copy_virtual_operands,
6997         create_ssa_artificial_load_stmt, add_to_addressable_set,
6998         gimple_add_to_addresses_taken): Remove public functions.
6999         (unlink_stmt_vdef): New function.
7000
7001 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
7002
7003         * config.gcc (powerpc-*-linux*): Merge variants.
7004
7005 2009-04-02  Chao-ying Fu  <fu@mips.com>
7006             James Grosbach  <james.grosbach@microchip.com>
7007
7008         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
7009         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
7010         cop0_sp_offset.
7011         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
7012         keep_interrupts_masked_p, use_debug_exception_return_p.
7013         (mips_attribute_table): Add interrupt, use_shadow_register_set,
7014         keep_interrupts_masked, use_debug_exception_return.
7015         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
7016         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
7017         New functions.
7018         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
7019         (mips_print_operand): Process COP0 registers to print $0 .. $31
7020         correctly for GAS to process.
7021         (mips_interrupt_extra_call_saved_reg_p): New function.
7022         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
7023         extra registers.
7024         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
7025         (mips_compute_frame_info): Add supports for interrupt context that
7026         includes doubleword accumulators and COP0 registers.
7027         (mips_for_each_saved_acc): New function.
7028         (mips_for_each_saved_gpr_and_fpr): Change the function name from
7029         mips_for_each_saved_reg.
7030         (mips_save_reg): Save accumulators.
7031         (mips_kernel_reg_p): A new for_each_rtx callback.
7032         (mips_expand_prologue): Support interrupt handlers.
7033         (mips_restore_reg): Restore accumulators.
7034         (mips_expand_epilogue): Support interrupt handlers.
7035         (mips_can_use_return_insn): Return false for interrupt handlers.
7036         (mips_epilogue_uses): New function.
7037         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
7038         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
7039         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
7040         cop0_move): New instructions.
7041         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
7042         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
7043         defines.
7044         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
7045         New defines.
7046         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
7047         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
7048         interrupt handlers, we use K0 as the temporary register.
7049         (EPILOGUE_USES): Change to a function call.
7050         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
7051         handlers, we use K0 as the temporary register.
7052
7053         * doc/extend.texi (Function Attributes): Document interrupt,
7054         use_shadow_register_set, keep_interrupts_masked,
7055         use_debug_exception_return for MIPS attributes.
7056
7057 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
7058
7059         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
7060         Remove a number of t-files from tmake_file.
7061         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
7062         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
7063         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7064         target_prototype, not TARGET_PROTOTYPE.
7065         (LINK_OS_GNU_SPEC): Define.
7066         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
7067         and darwin-ldoubdle.c.
7068
7069 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7070
7071         PR driver/39293
7072         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
7073         (cpp_options): Ditto.
7074         (default_compilers): Ditto.
7075         (display_help): Ditto.
7076         (process_command): Ditto.
7077         (do_spec_1): Ditto.
7078         (set_input): Use lbasename instead of duplicate code.
7079         (save_temps_prefix): New static for -save-temps=obj.
7080         (save_temps_length): Ditto.
7081
7082         * doc/invoke.texi (-save-temps=obj): Document new variant to
7083         -save-temps switch.
7084
7085 2009-04-02  Jeff Law  <law@redhat.com>
7086
7087         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
7088         variable.
7089
7090 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7091
7092         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
7093         * configure: Regenerated.
7094
7095 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7096
7097         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
7098         share the argument list.
7099
7100 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7101
7102         Merge
7103
7104         2009-02-12  Diego Novillo  <dnovillo@google.com>
7105
7106         * varpool.c (debug_varpool): New.
7107         * cgraph.h (debug_varpool): Declare.
7108
7109 2009-04-02  Jan Hubicka  <jh@suse.cz>
7110
7111         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
7112         pass.
7113
7114 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7115
7116         * config/i386/i386.c (ix86_abi): Move initialization to ...
7117         (override_options): Here.
7118
7119 2009-04-02  Christian Bruel  <christian.bruel@st.com>
7120
7121         * config/sh/sh.c (sh_dwarf_register_span): New function.
7122         (TARGET_DWARF_REGISTER_SPAN): Define.
7123         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
7124
7125 2009-04-02  Ira Rosen  <irar@il.ibm.com>
7126
7127         PR tree-optimization/39595
7128         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
7129         interleaved loads group is not  greater than the SLP group size.
7130
7131 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7132
7133         * builtins.c (is_builtin_name): New.
7134         (called_as_built_in): Use is_builtin_name.
7135         * tree.h (is_builtin_name): New.
7136         * varasm.c (incorporeal_function_p): Use is_builtin_name
7137
7138 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
7139
7140         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
7141
7142 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
7143
7144         PR c++/26693
7145         * c-decl.c (clone_underlying_type): Move this ...
7146         * c-common.c (set_underlying_type): ... here.
7147         Also, make sure the function properly sets TYPE_STUB_DECL() on
7148         the newly created typedef variant type.
7149         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7150         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
7151         points.
7152
7153 2009-04-02  Richard Guenther  <rguenther@suse.de>
7154
7155         PR tree-optimization/37221
7156         * tree-flow.h (degenerate_phi_result): Declare.
7157         * tree-ssa-dom.c (degenerate_phi_result): Export.
7158         * tree-scalar-evolution.c (analyze_initial_condition): If
7159         the initial condition is defined by a degenerate PHI node
7160         use the degenerate value.
7161
7162 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
7163
7164         PR rtl-optimization/39588
7165         * combine.c (merge_outer_ops): Do not set the constant when this
7166         is not necessary.
7167         (simplify_shift_const_1): Do not modify it either in this case.
7168
7169 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
7170
7171         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
7172         tuning is deprecated if -mtune value is set to an Itanium1 variant.
7173
7174 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
7175
7176         PR c/29027
7177         * c-lex.c (interpret_float): Default (no suffix) is double.
7178
7179 2009-04-1  Xinliang David Li  <davidxl@google.com>
7180
7181         * config/i386/i386.c (legitimate_constant_p): Recognize
7182         all one vector constant.
7183
7184 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7185
7186         * config/vax/vax.c: Add #includes to silence warnings.
7187         Change #include order to silence two warnings.
7188
7189 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7190
7191         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
7192         (ASM_SPEC): Pass -k to the assembler for PIC code.
7193
7194 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7195
7196         * config.gcc: Add vax-*-linux* to the switch.
7197         * config/vax/linux.h: New file. (TARGET_VERSION,
7198         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
7199
7200 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7201
7202         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
7203         Use predicate macros instead of GET_CODE() == foo.
7204         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
7205         ashlsi3, rotrsi3, <unnamed>): Likewise.
7206
7207 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7208
7209         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
7210         jbbccihi, jbbccisi): Remova trailing whitespace.
7211         * config/vax/constraints.md: Likewise.
7212         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7213         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
7214         * config/vax/predicates.md: Likewise.
7215         * config/vax/vax.c (print_operand_address, vax_output_int_move,
7216         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
7217         * config/vax/vax.h: Likewise.
7218         * config/vax/vax.md (nonlocal_goto): Likewise.
7219
7220 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7221
7222         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
7223         (indirectable_address_p, adjacent_operands_p): Add spaces around
7224         braces.
7225         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
7226
7227 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7228
7229         * config/vax/vax.c (legitimate_constant_address_p,
7230         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
7231         index_term_p, reg_plus_index_p, legitimate_address_p,
7232         vax_mode_dependent_address_p): Update comments to match functions
7233         modified by the recent int->bool conversion.
7234
7235 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7236
7237         * config/vax/builtins.md: Update copyright message.
7238         * config/vax/constraints.md: Likewise.
7239         * config/vax/netbsd-elf.h: Likewise.
7240         * config/vax/predicates.md: Likewise.
7241         * config/vax/vax-protos.h: Likewise.
7242         * config/vax/vax.c: Likewise.
7243         * config/vax/vax.h: Likewise.
7244         * config/vax/vax.md: Likewise.
7245         * config/vax/vax.opt: Likewise.
7246
7247 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7248
7249         * config/vax/builtins.md (ffssi2, ffssi2_internal,
7250         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
7251         * config/vax/constraints.md (B, R): Likewise.
7252         * config/vax/predicates.md (external_memory_operand,
7253         nonimmediate_addsub_di_operand): Likewise.
7254         * config/vax/vax.c (vax_output_int_add): Likewise.
7255         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7256         untyped_call): Likewise.
7257
7258 2009-04-01  Matt Thomas  <matt@3am-software.com>
7259
7260         * config/vax/predicates.md: New file.
7261         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7262         external_const_operand, nonsymbolic_operand, external_memory_operand,
7263         indirect_memory_operand, indexed_memory_operand,
7264         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7265         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7266         predicate.
7267         * config/vax/constraints.md: New file.
7268         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7269         New constraint.
7270         * config/vax/builtins.md: New file.
7271         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7272         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7273         jbbccisi): Define.
7274         * config/vax/vax.opt (mqmath): Add option.
7275         * config/vax/vax.md (isfx): Extend with DI.
7276         (VAXintQH, VAXintQHSD): Define.
7277         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7278         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7279         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7280         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7281         (movdi): Update constraints and use vax_output_int_move().
7282         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7283         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7284         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7285         nonlocal_goto): New.
7286         (mov<mode>): Extend accepted operand types.
7287         (subdi3_old): Rename from subdi3, change update constraints and use
7288         a new implementation.
7289         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7290         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7291         MOVE_RATIO, CLEAR_RATIO): Define.
7292         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7293         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7294         (PRINT_OPERAND): Redefine using a function instead of inlined code.
7295         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7296         (split_quadword_operands): Make static and really allow variable
7297         splitting.
7298         (print_operand_address): Update for PIC generation.
7299         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7300         indexable_address_p, fixup_mathdi_operand,
7301         vax_expand_addsub_di_operands, adjacent_operands_p): New.
7302         (vax_float_literal, legitimate_constant_p,
7303         indirectable_constant_address_p, index_term_p,
7304         reg_plus_index_p): Return bool instead of int.
7305         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7306         where needed.
7307         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7308         generation.
7309         (vax_output_conditional_branch): Indent.
7310         (legitimate_constant_address_p, indirectable_constant_address_p,
7311         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7312         vax_mode_dependent_address_p): Return bool instead of int, update for
7313         PIC generation.
7314         * config/vax/vax-protos.h (legitimate_constant_address_p,
7315         legitimate_constant_p, legitimate_address_p,
7316         vax_mode_dependent_address_p): Change declaration to bool.
7317         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7318         vax_expand_addsub_di_operands, vax_output_int_subtract,
7319         vax_output_movmemsi): Declare.
7320         (split_quadword_operands, vax_float_literal): Delete declaration.
7321         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7322         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7323         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7324         ASM_OUTPUT_DWARF_PCREL): Define.
7325         (ASM_SPEC): Change definition to allow PIC generation.
7326
7327 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
7328
7329         * doc/sourcebuild.texi: Update front-end requirements.
7330
7331 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7332
7333         PR target/39226
7334         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7335         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7336         (booldi3_internal3): Use boolean_or_operator instead of
7337         boolean_operator.
7338
7339 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
7340
7341         PR c/39605
7342         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7343         declarator whose size is not an integer constant expression but
7344         folds to an integer constant, then treat it as a constant
7345         subsequently.
7346
7347 2009-04-01  Richard Guenther  <rguenther@suse.de>
7348
7349         * fold-const.c (fold_plusminus_mult_expr): Do not fold
7350         i * 4 + 2 to (i * 2 + 1) * 2.
7351
7352 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7353
7354         PR c/37772
7355         * c-parser.c (c_parser_asm_statement): Skip until close paren and
7356         return if c_parser_asm_string_literal returned NULL.
7357
7358 2009-04-01  Nick Clifton  <nickc@redhat.com>
7359
7360         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7361         already defined.
7362         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7363         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7364         other typedefs to avoid conflicts with libgcc2.c.  Define labels
7365         to gain 16-bit bit-manipulation functions from libgcc2.c and then
7366         include it.
7367         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
7368         to gain 16-bit trapping arithmetic functions from libgcc2.c and
7369         then include it.
7370
7371 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
7372
7373         * varasm.c (default_function_rodata_section): Declare DOT as
7374         const char*.
7375
7376 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
7377             Andrey Galkin  <agalkin@hypercom.com>
7378
7379         PR/39492
7380         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7381         Make object_name unique for each process.
7382
7383 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7384
7385         PR other/39591
7386         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7387         addressable variables in the parallel that could go out of scope while
7388         running queued tasks.
7389
7390 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
7391
7392         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7393         (CASE_VALUES_THRESHOLD): Redefine.
7394         * config/avr/avr.c (avr_override_options): Remove initialization of
7395         avr_case_values_threshold variable.
7396         (avr_case_values_threshold): Remove variable. Add new function.
7397         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7398         * config/avr/avr.opt (mno-tablejump): Remove option.
7399         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7400
7401 2009-04-01  DJ Delorie  <dj@redhat.com>
7402
7403         * varasm.c (default_function_rodata_section): Don't assume
7404         anything about where the first '.' in the section name is.
7405
7406 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
7407
7408         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7409         rs6000_emit_stack_tie.
7410
7411 2009-03-31  Ian Lance Taylor  <iant@google.com>
7412
7413         * tree-eh.c (tree_remove_unreachable_handlers): Compare
7414         gimple_code with GIMPLE_RESX, not RESX.
7415
7416 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7417
7418         * c-common.c (c_get_ident): New.
7419         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7420
7421 2009-04-01  Ben Elliston  <bje@au.ibm.com>
7422
7423         * config/rs6000/sysv4.opt (msdata): Improve option description.
7424
7425 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
7426
7427         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7428         (divdf3_internal_lat): Remove.
7429         (divxf3_internal_lat): Remove.
7430         (divxf3_internal_thr): Remove.
7431         (divxf): Use divxf3_internal.
7432         * config/ia64/div.md (divsf3_internal_lat): New.
7433         (divdf3_internal_lat): New.
7434         (divxf3_internal): New.
7435
7436 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7437
7438         PR c/448
7439         * Makefile.in (USE_GCC_STDINT): Define.
7440         (stmp-int-hdrs): Install stdint.h if applicable.
7441         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7442         if known.
7443         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7444         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7445         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7446         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7447         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7448         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7449         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7450         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7451         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7452         (c_common_nodes_and_builtins): Initialize
7453         underlying_wchar_type_node.  Do not initialize
7454         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
7455         nodes for new types.
7456         (c_stddef_cpp_builtins): Define macros for new types.
7457         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7458         Remove.
7459         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7460         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7461         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7462         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7463         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7464         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7465         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7466         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7467         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7468         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7469         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7470         int16_type_node, int32_type_node, int64_type_node,
7471         uint8_type_node, uint16_type_node, c_uint32_type_node,
7472         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7473         int_least32_type_node, int_least64_type_node,
7474         uint_least8_type_node, uint_least16_type_node,
7475         uint_least32_type_node, uint_least64_type_node,
7476         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7477         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7478         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7479         uintptr_type_node): Define.
7480         * c-cppbuiltin.c (builtin_define_constants,
7481         builtin_define_type_minmax): New.
7482         (builtin_define_stdint_macros): Define more macros.
7483         (c_cpp_builtins): Define more limit macros.
7484         (type_suffix): New.
7485         (builtin_define_type_max): Define in terms of
7486         builtin_define_type_minmax.  Remove is_long parameter.  All
7487         callers changed.
7488         * config.gcc (use_gcc_stdint): Define.
7489         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7490         Add newlib-stdint.h for generic targets.
7491         * config/glibc-stdint.h, config/newlib-stdint.h,
7492         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7493         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7494         * config/score/score.h (UINTPTR_TYPE): Define.
7495         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7496         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7497         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7498         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7499         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7500         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7501         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7502         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7503         * config/spu/spu.h (STDINT_LONG32): Define.
7504         * configure.ac (use_gcc_stdint): Substitute.
7505         * configure: Regenerate.
7506         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7507         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7508         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7509         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7510         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7511         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7512         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7513         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7514         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7515         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7516         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7517         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7518         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7519         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7520         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7521         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7522         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7523         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7524         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7525         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7526         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7527         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7528         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7529         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7530         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7531         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7532         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7533         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7534         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7535
7536 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7537
7538         * loop-iv.c (suitable_set_for_replacement): Renamed from
7539         simplify_using_assignment; changed to return bool and to accept new
7540         args DEST and SRC.  Return true iff we find a source/destination pair
7541         that can be used to make a replacement, and fill SRC and DEST if so.
7542         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
7543         changed.
7544         (simplify_using_initial_values): Deal with altered regs here and track
7545         more precisely the effect they have on the validity of our expression.
7546
7547         * loop-iv.c (simplify_using_condition): A condition of the form
7548         (EQ REG CONST) can be used to simply make a substitution.
7549         (simplify_using_initial_values): Keep track of conditions we have seen
7550         and keep using them to simplify new expressions, while applying the
7551         same substitutions to them as to the expression.
7552
7553         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7554         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7555         GEU/LTU reversed.
7556
7557         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
7558         changed.  Use this when trying to improve the upper bound.
7559         Generate the comparison by using simplify_gen_relational.
7560
7561         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7562
7563         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7564         functions.
7565         (simplify_using_assignment, simplify_using_initial_values): Call
7566         replace_in_expr to make replacements.  Call replace_single_def_regs
7567         once on the initial version of the expression.
7568
7569 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7570
7571         PR target/27237
7572         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
7573
7574 2009-03-31  Richard Guenther  <rguenther@suse.de>
7575
7576         PR middle-end/31029
7577         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7578         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
7579
7580 2009-03-31  Richard Guenther  <rguenther@suse.de>
7581
7582         * tree.h (div_if_zero_remainder): Declare.
7583         * fold-const.c (div_if_zero_remainder): Export.
7584         * tree-ssa-forwprop.c
7585         (forward_propagate_addr_into_variable_array_index): Handle
7586         constant array index addition outside of the variable index.
7587
7588 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7589
7590         PR target/39592
7591         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7592         define_splits, floatunssi<mode>2): Require x87 conversions from
7593         DImode to be permitted.
7594
7595 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7596
7597         PR preprocessor/15638
7598         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7599
7600 2009-03-31  Richard Guenther  <rguenther@suse.de>
7601
7602         PR middle-end/23401
7603         PR middle-end/27810
7604         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7605         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7606         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7607         a separate statement.
7608         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7609         (lookup_tmp_var): Likewise.
7610         (is_gimple_formal_tmp_or_call_rhs): Remove.
7611         (is_gimple_reg_or_call_rhs): Rename to ...
7612         (is_gimple_reg_rhs_or_call): ... this.
7613         (is_gimple_mem_or_call_rhs): Rename to ...
7614         (is_gimple_mem_rhs_or_call): ... this.
7615         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
7616         DECL_GIMPLE_REG_P only if is_formal is true.
7617         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
7618         for non-proper post-modify expression gimplification.
7619         (gimplify_self_mod_expr): For post-modify expressions gimplify
7620         the lvalue to a minimal lvalue.
7621         (rhs_predicate_for): Remove formal temp case.
7622         (gimplify_modify_expr_rhs): Likewise.
7623         (gimplify_addr_expr): Use is_gimple_reg.
7624         (gimplify_expr): Remove formal temp cases.
7625         (gimple_regimplify_operands): Likewise.
7626         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7627         and FILTER_EXPR like constants.
7628         * gimple.c (walk_gimple_op): Fix val_only initialization, use
7629         is_gimple_reg.
7630         (is_gimple_formal_tmp_rhs): Remove.
7631         (is_gimple_reg_rhs): Remove special casing.
7632         (is_gimple_mem_rhs): Fix.
7633         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7634         (is_gimple_formal_tmp_var): Remove.
7635         (is_gimple_formal_tmp_reg): Likewise.
7636         (is_gimple_min_lval): Allow invariant component ref parts.
7637         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7638         is_gimple_formal_tmp_reg): Remove declarations.
7639         * tree-cfg.c (verify_expr): Verify that variables with address
7640         taken do not have DECL_GIMPLE_REG_P set.
7641         * tree-mudflap.c (mf_build_check_statement_for): Use
7642         force_gimple_operand instead of gimplify_expr.
7643
7644 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
7645
7646         * modulo-sched.c (sms_schedule_by_order): Pass the actual
7647         schedulable rows to compute_split_row.
7648
7649 2009-03-31  Ben Elliston  <bje@au.ibm.com>
7650
7651         PR target/31635
7652         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7653         OPT_mvrsave.
7654
7655 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7656
7657         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7658         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7659         * configure: Regenerate.
7660         * config.in: Regenerate.
7661         * config/rs6000/rs6000.opt (mtls-markers): Add.
7662         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7663         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7664         (tls_ld_aix, tls_ld_sysv): Likewise.
7665         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7666         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7667
7668 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7669
7670         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7671
7672 2009-03-30  Jan Hubicka  <jh@suse.cz>
7673
7674         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7675         out of RESX.
7676         (tree_remove_unreachable_handlers): Cleanup EH predecestor
7677         detection and label handling.
7678
7679 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7680
7681         * ira-int.h (ira_allocno): Rename left_conflicts_num to
7682         left_conflicts_size.
7683         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7684         ALLOCNO_LEFT_CONFLICTS_SIZE.
7685
7686         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7687         remove_allocno_from_bucket_and_push,
7688         allocno_spill_priority_compare, push_allocnos_to_stack,
7689         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7690         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7691         (setup_allocno_left_conflicts_num): Ditto.  Rename to
7692         setup_allocno_left_conflicts_size.
7693         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7694         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7695         setup_allocno_left_conflicts_size instead of
7696         setup_allocno_left_conflicts_num.
7697
7698         * ira-build.c (ira_create_allocno): Use
7699         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7700         ALLOCNO_LEFT_CONFLICTS_NUM.
7701
7702 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7703
7704         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7705         instead of DF_LR_OUT.
7706
7707         * ira-lives.c (process_bb_node_lives): Ditto.
7708
7709         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7710         instead of DF_LR_{OUT,IN}.
7711
7712         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7713
7714         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7715
7716 2009-03-30  Jan Hubicka  <jh@suse.cz>
7717
7718         * except.c (label_to_region_map): Fix thinko.
7719
7720 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
7721
7722         PR middle-end/38237
7723         * tree.h (tree_find_value): New declaration.
7724         * tree.c (tree_find_value): New function.
7725         * varasm.c (assemble_external): Avoid duplicate entries on lists.
7726
7727 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
7728
7729         PR debug/39563
7730         * c-decl.c (struct c_binding): Add locus field.
7731         (bind): Add locus argument, set locus field from it.
7732         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7733         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7734         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7735         implicitly_declare, undeclared_variable, lookup_label,
7736         declare_label, c_make_fname_decl, c_builtin_function,
7737         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7738         bind callers.
7739
7740 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7741
7742         PR target/38781
7743         * config/i386/i386.c (classify_argument): Check total size of
7744         structure.
7745
7746 2009-03-30  Martin Jambor  <mjambor@suse.cz>
7747
7748         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7749         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7750         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7751         respectively.
7752
7753         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7754         seen_variable_array_ref while also traversing a union.
7755
7756         * tree-inline.c (optimize_inline_calls): Do not call
7757         cgraph_node_remove_callees.
7758         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7759         (pass_remove_cgraph_callee_edges): New variable.
7760         * passes.c (init_optimization_passes): Add
7761         pass_remove_cgraph_callee_edges after early inlining and before all
7762         late intraprocedural passes.
7763
7764         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7765
7766 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7767
7768         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7769         Fix typos in names.
7770
7771 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7772
7773         * combine.c (simplify_comparison): Use have_insn_for.
7774         * dojump.c (do_jump): Likewise.
7775
7776 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7777
7778         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7779         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7780         sparc_compare_op0 like sparc_compare_emitted used to be handled.
7781         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7782         instead of sparc_compare_emitted.
7783         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7784         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7785         instead of sparc_compare_emitted.
7786
7787 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7788
7789         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7790         enter/exit cfglayout mode.
7791         (pass_partition_block): Require it.
7792         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7793         (combine_instructions): Track basic blocks instead of labels.
7794         (update_cfg_for_uncondjump): New.
7795         (try_combine): Use it.  Update jumps after rescanning.
7796         (pass_combine): Require PROP_cfglayout.
7797         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7798
7799 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7800
7801         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7802         Provide/destroy PROP_cfglayout respectively.
7803         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7804         * tree-pass.h (PROP_cfglayout): New.
7805
7806 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7807
7808         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7809         fold_convert_const_fixed_from_fixed,
7810         fold_convert_const_fixed_from_int,
7811         fold_convert_const_fixed_from_real, fold_negate_const): Do not
7812         set TREE_CONSTANT_OVERFLOW.
7813         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7814         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7815
7816 2009-03-30  Ira Rosen  <irar@il.ibm.com>
7817
7818         * tree-vect-loop-manip.c: New file.
7819         * tree-vectorizer.c: Update documentation and included files.
7820         (vect_loop_location): Make extern.
7821         (rename_use_op): Move to tree-vect-loop-manip.c
7822         (rename_variables_in_bb, rename_variables_in_loop,
7823         slpeel_update_phis_for_duplicate_loop,
7824         slpeel_update_phi_nodes_for_guard1,
7825         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7826         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7827         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
7828         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
7829         find_loop_location): Likewise.
7830         (new_stmt_vec_info): Move to tree-vect-stmts.c.
7831         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7832         get_vectype_for_scalar_type, vect_is_simple_use,
7833         supportable_widening_operation, supportable_narrowing_operation):
7834         Likewise.
7835         (bb_in_loop_p): Move to tree-vect-loop.c.
7836         (new_loop_vec_info, destroy_loop_vec_info,
7837         reduction_code_for_scalar_code, report_vect_op,
7838         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7839         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7840         (vect_supportable_dr_alignment): Likewise.
7841         * tree-vectorizer.h (tree-data-ref.h): Include.
7842         (vect_loop_location): Declare.
7843         Reorganize function declarations according to the new file structure.
7844         * tree-vect-loop.c: New file.
7845         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
7846         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7847         * tree-vect-data-refs.c: New file.
7848         * tree-vect-patterns.c (timevar.h): Don't include.
7849         * tree-vect-stmts.c: New file.
7850         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
7851         tree-vect-slp.c, tree-vect-loop.c.
7852         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7853         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
7854         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7855         (tree-vect-analyze.o): Remove.
7856         (tree-vect-transform.o): Likewise.
7857         (tree-vect-data-refs.o): Add rule.
7858         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
7859         tree-vect-slp.o): Likewise.
7860         (tree-vect-patterns.o): Remove redundant dependencies.
7861         (tree-vectorizer.o): Likewise.
7862         * tree-vect-slp.c: New file.
7863
7864 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7865
7866         * optc-gen.awk: Warn if an option flag has multiple different
7867         help strings.
7868
7869 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7870
7871         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7872         -floop-block): Document dependences on PPL, CLooG and Graphite.
7873
7874 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7875
7876         PR rtl-optimization/323
7877         * c-common.c (c_fully_fold, convert_and_check,
7878         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7879         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7880         * c-common.def (EXCESS_PRECISION_EXPR): New.
7881         * c-cppbuiltin.c (builtin_define_float_constants): Define
7882         constants with enough digits for long double.
7883         * c-lex.c (interpret_float): Interpret constant with excess
7884         precision where appropriate.
7885         * c-opts.c (c_common_post_options): Set
7886         flag_excess_precision_cmdline.  Give an error for
7887         -fexcess-precision=standard for C++ for processors where the
7888         option is significant.
7889         * c-parser.c (c_parser_conditional_expression): Handle excess
7890         precision in condition.
7891         * c-typeck.c (convert_arguments): Handle arguments with excess
7892         precision.
7893         (build_unary_op): Move excess precision outside operation.
7894         (build_conditional_expr): Likewise.
7895         (build_compound_expr): Likewise.
7896         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7897         (build_modify_expr): Handle excess precision in RHS.
7898         (convert_for_assignment): Handle excess precision in converted
7899         value.
7900         (digest_init, output_init_element, process_init_element): Handle
7901         excess precision in initializer.
7902         (c_finish_return): Handle excess precision in return value.
7903         (build_binary_op): Handle excess precision in operands and add
7904         excess precision as needed for operation.
7905         * common.opt (-fexcess-precision=): New option.
7906         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7907         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7908         For standard excess precision, output explicit conversion to and
7909         truncation from XFmode.
7910         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7911         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7912         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7913         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7914         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7915         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7916         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7917         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7918         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7919         define_splits, sqrt<mode>2): Disable where appropriate for
7920         standard excess precision.
7921         * convert.c (convert_to_real): Do not shorten arithmetic to type
7922         for which excess precision would be used.
7923         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7924         * doc/invoke.texi (-fexcess-precision=): Document option.
7925         (-mfpmath=): Correct index entry.
7926         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7927         flag_excess_precision): New.
7928         * langhooks.c (lhd_post_options): Set
7929         flag_excess_precision_cmdline.
7930         * opts.c (common_handle_option): Handle -fexcess-precision=.
7931         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7932         init_excess_precision): New.
7933         (lang_dependent_init_target): Call init_excess_precision.
7934         * tree.c (excess_precision_type): New.
7935         * tree.h (excess_precision_type): Declare.
7936
7937 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7938
7939         PR c/35235
7940         * c-typeck.c (build_component_ref): Do not copy qualifiers from
7941         non-lvalue to component.
7942
7943 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7944
7945         PR preprocessor/34695
7946         * Makefile.in (c-opts.o): Depend on c-tree.h.
7947         * c-common.c: Move down include of diagnostic.h.
7948         (done_lexing, c_cpp_error): New.
7949         * c-common.h (done_lexing): Declare.
7950         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7951         (parse_in).
7952         * c-opts.c: Include c-tree.h.
7953         (c_common_init_options): Set preprocessor error callback.
7954         (c_common_handle_option): Do not set preprocessor
7955         inhibit_warnings, warnings_are_errors, warn_system_headers,
7956         pedantic_errors or inhibit_warnings flags.
7957         (c_common_post_options): Do not check cpp_errors (parse_in).
7958         (c_common_finish): Do not output dependencies if there were
7959         errors.  Do not check return value of cpp_finish.
7960         * c-ppoutput.c (pp_file_change): Set input_location.
7961         * c-tree.h (c_cpp_error): Declare.
7962         * diagnostic.c (diagnostic_set_info_translated): Also initialize
7963         override_column.
7964         (diagnostic_build_prefix): Check override_column.
7965         * diagnostic.h (diagnostic_info): Add override_column field.
7966         (diagnostic_override_column): Define.
7967
7968 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
7969
7970         * c-common.c (c_expand_expr, c_staticp): Remove.
7971         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7972         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7973         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7974         * c-gimplify.c (gimplify_compound_literal_expr,
7975         optimize_compound_literals_in_ctor): Remove.
7976         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7977         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7978         * c-semantics.c (emit_local_var): Remove.
7979
7980         * langhooks-def.h (lhd_expand_expr): Remove.
7981         * langhooks.c (lhd_expand_expr): Remove.
7982         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7983
7984         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7985         handling from c-semantics.c; don't call into langhook.
7986         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7987         * gimplify.c (gimplify_compound_literal_expr,
7988         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7989         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7990         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7991         as was done in c-gimplify.c.
7992         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7993         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7994         Move from c-common.h.
7995         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
7996
7997         * tree.c (staticp): Do not call langhook.
7998         * langhooks.c (lhd_staticp): Delete.
7999         * langhooks-def.h (lhd_staticp): Delete prototype.
8000         (LANG_HOOKS_STATICP): Delete.
8001         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
8002
8003         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
8004         instead of DECL_STMTs.
8005
8006 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
8007
8008         PR c/456
8009         PR c/5675
8010         PR c/19976
8011         PR c/29116
8012         PR c/31871
8013         PR c/35198
8014         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
8015         void_type_node.
8016         (fold_call_expr): Return a NOP_EXPR from folding rather than the
8017         contained expression.
8018         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
8019         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
8020         conditional expressions for C.
8021         (decl_constant_value_for_optimization): Move from
8022         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
8023         whether optimizing and that the expression is a VAR_DECL not of
8024         array type instead of doing such checks in the caller.  Do not
8025         check pedantic.  Call gcc_unreachable for C++.
8026         * c-common.def (C_MAYBE_CONST_EXPR): New.
8027         * c-common.h (c_fully_fold, c_save_expr,
8028         decl_constant_value_for_optimization): New prototypes.
8029         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8030         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8031         EXPR_INT_CONST_OPERANDS): Define.
8032         * c-convert.c (convert): Strip nops from expression.
8033         * c-decl.c (groktypename): Take extra parameters expr and
8034         expr_const_operands.  Update call to grokdeclarator.
8035         (start_decl): Update call to grokdeclarator.  Add statement for
8036         expressions used in type of decl.
8037         (grokparm): Update call to grokdeclarator.
8038         (push_parm_decl): Update call to grokdeclarator.
8039         (build_compound_literal): Add parameter non_const and build a
8040         C_MAYBE_COSNT_EXPR if applicable.
8041         (grokdeclarator): Take extra parameters expr and
8042         expr_const_operands.  Track expressions used in declaration
8043         specifiers and declarators.  Fold array sizes and track whether
8044         they are constant expressions and whether they are integer
8045         constant expressions.
8046         (parser_xref_tag): Set expr and expr_const_operands fields in
8047         return value.
8048         (grokfield): Update call to grokdeclarator.
8049         (start_function): Update call to grokdeclarator.
8050         (build_null_declspecs): Set expr and expr_const_operands fields in
8051         return value.
8052         (declspecs_add_type): Handle expressions in typeof specifiers.
8053         * c-parser.c (c_parser_declspecs): Set expr and
8054         expr_const_operands fields for declaration specifiers.
8055         (c_parser_enum_specifier): Likewise.
8056         (c_parser_struct_or_union_specifier): Likewise.
8057         (c_parser_typeof_specifier): Likewise.  Update call to
8058         groktypename.  Fold expression as needed.  Return expressions with
8059         type instead of adding statements.
8060         (c_parser_attributes): Update calls to c_parser_expr_list.
8061         (c_parser_statement_after_labels): Fold expression before passing
8062         to objc_build_throw_stmt.
8063         (c_parser_condition): Fold expression.
8064         (c_parser_asm_operands): Fold expression.
8065         (c_parser_conditional_expression): Use c_save_expr.  Update call
8066         to build_conditional_expr.
8067         (c_parser_alignof_expression): Update call to groktypename.
8068         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
8069         original_code.  Fold expression argument of va_arg.  Create
8070         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
8071         argument to va_arg.  Update calls to groktypename.  Fold array
8072         index for offsetof.  Verify that first argument to
8073         __builtin_choose_expr has integer type.
8074         (c_parser_postfix_expression_after_paren_type): Update calls to
8075         groktypename and build_compound_literal.  Handle expressions with
8076         side effects in type name.
8077         (c_parser_postfix_expression_after_primary): Update call to
8078         c_parser_expr_list.  Set original_code for calls to
8079         __builtin_constant_p.
8080         (c_parser_expr_list): Take extra parameter fold_p.  Fold
8081         expressions if requested.
8082         (c_parser_objc_type_name): Update call to groktypename.
8083         (c_parser_objc_synchronized_statement): Fold expression.
8084         (c_parser_objc_receiver): Fold expression.
8085         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
8086         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
8087         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
8088         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
8089         (struct c_typespec): Add elements expr and expr_const_operands.
8090         (struct c_declspecs): Add elements expr and expr_const_operands.
8091         (groktypename, build_conditional_expr, build_compound_literal):
8092         Update prototypes.
8093         (in_late_binary_op): Declare.
8094         * c-typeck.c (note_integer_operands): New function.
8095         (in_late_binary_op): New variable.
8096         (decl_constant_value_for_broken_optimization): Move to c-common.c
8097         and rename to decl_constant_value_for_optimization.
8098         (default_function_array_conversion): Do not strip nops.
8099         (default_conversion): Do not call
8100         decl_constant_value_for_broken_optimization.
8101         (build_array_ref): Do not fold result.
8102         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
8103         result when operand is a VLA.
8104         (c_expr_sizeof_type): Update call to groktypename.  Handle
8105         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
8106         result when operand names a VLA type.
8107         (build_function_call): Update call to build_compound_literal.
8108         Only fold result for calls to __builtin_* functions.  Strip
8109         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
8110         the function designator.
8111         (convert_arguments): Fold arguments.  Update call to
8112         convert_for_assignment.
8113         (build_unary_op): Handle increment and decrement of
8114         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
8115         decrement earlier.  Fold operand of increment and decrement.
8116         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
8117         built for integer operand.  Wrap returns that are INTEGER_CSTs
8118         without being integer constant expressions or that have integer
8119         constant operands without being INTEGER_CSTs.
8120         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
8121         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
8122         result is an integer constant expression or can be used in
8123         unevaluated parts of one and avoid folding and wrap as
8124         appropriate.  Fold operands before possibly doing -Wsign-compare
8125         warnings.
8126         (build_compound_expr): Wrap result for C99 if operands can be used
8127         in integer constant expressions.
8128         (build_c_cast): Update call to digest_init.  Do not ignore
8129         overflow from casting floating-point constants to integers.  Wrap
8130         results that could be confused with integer constant expressions,
8131         null pointer constants or floating-point constants.
8132         (c_cast_expr): Update call to groktypename.  Handle expressions
8133         included in type name.
8134         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
8135         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
8136         Update calls to convert_for_assignment.
8137         (convert_for_assignment): Take new parameter
8138         null_pointer_constant.  Do not strip nops or call
8139         decl_constant_value_for_broken_optimization.  Set
8140         in_late_binary_op for conversions to boolean.
8141         (store_init_value): Update call to digest_init.
8142         (digest_init): Take new parameter null_pointer_constant.  Do not
8143         call decl_constant_value_for_broken_optimization.  pedwarn for
8144         initializers not constant expressions.  Update calls to
8145         convert_for_assignment.
8146         (constructor_nonconst): New.
8147         (struct constructor_stack): Add nonconst element.
8148         (really_start_incremental_init, push_init_level, pop_init_level):
8149         Handle constructor_nonconst and nonconst element.
8150         (set_init_index): Call constant_expression_warning for array
8151         designators.
8152         (output_init_element): Fold value.  Set constructor_nonconst as
8153         applicable.  pedwarn for initializers not constant expressions.
8154         Update call to digest_init.  Call constant_expression_warning
8155         where constant initializers are required.
8156         (process_init_element): Use c_save_expr.
8157         (c_finish_goto_ptr): Fold expression.
8158         (c_finish_return): Fold return value.  Update call to
8159         convert_for_assignment.
8160         (c_start_case): Fold switch expression.
8161         (c_process_expr_stmt): Fold expression.
8162         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
8163         ensure statement expression is not evaluated in constant expression.
8164         (build_binary_op): Track whether results are integer constant
8165         expressions or may occur in such, disable folding and wrap results
8166         as applicable.  Fold operands for -Wsign-compare warnings unless
8167         in_late_binary_op.
8168         (c_objc_common_truthvalue_conversion): Handle results folded to
8169         integer constants that are not integer constant expressions.
8170         * doc/extend.texi: Document when typeof operands are evaluated,
8171         that condition of __builtin_choose_expr is an integer constant
8172         expression, and more about use of __builtin_constant_p in
8173         initializers.
8174
8175 2009-03-29  Richard Guenther  <rguenther@suse.de>
8176
8177         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8178         propagate addresses of array references.
8179
8180 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
8181
8182         * regmove.c (perhaps_ends_bb_p): Remove.
8183         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
8184         from INSN and check that the main loop stays within that basic block.
8185         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
8186         (regmove_forward_pass): Split out from regmove_optimize.  Use
8187         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
8188         (regmove_backward_pass): Split out from regmove_optimize.  Use
8189         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
8190         (regmove_optimize): Simplify.
8191
8192 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
8193
8194         PR target/39545
8195         * config/i386/i386.c (classify_argument): Ignore flexible array
8196         member in struct and warn ABI change.
8197
8198 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
8199
8200         * config/i386/i386-protos.h (ix86_agi_dependent): New.
8201
8202         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
8203         (ix86_adjust_cost): Updated.
8204
8205 2009-03-29  Jan Hubicka  <jh@suse.cz>
8206
8207         PR middle-end/28850
8208         * tree-pass.h (pass_cleanup_eh): New function.
8209         (remove_unreachable_regions): Break code handling RTL
8210         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
8211         that can not be reached by runtime.
8212         (can_be_reached_by_runtime): New function.
8213         (label_to_region_map): New function.
8214         (num_eh_regions): New function.
8215         (rtl_remove_unreachable_regions): New function.
8216         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
8217         (remove_eh_region): New function.
8218         * except.h: Include sbitmap and vecprim.
8219         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
8220         num_eh_regions): Declare.
8221         * passes.c (init_optimization_passes): Schedule cleanup_eh.
8222         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
8223         * tree-eh.c (tree_remove_unreachable_handlers): New function.
8224         (tree_empty_eh_handler_p): New function.
8225         (cleanup_empty_eh): New function.
8226         (cleanup_eh): New function.
8227         (pass_cleanup_eh): New function.
8228
8229 2009-03-29  Jan Hubicka  <jh@suse.cz>
8230
8231         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
8232         for removed regions.
8233
8234 2009-03-29  Jan Hubicka  <jh@suse.cz>
8235
8236         * except.c (dump_eh_tree): Dump all datastructures.
8237
8238 2009-03-29  Jan Hubicka  <jh@suse.cz>
8239
8240         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8241         (duplicate_eh_regions_1): Likewise.
8242         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8243         vector; call EH verification.
8244         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8245         Be ready for region being removed.
8246
8247 2009-03-29  Jan Hubicka  <jh@suse.cz>
8248
8249         * bitmap.c (bitmap_last_set_bit): New function.
8250         * bitmap.h (bitmap_last_set_bit): Declare.
8251
8252 2009-03-29  David Ayers  <ayers@fsfe.org>
8253
8254         PR objc/27377
8255         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8256         by calling objc_compare_types and surpress warnings about
8257         incompatible C pointers that are compatible ObjC pointers.
8258
8259 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
8260
8261         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8262         call initialize_inline_failed.
8263         (initialize_inline_failed): Move it from here ...
8264         * cgraph.c (initialize_inline_failed): ... to here.
8265         (cgraph_create_edge): Call initialize_inline_failed rather than
8266         setting inline_failed directly.
8267
8268 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8269
8270         PR target/32542
8271         * sysv4.opt (msdata): Improve comment.
8272         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8273         * sysv4.h (SVR4_ASM_SPEC): Likewise.
8274
8275 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8276
8277         PR target/30451
8278         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8279         load and store attributes.
8280
8281 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8282
8283         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8284         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8285         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8286         * doc/extend.texi (X86 Built-in Functions): Add index entries for
8287         __builtin_infq and __builtin_huge_valq.
8288
8289 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
8290
8291         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8292         atmega8m1 devices.
8293         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8294         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8295
8296 2009-03-28  Xinliang David Li  <davidxl@google.com>
8297
8298         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8299         (do_dbg_cnt): New function.
8300
8301 2009-03-28  Jan Hubicka  <jh@suse.cz>
8302
8303         Merge from pretty-ipa:
8304
8305         2009-03-27  Jan Hubicka  <jh@suse.cz>
8306
8307         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8308         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8309         * passes.c (function_called_by_processed_nodes_p): New.
8310         * ipa-pure-const.c (check_call): Fix handling of operands.
8311         (analyze_function): Dump debug output for skipped bodies.
8312         (local_pure_const): Use function_called_by_processed_nodes_p.
8313         * dwarf2out.c (reference_to_unused): Use output.
8314         * passes.c (do_per_function_toporder): Likewise.
8315
8316         2008-11-12  Jan Hubicka  <jh@suse.cz>
8317
8318         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8319         * ipa-pure-const.c (funct_state_d): Add can throw field; make
8320         state_set_in_source enum
8321         (check_decl): Ignore memory tags; do not set fake looping flags;
8322         dump diagnostics.
8323         (check_operand, check_tree, check_rhs_var, check_lhs_var,
8324         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8325         (check_call, analyze_function): Rewrite.
8326         (check_stmt): New.
8327         (add_new_function): Update call of analyze_function.
8328         (generate_summary): Add call of analyze_function.
8329         (propagate): Propagate can_throw; handle state_set_in_source correctly.
8330         (local_pure_const): New function.
8331         (pass_local_pure_const): New pass.
8332         * ipa-inline.c (inline_transform): Set after_inlining.
8333         * tree-eh.c (stmt_can_throw_external): New.
8334         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8335         work with aliasing built.
8336         * tree-flow.h (stmt_can_throw_external): New.
8337         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8338         and local pure/const pass in early and late optimization queue.
8339
8340 2009-03-28  Martin Jambor  <mjambor@suse.cz>
8341
8342         * fold-const.c (get_pointer_modulus_and_residue): New parameter
8343         allow_func_align.
8344         (fold_binary): Allow function decl aligment consideration is the
8345         second argument is integer constant one.
8346         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8347         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8348         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8349
8350 2009-03-28  Jan Hubicka  <jh@suse.cz>
8351
8352         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8353         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8354         * function.h (rtl_data): Add nothrow flag.
8355         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8356         set DECL_NOTHROW for AVAILABLE functions.
8357
8358 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
8359
8360         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8361         following vector keyword has expansion starting with pixel or bool
8362         keyword, expand vector to __vector and pixel or bool to __pixel or
8363         __bool.
8364
8365         PR c++/39554
8366         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8367         warn_if_disallowed_function_p): Removed.
8368         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8369         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8370         warning_if_disallowed_function_p.
8371         * flags.h (warn_if_disallowed_function_p,
8372         warn_disallowed_functions): Removed.
8373         * common.opt (Wdisallowed-function-list=): Removed.
8374         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8375
8376 2009-03-28  Richard Guenther  <rguenther@suse.de>
8377
8378         PR tree-optimization/38723
8379         * tree-ssa-pre.c (compute_avail): Add all default definitions to
8380         the entry block.
8381
8382 2009-03-28  Jan Hubicka  <jh@suse.cz>
8383
8384         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8385         test introduced by my previous patch.
8386
8387 2009-03-28  Richard Guenther  <rguenther@suse.de>
8388
8389         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8390         the PHIs value undefined.
8391
8392 2009-03-28  Jan Hubicka  <jh@suse.cz>
8393
8394         * tree-pass.h (pass_fixup_cfg): New pass.
8395         * ipa-inline.c (inline_transform): Set
8396         always_inline_functions_inlined/after_inlining.
8397         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8398         (pass_fixup_cfg): New pass.
8399         * passes.c (init_optimization_passes): Add fixup_cfg.
8400
8401 2009-03-28  Richard Guenther  <rguenther@suse.de>
8402
8403         PR tree-optimization/38458
8404         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8405         argument use the arguments copy-of value.
8406
8407 2009-03-28  Richard Guenther  <rguenther@suse.de>
8408
8409         PR tree-optimization/38180
8410         * tree-ssa-ccp.c (get_default_value): Simplify.
8411         (likely_value): Likewise.
8412         (surely_varying_stmt_p): Properly handle VOP case.
8413         (ccp_initialize): Likewise.
8414         (ccp_fold): Handle propagating through *&.
8415         (fold_const_aggregate_ref): Also handle decls.
8416
8417 2009-03-28  Jan Hubicka  <jh@suse.cz>
8418
8419         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8420         * cgraph.h (cgraph_node): Likewise.
8421         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8422         (cgraph_reset_node): Use process flag.
8423         (cgraph_mark_functions_to_output): Likewise.
8424         (cgraph_expand_function): Likewise.
8425         (cgraph_expand_all_functions): Likewise.
8426         (cgraph_output_in_order): Likewise.
8427         * dwarf2out.c (reference_to_unused): Likewise.
8428         * passes.c do_per_function_toporder): Likewise.
8429
8430 2009-03-28  Jan Hubicka  <jh@suse.cz>
8431
8432         Bring from lto-branch:
8433
8434         2008-09-03  Doug Kwan  <dougkwan@google.com>
8435
8436         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8437         enums instead of reason strings.
8438         * cgraph.c (cgraph_create_edge): Same.
8439         (cgraph_inline_failed_string): New function.
8440         * cgraph.h (cgraph_inline_failed_t): New enum type.
8441         (cgraph_inline_failed_string): New prototype.
8442         (struct cgraph_edge): Change type of INLINED_FAILED from constant
8443         char pointer to cgraph_inline_failed_t.
8444         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8445         (cgraph_default_inline_p): Ditto.
8446         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8447         to cgraph_inline_failed_t pointer.
8448         * cif-code.def: New file.
8449         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8450         reason string.
8451         (cgraph_check_inline_limits): Change type of REASON to pointer to
8452         cgraph_inline_failed_t.  Replace reason strings with enums.
8453         (cgraph_default_inline_p): Ditto.
8454         (cgraph_recursive_inlining_p): Ditto.
8455         (update_caller_keys): Change type of FAILED_REASON to
8456         cgraph_inline_failed_t.
8457         (cgraph_set_inline_failed): Change type of REASON to pointer to
8458         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
8459         convert enums to strings for text output.
8460         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8461         to be of type cgraph_inline_failed_t.  Replace reason strings with
8462         enums.  Call cgraph_inline_failed_string to covert enums
8463         to strings for text output.
8464         (cgraph_decide_inlining): Replace reason strings with enums.
8465         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8466         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
8467         for text output.
8468         * tree-inline.c (expand_call_inline): Change type of REASON
8469         to cgraph_inline_failed_t.  Replace reason strings with enums.
8470         Call cgraph_inline_failed_string for text output.
8471         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8472         (cgraph.o): Ditto.
8473
8474 2009-03-28  Jan Hubicka  <jh@suse.cz>
8475
8476         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8477         cgraph_clone_node): Remove master clone handling.
8478         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8479         * cgraph.h (master_clone): Remove.
8480         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8481         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8482         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8483
8484 2009-03-28  Jan Hubicka  <jh@suse.cz>
8485
8486         * cgraph.c (cgraph_function_body_availability): Functions declared
8487         inline are always safe to assume that it is not going to be replaced.
8488
8489 2009-03-28  Richard Guenther  <rguenther@suse.de>
8490
8491         PR tree-optimization/38513
8492         * tree-ssa-pre.c (eliminate): Remove redundant stores.
8493         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8494         EXC_PTR_EXPR and FILTER_EXPR.
8495         (get_ref_from_reference_ops): Likewise.
8496
8497 2009-03-28  Richard Guenther  <rguenther@suse.de>
8498
8499         PR tree-optimization/38968
8500         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8501         Use FLOOR_MOD_EXPR to compute misalignment.
8502
8503 2009-03-28  Richard Guenther  <rguenther@suse.de>
8504
8505         PR tree-optimization/37795
8506         * tree.h (combine_comparisons): Declare.
8507         * fold-const.c (combine_comparisons): Export.
8508         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8509         comparisons.
8510         (ifcombine_iforif): Use combine_comparisons.
8511
8512 2009-03-28  Jan Hubicka  <jh@suse.cz>
8513
8514         * tree-eh.c (inlinable_call_p): New function.
8515         (make_eh_edges): Use it.
8516         (verify_eh_edges): Use it.
8517         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8518         * except.c (reachable_next_level): Add inlinable_function argument
8519         (sjlj_find_directly_reachable_regions): Update.
8520         (add_reachable_handler): Do not set saw_any_handlers.
8521         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8522         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8523         Add new inlinable call parameter.
8524         (can_throw_internal, can_throw_external): Update.
8525         * except.h (can_throw_internal_1, can_throw_external_1,
8526         foreach_reachable_handler): Update declaration.
8527
8528 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
8529
8530         * config/arm/t-arm-coff, config/h8300/coff.h,
8531         config/i386/i386-aout.h, config/i386/i386-coff.h,
8532         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8533         config/pdp11/2bsd.h, config/rs6000/aix41.h,
8534         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8535         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8536         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8537         sys-types.h: Remove.
8538         * Makefile.in: Remove protoize and fixproto support and references
8539         in comments.
8540         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8541         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8542         Remove.
8543         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8544         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8545         unprotoize$(exeext).
8546         (rest.encap): Don't depend on $(STMP_FIXPROTO)
8547         (.PHONY): Don't depend on proto.
8548         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8549         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8550         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8551         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8552         build/gen-protos.o, build/scan.o, xsys-protos.h,
8553         build/fix-header$(build_exeext), build/fix-header.o,
8554         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8555         stmp-install-fixproto): Remove.
8556         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8557         SYSCALLS.c or fixproto files.
8558         (install-common): Don't install protoize.
8559         (install-headers-tar, install-headers-cpio, install-headers-cp):
8560         Don't depend on $(STMP_FIXPROTO).
8561         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
8562         install fixproto files or write out fixproto settings.
8563         (uninstall): Don't uninstall protoize.
8564         * config.gcc (use_fixproto): Remove.
8565         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8566         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8567         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8568         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8569         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8570         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8571         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8572         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8573         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8574         * config/t-vxworks (STMP_FIXPROTO): Remove.
8575         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8576         STMP_FIXPROTO): Remove.
8577         * config.in, configure: Regenerate.
8578         * crtstuff.c (gid_t, uid_t): Don't undefine.
8579         * doc/install.texi: Change m68k-coff to m68k-elf in example.
8580         (arm-*-coff, arm-*-aout: Remove target entries.
8581         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8582         Remove mention of AIX 4.1.
8583         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8584         * doc/invoke.texi (Running Protoize): Remove.
8585         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8586         (Protoize Caveats): Remove.
8587         * tsystem.h: Update comments on headers assumed to exist.
8588
8589 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8590
8591         * genautomata.c: Add a new year to the copyright.  Add a new
8592         reference.
8593         (struct insn_reserv_decl): Add comments for member bypass_list.
8594         (find_bypass): Remove.
8595         (insert_bypass): New.
8596         (process_decls): Use insert_bypass.
8597         (output_internal_insn_latency_func): Output all bypasses with the
8598         same input insn in one switch case.
8599
8600         * rtl.def (define_bypass): Describe bypass choice.
8601         * doc/md.texi (define_bypass): Ditto.
8602
8603 2009-03-27  Richard Guenther  <rguenther@suse.de>
8604
8605         * gimplify.c (mark_addressable): Export.
8606         * tree-flow.h (mark_addressable): Declare.
8607         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8608         * tree-ssa.c (verify_phi_args): Verify that address taken
8609         variables have TREE_ADDRESSABLE set.
8610
8611 2009-03-27  Richard Guenther  <rguenther@suse.de>
8612
8613         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8614         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
8615         Do not mark decls TREE_ADDRESSABLE.
8616         (build_fold_addr_expr): Adjust.
8617         (fold_addr_expr): Remove.
8618         (fold_unary): Use build_fold_addr_expr.
8619         (fold_comparison): Likewise.
8620         (split_address_to_core_and_offset): Likewise.
8621         * coverage.c (tree_coverage_counter_addr): Mark the array decl
8622         TREE_ADDRESSABLE.
8623         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8624         (gimplify_modify_expr_to_memcpy): Mark source and destination
8625         addressable.
8626         * omp-low.c (create_omp_child_function): Mark the object decl
8627         TREE_ADDRESSABLE.
8628         (lower_rec_input_clauses): Mark the var we take the address of
8629         TREE_ADDRESSABLE.
8630         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8631
8632 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8633
8634         PR middle-end/39315
8635         * cfgexpand.c (expand_one_stack_var_at): Change alignment
8636         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8637
8638 2009-03-27  Richard Guenther  <rguenther@suse.de>
8639
8640         PR tree-optimization/39120
8641         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8642         constraints.
8643         (handle_lhs_call): Process return constraints.  Add escape
8644         constraints if necessary.
8645         (handle_const_call): Fill out return constraints.  Make nested
8646         case more precise.  Avoid consttmp if possible.
8647         (handle_pure_call): Fill out return constraints.  Avoid
8648         callused if possible.
8649         (find_func_aliases): Simplify call handling.
8650
8651 2009-03-27  Richard Guenther  <rguenther@suse.de>
8652
8653         PR tree-optimization/39120
8654         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8655         as a representative.
8656         (solve_graph): Do propagate CALLUSED.
8657         (handle_pure_call): Use a scalar constraint from CALLUSED for
8658         the return value.
8659         (find_what_p_points_to): CALLUSED shall not appear in poins-to
8660         solutions.
8661
8662 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8663
8664         PR c/39323
8665         * c-common.c (handle_aligned_attribute): Properly check alignment
8666         overflow.  Use (1U << i) instead of (1 << i).
8667
8668         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
8669
8670         * expr.h (get_mem_align_offset): Updated.
8671
8672         * tree.h (tree_decl_common): Change align to "unsigned int" and
8673         move it before pointer_alias_set.
8674
8675 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8676             Jakub Jelinek  <jakub@redhat.com>
8677
8678         PR target/38034
8679         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8680         gr_register_operand with gr_reg_or_0_operand.
8681         (cmpxchg_rel_di): Likewise.
8682         (sync_lock_test_and_set<mode>): Likewise.
8683
8684 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8685
8686         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8687         (true_regnum): Likewise.
8688
8689         * rtlanal.c (subreg_info): Moved to ...
8690         * rtl.h (subreg_info): Here.  New.
8691         (subreg_get_info): New.
8692
8693         * rtlanal.c (subreg_get_info): Make it extern.
8694
8695 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8696
8697         PR target/39472
8698         * config/i386/i386.c (ix86_abi): New.
8699         (override_options): Handle -mabi=.
8700         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
8701         (ix86_call_abi_override): Likewise.
8702         (init_cumulative_args): Likewise.
8703         (function_arg_advance): Likewise.
8704         (function_arg_64): Likewise.
8705         (function_arg): Likewise.
8706         (ix86_pass_by_reference): Likewise.
8707         (ix86_function_value_regno_p): Likewise.
8708         (ix86_build_builtin_va_list_abi): Likewise.
8709         (setup_incoming_varargs_64): Likewise.
8710         (is_va_list_char_pointer): Likewise.
8711         (ix86_init_machine_status): Likewise.
8712         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
8713         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
8714         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
8715         (ix86_function_abi): Make it static and return enum calling_abi.
8716         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
8717         with ix86_abi.
8718         (ix86_fn_abi_va_list): Updated.
8719
8720         * config/i386/i386.h (ix86_abi): New.
8721         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8722         (CONDITIONAL_REGISTER_USAGE): Likewise.
8723         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8724         (machine_function): Likewise.
8725
8726         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8727         with ix86_abi.
8728         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8729         (STACK_BOUNDARY): Likewise.
8730         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8731
8732         * config/i386/i386.opt (mabi=): New.
8733
8734         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8735         return enum calling_abi.
8736         (ix86_function_type_abi): Likewise.
8737         (ix86_function_abi): Removed.
8738
8739         * doc/invoke.texi: Document -mabi= option for x86.
8740
8741 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8742
8743         * builtins.c (real_dconstp): Delete.
8744         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8745
8746 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
8747             Jakub Jelinek  <jakub@redhat.com>
8748
8749         PR debug/37959
8750         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8751         (gen_subprogram_die): When a function is explicit, generate the
8752         DW_AT_explicit attribute.
8753         * langhooks.h (struct lang_hooks_for_decls): Add
8754         function_decl_explicit_p langhook.
8755         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8756         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8757
8758 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
8759
8760         * builtins.c (fold_builtin_memory_op): Optimize memmove
8761         into memcpy if we can prove source and destination don't overlap.
8762
8763         * tree-inline.c: Include gt-tree-inline.h.
8764         (clone_fn_id_num): New variable.
8765         (clone_function_name): New function.
8766         (tree_function_versioning): Use it.
8767         * Makefile.in (GTFILES): Add tree-inline.c.
8768
8769 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
8770
8771         * BASE-VER: Change to 4.5.0.
8772
8773 2009-03-27  Xinliang David Li  <davidxl@google.com>
8774
8775         PR tree-optimization/39557
8776         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8777
8778 2009-03-27  Xinliang David Li  <davidxl@google.com>
8779
8780         PR tree-optimization/39548
8781         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
8782         candidate check.
8783
8784 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8785
8786         * c-common.c (pointer_int_sum): Use %wd on return from
8787         tree_low_cst.
8788
8789 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8790
8791         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8792         on return from tree_low_cst.
8793
8794 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8795
8796         PR c++/36799
8797         * ginclude/stdarg.h (va_copy): Define also for
8798         __GXX_EXPERIMENTAL_CXX0X__.
8799
8800 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8801
8802         PR c++/35652
8803         * builtins.h (c_strlen): Do not warn here.
8804         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8805         * c-common.c (pointer_int_sum): Take an explicit location.
8806         Warn about offsets out of bounds.
8807         * c-common.h (pointer_int_sum): Adjust declaration.
8808
8809 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8810
8811         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8812         markup glitch.
8813
8814 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
8815
8816         PR c++/39554
8817         * opts.c (warn_if_disallowed_function_p): Don't assume
8818         get_callee_fndecl must return non-NULL.
8819
8820 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8821
8822         PR rtl-optimization/39522
8823         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8824         when reg_reloaded_valid is set.
8825
8826 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8827
8828         * config/spu/divv2df3.c: New file.
8829         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8830         (DPBIT_FUNCS): Filter out _div_df.
8831
8832 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8833
8834         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8835         a jump insn, count that jump in the distance to the loop start.
8836
8837 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
8838
8839         PR target/39523
8840         * config/sh/sh.c (calc_live_regs): Fix condition for global
8841         registers except PIC_OFFSET_TABLE_REGNUM.
8842
8843 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
8844
8845         PR/39518
8846         * doc/invoke.texi (-mconsole): New.
8847         (-mcygwin): New.
8848         (-mno-cygwin): New.
8849         (-mdll): New.
8850         (-mnop-fun-dllimport): New.
8851         (-mthread): New.
8852         (-mwin32): New.
8853         (-mwindows): New.
8854         (sub section "i386 and x86-64 Windows Options"): New.
8855
8856 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
8857
8858         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8859         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8860
8861 2009-03-25  Richard Guenther  <rguenther@suse.de>
8862
8863         PR middle-end/39497
8864         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8865         of -Wno-error.
8866
8867 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
8868
8869         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8870         neither of haifa/selective schedulers are working.
8871
8872 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8873
8874         * doc/invoke.texi (Debugging Options): Fix description of
8875         -fno-merge-debug-strings.
8876
8877 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
8878
8879         * config/cris/libgcc.ver: New version-script.
8880         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8881
8882         * configure.ac <GAS features, nop mnemonic>: Add pattern
8883         crisv32-*-* for "nop".
8884         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
8885         * configure: Regenerate.
8886
8887 2009-03-24  Ira Rosen  <irar@il.ibm.com>
8888
8889         PR tree-optimization/39529
8890         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8891         mark_sym_for_renaming for the tag copied to the new vector
8892         pointer.
8893
8894 2009-03-24  Arthur Loiret  <aloiret@debian.org>
8895
8896         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
8897         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8898         EXTRA_SPEC_FUNCTIONS.
8899         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8900         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8901         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8902         -march and -mtune options.
8903
8904 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
8905
8906         * config/m68k/t-rtems: Add m5329 multilib.
8907
8908 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
8909             Jakub Jelinek  <jakub@redhat.com>
8910
8911         PR debug/39524
8912         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8913         nodes.
8914
8915 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8916
8917         PR c/39495
8918         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8919         instead of c_parser_expression_conv, if original_code isn't one of the
8920         4 allowed comparison codes, fail.
8921
8922 2009-03-23  Richard Guenther  <rguenther@suse.de>
8923
8924         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8925         * tree.h (struct tree_type): Likewise.
8926         * reload.h (struct insn_chain): Likewise.
8927         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8928         * function.h (struct function): Likewise.
8929         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8930
8931 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8932
8933         PR tree-optimization/39516
8934         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8935
8936 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
8937
8938         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
8939         should be set true if BITS_PER_WORD of target is bigger than 32
8940
8941 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
8942
8943         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8944         Translate -B-options to -rpath-link.  Correct existing
8945         rpath-link and conditionalize on !nostdlib.
8946
8947 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8948
8949         * doc/extend.texi (Function Attributes, Variable Attributes):
8950         Fix typos.
8951         * doc/invoke.texi (Debugging Options, Optimize Options)
8952         (i386 and x86-64 Options, MCore Options): Likewise.
8953
8954 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
8955
8956         PR debug/37890
8957         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8958         it for block local namespace aliases.
8959         (gen_decl_die): Pass context_die to gen_namespace_die.
8960
8961 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8962
8963         PR c/39495
8964         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8965         minimum or maximum value.
8966
8967 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
8968
8969         * reginfo.c (globalize_reg): Recompute derived reg sets.
8970
8971 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
8972
8973         PR target/39063
8974         * libgcc2.c (mprotect): Do not use signed arguments for
8975         VirtualProtect, use DWORD arguments.  Also fix the 'may
8976         be used uninitialized' warning for the np variable.
8977
8978 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8979
8980         PR target/39496
8981         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8982         functions using regparm calling conventions when not optimizing.
8983         (ix86_function_sseregparm): Similarly for sseregparm calling
8984         conventions.
8985
8986 2009-03-19  Li Feng  <nemokingdom@gmail.com>
8987
8988         PR middle-end/39500
8989         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8990         dependence if the first conflict is after niter iterations.
8991
8992 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
8993
8994         PR middle-end/38609
8995         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8996         functions with dynamic stack-pointer adjustments.
8997
8998 2009-03-19  Ben Elliston  <bje@au.ibm.com>
8999
9000         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
9001         option; change to -msdata=data.
9002
9003 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9004
9005         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
9006         and -fopenmp.
9007
9008 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
9009
9010         PR target/35180
9011         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
9012
9013 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
9014
9015         * doc/invoke.texi (Code Gen Options): Expand discussion of
9016         -fno-common.
9017
9018 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
9019
9020         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
9021         * matrix-reorg.c (struct matrix_info): Likewise.
9022         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
9023         * rtl.h (struct mem_attrs): Likewise.
9024         * df.h (struct df): Likewise.
9025         * tree-data-ref.h (struct data_dependence_relation): Likewise.
9026         * ira-int.h (struct ira_allocno): Likewise.
9027         * df-scan.c (struct df_collection_rec): Likewise.
9028         * ira.c (struct equivalence): Likewise.
9029         * function.c (struct temp_slot): Likewise.
9030         * cfgloop.h (struct loop): Likewise.
9031
9032         PR debug/39485
9033         * function.c (use_register_for_decl): When not optimizing, disregard
9034         register keyword for variables with types containing methods.
9035
9036 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
9037
9038         PR middle-end/39447
9039         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
9040         (is_simple_operand): Call contains_component_ref_p before calling data
9041         reference analysis that would fail on COMPONENT_REFs.
9042
9043         * tree-vrp.c (search_for_addr_array): Fix formatting.
9044
9045 2009-03-18  Richard Guenther  <rguenther@suse.de>
9046
9047         * tree-vect-transform.c (vect_loop_versioning): Fold the
9048         generated comparisons.
9049         * tree-vectorizer.c (set_prologue_iterations): Likewise.
9050         (slpeel_tree_peel_loop_to_edge): Likewise.
9051
9052 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9053
9054         PR middle-end/37805
9055         * opts.c (print_specific_help): In addition to `undocumented',
9056         accept `separate' and `joined' flags if passed alone.  Describe
9057         output by the first matched one of those.
9058         (common_handle_option): Skip over empty strings.
9059         * gcc.c (display_help): Fix help string for `--help='.
9060         * doc/invoke.texi (Option Summary, Overall Options): With
9061         `--help=', classes and qualifiers can both be repeated, but
9062         only the latter can be negated.  One should not pass only
9063         negated qualifiers.  Fix markup and examples.
9064
9065         Revert
9066         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
9067         PR middle-end/37805
9068         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
9069         and -fhelp=separate.
9070
9071 2009-03-17  Jing Yu  <jingyu@google.com>
9072
9073         PR middle-end/39378
9074         * function.h (struct rtl_data): Move is_thunk from here...
9075         (struct function): ...to here.
9076         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9077         * varasm.c (assemble_start_function): Change is_thunk from crtl to
9078         cfun.
9079         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
9080         cfun.
9081         (alpha_does_function_need_gp, alpha_start_function): Likewise.
9082         (alpha_output_function_end_prologue): Likewise.
9083         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
9084         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
9085         (rs6000_output_function_epilogue): Likewise.
9086         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9087
9088 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
9089
9090         PR target/39482
9091         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
9092         from different units in a single alternative.
9093         (*truncdfsf_i387): Ditto.
9094         (*truncxfsf2_mixed): Ditto.
9095         (*truncxfdf2_mixed): Ditto.
9096
9097 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
9098
9099         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
9100         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
9101
9102         PR debug/39474
9103         * tree-ssa-live.c (remove_unused_locals): Don't remove local
9104         unused non-artificial variables when not optimizing.
9105
9106         PR debug/39471
9107         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
9108         DW_TAG_imported_module even if decl is IMPORTED_DECL with
9109         NAMESPACE_DECL in its DECL_INITIAL.
9110
9111         PR middle-end/39443
9112         * optabs.c (set_user_assembler_libfunc): New function.
9113         * expr.h (set_user_assembler_libfunc): New prototype.
9114         * c-common.c: Include libfuncs.h.
9115         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
9116         for memcmp, memset, memcpy, memmove and abort.
9117         * Makefile.in (c-common.o): Depend on libfuncs.h.
9118
9119         PR debug/39412
9120         * dwarf2out.c (gen_inlined_enumeration_type_die,
9121         gen_inlined_structure_type_die, gen_inlined_union_type_die,
9122         gen_tagged_type_instantiation_die): Removed.
9123         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
9124         do nothing.
9125
9126 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
9127
9128         PR testsuite/38526
9129         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
9130         its use.
9131         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
9132         (check-parallel-%): Ditto.
9133         (check-consistency): Ditto.
9134
9135 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
9136
9137         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
9138         local variable rhs by NULL_TREE.
9139
9140 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9141
9142         PR target/39477
9143         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
9144
9145 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9146
9147         PR target/39476
9148         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
9149
9150 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9151
9152         PR target/39473
9153         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
9154         for ms->sysv ABI calls only in 64bit mode.
9155
9156         * config/i386/i386.md (untyped_call): Support 32bit.
9157
9158 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9159
9160         * doc/extend.texi: Replace x86_65 with x86_64.
9161
9162 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
9163
9164         PR tree-optimization/39455
9165         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
9166         mismatches for POINTER_TYPE_P (type).
9167         (number_of_iterations_le): Likewise.
9168
9169 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9170
9171         * config/picochip/picochip.c: Removed profiling support.
9172         * config/picochip/picochip.md: Removed profiling instruction.
9173         * config/picochip/picochip.h: Removed profiling builtin.
9174
9175 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
9176
9177         * doc/install.texi (--with-host-libstdcxx): Document.
9178
9179 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
9180
9181         PR target/34299
9182         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
9183         generate a warning if the function name does not begin with
9184         "__vector" and the function has either the 'signal' or 'interrupt'
9185         attribute, from here to ...
9186         (avr_declare_function_name): ...here. New function.
9187         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
9188         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
9189
9190 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
9191
9192         PR bootstrap/39454
9193         * cse.c (fold_rtx): Don't modify original const_arg1 when
9194         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
9195         separate variable instead.
9196         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
9197         from out of range shift counts.
9198         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
9199
9200 2009-03-13  Catherine Moore  <clm@codesourcery.com>
9201
9202         * config/i386/x-mingw32 (host-mingw32.o): Replace
9203         diagnostic.h with $(DIAGNOSTIC_H).
9204
9205 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
9206
9207         PR target/39431
9208         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
9209         predicate.
9210         * config/i386/sync.md (sync_compare_and_swap<mode>,
9211         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
9212         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
9213         into a register.
9214         (sync_double_compare_and_swapdi_pic,
9215         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
9216         cmpxchg8b_pic_memory_operand instead of just memory_operand.
9217
9218 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9219
9220         PR target/39445
9221         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
9222
9223 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9224
9225         PR target/39327
9226         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9227         (avx_addsubv4df3): Likewise.
9228         (*avx_addsubv4sf3): Likewise.
9229         (sse3_addsubv4sf3): Likewise.
9230
9231 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9232
9233         PR target/38824
9234         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
9235
9236 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
9237
9238         PR debug/39432
9239         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9240         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9241         registers for allocnos created from user-defined variables.
9242
9243 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9244
9245         PR target/39181
9246         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9247         of non-integer mode as well.
9248
9249 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
9250
9251         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9252         for functions for which the parameter types are unknown.
9253
9254 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
9255
9256         PR target/39137
9257         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9258         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9259         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9260         * config/i386/i386.c (ix86_local_alignment): For
9261         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9262         long long variables on the stack to avoid dynamic realignment.
9263         Allow the first argument to be a decl rather than type.
9264         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9265
9266 2009-03-11  Nick Clifton  <nickc@redhat.com>
9267
9268         PR target/5362
9269         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9270         options.
9271         Add description to mno-lsim option.
9272         * config/mcore/mcore.h: Remove comment about deprecated m4align
9273         option.
9274         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9275         * doc/invoke.texi: Add description of mno-lsim and
9276         mstack-increment options.
9277
9278         * config/fr30/fr30.opt: Document the -mno-lsim option.
9279         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9280         and -mno-lsim options.
9281
9282 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9283
9284         * fold-const.c (fold_comparison): Only call fold_inf_compare
9285         if the mode supports infinities.
9286
9287 2009-03-11  Jason Merrill  <jason@redhat.com>
9288
9289         PR debug/39086
9290         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9291         end already did.  Notice GIMPLE_CALL modifications of the result.
9292         Don't copy debug information from an ignored decl or a decl from
9293         another function.
9294
9295 2009-03-10  Richard Guenther  <rguenther@suse.de>
9296             Nathan Froyd  <froydnj@codesourcery.com>
9297
9298         PR middle-end/37850
9299         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9300         (__divMODE3): Likewise.
9301
9302 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
9303
9304         PR tree-optimization/39394
9305         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9306         DECL_SIZE_UNIT of variable length FIELD_DECLs.
9307
9308 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9309
9310         * recog.c (verfiy_changes): Disallow renaming of hard regs in
9311         inline asms for register asm ("") declarations.
9312
9313 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9314
9315         * fold-const.c (fold_unary): Fix comment.
9316
9317 2009-03-07  Jan Hubicka  <jh@suse.cz>
9318
9319         PR target/39361
9320         * tree-inline.c (setup_one_parameter): Do replacement of const
9321         argument by constant in SSA form.
9322
9323 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9324
9325         PR middle-end/38028
9326         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9327         determine alignment passed to assign_stack_local.
9328         (assign_parms_unsplit_complex): Likewise.
9329         * except.c (sjlj_build_landing_pads): Likewise.
9330
9331 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9332
9333         PR middle-end/39360
9334         * tree-flow.h (add_referenced_var): Return bool instead of void.
9335         * tree-dfa.c (add_referenced_var): Return result of
9336         referenced_var_check_and_insert call.
9337         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9338         of referenced_var_check_and_insert.
9339
9340         PR debug/39372
9341         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9342         (gen_variable_die): Emit DW_AT_location on abstract static variable's
9343         DIE, don't emit it if abstract origin already has it.
9344         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9345         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9346
9347 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9348
9349         * genpreds.c (needs_variable): Fix parentheses at variable name
9350         detection.
9351         (write_tm_constrs_h): Indent generated code.
9352
9353 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9354
9355         * doc/extend.texi (Function Attributes): Add documentation
9356         for isr attributes.
9357
9358 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9359
9360         PR debug/39387
9361         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9362         take locus from its DECL_SOURCE_LOCATION instead of input_location.
9363
9364 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9365
9366         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9367         the loop as bad.
9368
9369 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
9370
9371         PR debug/39379
9372         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9373         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9374
9375 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
9376
9377         * config/i386/i386.md (R8_REG, R9_REG): New constants.
9378         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9379         constants instead of magic numbers.
9380         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9381         (QI_REG_P): Ditto.
9382         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9383         (x86_64_ms_abi_int_parameter_registers): Ditto.
9384         (x86_64_int_return_registers): Ditto.
9385         (ix86_maybe_switch_abi): Ditto.
9386         (ix86_expand_call): Ditto for clobbered_registers array.
9387         (ix86_hard_regno_mode_ok): Ditto.
9388         (x86_extended_QIreg_mentioned_p): Ditto.
9389
9390 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
9391
9392         PR tree-optimization/39349
9393         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9394
9395         * combine.c (gen_lowpart_for_combine): Use omode when generating
9396         clobber.
9397
9398 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
9399
9400         PR rtl-optimization/39235
9401         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9402
9403 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9404
9405         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9406
9407 2009-03-04  Richard Guenther  <rguenther@suse.de>
9408
9409         PR tree-optimization/39362
9410         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9411         that occur in abnormal PHIs should be varying.
9412
9413 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9414
9415         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9416         Extend comments.
9417         (simple_iv):  Take loop as an argument instead of statement.
9418         * tree-scalar-evolution.h (simple_iv): Declaration changed.
9419         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9420         to simple_iv.
9421         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9422         Ditto.
9423         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9424         * matrix-reorg.c (analyze_transpose): Ditto.
9425         * tree-data-ref.c (dr_analyze_innermost): Ditto.
9426         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9427         * tree-predcom.c (ref_at_iteration): Ditto.
9428         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9429
9430 2009-03-04  Richard Guenther  <rguenther@suse.de>
9431
9432         PR tree-optimization/39358
9433         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9434         escaped_id and callused_id.
9435         (solve_graph): Likewise.
9436
9437 2009-03-04  Richard Guenther  <rguenther@suse.de>
9438
9439         PR tree-optimization/39339
9440         * tree-sra.c (try_instantiate_multiple_fields): Make it
9441         no longer ICE on the above.
9442
9443 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
9444
9445         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9446         that fits within Pmode.
9447
9448 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9449
9450         PR middle-end/10109
9451         * tm.texi (LIBCALL_VALUE): Update description.
9452
9453 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9454
9455         PR middle-end/34443
9456         * doc/extend.texi (section): Update description.
9457
9458 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
9459
9460         PR middle-end/39345
9461         * tree-inline.c (remapped_type): New.
9462         (can_be_nonlocal): Call remapped_type instead of remap_type.
9463
9464 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9465
9466         PR fortran/39354
9467         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9468         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9469
9470 2009-03-03  Richard Guenther  <rguenther@suse.de>
9471
9472         PR middle-end/39272
9473         * tree.c (tree_nonartificial_location): New function.
9474         * tree.h (tree_nonartificial_location): Declare.
9475         * builtins.c (expand_builtin_memory_chk): Provide location
9476         of the call location for artificial function pieces.
9477         (maybe_emit_chk_warning): Likewise.
9478         (maybe_emit_sprintf_chk_warning): Likewise.
9479         (maybe_emit_free_warning): Likewise.
9480         * expr.c (expand_expr_real_1): Likewise.
9481
9482 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9483
9484         PR tree-optimization/39343
9485         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9486         COMPONENT_REF t has ARRAY_TYPE.
9487
9488 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9489
9490         PR middle-end/39335
9491         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9492         when the type precision of the induction variable should be
9493         larger than the type precision of nit.
9494         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9495         * graphite.c (graphite_loop_normal_form): Same.
9496         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9497
9498 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9499
9500         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9501         (*call_1_rex64_ms_sysv): Use named constants instead of magic
9502         numbers to describe clobbered registers.
9503         (*call_value_0_rex64_ms_sysv): Ditto.
9504         * config/i386/mmx.md (mmx_emms): Ditto.
9505         (mmx_femms): Ditto.
9506
9507 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
9508
9509         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9510         of ABI_64.
9511
9512 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9513
9514         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9515         (spu_section_type_flags): New function.
9516
9517 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9518
9519         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9520         reg_class_contents of FLOAT_REGS into a temporary.
9521
9522 2009-03-02  Richard Guenther  <rguenther@suse.de>
9523             Ira Rosen  <irar@il.ibm.com>
9524
9525         PR tree-optimization/39318
9526         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9527         information to the vectorized statement.
9528
9529 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
9530
9531         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9532         variable.  Use defined names instead of magic constants for REX SSE
9533         registers.
9534
9535 2009-03-01  Richard Guenther  <rguenther@suse.de>
9536
9537         PR tree-optimization/39331
9538         * omp-low.c (lower_send_shared_vars): Do not receive new
9539         values for the reference of DECL_BY_REFERENCE parms or results.
9540
9541 2009-03-01  Jan Hubicka  <jh@suse.cz>
9542
9543         PR debug/39267
9544         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9545         BLOCK_NONLOCALIZED_VAR): New macros.
9546         (tree_block): Add nonlocalized_vars.
9547         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9548         gen_decl_die): Add origin argument.  Allow generation of die with
9549         origin at hand only.
9550         (gen_member_die, gen_type_die_with_usage, force_decl_die,
9551         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9552         of gen_*.
9553         (gen_block_die): Fix checking for unused blocks.
9554         (process_scope_var): Break out from .... ; work with origins only.
9555         (decls_for_scope) ... here; process nonlocalized list.
9556         (dwarf2out_ignore_block): Look for nonlocalized vars.
9557         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9558         vars.
9559         (dump_scope_block): Dump them.
9560         * tree-inline.c (remap_decls): Handle nonlocalized vars.
9561         (remap_block): Likewise.
9562         (can_be_nonlocal): New predicate.
9563         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9564
9565 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9566
9567         * configure: Regenerate.
9568
9569 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9570
9571         * optc-gen.awk: No need to duplicate option flags twice.
9572         Reuse help texts for duplicate options which do not have any.
9573
9574         * gcc.c (display_help): Document --version.
9575
9576         * gcc.c (main): If print_help_list and verbose_flag, ensure
9577         driver output comes before subprocess output.
9578
9579         * optc-gen.awk: Assign all remaining fields to help string,
9580         space-separated, for multi-line help in *.opt.
9581
9582         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9583         -Wno-pedantic-ms-format is for MinGW targets only.
9584
9585         * doc/options.texi (Option file format): Fix bad indentation,
9586         restoring dropped sentence.
9587
9588 2009-02-28  Jan Hubicka  <jh@suse.cz>
9589
9590         * tree-inline.c (tree_function_versioning): Output debug info.
9591
9592 2009-02-28  Jan Hubicka  <jh@suse.cz>
9593
9594         PR debug/39267
9595         * tree-inline.c (setup_one_parameter): Do not copy propagate
9596         arguments when not optimizing.
9597
9598 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9599
9600         PR target/39327
9601         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9602         (avx_addsubv4df3): Likewise.
9603         (*avx_addsubv4sf3): Likewise.
9604         (sse3_addsubv4sf3): Likewise.
9605         (*avx_addsubv2df3): Likewise.
9606         (sse3_addsubv2df3): Likewise.
9607         (avx_unpckhps256): Correct item selectors.
9608         (avx_unpcklps256): Likewise.
9609         (avx_unpckhpd256): Likewise.
9610         (avx_unpcklpd256): Likewise.
9611
9612 2009-02-28  Jan Hubicka  <jh@suse.cz>
9613
9614         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9615         static vars.
9616         (copy_arguments_for_versioning): If var is declared don't declare it.
9617         (tree_function_versioning): First setup substitutions and then copy
9618         args.
9619
9620 2009-02-27  Jan Hubicka  <jh@suse.cz>
9621
9622         PR debug/39267
9623         * cgraph.h (varpool_output_debug_info): Remove.
9624         * cgraphunit.c (varpool_output_debug_info): Remove.
9625         * dwarf2out.c (deferred_locations_struct): New struct
9626         (deferred_locations): New type.
9627         (deferred_locations_list): New static var.
9628         (deffer_location): New function.
9629         (gen_variable_die): Use it.
9630         (decls_for_scope): Output info on local static vars.
9631         (dwarf2out_finish): Process deferred locations.
9632         * varpool.c (varpool_output_debug_info): Remove.
9633
9634 2009-02-27  Jan Hubicka  <jh@suse.cz>
9635
9636         PR debug/39267
9637         * tree.h (TREE_PROTECTED): Fix comment.
9638         (BLOCK_HANDLER_BLOCK): Remove.
9639         (struct tree_block): Remove handler_block add body_block.
9640         (inlined_function_outer_scope_p): New.
9641         (is_body_block): Remove.
9642         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9643         * dwarf2out.c (is_inlined_entry_point): Remove.
9644         (add_high_low_attributes): Use inlined_function_outer_scope_p.
9645         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
9646         code.
9647         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9648         * gimplify.c (gimplify_expr): Gimplify body blocks.
9649         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9650         block with multiple subblocks.
9651         (dump_scope_block): Prettier output; dump more flags and info.
9652         (dump_scope_blocks): New.
9653         (remove_unused_locals): Use dump_scope_blocks.
9654         * tree-flow.h (dump_scope_blocks): Declare.
9655         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9656         * stmt.c (is_body_block): Remove.
9657         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9658         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9659
9660 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
9661
9662         PR middle-end/39308
9663         * graphite.c (graphite_loop_normal_form): Do not call
9664         number_of_iterations_exit from a gcc_assert.
9665
9666 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9667
9668         * config/s390/s390.c (s390_swap_cmp): Look for conditional
9669         jumps if COND is NULL.
9670         (find_cond_jump): New function.
9671         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
9672         * config/s390/s390.md: Remove z10_cobra attribute value.
9673
9674 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
9675
9676         * config/alpha/alpha.h (alpha_expand_mov): Return false if
9677         force_const_mem returns NULL_RTX.
9678
9679 2009-02-26  Jan Hubicka  <jh@suse.cz>
9680
9681         PR debug/39267
9682         * cgraph.h (varpool_output_debug_info): Remove.
9683         * cgraphunit.c (varpool_output_debug_info): Remove.
9684         * dwarf2out.c (deferred_locations_struct): New struct
9685         (deferred_locations): New type.
9686         (deferred_locations_list): New static var.
9687         (deffer_location): New function.
9688         (gen_variable_die): Use it.
9689         (decls_for_scope): Output info on local static vars.
9690         (dwarf2out_finish): Process deferred locations.
9691         * varpool.c (varpool_output_debug_info): Remove.
9692
9693 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9694
9695         PR rtl-optimization/39241
9696         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9697         to subreg_offset_representable_p.
9698
9699 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9700
9701         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9702         execute function prototype.  Get f and nregs from max_reg_num
9703         and get_insns.  Remove the first backward pass as it's dead,
9704         guard the forward pass by flag_expensive_optimizations.
9705         (rest_of_handle_regmove): Delete.
9706         (pass_regmove): Replace it with regmove_optimize.
9707
9708 2009-02-25  Martin Jambor  <mjambor@suse.cz>
9709
9710         PR tree-optimization/39259
9711         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
9712         calls_alloca function flags.
9713         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9714         calls are detected.
9715
9716 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9717
9718         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9719         flags_set_1_rtx, flags_set_1_set): Delete.
9720         (regmove_optimize): Do not call mark_flags_life_zones.
9721
9722 2009-02-24  Julian Brown  <julian@codesourcery.com>
9723
9724         PR target/35965
9725         * config/arm/arm.c (require_pic_register): Only set
9726         cfun->machine->pic_reg once per function.
9727
9728 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
9729
9730         * doc/invoke.texi (Link Options): Document an easier way to pass
9731         options that take arguments to the GNU linker using -Xlinker and -Wl.
9732
9733 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
9734
9735         PR target/33785
9736         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9737
9738 2009-02-24  Richard Guenther  <rguenther@suse.de>
9739
9740         PR debug/39285
9741         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9742
9743 2009-02-24  Richard Guenther  <rguenther@suse.de>
9744             Zdenek Dvorak  <ook@ucw.cz>
9745
9746         PR tree-optimization/39233
9747         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9748         from converting them to a generic type.
9749
9750 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
9751
9752         PR tree-optimization/39260
9753         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9754         contains a condition with a real type.
9755         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9756
9757 2009-02-23  Jason Merrill  <jason@redhat.com>
9758
9759         PR c++/38880
9760         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9761         narrowing_initializer_constant_valid_p.
9762         (narrowing_initializer_constant_valid_p): Don't return
9763         null_pointer_node for adding a pointer to itself.
9764
9765 2009-02-23  Jan Hubicka  <jh@suse.cz>
9766
9767         PR c/12245
9768         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9769         resizing.
9770
9771 2009-02-23  Jan Hubicka  <jh@suse.cz>
9772
9773         PR tree-optimization/37709
9774         * tree.c (block_ultimate_origin): Move here from dwarf2out.
9775         * tree.h (block_ultimate_origin): Declare.
9776         * dwarf2out.c (block_ultimate_origin): Move to tree.c
9777         * tree-ssa-live.c (remove_unused_scope_block_p):
9778         Eliminate blocks containig no instructions nor live variables nor
9779         nested blocks.
9780         (dump_scope_block): New function.
9781         (remove_unused_locals): Enable removal of dead blocks by default;
9782         enable dumping at TDF_DETAILS.
9783
9784 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9785
9786         * config/i386/i386.c (classify_argument): Don't allow COImode
9787         and OImode.
9788         (function_arg_advance_32): Don't allow OImode.
9789         (function_arg_32): Likewise.
9790         (function_value_32): Likewise.
9791         (return_in_memory_32): Likewise.
9792         (function_arg_64): Remove OImode comment.
9793
9794 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9795
9796         PR target/39261
9797         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9798         ix86_expand_vector_set for V4DImode in 64bit mode only.
9799         (ix86_expand_vector_init_one_var): Likewise.
9800
9801 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
9802
9803         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9804
9805 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9806
9807         PR bootstrap/39257
9808         * loop-iv.c: Revert last change.
9809         * emit-rtl.c: Likewise.
9810
9811 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9812
9813         PR target/39256
9814         * config/i386/i386.c (type_natural_mode): Remove an extra
9815         space in the warning message.
9816         (function_value_32): Handle 32-byte vector modes.
9817         (return_in_memory_32): Likewise.
9818
9819 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9820
9821         * loop-iv.c (truncate_value): New function.
9822         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9823         of lowpart_subreg.
9824         (lowpart_subreg): Move to...
9825         * emit-rtl.c: ...here.
9826
9827 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
9828
9829         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9830         accidental and undocumented change at revision 140860.
9831
9832 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
9833
9834         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9835         take gimple_seq * arguments.
9836         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9837         types_compatible_p langhook.
9838
9839 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
9840             Joseph Myers  <joseph@codesourcery.com>
9841
9842         * config/arm/arm.c (arm_builtin_va_list): New function.
9843         (arm_expand_builtin_va_start): Likewise.
9844         (arm_gimplify_va_arg_expr): Likewise.
9845         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9846         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9847         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9848         (va_list_type): New variable.
9849         (arm_mangle_type): Mangle va_list_type appropriately.
9850
9851 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9852
9853         PR middle-end/39157
9854         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9855         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9856         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9857         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9858         parameter to 1000 for -O1 by default.
9859         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9860         parameter.
9861         * loop-invariant.c: Include params.h.
9862         (move_loop_invariants): Don't call move_single_loop_invariants on
9863         very large loops.
9864
9865 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
9866
9867         * calls.c (emit_library_call_value_1): Use slot_offset instead of
9868         offset when calculating bounds for indexing stack_usage_map.  Fixes
9869         a buffer overflow with certain target setups.
9870
9871 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9872
9873         PR target/39240
9874         * calls.c (expand_call): Clear try_tail_call if caller and callee
9875         disagree in promotion of function return value.
9876
9877 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
9878
9879         PR target/39175
9880         * c-common.c (c_determine_visibility): If visibility changed and
9881         DECL_RTL has been already set, call make_decl_rtl to update symbol
9882         flags.
9883
9884 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9885
9886         PR c++/39188
9887         * varasm.c (assemble_variable): Don't check DECL_NAME when
9888         globalizing a variable.
9889
9890 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
9891
9892         PR c/38483
9893         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9894         expression before any __builtin_trap call.
9895         * c-typeck.c (build_function_call): Convert and check function
9896         arguments before generating a call to a trap.  Evaluate the
9897         function arguments before the trap.
9898
9899 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
9900
9901         PR target/39228
9902         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9903         (UNSPEC_FXAM_MEM): New unspec.
9904         (fxam<mode>2_i387_with_temp): New insn and split pattern.
9905         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
9906         memory using fxam<mode>2_i387_with_temp to remove excess precision.
9907
9908 2009-02-19  Richard Guenther  <rguenther@suse.de>
9909
9910         PR tree-optimization/39207
9911         PR tree-optimization/39074
9912         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9913         storedanything_tree): New.
9914         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
9915         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9916         (build_succ_graph): Add edges from STOREDANYTHING to all
9917         non-direct nodes.
9918         (init_base_vars): Initialize STOREDANYTHING.
9919         (compute_points_to_sets): Free substitution info after
9920         building the succ graph.
9921         (ipa_pta_execute): Likewise.
9922
9923         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9924         field.
9925         (do_ds_constraint): Do not add to special var or non-pointer
9926         field solutions.
9927         (type_could_have_pointers): Split out from ...
9928         (could_have_pointers): ... here.  For arrays use the element type.
9929         (create_variable_info_for): Initialize may_have_pointers.
9930         (new_var_info): Likewise.
9931         (handle_lhs_call): Make the HEAP variable unknown-sized.
9932         (intra_create_variable_infos): Use a type with pointers for
9933         PARM_NOALIAS, make it unknown-sized.
9934
9935 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9936
9937         PR target/39224
9938         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
9939
9940 2009-02-18  Jason Merrill  <jason@redhat.com>
9941
9942         PR target/39179
9943         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9944         value if DECL_EXTERNAL.
9945         * tree-sra.c (sra_walk_gimple_assign): Likewise.
9946         * target.h (gcc_target::binds_local_p): Clarify "module".
9947         * tree.h (TREE_PUBLIC): Clarify "module".
9948
9949 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
9950
9951         PR target/38891
9952         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9953         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9954
9955 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
9956
9957         PR target/39082
9958         * c.opt (Wabi): Support C and ObjC.
9959         (Wpsabi): New.
9960
9961         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9962
9963         * config/i386/i386.c (classify_argument): Warn once about the ABI
9964         change when passing union with long double.
9965
9966         * doc/invoke.texi: Update -Wabi for warning psABI changes.
9967
9968 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
9969
9970         PR c/35447
9971         * c-parser.c (c_parser_compound_statement): Always enter and leave
9972         a scope.
9973
9974 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9975
9976         PR target/34587
9977         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9978
9979 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
9980
9981         PR tree-optimization/36922
9982         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9983         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9984         Likewise.
9985
9986 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9987
9988         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9989         to 0 for EABI64.
9990
9991 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9992
9993         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9994
9995 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9996
9997         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9998         tree sharing.
9999
10000 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
10001             Richard Sandiford  <rdsandiford@googlemail.com>
10002
10003         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
10004         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
10005         (loongson_biadd): ...this.
10006
10007 2009-02-17  Richard Guenther  <rguenther@suse.de>
10008
10009         PR tree-optimization/39202
10010         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
10011         a var make sure to follow existing collapses.
10012
10013 2009-02-17  Richard Guenther  <rguenther@suse.de>
10014
10015         PR middle-end/39214
10016         * langhooks.c (lhd_print_error_function): Check for NULL block.
10017
10018 2009-02-17  Richard Guenther  <rguenther@suse.de>
10019
10020         PR tree-optimization/39204
10021         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
10022         of the PHI arg.
10023
10024 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
10025
10026         * config/soft-fp/double.h: Update from glibc CVS.
10027
10028 2009-02-17  Richard Guenther  <rguenther@suse.de>
10029
10030         PR tree-optimization/39207
10031         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
10032         strict-aliasing warnings for pointers pointing to NULL.
10033
10034 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
10035
10036         PR c/35446
10037         * c-parser.c (c_parser_braced_init): Call pop_init_level when
10038         skipping until next close brace.
10039
10040 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
10041
10042         PR target/37049
10043         * config/i386/i386.c (ix86_expand_push): Set memory alignment
10044         to function argument boundary.
10045
10046 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
10047
10048         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
10049         in the lea_add. Reload eventually constraints it properly.
10050         * config/picochip/constraints.md: Remove the target constraint
10051         "b", since it is not needed anymore.
10052
10053 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
10054
10055         * gthr-dce.h: Uglify function parameter and local variable names.
10056         * gthr-gnat.h: Likewise.
10057         * gthr-mipssde.h: Likewise.
10058         * gthr-nks.h: Likewise.
10059         * gthr-posix95.h: Likewise.
10060         * gthr-posix.h: Likewise.
10061         * gthr-rtems.h: Likewise.
10062         * gthr-single.h: Likewise.
10063         * gthr-solaris.h: Likewise.
10064         * gthr-tpf.h: Likewise.
10065         * gthr-vxworks.h: Likewise.
10066         * gthr-win32.h: Likewise.
10067
10068 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10069
10070         PR target/39196
10071         * config/i386/i386.md: Restrict the new peephole2 to move
10072         between MMX/SSE registers.
10073
10074 2009-02-15  Richard Guenther  <rguenther@suse.de>
10075
10076         Revert
10077         2009-02-13  Richard Guenther  <rguenther@suse.de>
10078
10079         * configure.ac: Enable LFS.
10080         * configure: Re-generate.
10081         * config.in: Likewise.
10082
10083 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10084
10085         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
10086         spu_srqwbyte, spu_srqwbytebc): Define.
10087         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
10088         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
10089         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
10090         "shrqby_<mode>"): New insn-and-split patterns.
10091         * config/spu/spu.c (expand_builtin_args): Determine and return
10092         number of operands using spu_builtin_description data.
10093         (spu_expand_builtin_1): Use it.
10094
10095 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
10096
10097         PR target/38056
10098         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
10099         TARGET_CONST_GP.
10100
10101 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10102
10103         PR target/39149
10104         * config/i386/i386.c (override_options): Correct warning
10105         messages for -malign-loops, -malign-jumps and -malign-functions.
10106
10107 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10108
10109         PR target/39152
10110         * config/i386/i386.md: Restrict the new peephole2 to move
10111         between the general purpose registers.
10112
10113 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10114
10115         PR target/39162
10116         * config/i386/i386.c (type_natural_mode): Add a new argument.
10117         Return the original mode and warn ABI change if vector size is 32byte.
10118         (function_arg_advance): Updated.
10119         (function_arg): Likewise.
10120         (ix86_function_value): Likewise.
10121         (ix86_return_in_memory): Likewise.
10122         (ix86_sol10_return_in_memory): Likewise.
10123         (ix86_gimplify_va_arg): Likewise.
10124         (function_arg_32): Don't warn ABX ABI change here.
10125         (function_arg_64): Likewise.
10126
10127 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10128
10129         * loop-iv.c (implies_p): In the final case, test that operands 0
10130         of the two comparisons match.
10131
10132         * config/bfin/bfin.c (find_prev_insn_start): New function.
10133         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
10134         (find_next_insn_start): Move.
10135
10136 2009-02-13  Richard Guenther  <rguenther@suse.de>
10137
10138         * configure.ac: Enable LFS.
10139         * configure: Re-generate.
10140         * config.in: Likewise.
10141
10142 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
10143
10144         PR c/35444
10145         * c-parser.c (c_parser_parms_list_declarator): Discard pending
10146         sizes on syntax error after some arguments have been parsed.
10147
10148 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
10149
10150         * doc/invoke.texi (-fira): Remove.
10151
10152 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10153
10154         * caller-save.c: Replace regclass.c with reginfo.c in comments.
10155         * recog.c: Likewise.
10156         * rtl.h: Likewise.
10157
10158 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
10159
10160         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
10161         (umul_ppmm): Likewise.
10162         (count_leading_zeros): Likewise.
10163         (count_trailing_zeros): Likewise.
10164         (UMUL_TIME): Likewise.
10165
10166 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10167
10168         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
10169         soft-fp/t-softfp to tmake_file.
10170
10171         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
10172         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
10173         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
10174         IA64_BUILTIN_INFQ]: New.
10175         (ia64_init_builtins): Initialize __builtin_infq,
10176         __builtin_fabsq and __builtin_copysignq if not HPUX.
10177         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
10178         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
10179
10180         * config/ia64/lib1funcs.asm (__divtf3): Define only if
10181         SHARED is defined.
10182         (__fixtfti): Likewise.
10183         (__fixunstfti): Likewise.
10184         (__floattitf): Likewise.
10185
10186         * config/ia64/libgcc-glibc.ver: New.
10187         * config/ia64/t-fprules-softfp: Likewise.
10188         * config/ia64/sfp-machine.h: Likewise.
10189
10190         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
10191         (LIBGCC2_TF_CEXT): Likewise.
10192         (TF_SIZE): Likewise.
10193         (TARGET_INIT_LIBFUNCS): Likewise.
10194
10195         * config/ia64/t-glibc (SHLINB_MAPFILES):
10196         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
10197
10198 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10199
10200         * config/i386/i386.c (construct_container): Rewrite processing
10201         BLKmode with X86_64_SSE_CLASS.
10202
10203 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
10204
10205         PR target/39152
10206         * config/i386/i386.md: Replace simplify_replace_rtx with
10207         replace_rtx in the new peephole2.
10208
10209 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
10210
10211         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
10212         loop unrolling do not happen at -O2.
10213
10214 2009-02-12  Michael Matz  <matz@suse.de>
10215
10216         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
10217
10218 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
10219
10220         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
10221         for -g3.
10222
10223 2009-02-12  Ben Elliston  <bje@au.ibm.com>
10224
10225         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
10226         patterns when updating the back chain.  Missed in the 2009-02-10
10227         change.
10228
10229 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
10230
10231         * doc/extend.texi (Decimal Floating Types): Update identifier of
10232         draft TR and list of missing support.
10233
10234 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
10235
10236         PR middle-end/39154
10237         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10238         bit to variable length decl's flags, add it also to its
10239         pointer replacement variable.
10240
10241 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
10242             Jakub Jelinek  <jakub@redhat.com>
10243
10244         PR target/39118
10245         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10246         (memory_blockage): New expander.
10247         (*memory_blockage): New insn pattern.
10248         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10249         instead of general blockage at the end of function prologue when
10250         frame pointer is used to access red zone area.  Do not emit blockage
10251         when profiling, it is emitted in generic code.
10252         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10253         function epilogue when frame pointer is used to access red zone area.
10254
10255 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
10256
10257         PR target/38824
10258         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10259         by arithmetic with memory operands.
10260         * config/i386/predicates.md (commutative_operator): New.
10261
10262 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
10263
10264         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10265         bulleted lists.
10266
10267 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10268
10269         * alias.h (record_alias_subset): Declare.
10270         * alias.c (record_alias_subset): Make global.
10271
10272 2009-02-10  Nick Clifton  <nickc@redhat.com>
10273
10274         * tree-parloops.c: Change license to GPLv3.
10275         * ipa-struct-reorg.c: Change license to GPLv3.
10276         * ipa-struct-reorg.h: Change license to GPLv3.
10277
10278 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
10279
10280         PR c/39084
10281         * c-decl.c (start_struct): Return NULL on error.
10282
10283 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
10284
10285         PR middle-end/39124
10286         * cfgloopmanip.c (remove_path): Call remove_bbs after
10287         cancel_loop_tree, not before it.
10288
10289         PR target/39139
10290         * function.h (struct function): Add has_local_explicit_reg_vars bit.
10291         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10292         VAR_DECLs were seen.
10293         * tree-ssa-live.c (remove_unused_locals): Recompute
10294         cfun->has_local_explicit_reg_vars.
10295         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10296         copies or clearings if cfun->has_local_explicit_reg_vars.
10297
10298 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
10299
10300         PR target/39118
10301         * config/i386/i386.c (expand_prologue): Emit blockage at the end
10302         of function prologue when frame pointer is used to access
10303         red zone area.
10304
10305 2009-02-10  Richard Guenther  <rguenther@suse.de>
10306
10307         PR middle-end/39127
10308         * gimplify.c (gimple_regimplify_operands): Always look if
10309         we need to create a temporary.
10310
10311 2009-02-10  Richard Guenther  <rguenther@suse.de>
10312
10313         PR tree-optimization/39132
10314         * tree-loop-distribution.c (todo): New global var.
10315         (generate_memset_zero): Trigger TODO_rebuild_alias.
10316         (tree_loop_distribution): Return todo.
10317
10318 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10319
10320         PR target/39119
10321         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10322         (x86_64_reg_class_name): Removed.
10323         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
10324         first one isn't X86_64_SSE_CLASS or any other ones aren't
10325         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
10326         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10327         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
10328         and 3 X86_64_SSEUP_CLASS.
10329         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
10330         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10331
10332 2009-02-10  Ben Elliston  <bje@au.ibm.com>
10333
10334         * config/rs6000/rs6000.md (allocate_stack): Always use an update
10335         form instruction to update the stack back chain word, even if the
10336         user has disabled the generation of update instructions.
10337         (movdi_<mode>_update_stack): New.
10338         (movsi_update_stack): Likewise.
10339         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10340         always use an update form instruction to update the stack back
10341         chain word.
10342
10343 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
10344
10345         PR middle-end/38953
10346         * graphite.c (if_region_set_false_region): After moving a region in
10347         the false branch of a condition, remove the empty dummy basic block.
10348         (gloog): Remove wrong fix for PR38953.
10349
10350 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10351
10352         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10353         generation due to implicit sign extension.
10354
10355 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10356
10357         PR middle-end/38981
10358         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10359         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10360
10361 2009-02-09  Richard Guenther  <rguenther@suse.de>
10362
10363         PR middle-end/35202
10364         * convert.c (convert_to_real): Disable (float)fn((double)x)
10365         to fnf(x) conversion if errno differences may occur and
10366         -fmath-errno is set.
10367
10368 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
10369
10370         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10371         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10372         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10373
10374 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10375
10376         PR c/35434
10377         * c-common.c (handle_alias_attribute): Disallow attribute for
10378         anything not a FUNCTION_DECL or VAR_DECL.
10379
10380 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
10381
10382         PR c/39035
10383         * real.c (do_compare): Special-case compare of zero against
10384         decimal float value.
10385
10386 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10387
10388         PR c/36432
10389         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10390         as indicating flexible array members unless the field itself is
10391         being declarared as the incomplete array.
10392
10393 2009-02-06  Jan Hubicka  <jh@suse.cz>
10394
10395         PR tree-optimization/38844
10396         * ipa-inline.c (try_inline): Stop inlining recursion when edge
10397         is already inlined.
10398
10399 2009-02-06  Richard Guenther  <rguenther@suse.de>
10400
10401         PR middle-end/38977
10402         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10403         fork because we may expand it as __gcov_fork.
10404
10405 2009-02-06  Nick Clifton  <nickc@redhat.com>
10406
10407         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10408
10409 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
10410
10411         PR tree-optimization/35659
10412         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10413         vn_phi_eq): Shortcut if hashcode does not match.
10414         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10415         NULL operands.
10416         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10417         and avoid iterative_hash_expr.
10418         (FOR_EACH_VALUE_ID_IN_SET): New.
10419         (value_id_compare): Remove.
10420         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10421         sort expressions by value id.
10422
10423 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10424
10425         PR target/38991
10426         * config/sh/predicates.md (general_movsrc_operand): Don't check
10427         the subreg of system registers here.
10428
10429 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
10430
10431         PR c++/39106
10432         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10433         on the copied decl.
10434
10435 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
10436
10437         PR rtl-optimization/39110
10438         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10439         addresses, not aligned ones.
10440
10441 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
10442             Richard Guenther  <rguenther@suse.de>
10443
10444         PR tree-optimization/39100
10445         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10446         comment says and add edges.
10447
10448 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
10449
10450         PR c/35435
10451         * c-common.c (handle_tls_model_attribute): Ignore attribute for
10452         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10453
10454 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
10455
10456         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10457         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10458         register_bb_in_sese, new_sese, free_sese): Moved.
10459         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10460         outermost_loop_in_scop, build_scop_iteration_domain,
10461         expand_scalar_variables_ssa_name, get_vdef_before_scop,
10462         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10463         Use loop_in_sese_p instead of loop_in_scop_p.
10464         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10465         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10466         (scopdet_basic_block_info): Fix bug in scop detection.
10467         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10468         eq_loop_to_cloog_loop): Remove.
10469         (nb_loops_around_loop_in_scop, nb_loop
10470         ref_nb_loops): Moved here...
10471         * graphite.h (ref_nb_loops): ... from here.
10472         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10473         (loop_domain_dim, loop_iteration_vector_dim): Remove.
10474         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10475         * testsuite/gcc.dg/graphite/scop-19.c: New
10476
10477 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
10478             Hans-Peter Nilsson  <hp@axis.com>
10479
10480         PR rtl-optimization/37889
10481         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10482         Move offset handling from PLUS to before the switch.  Use new
10483         arguments when considering SYMBOL_REFs too.
10484         (rtx_addr_can_trap_p): Pass dummy offset and size.
10485         (enum may_trap_p_flags): Remove.
10486         (may_trap_p_1): Pass size from MEM_SIZE.
10487
10488         PR rtl-optimization/38921
10489         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10490         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10491         * rtlanal.c (may_trap_after_code_motion_p): Delete.
10492         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10493
10494 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
10495
10496         AVX Programming Reference (January, 2009)
10497         * config/i386/sse.md (*vpclmulqdq): New.
10498
10499 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
10500
10501         PR tree-optimization/38977
10502         PR gcov-profile/38292
10503         * calls.c (special_function_p): Disregard __builtin_ prefix.
10504
10505 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10506
10507         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10508         non-indexable addresses even before reload.
10509
10510 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10511
10512         PR c/29129
10513         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10514         as having variable size.  Do not give an error for unnamed
10515         parameters with [*] declarators.  Give a warning for type names
10516         with [*] declarators and mark them as variable size.
10517         * c-parser.c (c_parser_sizeof_expression): Do not give an error
10518         for sizeof applied to [*] type names.
10519
10520 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10521
10522         PR C++/36607
10523         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10524
10525 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10526
10527         * gcc.c (process_command): Update copyright notice dates.
10528         * gcov.c (print_version): Likewise.
10529         * gcov-dump.c (print_version): Likewise.
10530         * mips-tfile.c (main): Likewise.
10531         * mips-tdump.c (main): Likewise.
10532
10533 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10534
10535         PR c/35433
10536         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10537         for composite type involving a zero-length array type.
10538
10539 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10540
10541         PR target/35318
10542         * function.c (match_asm_constraints_1): Skip over
10543         initial optional % in the constraint.
10544
10545         PR inline-asm/39059
10546         * c-parser.c (c_parser_postfix_expression): If fixed point is not
10547         supported, don't accept FIXED_CSTs.
10548         * c-decl.c (finish_declspecs): Error if fixed point is not supported
10549         and _Sat is used without _Fract/_Accum.  Set specs->type to
10550         integer_type_node for cts_fract/cts_accum if fixed point is not
10551         supported.
10552
10553 2009-02-02  Catherine Moore  <clm@codesourcery.com>
10554
10555         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
10556
10557 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10558
10559         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10560         (ABI_HAS_64BIT_SYMBOLS): Use it.
10561         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10562
10563 2009-02-02  Paul Brook  <paul@codesourcery.com>
10564
10565         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10566
10567 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
10568
10569         PR inline-asm/39058
10570         * recog.h (asm_operand_ok): Add constraints argument.
10571         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
10572         recurse on matching constraint.
10573         (check_asm_operands): Pass constraints as 3rd argument to
10574         asm_operand_ok.  Don't look up matching constraint here.
10575         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10576         to asm_operand_ok.
10577
10578 2009-02-02  Ben Elliston  <bje@au.ibm.com>
10579
10580         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10581         TARGET_NARROW_VOLATILE_BITFIELD macro names.
10582
10583 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10584
10585         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10586         information.  Remove some obsolete information.  Reorganize.
10587
10588         * config/pa/fptr.c: Revert license to GPL 2.
10589         * config/pa/milli64.S: Likewise.
10590
10591 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10592
10593         PR target/38904
10594         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
10595         LIBRARY name in, instead of hard-coding it.
10596         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
10597         extra target make frag to tmake_files according to EH model.
10598         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
10599         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
10600         frags that define makefile variable EH_MODEL appropriately.
10601         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
10602         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
10603         to "-sjlj" according to type of EH configured.
10604         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10605         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
10606         to "_sjlj" according to type of EH configured.
10607         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10608         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
10609         (SHLIB_LINK):  Add missing semicolon to if-else construct.
10610         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10611         string value of "pe_dll" command-line option.
10612         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
10613         (SHLIB_SONAME):  Use it when overriding t-cygming default.
10614         (SHLIB_IMPLIB):  Override t-cygming default.
10615         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10616         string value of "pe_dll" command-line option.
10617
10618 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10619
10620         PR target/38952
10621         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
10622         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
10623
10624 2009-01-31  Richard Guenther  <rguenther@suse.de>
10625
10626         PR tree-optimization/38937
10627         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10628         computing the transitive closure.
10629
10630 2009-01-30  Richard Guenther  <rguenther@suse.de>
10631
10632         PR tree-optimization/39041
10633         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10634         Propagate variable indices only if the types match for this stmt.
10635
10636 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
10637
10638         PR target/39013
10639         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10640         inline but never defined.
10641
10642 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
10643
10644         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10645         (*insv_h_di_reg_extimm): New insn.
10646         (*insv_l<mode>_reg_extimm): New insn.
10647
10648 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10649
10650         * config/picochip/picochip.c (flag_conserve_stack): set
10651         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10652         fconserve-stack. Reduce call-overhead used by inliner.
10653
10654 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10655
10656         PR/38157
10657         * common.opt (flag_conserve_stack): Initialised to zero.
10658
10659 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
10660
10661         PR/39002
10662         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10663         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10664         method.
10665
10666 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10667
10668         * ira-color.c (allocno_reload_assign): Update comments.
10669         * regmove.c (regmove_optimize): Likewise.
10670
10671         * ra.h: Removed.
10672
10673 2009-01-29  Robert Millan  <rmh@aybabtu.com>
10674
10675         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10676         * config/i386/kopensolaris-gnu.h: New file.  Undefine
10677         `MD_UNWIND_SUPPORT'.
10678         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
10679
10680 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
10681
10682         PR tree-optimization/39007
10683         * tree-loop-distribution.c (generate_builtin): Use
10684         recompute_dominator to compute the immediate dominator of the
10685         basic block just after the loop.
10686
10687 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10688
10689         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10690         (ASM_OUTPUT_DWARF_PCREL): Define.
10691
10692 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
10693
10694         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10695         * doc/passes.texi: Remove entries about regclass, local-alloc, and
10696         global.  Modify entries about regmove and IRA.
10697
10698         * ra-conflict.c: Remove the file.
10699
10700         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10701
10702         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10703         (pass_regclass_init): Rename to pass_reginfo_init.
10704
10705         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10706
10707         * toplev.h (flag_ira): Remove.
10708
10709         * caller-save.c (setup_save_areas): Remove flag_ira.
10710
10711         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
10712
10713         * global.c: Remove the file.
10714
10715         * opts.c (decode_options): Remove flag_ira.
10716
10717         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10718
10719         * regmove.c: Modify file description.
10720         (find_use_as_address, try_auto_increment): Define them only if
10721         AUTO_INC_DEC is defined.
10722         (replacement_quality, replace_in_call_usage, fixup_match_1,
10723         stable_and_no_regs_but_for_p): Remove.
10724         (reg_set_in_bb): Make it static.
10725         (regmove_optimize): Remove flag_ira and code which worked for
10726         !flag_ira.
10727
10728         * local-alloc.c: Remove the file.
10729
10730         * common.opt (fira): Remove.
10731
10732         * ira.c: Include except.h.
10733         (eliminable_regset): Move from global.c.
10734         (mark_elimination): Ditto.  Remove flag_ira.
10735         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10736         equiv_mem_modified, validate_equiv_mem_from_store,
10737         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10738         contains_replace_regs, memref_referenced_p, memref_used_between_p,
10739         no_equiv, recorded_label_ref): Move from local-alloc.c.
10740         (update_equiv_regs): Ditto.  Make it static.
10741         (print_insn_chain, print_insn_chains): Move it from global.c.
10742         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
10743         (build_insn_chain): Ditto.  Make it static.
10744         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
10745         Rename to init_live_subregs.
10746         (gate_ira): Remove flag_ira.
10747
10748         * regclass.c: Rename reginfo.c.  Change file description.
10749         (FORBIDDEN_INC_DEC_CLASSES): Remove.
10750         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
10751         (init_reg_sets_1): Remove code for evaluation of
10752         reg_class_superclasses and losing_caller_save_reg_set.
10753         (init_regs): Remove init_reg_autoinc.
10754         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10755         ok_for_base_p_nonstrict): Remove.
10756         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
10757         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
10758         corresponding entries.
10759         (dump_regclass, record_operand_costs, scan_one_insn,
10760         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10761         record_address_regs, auto_inc_dec_reg_p): Remove.
10762         (gt-regclass.h): Rename to gt-reginfo.h.
10763
10764         * rtl.h (dump_global_regs, retry_global_alloc,
10765         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
10766
10767         * Makefile.in (RA_H): Remove.
10768         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10769         Rename regclass.o to reginfo.o.
10770         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
10771         gt-reginfo.h.
10772         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10773         (GTFILES): Rename regclass.c to reginfo.c.
10774
10775         * passes.c (init_optimization_passes): Remove pass_local_alloc and
10776         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
10777
10778         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10779         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10780         Remove flag_ira.
10781         (finish_spills): Ditto.  Remove code for !flag_ira.
10782
10783 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
10784
10785         PR middle-end/35854
10786         * doc/invoke.texi (rtl debug options): Complete rewrite.
10787         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10788         to auto_inc_dec".
10789         * mode-switching.c (pass_mode_switching): Rename pass from
10790         "mode-sw" to "mode_sw".
10791         * except.c (pass_convert_to_eh_ranges): Rename pass from
10792         "eh-ranges" to "eh_ranges".
10793         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10794         to "subreg1".
10795
10796
10797 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
10798             Alexander Monakov  <amonakov@ispras.ru>
10799
10800         PR middle-end/38857
10801         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10802         register.
10803         (move_exprs_to_boundary): Change return type and pass through
10804         should_move from move_op.  Relax assert.  Update usage ...
10805         (schedule_expr_on_boundary): ... here.  Use should_move instead of
10806         cant_move.
10807         (move_op_orig_expr_found): Indicate that insn was disconnected from
10808         stream.
10809         (code_motion_process_successors): Do not call after_merge_succs
10810         callback if original expression was not found when traversing any of
10811         the branches.
10812         (code_motion_path_driver): Change return type.  Update prototype.
10813         (move_op): Update comment.  Add a new parameter (should_move).  Update
10814         prototype.  Set *should_move based on indication provided by
10815         move_op_orig_expr_found.
10816
10817 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
10818
10819         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10820         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10821         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10822         * config/rs6000/rs6000.c (rs6000_override_options): Default
10823         avoid-indexed-addresses on for Power6, off for everything else.
10824         (avoiding_indexed_address_p): New function.
10825         (rs6000_legitimize_address): Use it.
10826         (rs6000_legitimate_address): Likewise.
10827         * config/rs6000/rs6000.md (movXX_updateX): Likewise
10828
10829 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
10830
10831         PR tree-optimization/38997
10832         * tree-loop-distribution.c (generate_memset_zero): Use
10833         POINTER_PLUS_EXPR for a pointer addition.
10834
10835 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
10836
10837         * config/s390/s390.md (bswap<mode>2): New pattern added.
10838
10839 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10840
10841         * config/s390/s390.md (*tls_load_31): Added type attribute.
10842
10843 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10844
10845         * config/s390/s390.md: Fix a few comments.
10846
10847 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10848
10849         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10850         (*tm<mode>_full): Fixed z10prop attribute.
10851         (*tst<mode>_extimm): Fixed z10prop attribute.
10852         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10853         (*tstqiCCT_cconly): Fixed z10prop attribute.
10854         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10855         (*movsi_larl): Fixed z10prop attribute.
10856         (*movsi_zarch): Fixed z10prop attribute.
10857         (*movsi_eas): Fixed z10prop attribute.
10858         (*movhi): Fixed z10prop attribute.
10859         (*movqi): Fixed z10prop attribute.
10860         (*movstrictqi): Fixed z10prop attribute.
10861         (*mov<mode>): Fixed z10prop attribute.
10862         (*movcc): Fixed z10prop attribute.
10863         (*sethighpartdi_64): Fixed z10prop attribute.
10864         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10865         (*negdi2_sign_cc): Fixed z10prop attribute.
10866         (*negdi2_sign): Fixed z10prop attribute.
10867         (*absdi2_sign_cc): Fixed z10prop attribute.
10868         (*absdi2_sign): Fixed z10prop attribute.
10869         (*negabsdi2_sign_cc): Fixed z10prop attribute.
10870         (*negabsdi2_sign): Fixed z10prop attribute.
10871         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10872         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10873         (doloop_si64): Fixed z10prop attribute.
10874         (doloop_si31): Fixed z10prop attribute.
10875         (doloop_long): Fixed z10prop attribute.
10876         (indirect_jump): Fixed z10prop attribute.
10877         (nop): Fixed z10prop attribute.
10878         (main_base_64): Fixed z10prop attribute.
10879         (reload_base_64): Fixed z10prop attribute.
10880
10881 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10882
10883         PR rtl-optimization/38740
10884         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10885         if !optimize.
10886         * config/mips/mips.c (mips_reorg): Likewise.
10887
10888 2009-01-28  Richard Guenther  <rguenther@suse.de>
10889
10890         PR tree-optimization/38926
10891         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10892         with the correct value id to a value.
10893         (do_regular_insertion): Use the value number of edoubleprime
10894         for the value number of the expr.
10895
10896         Revert
10897         2008-08-21  Richard Guenther  <rguenther@suse.de>
10898
10899         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10900         a PHI ask VN if it is already available.
10901         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10902         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10903
10904 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10905
10906         PR middle-end/38934
10907         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10908         set to varying whenever max has TREE_OVERFLOW set, similarly
10909         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10910
10911 2009-01-28  Richard Guenther  <rguenther@suse.de>
10912
10913         PR middle-end/38908
10914         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10915         uninitialized aggregate uses in call arguments.
10916
10917 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
10918
10919         PR tree-optimization/38984
10920         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10921         the nothing_id variable if -fno-delete-null-pointer-checks.
10922
10923 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
10924
10925         PR target/38988
10926         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10927         (set_got_offset_rex64): Ditto.
10928
10929 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10930
10931         PR target/38941
10932         * doc/extend.texi: Improve local variable with asm reg.
10933
10934 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
10935
10936         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10937         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10938         was not supplied then set warn_packed_bitfield_compat to the
10939         default value of 1.
10940         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10941         against 1.
10942
10943 2009-01-27  Richard Guenther  <rguenther@suse.de>
10944
10945         PR tree-optimization/38503
10946         * cfgexpand.c (expand_gimple_basic_block): Ignore
10947         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10948         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10949         variables that cannot have TBAA applied.
10950         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10951         statements.
10952
10953 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
10954
10955         PR middle-end/38969
10956         * calls.c (initialize_argument_information): Do not wrap complex
10957         arguments in SAVE_EXPR.
10958
10959 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
10960
10961         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
10962         (INSTALL_LIBGCC): Revert typo commit.
10963
10964 2009-01-26  Richard Guenther  <rguenther@suse.de>
10965
10966         PR tree-optimization/38745
10967         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10968         from special handling.
10969
10970 2009-01-26  Richard Guenther  <rguenther@suse.de>
10971
10972         PR tree-optimization/38745
10973         * tree-ssa.c (execute_update_addresses_taken): Do not include
10974         variables that cannot possibly be a register in not_reg_needs.
10975         Do not clear TREE_ADDRESSABLE on vars that may not become
10976         registers.
10977         * tree-ssa.c (update_alias_info_1): Include those in the set
10978         of addressable vars.
10979
10980 2009-01-26  Richard Guenther  <rguenther@suse.de>
10981
10982         PR middle-end/38851
10983         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10984         * tree-ssa-dse.c: Include langhooks.h
10985         (execute_simple_dse): Remove stores with zero size.
10986
10987 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
10988
10989         PR c/38957
10990         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10991         as PLUS_EXPR.
10992
10993 2009-01-24  Julian Brown  <julian@codesourcery.com>
10994
10995         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10996         config/arm/linux-atomic.c.
10997         * config/arm/linux-atomic.c: New.
10998
10999 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
11000
11001         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
11002         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
11003         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
11004
11005 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11006
11007         PR c/38938
11008         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
11009         properly.
11010
11011 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
11012
11013         PR tree-optimization/38953
11014         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
11015         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
11016         (gloog): Split the exit of the scop when the scop exit is a loop exit.
11017         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
11018         changed the CFG.
11019
11020 2009-01-24  Paul Brook  <paul@codesourcery.com>
11021
11022         * config/arm/neon.md (neon_type): Move to arm.md.
11023         (neon_mov<VSTRUCT>): Add neon_type attribute.
11024         * config/arm/arm.md (neon_type): Move to here.
11025         (conds): Add "unconditioal" and use as default for NEON insns.
11026
11027 2009-01-24  Ben Elliston  <bje@au.ibm.com>
11028
11029         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
11030         void *' warning from -Wc++-compat.
11031         * Makefile.in (dominance.o-warn): Remove.
11032
11033 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
11034
11035         PR tree-optimization/38932
11036         * fold-const.c (fold_unary_ignore_overflow): New.
11037         * tree.h (fold_unary_ignore_overflow): Declare.
11038         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
11039         * tree-ssa-sccvn.c (visit_reference_op_load,
11040         simplify_unary_expression): Likewise.
11041
11042 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
11043
11044         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
11045         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
11046         regardless of their type.
11047         * c-common.c (handle_packed_attribute): Don't ignore packed on
11048         bitfields.
11049         * c.opt (Wpacked-bitfield-compat): New warning option.
11050         * stor-layout.c (place_field): Warn if offset of a field changed.
11051         * doc/extend.texi (packed): Mention the ABI change.
11052         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
11053         (Warning Options): Add it to the list.
11054
11055 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11056
11057         * c-opts.c (c_common_post_options): Fix a typo in comments.
11058
11059 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
11060
11061         PR middle-end/38615
11062         * gimplify.c (gimplify_init_constructor): Fix promotion of const
11063         variables to static.
11064         * doc/invoke.texi (-fmerge-all-constants): Update description.
11065
11066 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
11067
11068         PR target/38931
11069         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
11070         (*movdi_1_rex64): Use type "mmx" for alternative 5.
11071
11072 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
11073
11074         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
11075         a word boundary.
11076         (LOCAL_ALIGNMENT): Similarly.
11077
11078 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
11079             Joseph Myers  <joseph@codesourcery.com>
11080
11081         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
11082         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
11083         * config/arm/arm-tune.md: Regenerate.
11084         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
11085         -march=iwmmxt2.
11086
11087 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
11088
11089         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
11090         version number to five.
11091
11092 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
11093
11094         PR c++/38930
11095         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
11096         * c-common.c (set_underlying_type): Likewise.
11097         (is_typedef_decl ): Likewise
11098         * tree.h: Likewise
11099         (set_underlying_type): Likewise.
11100         (is_typedef_type): Likewise.
11101
11102 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11103
11104         PR middle-end/38587
11105         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
11106         crossing setjmps.
11107
11108 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
11109
11110         PR bootstrap/37660
11111         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
11112         (LIBGCC_SPEC):  Don't define.
11113         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
11114
11115 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
11116
11117         PR rtl-optimization/38879
11118         * alias.c (base_alias_check): Unaligned access via AND address can
11119         alias all surrounding object types except those with sizes equal
11120         or wider than the size of unaligned access.
11121
11122 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
11123
11124         PR c++/26693
11125         * c-decl.c (clone_underlying_type): Move this ...
11126         * c-common.c (set_underlying_type): ... here.
11127         Also, make sure the function properly sets TYPE_STUB_DECL() on
11128         the newly created typedef variant type.
11129         (is_typedef_decl ): New entry point.
11130         * tree.h: Added a new member member_types_needing_access_check to
11131         struct tree_decl_non_common.
11132         (set_underlying_type): New entry point.
11133         (is_typedef_type): Likewise.
11134
11135 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
11136
11137         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
11138         Check whether two instructions have memory references that
11139         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
11140         are helper functions for traversing.
11141         * alias.h (insn_alias_sets_confilict_p): New prototypes.
11142         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
11143         not to draw dependency edge for instructions with non-conflicting
11144         alias sets.
11145
11146 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
11147
11148         PR other/38758
11149         * longlong.h: Update copyright years.  Use soft-fp license notice.
11150         Sync __clz_tab declaration with glibc.
11151
11152 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
11153
11154         PR target/30687
11155         * doc/extend.texi (syscall_linkage): New.
11156         (version_id): Modify.
11157
11158 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11159             Richard Guenther  <rguenther@suse.de>
11160
11161         PR tree-optimization/38747
11162         PR tree-optimization/38748
11163         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
11164         conversion if the base address is an indirect reference and the
11165         aliasing sets could cause issues.
11166
11167 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
11168
11169         * common.opt (fgraphite, fgraphite-identity): Add comment for
11170         explaining why these options are not documented.
11171
11172 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
11173
11174         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
11175         gimple_call_lhs is NULL.
11176
11177 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
11178
11179         PR target/38868
11180         * emit-rtl.c (adjust_address_1): Make sure memref is never
11181         overwritten.
11182
11183 2009-01-20  Ben Elliston  <bje@au.ibm.com>
11184
11185         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11186         const qualifier from arg parameter. Remove unnecessary cast to char *.
11187         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11188         const qualifier from arg 2.
11189
11190 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
11191
11192         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
11193
11194 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
11195
11196         PR c/38869
11197         * rtl.h (reinit_regs): New prototype.
11198         * regclass.c: Include ira.h.
11199         (reinit_regs): New.
11200         * Makefile.in (regclass.o): Add ira.h.
11201         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
11202
11203 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
11204
11205         PR target/38736
11206         * c-common.c (handle_aligned_attribute): Use
11207         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
11208         default alignment value.
11209
11210         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
11211
11212         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
11213         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
11214
11215         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
11216         __BIGGEST_ALIGNMENT__.
11217
11218         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
11219
11220 2009-01-18  Richard Guenther  <rguenther@suse.de>
11221
11222         PR tree-optimization/38819
11223         * tree-flow.h (operation_could_trap_helper_p): Declare.
11224         * tree-eh.c (operation_could_trap_helper_p): Export.
11225         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
11226         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
11227         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
11228         are about to insert a possibly trapping instruction and fail
11229         in this case.
11230
11231 2009-01-18  Andreas Schwab  <schwab@suse.de>
11232
11233         * doc/install.texi (Configuration): Remove obsolete paragraph
11234         about use of --with-gnu-ld with --with-gnu-as.
11235
11236 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
11237
11238         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11239         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11240         Follow spelling conventions.
11241
11242 2009-01-18  Ben Elliston  <bje@au.ibm.com>
11243
11244         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11245         C++ warning about implicit conversion from void * to struct
11246         bitmap_head_def *.
11247         (bitmap_obstack_free): Likewise for bitmap_element *.
11248         * Makefile.in (bitmap.o-warn): Remove.
11249
11250 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
11251
11252         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
11253
11254 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
11255             Tobias Grosser  <tobi.grosser@amd.com>
11256
11257         * graphite.c (graphite_trans_scop_block): Do not block single
11258         nested loops.
11259
11260 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
11261
11262         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11263         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11264         test with assertion.
11265
11266 2009-01-16  Richard Guenther  <rguenther@suse.de>
11267
11268         PR tree-optimization/38835
11269         PR middle-end/36227
11270         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11271         and INT + PTR -> (INT)(PTR p+ INT) folding.
11272         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11273
11274 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
11275
11276         PR target/38554
11277         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11278         the subreg from a lowpart subreg if it is also casting the value.
11279
11280 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11281             Tobias Grosser  <tobi.grosser@amd.com>
11282
11283         * graphite.c (compare_prefix_loops): New.
11284         (build_scop_canonical_schedules): Rewritten.
11285         (graphite_transform_loops): Move build_scop_canonical_schedules
11286         after build_scop_iteration_domain.
11287
11288 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11289             Tobias Grosser  <tobi.grosser@amd.com>
11290
11291         * graphite.c (add_conditions_to_domain): Add the loops to
11292         the dimension of the iteration domain.  Do copy the domain
11293         only when it exists.
11294         (build_scop_conditions_1): Do not call add_conditions_to_domain.
11295         (add_conditions_to_constraints): New.
11296         (can_generate_code_stmt, can_generate_code): Removed.
11297         (gloog): Do not call can_generate_code.
11298         (graphite_transform_loops): Call add_conditions_to_constraints
11299         after building the iteration domain.
11300
11301 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
11302
11303         PR tree-optimization/38789
11304         * tree-ssa-threadedge.c
11305         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11306         __builtin_constant_p.
11307
11308 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
11309
11310         * dce.c (delete_unmarked_insns): Reversed the order that insns are
11311         examined before deleting them.
11312
11313 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
11314
11315         * function.c (aggregate_value_p): Correctly extract the function
11316         type from CALL_EXPR_FN lookup.
11317
11318 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11319
11320         * config/picochip/picochip.c (picochip_override_options): Revert
11321         CFI asm flag disable commited previously.
11322
11323 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11324             Tobias Grosser  <tobi.grosser@amd.com>
11325             Jan Sjodin  <jan.sjodin@amd.com>
11326
11327         * graphite.c (scan_tree_for_params): On substractions negate
11328         all the coefficients of the term.
11329         (clast_to_gcc_expression_red): New.  Handle reduction expressions
11330         of more than two operands.
11331         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11332         (get_vdef_before_scop): Handle also the case of default definitions.
11333
11334 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
11335
11336         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11337         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11338         Also use them when walking CALL_INSN_FUNCTION_USAGE.
11339
11340 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
11341             Joey Ye  <joey.ye@intel.com>
11342
11343         PR middle-end/37843
11344         * cfgexpand.c (expand_stack_alignment): Don't update stack
11345         boundary nor check incoming stack boundary here.
11346         (gimple_expand_cfg): Update stack boundary and check incoming
11347         stack boundary here.
11348
11349 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
11350
11351         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11352
11353 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
11354
11355         PR rtl-optimization/38245
11356         * calls.c (expand_call): Add stack arguments to
11357         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11358         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11359         in regs and partially in memory or BLKmode arguments.
11360         (emit_library_call_value_1): Add stack arguments to
11361         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11362         ACCUMULATE_OUTGOING_ARGS).
11363         * dce.c: Include tm_p.h.
11364         (find_call_stack_args): New function.
11365         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
11366         argument.
11367         (mark_insn): Call find_call_stack_args for CALL_Ps.
11368         (prescan_insns_for_dce): Walk insns backwards in bb rather than
11369         forwards.  Allocate and free arg_stores bitmap if needed, pass it
11370         down to deletable_insn_p, don't mark stores set in arg_stores
11371         bitmap, clear the bitmap at the beginning of each bb.
11372         * Makefile.in (dce.o): Depend on $(TM_P_H).
11373
11374 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
11375
11376         PR target/22599
11377         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11378         to make sure the insn is a conditional test (bug 22599).  Reformat a
11379         few long lines.
11380
11381 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
11382
11383         PR middle-end/38431
11384         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11385         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11386         (gloog): Do not call cleanup_tree_cfg.
11387         (graphite_transform_loops): Call cleanup_tree_cfg after all
11388         scops have been code generated.
11389
11390 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
11391         * doc/gty.texi (Invoking the garbage collector): Added new node
11392         and section documenting ggc_collect.
11393
11394 2009-01-14  Richard Guenther  <rguenther@suse.de>
11395
11396         PR tree-optimization/38826
11397         PR middle-end/38477
11398         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11399         initialization notes only if we actually emitted a warning.
11400         (intra_create_variable_infos): Add constraints for a result decl
11401         that is passed by hidden reference.
11402         (build_pred_graph): Mark all related variables non-direct on
11403         address-taking.
11404
11405 2009-01-14  Nick Clifton  <nickc@redhat.com>
11406
11407         * ira-conflicts.c: Include addresses.h for the definition of
11408         base_reg_class.
11409         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11410         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11411
11412 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11413
11414         PR target/38811
11415         * Makefile.in (ira-lives.o): Add except.h.
11416
11417         * ira-lives.c: Include except.h.
11418         (process_bb_node_lives): Process can_throw_internal.
11419
11420 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
11421
11422         PR rtl-optimization/38774
11423         * combine.c (simplify_set): When undoing cc_use change, don't do
11424         PUT_CODE on the newly created comparison, but instead put back the
11425         old comparison.
11426
11427 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
11428
11429         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11430         values.  Remove duplicate arm8 entry.
11431
11432 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11433
11434         PR tree-optimization/38786
11435         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11436         the SSA_NAME case of expand_scalar_variables_expr.
11437         Set the type of an expression to the type of its assign statement.
11438         (expand_scalar_variables_expr): Also gather the scalar computation
11439         used to index the memory access.  Do not pass loop_p.
11440         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
11441         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11442         the gimple_stmt_iterator where it inserts new code.
11443         Do not pass loop_p.
11444         (copy_bb_and_scalar_dependences): Do not pass loop_p.
11445         (translate_clast): Update call to copy_bb_and_scalar_dependences.
11446
11447 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11448
11449         * graphite.h (debug_value): Removed.
11450         * graphite.c (debug_value): Removed.
11451
11452 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11453
11454         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11455         ldrd/strd with two 32-bit instructions.
11456
11457 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11458
11459         * config/arm/arm.c (struct processors): Pass for speed down into
11460         cost helper functions.
11461         (const_ok_for_op): Handle COMPARE and inequality nodes.
11462         (arm_rtx_costs_1): Rewrite.
11463         (arm_size_rtx_costs): Update prototype.
11464         (arm_rtx_costs): Pass speed down to helper functions.
11465         (arm_slowmul_rtx_costs): Rework cost calculations.
11466         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11467         (arm_9e_rtx_costs): Likewise.
11468
11469 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
11470
11471         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11472         relocations of local symbols wider than UNITS_PER_WORD are not valid.
11473         (alpha_legitimize_address): Do not split local symbols wider than
11474         UNITS_PER_WORD into HIGH/LO_SUM parts.
11475
11476 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
11477
11478         PR bootstrap/38580
11479         * gcc.c (process_command): Replace call to execvp with calls
11480         to pex_one and exit.
11481
11482 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
11483
11484         PR target/29141
11485         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11486         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11487         variant for devices with 3-byte PC.
11488         (__tablejump_elpm__): New.
11489
11490 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11491
11492         PR c/32041
11493         * c-parser.c (c_parser_postfix_expression): Allow `->' in
11494         offsetof member-designator, handle it as `[0].'.
11495
11496 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11497
11498         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11499         function when not using named sections on targets with named sections
11500         if branch distance is less than 262132.
11501
11502 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
11503
11504         * combine.c (combine_instructions):  Recompute
11505         optimize_this_for_speed_p  for each BB in the main combine loop.
11506
11507 2009-01-12  Tomas Bily  <tbily@suse.cz>
11508
11509         PR middlend/38385
11510         * tree-loop-distribution.c (prop_phis): New function.
11511         (generate_builtin): Call prop_phis.
11512         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11513
11514 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11515
11516         PR tree-optimization/38807
11517         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11518         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11519
11520 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
11521
11522         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11523         subreg of op0 to the original op0.
11524
11525 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
11526
11527         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11528
11529 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
11530
11531         PR debug/7055
11532         * mips-tfile.c (parse_def): Fix parsing of def strings
11533         starting with digits.
11534
11535 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
11536
11537         PR target/38695
11538         * config/arm/arm.c (arm_is_long_call_p): Don't call
11539         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11540
11541 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
11542
11543         * regrename.c (regrename_optimize): Fix dumping.
11544         (find_oldest_value_reg): Preserve REG_POINTER.
11545         (copy_hardreg_forward_1): Likewise.
11546
11547 2009-01-09  Diego Novillo  <dnovillo@google.com>
11548
11549         * gimple.h (struct gimple_statement_base) <uid>: Document
11550         the restrictions on its use.
11551         (gimple_uid): Tidy.
11552         (gimple_set_uid): Tidy.
11553
11554 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11555
11556         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11557         zero guard even if align_bytes != 0 and count is smaller than
11558         size_needed.
11559
11560 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
11561
11562         PR rtl-optimization/38495
11563         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
11564         (add_range_and_copies_from_move_list): Print all added ranges.
11565         Add ranges to memory optimized destination.
11566
11567 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11568
11569         PR target/38686
11570         PR target/38708
11571         * config/i386/i386.c (override_options): Reject
11572         -mstringop-strategy=rep_8byte with -m32.
11573         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11574         to 1.  Do count comparison against epilogue_size_needed at compile
11575         time even when count_exp was constant forced into register.  For
11576         size_needed don't jump to epilogue, instead just avoid aligning
11577         and invoke the body algorithm.  If need_zero_guard, add zero guard
11578         even if count is non-zero, but smaller than size_needed + number of
11579         bytes that could be stored for alignment.
11580         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11581         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
11582         but smaller than size_needed + number of bytes that could be stored
11583         for alignment.  Compare size_needed with epilogue_size_needed instead
11584         of desired_align - align, don't adjust size_needed, pass
11585         epilogue_size_needed to the epilogue expanders.
11586
11587         PR c/35742
11588         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
11589
11590 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11591
11592         * pa.c (last_address): Change to unsigned.
11593         (update_total_code_bytes): Change argument to unsigned.  Don't
11594         check if insn addresses are set.
11595         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11596         addresses are not set.
11597         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11598
11599 2009-01-09  Nick Clifton  <nickc@redhat.com>
11600
11601         * config/sh/symbian.c: Replace uses of DECL_INLINE with
11602         DECL_DECLARED_INLINE_P.
11603
11604 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11605
11606         PR middle-end/38347
11607         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11608         GET_MODE (op0) in operand_subword_force calls.
11609
11610         PR middle-end/38771
11611         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11612         fold_convert arg0 operands to TREE_TYPE (op0) first.
11613
11614 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
11615
11616         * params.def (ira-max-conflict-table-size): Decrease default value
11617         to 1000.
11618
11619 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
11620
11621         PR tree-optimization/37031
11622         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11623         on parameter_set.
11624         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11625         allocate it using gc instead of heap, use VEC_quick_push instead of
11626         VEC_safe_push.
11627         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11628         instead of heap, use VEC_quick_push instead of VEC_safe_push.
11629         * tree-data-ref.h (struct access_matrix): Change matrix to gc
11630         allocated vector from heap allocated.
11631         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11632         * tree-loop-linear.c (linear_transform_loops): Allocate nest
11633         vector only after perfect_loop_nest_depth call.
11634
11635 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
11636             Jan Sjodin  <jan.sjodin@amd.com>
11637
11638         PR tree-optimization/38559
11639         * graphite.c (debug_value, copy_constraint,
11640         swap_constraint_variables, scale_constraint_variable, ): New.
11641         (get_lower_bound, get_upper_bound): Removed.
11642         (graphite_trans_bb_strip_mine): Clean up this code that works
11643         only for constant number of iterations.  Fully copy upper and
11644         lower bound constraints, not only the constant part of them.
11645         * graphite.h (debug_value): Declared.
11646
11647 2009-01-08  Ira Rosen  <irar@il.ibm.com>
11648
11649         PR tree-optimization/37194
11650         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
11651         Don't add the cost of cost model guard in prologue to scalar
11652         outside cost in case of known number of iterations.
11653
11654 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11655             Alan Modra  <amodra@bigpond.net.au>
11656
11657         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11658         non-word-aligned REG+CONST addressing.
11659
11660 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11661
11662         PR target/38706
11663         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11664         free_after_compilation when outputting a thunk.
11665         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11666         Do not call free_after_compilation here.
11667
11668 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11669
11670         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
11671         (ix86_valid_target_attribute_inner_p): Ditto.
11672
11673 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
11674
11675         PR tree-optimization/38492
11676         PR tree-optimization/38498
11677         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11678         * tree-chrec.h (scev_is_linear_expression): Declared.
11679         * graphite.c (graphite_cannot_represent_loop_niter): New.
11680         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11681         (graphite_loop_normal_form): Use gcc_assert.
11682         (scan_tree_for_params): Use CASE_CONVERT.
11683         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11684         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11685         Use gcc_assert.  Discard scops that contain unhandled cases.
11686         (build_scop_conditions): Return a boolean status for unhandled cases.
11687         (strip_mine_profitable_p): Print the loop number, not its depth.
11688         (is_interchange_valid): Pass the depth of the loop nest, don't
11689         recompute it wrongly.
11690         (graphite_trans_bb_block): Same.
11691         (graphite_trans_bb_block): Print tentative of loop blocking.
11692         (graphite_trans_scop_block): Do not print that the loop has been
11693         blocked.
11694         (graphite_transform_loops): Do not handle scops that contain condition
11695         scalar phi nodes.
11696
11697 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11698
11699         AVX Programming Reference (December, 2008)
11700         * config/i386/avxintrin.h (_mm256_stream_si256): New.
11701         (_mm256_stream_pd): Likewise.
11702         (_mm256_stream_ps): Likewise.
11703
11704         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11705         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11706         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11707         (bdesc_special_args): Add __builtin_ia32_movntdq256,
11708         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11709         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11710         (ix86_expand_special_args_builtin): Likewise.
11711
11712         * config/i386/sse.md (AVXMODEDI): New.
11713         (avx_movnt<mode>): Likewise.
11714         (avx_movnt<mode>): Likewise.
11715         (<sse>_movnt<mode>): Remove AVX support.
11716         (sse2_movntv2di): Likewise.
11717
11718 2009-01-07  Richard Guenther  <rguenther@suse.de>
11719
11720         PR middle-end/38751
11721         * fold-const.c (extract_muldiv): Remove obsolete comment.
11722         (fold_plusminus_mult_expr): Undo MINUS_EXPR
11723         to PLUS_EXPR canonicalization for the canonicalization.
11724
11725 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
11726
11727         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11728         hosted cross-compilers generating less efficient code.
11729
11730 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11731
11732         * function.h (rtl_data): Add a dbr_scheduled_p field.
11733         * reorg.c (dbr_schedule): Set it.
11734         (gate_handle_delay_slots): Check it.
11735         * config/mips/mips.c (mips_base_delayed_branch): Delete.
11736         (mips_reorg): Check flag_delayed_branch instead of
11737         mips_base_delayed_branch.
11738         (mips_override_options): Don't set mips_base_delayed_branch
11739         or flag_delayed_branch.
11740
11741 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11742
11743         PR rtl-optimization/38426.
11744         * ira.c (ira): Set current_function_is_leaf earlier.
11745
11746 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
11747
11748         PR rtl-optimization/38722
11749         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11750         too early, only set a flag and modify after last possible
11751         undo_all point.
11752
11753 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
11754
11755         PR c/34252
11756         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11757         * real.c (decimal_single_format): Correct values of emin and emax.
11758         (decimal_double_format): Ditto.
11759         (decimal_quad_format): Ditto.
11760         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11761         computation of DECnn_MIN and DECnn_MAX for corrected values of
11762         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
11763         __DECnn_MIN__, and adjust its computation for the corrected value
11764         of emin.
11765
11766 2009-01-06  Jan Hubicka  <jh@suse.cz>
11767
11768         PR target/38744
11769         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
11770
11771 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11772
11773         * doc/contrib.texi (Contributors): Slightly adjust the end note.
11774         Add Robert Clark to the list of testers.
11775
11776 2009-01-06  Jan Hubicka  <jh@suse.cz>
11777             Kai Tietz  <kai.tietz@onevision.com>
11778
11779         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11780         * config/i386/i386.c (ix86_expand_call): Add clobbers.
11781
11782 2009-01-06  Jan Hubicka  <jh@suse.cz>
11783             Kai Tietz  <kai.tietz@onevision.com>
11784
11785         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11786         for w64 ABI.
11787         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
11788         (ix86_nsaved_regs): Count only general purpose regs.
11789         (ix86_nsaved_sseregs): New.
11790         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11791         to 16 for w64; compute padding and size of sse reg save area.
11792         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11793         general purpose regs.
11794         (ix86_emit_save_sse_regs_using_mov): New.
11795         (ix86_expand_prologue): Save SSE regs if needed.
11796         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11797         (ix86_emit_restore_sse_regs_using_mov): New.
11798         (ix86_expand_epilogue): Save SSE regs if needed.
11799
11800 2009-01-06  Jan Hubicka  <jh@suse.cz>
11801             Kai Tietz  <kai.tietz@onevision.com>
11802
11803         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11804         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11805         functions when accumulate outgoing args is off.
11806
11807 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11808
11809         PR bootstrap/38742
11810         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11811         before using pseudos_have_intersected_live_ranges_p.
11812
11813         * ira-int.h (ira_assert): Always define.
11814
11815 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11816
11817         AVX Programming Reference (December, 2008)
11818         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11819         (_mm256_permute2_pd): Likewise.
11820         (_mm_permute2_ps): Likewise.
11821         (_mm256_permute2_ps): Likewise.
11822         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11823         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11824
11825         * config/i386/i386.c (ix86_builtins): Remove
11826         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11827         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11828         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11829         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11830         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11831         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11832         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11833         __builtin_ia32_vpermil2ps256.
11834         (ix86_init_mmx_sse_builtins): Updated.
11835         (ix86_expand_args_builtin): Likewise.
11836
11837 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11838
11839         * pa.c (output_call): Relocate non-jump insns in the delay slot of
11840         long absolute calls when generating PA 2.0 code.
11841
11842 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
11843
11844         PR rtl-optimization/38583
11845         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11846
11847         * params.def (ira-max-conflict-table-size): New.
11848
11849         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
11850
11851         * ira.h (ira_conflicts_p): New external definition.
11852
11853         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11854         table.  Report this.  Return result of building.
11855         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
11856         building conflict table.
11857
11858         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
11859         (ira_color): Use ira_conflicts_p.
11860
11861         * global.c: Include ira.h.
11862         (pseudo_for_reload_consideration_p, build_insn_chain): Use
11863         ira_conflicts_p.
11864
11865         * Makefile.in (global.o): Add ira.h.
11866
11867         * ira-build.c (mark_all_loops_for_removal,
11868         propagate_some_info_from_allocno): New.
11869         (remove_unnecessary_allocnos): Call
11870         propagate_some_info_from_allocno.
11871         (remove_low_level_allocnos): New.
11872         (remove_unnecessary_regions): Add parameter.  Call
11873         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
11874         parameter to remove_unnecessary_regions.
11875         (ira_build): Remove all regions but root if the conflict table was
11876         not built.  Update conflict hard regs for allocnos crossing calls.
11877
11878         * ira.c (ira_conflicts_p): New global.
11879         (ira): Define and use ira_conflicts_p.
11880
11881         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11882         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
11883         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
11884
11885 2009-01-06  Ben Elliston  <bje@au.ibm.com>
11886
11887         * gengtype-lex.l (YY_NO_INPUT): Define.
11888
11889 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11890
11891         PR c/34911
11892         * c-common.c (handle_vector_size_attribute): Also reject
11893         BOOLEAN_TYPE types.
11894
11895 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
11896
11897         PR tree-optimization/38492
11898         * graphite.c (rename_map_elt, debug_rename_elt,
11899         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11900         rename_map_elt_info, eq_rename_map_elts,
11901         get_new_name_from_old_name, bb_in_sese_p): Moved around.
11902         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11903         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11904         (sese_build_livein_liveouts): New.
11905         (new_sese, free_sese): New.
11906         (new_scop): Call new_sese.
11907         (free_scop): Call free_sese.
11908         (rename_variables_from_edge, rename_phis_end_scop): Removed.
11909         (register_old_new_names): Renamed register_old_and_new_names.
11910         (register_scop_liveout_renames, add_loop_exit_phis,
11911         insert_loop_close_phis, struct igp,
11912         default_liveout_before_guard, add_guard_exit_phis,
11913         insert_guard_phis, copy_renames): New.
11914         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11915         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11916         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11917         (scop_adjust_phis_for_liveouts): New.
11918         (gloog): Call scop_adjust_phis_for_liveouts.
11919
11920         * graphite.h (struct sese): Documented.  Added fields liveout,
11921         num_ver and livein.
11922         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11923         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11924         (struct scop): Added field liveout_renames.
11925         (SCOP_LIVEOUT_RENAMES): New.
11926
11927 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11928
11929         PR tree-optimization/38510
11930         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11931         (translate_clast): Call recompute_all_dominators before
11932         graphite_verify.
11933         (gloog): Call recompute_all_dominators before graphite_verify.
11934
11935 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11936             Jan Sjodin  <jan.sjodin@amd.com>
11937
11938         PR tree-optimization/38500
11939         * graphite.c (create_sese_edges): Call fix_loop_structure after
11940         splitting blocks.
11941
11942 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
11943
11944         * config.gcc: Add m32r*-*-rtems*.
11945         * config/m32r/rtems.h: New file.
11946
11947 2009-01-05  Ben Elliston  <bje@au.ibm.com>
11948
11949         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11950         (.po.pox): Likewise.
11951         (po/gcc.pot): Likewise.
11952
11953 2009-01-04  David S. Miller  <davem@davemloft.net>
11954
11955         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11956         (STARTING_FRAME_OFFSET): Always set to zero.
11957
11958 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11959
11960         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11961         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11962         fixed-point types, and vectors of the same.
11963
11964 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11965
11966         * config/mips/sync.md (*mb_barrier): Rename to...
11967         (*memory_barrier): ...this.
11968
11969 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11970
11971         * doc/extend.texi (Function Attributes): Move @cindex after @item
11972         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
11973         and put in alphabetical order. Fix 'target' name and put in order.
11974         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11975         typos.
11976
11977 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
11978
11979         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11980         (memory_barrier): Expand as unspec instead of unspec_volatile.
11981         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11982         (*memory_barrier): Define as unspec instead of unspec_volatile.
11983         Use (match_dup 0) as input operand.
11984
11985         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11986         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11987         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
11988         scratch register.  Remove operand 1.
11989         (*stbar): Define as unspec instead of unspec_volatile.
11990         Use (match_dup 0) as input operand, remove (const_int 8).
11991         (*membar): Define as unspec instead of unspec_volatile.
11992         Use (match_dup 0) as input operand, remove input operand 2.
11993
11994         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11995         (memory_barrier): Expand as unspec instead of unspec_volatile.
11996         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11997         (*memory_barrier): Define as unspec instead of unspec_volatile.
11998         Use (match_dup 0) as input operand.
11999
12000         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
12001         Remove mem:BLK from insn operands.  Use Pmode scratch register.
12002         Set volatile flag on operand 0.
12003         (*memory_barrier): New insn pattern.
12004
12005         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
12006         insn operands.
12007         (*memory_barrier): Use (match_dup 0) as input operand.
12008
12009         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
12010         Remove mem:BLK from insn operands.  Use Pmode scratch register.
12011         Set volatile flag on operand 0.
12012         (*mb_internal): New insn pattern.
12013
12014         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
12015
12016 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
12017
12018         PR middle-end/38586
12019         * function.c (struct temp_slot): Move to the section of the file
12020         that deals with temp slots.  Remove field 'address'.
12021         (temp_slot_address_table): New hash table of address -> temp slot.
12022         (struct temp_slot_address_entry): New struct, items for the table.
12023         (temp_slot_address_compute_hash, temp_slot_address_hash,
12024         temp_slot_address_eq, insert_temp_slot_address): Support functions
12025         for the new table.
12026         (find_temp_slot_from_address): Rewrite to use the new hash table.
12027         (remove_unused_temp_slot_addresses): Remove addresses of temp
12028         slots that have been made available.
12029         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
12030         worker function for remove_unused_temp_slot_addresses.
12031         (assign_stack_temp_for_type): Don't clear the temp slot address list.
12032         Add the temp slot address to the address -> temp slot map.
12033         (update_temp_slot_address): Update via insert_temp_slot_address.
12034         (free_temp_slots): Call remove_unused_temp_slot_addresses.
12035         (pop_temp_slots): Likewise.
12036         (init_temp_slots): Allocate the address -> temp slot map, or empty
12037         the map if it is already allocated.
12038         (prepare_function_start): Initialize temp slot processing.
12039
12040 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
12041
12042         PR middle-end/38584
12043         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
12044         Calculate the size of all stack vars assuming no packing of stack
12045         vars will happen, replacing a quadratic algorithm with a linear one.
12046
12047 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
12048
12049         PR target/38707
12050         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
12051         can't be used.
12052
12053 2009-01-03  Diego Novillo  <dnovillo@google.com>
12054
12055         * doc/contrib.texi: Update contributions.
12056
12057 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR c++/38705
12060         * builtins.c (fold_builtin_memory_op): Give up if either operand
12061         is volatile.  Set srctype or desttype to non-qualified version
12062         of the other type.
12063
12064         PR c/38700
12065         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
12066         and FUNCTION_DECLs.
12067
12068 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
12069
12070         PR rtl-optimization/35805
12071         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
12072         problem if fast dce is able to remove any instructions.
12073         * dce.c (dce_process_block): Fix dump message.
12074
12075 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
12076
12077         PR 33649
12078         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
12079
12080 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
12081
12082         PR middle-end/38690
12083         * tree-flow.h (op_code_prio, op_prio): New prototypes.
12084         * tree-pretty-print.c (op_code_prio): New function.
12085         (op_prio): No longer static.  Use op_code_prio.
12086         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
12087         Use op_prio and op_code_prio to determine if () should be
12088         printed around operand(s) or not.
12089
12090         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12091         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
12092         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
12093         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
12094         pp_character instead of pp_string for single letter printing.
12095
12096 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
12097
12098         * doc/extend.texi: Fix '#pragma GCC option' typo.
12099
12100 2009-01-02  Richard Guenther  <rguenther@suse.de>
12101
12102         * doc/install.texi (--enable-checking): Mention different
12103         default for stage1.
12104         (--enable-stage1-checking): Document.
12105
12106 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
12107
12108         PR middle-end/30142
12109         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
12110         case to be an error.
12111
12112 2009-01-02  Ben Elliston  <bje@au.ibm.com>
12113
12114         * config/fp-bit.h (pack_d): Constify argument.
12115         * config/fp-bit.c (makenan): Constify return type. Remove casts.
12116         (isnan): Constify argument.
12117         (isinf): Likewise.
12118         (iszero): Likewise.
12119         (pack_d): Likewise.
12120         (_fpadd_parts): Constify return type.
12121         (_fpmul_parts): Likewise.
12122         (_fpdiv_parts): Likewise.
12123
12124 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
12125
12126         PR c/36489
12127         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
12128         warn about overwriting initializer with side-effects or
12129         -Woverride-init if !IMPLICIT.
12130         (output_init_element): Likewise.  Pass IMPLICIT down to
12131         add_pending_init.
12132         (process_init_element): Add IMPLICIT argument.  Pass it down
12133         to output_init_element.
12134         (push_init_element, pop_init_level, set_designator): Adjust
12135         process_init_element callers.
12136         (set_nonincremental_init, set_nonincremental_init_from_string):
12137         Adjust add_pending_init callers.
12138         (output_pending_init_elements): Adjust output_init_element callers.
12139         * c-tree.h (process_init_element): Adjust prototype.
12140         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
12141         process_init_element callers.
12142
12143 \f
12144 Copyright (C) 2009 Free Software Foundation, Inc.
12145
12146 Copying and distribution of this file, with or without modification,
12147 are permitted in any medium without royalty provided the copyright
12148 notice and this notice are preserved.