OSDN Git Service

* config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
4         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5         in 32bit mode when XMM registers are available to avoid store
6         forwarding stalls.
7         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
8         corresponding post-reload splitters.
9
10 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
11
12         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
13         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
14         __builtin_ia32_roundss.
15         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
16         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
17         __builtin_ia32_roundss.
18         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
19         IX86_BUILTIN_SHUFPD here.
20
21 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
22
23         * config/i386/i386.md (plogic): New.
24         (plogicprefix): Likewise.
25
26         * config/i386/mmx.md (mmx_<code><mode>3): New.
27         (mmx_and<mode>3): Removed.
28         (mmx_ior<mode>3): Likewise.
29         (mmx_xor<mode>3): Likewise.
30
31         * config/i386/sse.md (<code><mode>3): New.
32         (*<code><mode>3): Likewise.
33         (*<code><mode>3): Likewise.
34         (<code><mode>3): Likewise.
35         (*sse_<code><mode>3): Likewise.
36         (*sse2_<code><mode>3): Likewise.
37         (<code>tf3): Likewise.
38         (*<code>tf3): Likewise.
39         (and<mode>3): Likewise.
40         (*and<mode>3): Likewise.
41         (ior<mode>3): Removed.
42         (*ior<mode>3): Likewise.
43         (xor<mode>3): Likewise.
44         (*xor<mode>3): Likewise.
45         (*and<mode>3): Likewise.
46         (*ior<mode>3): Likewise.
47         (*xor<mode>3): Likewise.
48         (and<mode>3): Likewise.
49         (*sse_and<mode>3): Likewise.
50         (*sse2_and<mode>3): Likewise.
51         (andtf3): Likewise.
52         (*andtf3): Likewise.
53         (ior<mode>3): Likewise.
54         (*sse_ior<mode>3): Likewise.
55         (*sse2_ior<mode>3): Likewise.
56         (iortf3): Likewise.
57         (*iortf3): Likewise.
58         (xor<mode>3): Likewise.
59         (*sse_xor<mode>3): Likewise.
60         (*sse2_xor<mode>3): Likewise.
61         (xortf3): Likewise.
62         (*xortf3): Likewise.
63
64 2008-04-02  Richard Guenther  <rguenther@suse.de>
65
66         PR tree-optimization/14495
67         PR tree-optimization/34793
68         * tree-vrp.c (struct switch_update): New structure.
69         (to_remove_edges, to_update_switch_stmts): New VECs.
70         (simplify_switch_using_ranges): New function.  Remove not taken
71         case labels and edges.
72         (simplify_stmt_using_ranges): Call it.
73         (identify_jump_threads): Mark edges we have queued for removal
74         so we don't thread them.
75         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
76         case label vector.
77         * tree-cfg.c (group_case_labels): Deal with missing default label.
78         (tree_verify_flow_info): Allow missing default label.
79         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
80         (emit_case_nodes): Likewise.
81         (expand_case): Do not rely on the default label to be present.
82         * expr.c (try_casesi): Deal with NULL default_label.
83         (do_tablejump): Likewise.
84
85 2008-04-02  Richard Guenther  <rguenther@suse.de>
86
87         PR tree-optimization/14495
88         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
89         SWITCH_EXPR here ...
90         (vrp_visit_switch_stmt): ... but here (new function).
91         (find_case_label_index): New helper function.
92         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
93
94 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
95
96         * fwprop.c: Fix ISO-C99ism.
97
98 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
99
100         PR bootstrap/35752
101         * Makefile.in (objdir): Set it here.
102         * configure.ac: Not here.  Find dynamic linker characteristics.
103         * exec-tool.in: Use them.
104         * aclocal.m4: Regenerate.
105         * configure: Regenerate.
106
107 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
108
109         * expr.c (expand_var): Delete it.
110         * expr.h (expand_var): Delete prototype.
111         * function.c (expand_function_start): Use expand_decl instead.
112         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
113         langhook.
114
115 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
116
117         PR rtl-optimization/35542
118         * fwprop.c (forward_propagate_and_simplify): Replace
119         loc_reg_mentioned_in_p with reg_mentioned_p.
120
121 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
122
123         PR rtl-optimization/35281
124         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
125         (propagate_rtx_1): Handle PR_HANDLE_MEM.
126         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
127         (varying_mem_p): Move above propagate_rtx.
128         (all_uses_available_at): Do not check MEMs.
129
130 2008-04-02  Rafael Espindola  <espindola@google.com>
131
132         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
133         (register_edge_assert_for_2): Split the cond argument.
134         (register_edge_assert_for_1): Adjust for the change in
135         register_edge_assert_for_2.
136         (register_edge_assert_for): Split the cond argument.
137         (find_switch_asserts): Adjust for the change in
138         register_edge_assert_for.
139
140 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
141
142         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
143         * gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
144         offsets for 64-bit mingw.
145         * gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
146         abi for x86_64-pc-mingw.
147
148 2008-04-02  Richard Guenther  <rguenther@suse.de>
149
150         * tree-vrp.c (extract_range_from_assert): Make sure to not
151         produce range min/max with TREE_OVERFOW set.
152         If merging a anti-range and a range keep the anti-range if
153         the range covers all values of the type.
154         (register_edge_assert_for_2): Only allow sign-changing
155         conversions in detecting canonical range checks.  Also
156         register an assert for the unsigned name if useful.
157
158         PR tree-optimization/35787
159         * tree-vrp.c (vrp_val_max): New function.
160         (vrp_val_min): Likewise.
161         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
162         (vrp_val_is_min): Likewise.
163         (supports_overflow_infinity): Use vrp_val_{min,max}.
164         (negative_overflow_infinity): Likewise.
165         (positive_overflow_infinity): Likewise.
166         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
167         (is_positive_overflow_infinity): Likewise.
168         (is_overflow_infinity): Likewise.
169         (avoid_overflow_infinity): Use vrp_val_{min,max} and
170         vrp_val_is_{min,max}.
171         (set_and_canonicalize_value_range): Canonicalize anti-ranges
172         to ranges if possible.  Avoid empty ranges.
173
174 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
175
176         PR middle-end/35705
177         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
178         the expression is a function address.
179
180 2008-04-01  George Helffrich  <george@gcc.gnu.org>
181
182         PR fortran/PR35154, fortran/PR23057
183         * fortran/trans-common.c (create_common):  Add decl to function
184         chain to preserve identifier scope in debug output.
185
186         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
187         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
188         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
189         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
190         in common.
191         (dbxout_syms): Check for COMMON-based symbol and wrap in
192         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
193         in bracket for efficiency.
194
195         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
196         using DW_TAG_common_block + member offset.
197         (add_pubname_string): New function.
198         (dw_expand_expr): New function to find block name and offset for
199         COMMON var.
200         (common_check): New function to check whether symbol in Fortran COMMON.
201         (gen_variable_die): If COMMON, use DW_TAG_common_block.
202
203         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
204         use of common is unchanged.
205
206         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
207         with all combinations of debug options available on target.
208         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
209         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
210         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
211         .stabs functionality.
212         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
213         DWARF functionality.
214
215 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
216
217         PR c/35436
218         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
219
220 2008-04-02  Ben Elliston  <bje@au.ibm.com>
221
222         * config/v850/v850.md (casesi): Remove if (0) code.
223         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
224         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
225
226 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
227
228         * config/i386/i386.md (rex64suffix): New mode attribute.
229         (floathi<mode>2): Disable expander for SSE math.
230         (*floathi<mode>2_1): New insn insn_and_split pattern.
231         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
232         corresponding post-reload splitters.
233         (*floathi<mode>2_i387): New macroized insn pattern.
234         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
235         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
236         insn_and_split pattern.
237         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
238         New macroized instruction patterns and corresponding post-reload
239         splitters.
240         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
241         and corresponding post-reload splitters.
242         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
243         New macroized instruction patterns.
244         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
245         macroized instruction patterns and corresponding post-reload splitters.
246         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
247         corresponding post-reload splitters.
248         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
249         New macroized instruction patterns.
250         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
251         corresponding post-reload splitters.
252         (*floatsi<mode>2_i387): New macroized instruction patterns.
253
254 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
255
256         * config/i386/i386.md (smaxmin): New.
257         (umaxmin): Likewise.
258         (maxminiprefix): Likewise.
259         (maxminfprefix): Likewise.
260         (<code><mode>3): Likewise.
261         (smin<mode>3): Removed.
262         (smax<mode>3): Likewise.
263
264         * config/i386/mmx.md (mmx_<code>v2sf3): New.
265         (mmx_<code>v4hi3): Likewise.
266         (mmx_<code>v8qi3): Likewise.
267         (mmx_smaxv2sf3): Removed.
268         (mmx_sminv2sf3): Likewise.
269         (mmx_umaxv8qi3): Likewise.
270         (mmx_smaxv4hi3): Likewise.
271         (mmx_uminv8qi3): Likewise.
272         (mmx_sminv4hi3): Likewise.
273
274         * config/i386/sse.md (<addsub><mode>3): New.
275         (*<addsub><mode>3): Likewise.
276         (<sse>_vm<addsub><mode>3): Likewise.
277         (<maxmin><mode>3): Likewise.
278         (*<maxmin><mode>3_finite): Likewise.
279         (*<maxmin><mode>3): Likewise.
280         (<sse>_vm<maxmin><mode>3): Likewise.
281         (sse3_h<addsub>v4sf3): Likewise.
282         (sse3_h<addsub>v2df3): Likewise.
283         (<maxmin>v16qi3): Likewise.
284         (*<maxmin>v16qi3): Likewise.
285         (<maxmin>v8hi3): Likewise.
286         (*<maxmin>v8hi3): Likewise.
287         (*sse4_1_<maxmin><mode>3): Likewise.
288         (*sse4_1_<maxmin><mode>3): Likewise.
289         (add<mode>3): Removed.
290         (*add<mode>3): Likewise.
291         (<sse>_vmadd<mode>3): Likewise.
292         (sub<mode>3): Likewise.
293         (*sub<mode>3): Likewise.
294         (<sse>_vmsub<mode>3): Likewise.
295         (smin<mode>3): Likewise.
296         (*smin<mode>3_finite): Likewise.
297         (*smin<mode>3): Likewise.
298         (<sse>_vmsmin<mode>3): Likewise.
299         (smax<mode>3): Likewise.
300         (*smax<mode>3_finite): Likewise.
301         (*smax<mode>3): Likewise.
302         (<sse>_vmsmax<mode>3): Likewise.
303         (sse3_haddv4sf3): Likewise.
304         (sse3_haddv2df3): Likewise.
305         (sse3_hsubv4sf3): Likewise.
306         (sse3_hsubv2df3): Likewise.
307         (umaxv16qi3): Likewise.
308         (*umaxv16qi3): Likewise.
309         (smaxv8hi3): Likewise.
310         (*smaxv8hi3): Likewise.
311         (*sse4_1_smax<mode>3): Likewise.
312         (*sse4_1_umax<mode>3): Likewise.
313         (uminv16qi3): Likewise.
314         (*uminv16qi3): Likewise.
315         (sminv8hi3): Likewise.
316         (*sminv8hi3): Likewise.
317         (*sse4_1_smin<mode>3): Likewise.
318         (*sse4_1_umin<mode>3): Likewise.
319
320 2008-04-01  Rafael Espindola  <espindola@google.com>
321
322         * tree-cfg.c (verify_expr): remove in_phi.
323         (verify_stmt): Don't call walk_tree with verify_expr. Use
324         is_gimple_min_invariant instead of is_gimple_val.
325
326 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
327
328         * doc/include/gpl_v3.texi: Update for manpage generation.
329         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
330         gpl.texi.
331         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
332         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
333         gpl_v3.texi instead of gpl.texi.
334         (gpl.pod): New.
335
336 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
337
338         PR pch/13675
339         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
340
341 2008-04-01  Rafael Espindola  <espindola@google.com>
342
343         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
344         (extract_code_and_val_from_cond): Use
345         extract_code_and_val_from_cond_with_ops.
346
347 2008-04-01  Jan Hubicka  <jh@suse.cz>
348
349         * function.c (free_after_compilation): Free epilogue_delay_list.
350         (prepare_function_start): Assert that previous compilation was freed.
351
352 2008-04-01  Jan Hubicka  <jh@suse.cz>
353             Jim Wilson  <wilson@tuliptree.org>
354             Andreas Tobler <andreast@gcc.gnu.org>
355
356         PR middle-end/35781
357         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
358         rtl.emit instead cfun->emit.
359         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
360         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
361
362 2008-04-01  Ben Elliston  <bje@au.ibm.com>
363
364         * doc/c-tree.texi (Function Basics): Fix grammatical error.
365
366 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
367
368         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
369         New options
370         (fprofile-use): Add var flag_profile_use
371         * coverage.c (coverage_begin_output): Do not open a gcno file for
372         output only if -ftest-coverage is set.
373         Do not add getpwd() to gcda file path.
374         (build_gcov_info): Check the new flag
375         flag_profile_datafile_relative_path.
376         (coverage_init): Use profile_data_prefix.
377         Read profile counter only if flag_profile_use is set.
378         * opts.c (common_handle_option): New option fprofile-use=,
379         fprofile-dir=, fprofile-generate=.
380         * toplev.c (profile_data_prefix): New variable definition.
381         * toplev.h (profile_data_prefix): New declaration.
382         * doc/invoke.tex (Option Summary, Optimization Options):
383         Add new options.
384
385 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
386
387         * varasm.c (output_constant_pool_1): In LABEL_REF check,
388         use tmp consistently.
389
390         PR target/35695
391         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
392         * config/ia64/ia64.c (rtx_needs_barrier): Handle
393         UNSPEC_FR_RECIP_APPROX_RES.
394         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
395
396 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
397
398         PR c/35750
399         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
400
401 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
402
403         PR middle-end/30186
404         * fold-const.c (fold_indirect_ref_1): Support accessing non first
405         element of the vector via a pointer.
406
407 2008-03-31  Ian Lance Taylor  <iant@google.com>
408
409         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
410
411 2008-03-31  Jan Hubicka  <jh@suse.cz>
412
413         * builtins.c (expand_builtin_setjmp_receiver): Update call of
414         get_arg_pointer_save_area.
415         * expr.c (init_expr): Just clear out rtl.expr.
416         * function.c (free_after_compilation): Clear out whole RTL structure.
417         (get_func_frame_size): Merge into ...
418         (get_frame_size): ... this one.
419         (assign_stack_local_1): Merge into ...
420         (assign_stack_local): ... this one.
421         (expand_function_end): Update call of get_arg_pointer_save_area.
422         (get_art_pointer_save_area): Remove cfun argument.
423         * function.h (emit_status): regno_pointer_align does not need length
424         attribute. Move x_regno_reg_rtx to ...
425         (regno_reg_rtx): ... new global array.
426         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
427         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
428         apply_args_value, forced_labels, stack_pointer_delta):
429         Update accestors.
430         (struct varasm_status): Move here from varasm.c
431         (struct rtl_data): New. Move here some fields from struct function.
432         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
433         frame_offset, stack_check_probe_note, arg_pointer_save_area,
434         used_temp_slots avail_temp_slots, temp_slot_level,
435         nonlocal_goto_handler_labels): Update accesstors.
436         (rtl): New global variable.
437         (struct function): Move some fileds to rtl_data.
438         (get_arg_pointer_save_area): Update prototype.
439         * emit-rtl.c (rtl): Declare.
440         (regno_reg_rtx): Declare.
441         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
442         Update.
443         (gen_reg_rtx): Update.
444         (init_virtual_regs): Do not tate emit_status argument.
445         (init_emit): Do not allocate emit.
446         * varasm.c (varasm_statuc): Move to function.h.
447         (n_deferred_constatns): Update accestor.
448         (init_varasm_status): Do not allocate varasm_status.
449         (force_const_mem, get_pool_size, output_constant_pool): Update.
450         * stmt.c (force_label_rtx): Do not use x_ prefixes.
451         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
452
453 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
454
455         PR rtl-optimization/35729
456         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
457         references.
458
459 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
460
461         PR target/32000
462         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
463         load/store if memory is unaligned.
464         (*movti_rex64): Likewise.
465
466         * config/i386/predicates.md (misaligned_operand): New.
467
468 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
469
470         PR tree-opt/35431
471         * tree-ssa-phiopt.c (conditional_replacement): Return early for
472         complex types.
473
474 2008-03-31  Jan Beulich  <jbeulich@novell.com>
475
476         * config/ia64/constraints.md: Add 'j' constraint.
477         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
478         (movdi_internal): Likewise.
479
480 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
481
482         PR c/35748
483         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
484
485 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
486
487         PR target/35757
488         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
489         proper error message for the third argument on blendpd and
490         blendps.
491
492         * config/i386/sse.md (blendbits): New.
493         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
494
495 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
496
497         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
498
499 2008-03-30  Richard Guenther  <rguenther@suse.de>
500
501         PR middle-end/31023
502         * fold-const.c (fold_sign_changed_comparison): Do leave
503         conversions to base-types alone.
504
505 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
506
507         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
508         the link register if one altivec register is be saved.
509
510 2008-03-30  Ben Elliston  <bje@au.ibm.com>
511
512         * final.c (final_scan_insn): Remove if (0) code.
513
514 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
515
516         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
517
518 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
519
520         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
521         of V4SFmode to ix86_binary_operator_ok.
522
523 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
524
525         * config/i386/i386.c (override_options): Initialize
526         ix86_veclib_handler to ix86_veclibabi_svml when
527         -mveclibabi=svml is used.
528         (ix86_veclibabi_svml): New function for SVML ABI style
529         vectorization support.
530         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
531
532 2008-03-28  Rafael Espindola  <espindola@google.com>
533
534         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
535         (tree_binary_nonnegative_warnv_p): Make it public.
536         (tree_single_nonnegative_warnv_p): Make it public.
537         (tree_invalid_nonnegative_warnv_p): Make it public.
538         (tree_unary_nonzero_warnv_p): Make it public.
539         (tree_binary_nonzero_warnv_p): Make it public
540         (tree_single_nonzero_warnv_p): Make it public.
541         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
542         (extract_range_from_binary_expr): Split the expr argument.
543         (extract_range_from_unary_expr): Split the expr argument.
544         (extract_range_from_comparison): Split the expr argument.
545         (extract_range_from_expr): Use the new aux functions.
546         (vrp_evaluate_conditional_warnv): Use
547         vrp_evaluate_conditional_warnv_with_ops.
548         * tree.h (tree_unary_nonzero_warnv_p): Declare.
549         (tree_binary_nonzero_warnv_p): Declare.
550         (tree_single_nonzero_warnv_p): Declare.
551         (tree_expr_nonzero_warnv_p): Declare.
552         (tree_unary_nonnegative_warnv_p): Declare.
553         (tree_binary_nonnegative_warnv_p): Declare.
554         (tree_single_nonnegative_warnv_p): Declare.
555         (tree_invalid_nonnegative_warnv_p): Declare.
556
557 2008-03-28  Richard Guenther  <rguenther@suse.de>
558
559         PR tree-optimization/30317
560         PR tree-optimization/30911
561         PR tree-optimization/34793
562         * tree-vrp.c (set_and_canonicalize_value_range): New function.
563         (struct assert_locus_d): New member EXPR.
564         (register_new_assert_for): Add EXPR parameter to support
565         ASSERT_EXPR <name, expr OP limit>.
566         (register_edge_assert_for_1): Adjust callers.
567         (find_assert_locations): Likewise.
568         (process_assert_insertions_for): Build condition from expression.
569         (extract_range_from_assert): Handle ASSERT_EXPRs
570         of the form ASSERT_EXPR <name, expr OP limit>.
571         (register_edge_assert_for_2): New helper registering
572         asserts for comparisons.  Recognize range tests of the form
573         (unsigned)i - CST1 OP CST2.
574         (register_edge_assert_for_1): Use it.
575         (register_edge_assert_for): Likewise.
576         (needs_overflow_infinity): Integer sub-types
577         do not need overflow infinities.
578         (vrp_val_is_max): The extreme values of integer sub-types
579         are those of the base type.
580         (vrp_val_is_min): Likewise.
581         * tree.def (ASSERT_EXPR): Document extra allowed conditional
582         expressions.
583
584 2008-03-28  Nick Clifton  <nickc@redhat.com>
585
586         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
587         Return GENERAL_REGS for stack adjustment reloads.
588
589 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
590
591         PR target/31334
592         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
593         const_vector when all the vectors are constant.
594
595 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
596
597         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
598         comparisons.
599         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
600         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
601         (scc_sf): New.
602         (s<code>_sf): Use new scc_sf attribute for opcode names.
603
604 2008-03-27  Tom Tromey  <tromey@redhat.com>
605
606         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
607         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
608         config/spu/t-spu-elf, config/i386/t-interix,
609         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
610         config/i386/x-darwin, config/i386/x-mingw32,
611         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
612         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
613         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
614         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
615         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
616         config/rs6000/x-darwin, config/rs6000/t-rs6000,
617         config/score/t-score-elf, config/arm/t-strongarm-pe,
618         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
619         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
620         Revert automatic dependency patch.
621
622 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
623
624         PR target/35657
625         * config/i386/i386.c (ix86_function_arg_boundary): Align
626         decimal floating point to its natural boundary.
627
628 2008-03-27  Richard Guenther  <rguenther@suse.de>
629
630         PR middle-end/35716
631         * fold-const.c (fold_comparison): Restrict distinct decl
632         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
633         solely rely on operand_equal_p.
634
635 2008-03-27  Richard Guenther  <rguenther@suse.de>
636
637         PR c/32511
638         * c-common.c (handle_weak_attribute): Reject combination of
639         weak and inline.
640
641 2008-03-27  Richard Guenther  <rguenther@suse.de>
642
643         PR tree-optimization/32810
644         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
645         conversions from DECL_INITIAL.
646         (fold_const_aggregate_ref): Likewise from constructor elements.
647
648 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
649
650         * tree-affine.h (aff_combination_expand): Declare.
651         (get_inner_reference_aff): Likewise.
652         * tree-affine.c (aff_combination_expand): Split out from
653         tree_to_aff_combination_expand.
654         (get_inner_reference_aff): New function.
655         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
656         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
657         (struct lim_aux_data): sm_done field removed.
658         (mem_ref_loc_p, mem_ref_locs_p): New types.
659         (struct mem_ref): Added id, stored, accesses_in_loop,
660         indep_loop, dep_loop, indep_ref, dep_ref fields.
661         Removed is_stored, locs and next fields.
662         (memory_accesses): New variable.
663         (movement_possibility): Do not allow moving statements
664         that store to memory.
665         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
666         New functions.
667         (determine_max_movement): For statements with memory references,
668         find the outermost loop in that the reference is independent.
669         (move_computations_stmt): Mark the virtual operands for renaming.
670         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
671         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
672         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
673         add_vop_ref_mapping, create_vop_ref_mapping_loop,
674         create_vop_ref_mapping, analyze_memory_references,
675         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
676         get_all_locs_in_loop, ref_always_accessed_p,
677         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
678         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
679         store_motion_loop, store_motion): New functions.
680         (struct vop_to_refs_elt): New type.
681         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
682         memref_hash, memref_eq, hoist_memory_references): Rewritten.
683         (schedule_sm): Replaced by...
684         (execute_sm): ... this.
685         (determine_lsm_ref, hoist_memory_references,
686         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
687         find_more_ref_vops, free_mem_ref, free_mem_refs,
688         determine_lsm_loop, determine_lsm): Removed.
689         (tree_ssa_lim_finalize): Free data structures used by store motion.
690         (tree_ssa_lim): Call analyze_memory_references.  Use
691         store_motion instead of determine_lsm.
692
693 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
694
695         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
696         rename tmake_file to m68hc11/t-m68hc11.
697         (mcore): Set inhibit_libc to true.
698         * config.host (alpha*-dec-*vms*): Set extra_programs.
699         (interix3*): Don't use host_xmake_file.
700         * configure.ac: Let config.gcc override inhibit_libc.
701         * configure: Regenerate.
702
703         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
704         * config/t-openbsd-thread: Remove commented out lines.
705         
706         * config/x-interix: Remove.
707
708         * config/m68hc11/t-m68hc11-gas: Rename to...
709         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
710
711         * config/mcore/t-mcore: Remove T_CFLAGS.
712         * config/mcore/t-mcore-pe: Likewise.
713
714 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
715
716         * configure.ac: Replace custom __GNU_SOURCE test with
717         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
718         * aclocal.m4: Regenerate.
719         * configure: Regenerate.
720         * config.in: Regenerate.
721
722 2008-03-27  Richard Guenther  <rguenther@suse.de>
723
724         * fold-const.c (target.h): Include.
725         (fold_comparison): Fold comparison of addresses of decls
726         that bind locally or of constants.  Consolidate address folding code.
727         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
728         results from fold_binary_to_constant.
729         (compare_values_warnv): Likewise.
730
731 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
732
733         PR middle-end/35429
734         * fold-const.c (fold_truthop): Check for integeral types when folding
735         a == 0 && b == 0 and a != 0 || b != 0 .
736
737 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
738
739         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
740
741 2008-03-26  Andreas Schwab  <schwab@suse.de>
742
743         * doc/invoke.texi: Fix use of @item vs. @itemx.
744
745 2008-03-26  Tom Tromey  <tromey@redhat.com>
746
747         * Makefile.in (build/gensupport.o, build/print-rtl.o,
748         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
749         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
750         build/gencodes.o, build/genconditions.o, build/genconfig.o,
751         build/genconstants.o, build/genemit.o, build/genextract.o,
752         build/genflags.o, build/genmddeps.o, build/genopinit.o,
753         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
754         options.h.
755
756 2008-03-26  Richard Guenther  <rguenther@suse.de>
757
758         Revert
759         2008-03-26  Richard Guenther  <rguenther@suse.de>
760
761         * fold-const.c (target.h): Include.
762         (fold_comparison): Fold comparison of addresses of two decls
763         that bind locally.  Consolidate address folding code.
764
765 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
766
767         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
768         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
769         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
770         dconstsqrt2, dconstthird, dconste and/or dconst10.
771         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
772         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
773         dconstsqrt2, dconste): Delete.
774         (init_emit_once): Likewise.  Simplify initializing dconstm1.
775         Constify variable.
776         * real.c (get_real_const): New.
777         * real.h (dconst3, dconst10, dconstm2, dconstthird,
778         dconstsqrt2, dconste): Delete.
779         (real_value_const, get_real_const): New.
780
781 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
782
783         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
784
785         * config/i386/i386.c (ix86_function_arg_boundary): Check
786         BIGGEST_ALIGNMENT instead of 128.
787         (setup_incoming_varargs_64): Likewise.
788
789 2008-03-26  Tom Tromey  <tromey@redhat.com>
790
791         * Makefile.in (DEPFILES): Add missing '/'.
792
793 2008-03-26  Richard Guenther  <rguenther@suse.de>
794
795         * fold-const.c (target.h): Include.
796         (fold_comparison): Fold comparison of addresses of two decls
797         that bind locally.  Consolidate address folding code.
798
799 2008-03-26  Nick Clifton  <nickc@redhat.com>
800
801         PR target/31232
802         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
803         not allow INT+INT as a legitimate addressing mode.
804
805 2008-03-26  Richard Guenther  <rguenther@suse.de>
806
807         * tree-flow.h (widen_bitfield): Remove declaration.
808         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
809         (widen_bitfield): Remove function.
810         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
811         code.
812
813 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
814
815         PR target/31558
816         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
817         error_mark_node's.
818
819 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
820
821         PR rtl-optimization/35232
822         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
823         (forget_old_reloads_1, forget_marked_reloads): Don't clear
824         reg_reloaded_call_part_clobbered here.
825         (reload_regs_reach_end_p): New function.
826         (reload_reg_rtx_for_input): New variable.
827         (reload_reg_rtx_for_output): Likewise.
828         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
829         when reassigning a pseudo register.  Load reloadreg from 
830         reload_reg_rtx_for_input, moving the mode and register
831         calculation to...
832         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
833         instead of the original when deciding whether an input reload
834         would be a no-op or whether an output reload can be deleted.
835         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
836         when setting up new_spill_reg_store.  Load it from
837         reload_reg_rtx_for_output, moving the mode and register
838         calculation to...
839         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
840         instead of the original when deciding whether an output reload
841         would be a no-op.  Do the same when modifying insn notes.
842         Use rtx_equal_p instead of == to compare the registers.
843         (inherit_piecemeal_p): Take a mode and two register numbers
844         as argument.
845         (emit_reload_insns): Clear new_spill_reg_store for every hard
846         register in the reload register.  Remove spill registers
847         from reg_reloaded_valid before considering whether to record
848         inheritance information for them.  Use reload_reg_rtx_for_output
849         instead of reg_rtx when recording output reloads.  Use
850         reload_reg_rtx_for_input instead of reg_rtx when recording
851         input reloads.  Set or clear reg_reloaded_call_part_clobbered
852         at the same time as setting reg_reloaded_valid.
853         (delete_output_reload): Add a new_reload_reg parameter and use it
854         instead of rld[j].reg_rtx.
855         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
856         calls accordingly.
857
858 2008-03-25  Tom Tromey  <tromey@redhat.com>
859
860         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
861         (build/genattr.o): Likewise.
862         (build/genattrtab.o): Likewise.
863         (build/gencodes.o): Likewise.
864         (build/genconfig.o): Likewise.
865         (build/genconstants.o): Likewise.
866         (build/genemit.o): Likewise.
867         (build/genextract.o): Likewise.
868         (build/genflags.o): Likewise.
869
870 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
871         
872         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
873         instead of size_int for integer types.
874         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
875         to match type of MINUS_EXPR.
876         
877 2008-03-25  Tom Tromey  <tromey@redhat.com>
878
879         * configure: Rebuilt.
880         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
881         Makefile.
882
883 2008-03-25  Tom Tromey  <tromey@redhat.com>
884
885         * config/x-solaris (host-solaris.o): Update.
886         * config/x-linux (host-linux.o): Update.
887         * config/x-hpux (host-hpux.o): Update.
888         * config/x-darwin (host-darwin.o): Update.
889         * config/v850/t-v850e (v850-c.o): Update.
890         * config/v850/t-v850 (v850-c.o): Update.
891         * config/t-vxworks (vxworks.o): Update.
892         * config/t-sol2 (sol2-c.o, sol2.o): Update.
893         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
894         * config/spu/t-spu-elf (spu-c.o): Update.
895         (spu.o): Remove.
896         * config/sh/t-symbian (sh-c.o): Update.
897         (symbian.o): Update.
898         * config/sh/t-sh (sh-c.o): Update.
899         * config/score/t-score-elf (score7.o, score3.o): Update.
900         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
901         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
902         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
903         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
904         (rs6000.o): Remove.
905         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
906         * config/m32c/t-m32c (m32c-pragma.o): Update.
907         * config/ia64/t-ia64 (ia64-c.o): Update.
908         * config/i386/x-mingw32 (host-mingw32.o): Update.
909         * config/i386/x-i386 (driver-i386.o): Update.
910         * config/i386/x-darwin (host-i386-darwin.o): Update.
911         * config/i386/x-cygwin (host-cygwin.o): Update.
912         * config/i386/t-nwld (nwld.o): Update.
913         * config/i386/t-netware (netware.o): Update.
914         * config/i386/t-interix (winnt.o): Update.
915         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
916         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
917         msformat-c.o): Update.
918         * config/bfin/t-bfin-linux (generated_files): Add
919         linux-sysroot-suffix.h.
920         * config/arm/t-wince-pe (pe.o): Update.
921         * config/arm/t-strongarm-pe (pe.o): Update.
922         * config/arm/t-pe (pe.o): Update.
923         * config/arm/t-arm (arm-c.o): Update.
924         * doc/install.texi (Prerequisites): Require make 3.80.
925         * Makefile.in: Remove .o targets.
926         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
927         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
928         (simple_generated_h, simple_generated_c): Move earlier.
929         (generated_files): New variable.
930         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
931         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
932         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
933         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
934         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
935         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
936         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
937         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
938         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
939         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
940         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
941         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
942         (.c.o): Remove.
943         (COMPILE.base, COMPILE): New variables.
944         (%.o): New pattern rule.
945         (ALL_HOST_OBJS): New variable.
946         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
947         (dummy-checksum.o, cc1-checksum.o): Remove.
948         (DRIVER_SHLIB): New variable.
949         (DRIVER_DEFINES): Use it.
950         (gencondmd.c): Move out of build/.
951         (s-conditions): Update.
952         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
953         (ALL_BUILD_OBJS): Likewise.
954         (build/%.o): Use BUILDCOMPILE.
955         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
956         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
957         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
958         build/gencheck.o, build/gencodes.o, build/genconditions.o,
959         build/genconfig.o, build/genconstants.o, build/genemit.o,
960         build/genextract.o, build/genflags.o, build/genmddeps.o,
961         build/genopinit.o, build/genoutput.o, build/genpeep.o,
962         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
963         build/gen-protos.o, build/scan.o, build/fix-header.o,
964         build/scan-decls.o): Simplify.
965         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
966         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
967         prefix.o, toplev.o): Reduce to variable setting.
968         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
969         ($(out_object_file), gcc-options.o): New targets.
970         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
971         * configure: Rebuilt.
972         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
973         * doc/sourcebuild.texi (Front End Directory): Document new variable.
974
975 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
976
977         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
978         complain when we hit an error, return ERROR_MARK_NODE.
979
980 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
981
982         * config/sh/constraints.md (Pso, Psz): New constraints.
983         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
984         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
985
986 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
987
988         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
989         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
990
991 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
992
993         * config/sh/sh.md (prefetch): Add condition for SH2A target.
994         (prefetch_sh2a): New.   
995
996 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
997             Naveen.H.S  <naveen.hs@kpitcummins.com>
998
999         * config/sh/constraints.md (I28): New constraint.
1000         * config/sh/sh.c (broken_move): Add support for movi20s.
1001         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
1002
1003 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
1004             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
1005             Naveen.H.S  <naveen.hs@kpitcummins.com>
1006
1007         * config/sh/sh.c (SH_ATTRIBUTES): Define.
1008         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
1009         (print_operand): Handle resbank in %@ operand code.
1010         (sh_encode_section_info): New.
1011         (push_regs): Add conditions for resbank.
1012         (sh_expand_epilogue): Likewise.
1013         (sh_insert_attributes): Likewise.
1014         (sh_attribute_table): Likewise.
1015         (sh_handle_resbank_handler_attribute): New.
1016         (sh2a_handle_function_vector_handler_attribute): New.
1017         (sh2a_is_function_vector_call): New.
1018         (sh2a_get_function_vector_number): New.
1019         (sh2a_function_vector_p): New.
1020         (sh_cfun_resbank_handler_p): New.
1021         * config/sh/sh.md (calli): Emit jsr/n if possible.
1022         (calli_tbr_rel): New.
1023         (calli_pcrel): Emit jsr/n if possible.
1024         (return_i): Emit rts/n if possible.
1025         (call_valuei_tbr_rel): New.
1026         (call_valuei_pcrel): Add condition for SH2A target.
1027         (call_value): Likewise.
1028         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
1029         (sh2a_get_function_vector_number): Likewise.
1030         (sh2a_is_function_vector_call): Likewise.
1031         * doc/extend.texi: Document TBR relative addressing of SH2A.
1032         (resbank): Add description for SH2A.
1033
1034 2008-03-24  Richard Guenther  <rguenther@suse.de>
1035
1036         PR c/22371
1037         * gimplify.c (gimplify_modify_expr): For frontend type-correct
1038         pointer assignments change conversions according to middle-end rules.
1039         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
1040         * configure.ac: Include type checking in yes.
1041         * configure: Regenerate.
1042
1043 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1044
1045         * diagnostic.c (diagnostic_count_diagnostic): Delete.
1046         (diagnostic_report_diagnostic): Update. Handle ICEs here.
1047         
1048 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
1049
1050         * gthr-vxworks.h (UNUSED): Define.
1051
1052 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
1053
1054         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
1055
1056 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
1057
1058         * doc/extend.texi (Function Attributes): Add missing comma in the
1059         example of the "alloc_size" attribute.
1060         
1061 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
1062
1063         Revert:
1064         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
1065
1066         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
1067         32bit host.
1068
1069         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
1070
1071         PR target/35496
1072         * stor-layout.c (update_alignment_for_field): Set minimum alignment
1073         of the underlying type of a MS bitfield layout to the natural
1074         alignment of the type.
1075
1076         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
1077
1078         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
1079         to their natural alignment to avoid store forwarding stalls.
1080
1081 2008-03-22  Richard Guenther  <rguenther@suse.de>
1082
1083         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
1084         For PHI nodes verify the address is invariant.
1085         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
1086         (get_symbol_constant_value): Use is_gimple_min_invariant.
1087         (maybe_fold_stmt_indirect): Likewise.
1088
1089 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
1090
1091         PR rtl-optimization/33927
1092         * Makefile.in (dse.o): Depend on $(TM_P_H).
1093         * expr.h (extract_low_bits): Declare.
1094         * expmed.c (extract_low_bits): New function.
1095         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
1096         * dse.c: Include tm_p.h.
1097         (find_shift_sequence): Remove the read_reg argument and return the
1098         read value.  Emit the instructions instead of returning them.
1099         Iterate on new_mode rather than calculating it each time.
1100         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
1101         source to NEW_MODE and extract_low_bits to convert the shifted
1102         value to READ_MODE.
1103         (replace_read): Allow the load and store to have different mode
1104         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
1105         or extraction instructions before trying the replacement.  Update
1106         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
1107
1108 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
1109
1110         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
1111         to their natural alignment to avoid store forwarding stalls.
1112
1113 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1114
1115         PR target/27946
1116         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
1117         encouraging but not allowing gprs for input;
1118         change the input constraint to !f#r.
1119         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
1120         gprs for output;
1121         change the output constraint to !f#r.
1122
1123 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
1124
1125         PR target/13958
1126         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
1127         corresponding post-reload splitters.
1128         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
1129         when x87 FP math is selected.
1130         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
1131         New function prototype.
1132         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
1133         unreachable function to ease macroization of insn patterns.
1134
1135 2008-03-21  Martin Jambor  <mjambor@suse.cz>
1136
1137         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
1138         reference dumps if ddr is NULL or dependence is unknown.
1139
1140 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1141
1142         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
1143         unsigned extension into account.
1144         (ATOMIC_COMPARE_AND_SWAP): Likewise.
1145         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
1146         Do computations on a scratch register.
1147
1148 2008-03-21  Richard Guenther  <rguenther@suse.de>
1149
1150         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1151         Use is_gimple_min_invariant instead of TREE_INVARIANT.
1152         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1153         * tree-ssa-dom.c (record_equality): Likewise.
1154         * tree-inline.c (copy_body_r): Likewise.
1155         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
1156         TREE_INVARIANT.
1157
1158 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1159
1160         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
1161         as 'delete_unused' argument.
1162
1163 2008-03-20  Richard Guenther  <rguenther@suse.de>
1164
1165         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
1166         special casing of constant qualifiers.
1167         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
1168         care about them in general.
1169         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
1170         regardless of their type.
1171         (fold_stmt_r): Forcefully fold *& if we end up with that.
1172
1173 2008-03-20  Paul Brook  <paul@codesourcery.com>
1174
1175         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
1176         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
1177         linker flags.
1178         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
1179         definition.
1180         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
1181         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
1182
1183 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
1184
1185         * common.opt (Wmudflap): New option.
1186         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
1187         (mx_register_decls): Likewise.
1188         (mudflap_finish_file): Likewise.
1189         * doc/invoke.texi: Document -Wno-mudflap.
1190
1191 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
1192
1193         * c-format.c (replace_format_name_to_system_name): New.
1194         (cmp_attribs): New.
1195         (convert_format_name_to_system_name): New.
1196         (decode_format_attr): Add use of convert_format_name_to_system_name.
1197         (format_types_orig): Add gnu_ prefix to names.
1198         (check_format_info_main): Special treating of \0 escaped names for
1199         supporting multi-character format specifiers as I32, I64.
1200         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
1201         (gnu_target_overrides_format_attributes): New.
1202         * c-format.h: Add structure target_ovr_attr to hold
1203         system specific formatter names.
1204         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
1205         msformat-c.o file to c_target_objs and cxx_target_objs.
1206         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
1207         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
1208         (TARGET_N_FORMAT_TYPES): New.
1209         * config/i386/msformat-c.c: New.
1210         * config/i386/t-cygming: Add build rule for msformat-c.o.
1211         * doc/extend.texi: Add new format names gnu_* and ms_* and
1212         further details.
1213         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
1214
1215 2008-03-20  Ira Rosen  <irar@il.ibm.com>
1216
1217         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
1218         optimizations turned on under -O3.
1219         (ftree-vectorize): Add that the flag is turned on with -O3.
1220
1221 2008-03-20  Ben Elliston  <bje@au.ibm.com>
1222
1223         * regmove.c (try_auto_increment): Fix spelling error in comment.
1224         * final.c (final_scan_insn): Likewise.
1225
1226 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
1227
1228         PR target/14552
1229         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
1230         allocator preferences for "y" and "r" class registers.
1231         ("*mov<mode>_internal"): Ditto.
1232         ("*movv2sf_internal_rex64"): Ditto.
1233         ("*movv2sf_internal"): Ditto.
1234
1235 2008-03-19  Michael Matz  <matz@suse.de>
1236
1237         PR middle-end/35616
1238         * calls.c (expand_call): Check overlap of arguments with call
1239         address for sibcalls.
1240
1241 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
1242
1243         PR target/35496
1244         * stor-layout.c (update_alignment_for_field): Set minimum alignment
1245         of the underlying type of a MS bitfield layout to the natural
1246         alignment of the type.
1247
1248 2008-03-19  Jan Hubicka  <jh@suse.cz>
1249
1250         PR other/35094
1251         * toplev.c (decode_d_option): Handle all CPP flags.
1252         * tree-vrp.c: Update tree_pass descriptors.
1253         * regrename.c: Update tree_pass descriptors.
1254         * fwprop.c: Update tree_pass descriptors.
1255         * doc/invoke.texi: Remove documentation of dropped -d? flags.
1256         * tree-into-ssa.c: Update tree_pass descriptors.
1257         * tree-dump.c: Update tree_pass descriptors.
1258         * tree-complex.c: Update tree_pass descriptors.
1259         * tree-dump.h: Update tree_pass descriptors.
1260         * see.c: Update tree_pass descriptors.
1261         * cgraphbuild.c: Update tree_pass descriptors.
1262         * tracer.c: Update tree_pass descriptors.
1263         * tree-loop-distribution.c: Update tree_pass descriptors.
1264         * cgraph.c: Update tree_pass descriptors.
1265         * postreload-gcse.c: Update tree_pass descriptors.
1266         * postreload.c: Update tree_pass descriptors.
1267         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
1268         * tree-tailcall.c: Update tree_pass descriptors.
1269         * tree-pass.h (tree_opt_pass): Rename to ...
1270         (opt_pass) ... this one; add "type" field and remove letter field.
1271         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
1272         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
1273         all_lowering_passes): Update declaration.
1274         * ipa-cp.c: Update tree_pass descriptors.
1275         * final.c: Update tree_pass descriptors.
1276         * omp-low.c: Update tree_pass descriptors.
1277         * tree-ssa-dse.c: Update tree_pass descriptors.
1278         * ipa-reference.c: Update tree_pass descriptors.
1279         * tree-ssa-uncprop.c: Update tree_pass descriptors.
1280         * auto-inc-dec.c: Update tree_pass descriptors.
1281         * reorg.c: Update tree_pass descriptors.
1282         * cgraphunit.c: Update tree_pass descriptors.
1283         * tree-ssa-copyrename.c: Update tree_pass descriptors.
1284         * tree-ssa-ccp.c: Update tree_pass descriptors.
1285         * df-core.c: Update tree_pass descriptors.
1286         * mode-switching.c: Update tree_pass descriptors.
1287         * tree-nomudflap.c: Update tree_pass descriptors.
1288         * modulo-sched.c: Update tree_pass descriptors.
1289         * ipa-pure-const.c: Update tree_pass descriptors.
1290         * cse.c: Update tree_pass descriptors.
1291         * web.c: Update tree_pass descriptors.
1292         * tree-stdarg.c: Update tree_pass descriptors.
1293         * tree-ssa-math-opts.c: Update tree_pass descriptors.
1294         * tree-ssa-dom.c: Update tree_pass descriptors.
1295         * tree-nrv.c: Update tree_pass descriptors.
1296         * tree-ssa-alias.c: Update tree_pass descriptors.
1297         * loop-init.c: Update tree_pass descriptors.
1298         * gimple-low.c: Update tree_pass descriptors.
1299         * ipa-inline.c: Update tree_pass descriptors.
1300         * tree-ssa-sink.c: Update tree_pass descriptors.
1301         * global.c: Update tree_pass descriptors.
1302         * ifcvt.c: Update tree_pass descriptors.
1303         * jump.c: Update tree_pass descriptors.
1304         * predict.c: Update tree_pass descriptors.
1305         * tree-ssa-loop.c: Update tree_pass descriptors.
1306         * recog.c: Update tree_pass descriptors.
1307         * dse.c: Update tree_pass descriptors.
1308         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
1309         * tree-eh.c: Update tree_pass descriptors.
1310         * regmove.c: Update tree_pass descriptors.
1311         * local-alloc.c
1312         * function.c: Update tree_pass descriptors.
1313         * tree-vectorizer.c: Update tree_pass descriptors.
1314         * gcse.c: Update tree_pass descriptors.
1315         * ipa-type-escape.c: Update tree_pass descriptors.
1316         * tree-if-conv.c: Update tree_pass descriptors.
1317         * init-regs.c: Update tree_pass descriptors.
1318         * ipa.c: Update tree_pass descriptors.
1319         * tree-ssa-phiopt.c: Update tree_pass descriptors.
1320         * rtl-factoring.c: Update tree_pass descriptors.
1321         * lower-subreg.c: Update tree_pass descriptors.
1322         * bt-load.c: Update tree_pass descriptors.
1323         * tree-dfa.c: Update tree_pass descriptors.
1324         * except.c: Update tree_pass descriptors.
1325         * emit-rtl.c: Update tree_pass descriptors.
1326         * cfgexpand.c: Update tree_pass descriptors.
1327         * tree-cfgcleanup.c: Update tree_pass descriptors.
1328         * cfgcleanup.c: Update tree_pass descriptors.
1329         * tree-ssa-pre.c: Update tree_pass descriptors.
1330         * tree-sra.c: Update tree_pass descriptors.
1331         * tree-mudflap.c: Update tree_pass descriptors.
1332         * tree-ssa-copy.c: Update tree_pass descriptors.
1333         * cfglayout.c: Update tree_pass descriptors.
1334         * tree-ssa-forwprop.c: Update tree_pass descriptors.
1335         * tree-ssa-dce.c: Update tree_pass descriptors.
1336         * tree-ssa.c: Update tree_pass descriptors.
1337         * regclass.c: Update tree_pass descriptors.
1338         * integrate.c: Update tree_pass descriptors.
1339         * tree-optimize.c: Update tree_pass descriptors.
1340         * tree-ssa-phiprop.c: Update tree_pass descriptors.
1341         * tree-object-size.c: Update tree_pass descriptors.
1342         * combine.c: Update tree_pass descriptors.
1343         * tree-outof-ssa.c: Update tree_pass descriptors.
1344         * bb-reorder.c: Update tree_pass descriptors.
1345         * stack-ptr-mod.c: Update tree_pass descriptors.
1346         * var-tracking.c: Update tree_pass descriptors.
1347         * tree-profile.c: Update tree_pass descriptors.
1348         * tree-vect-generic.c: Update tree_pass descriptors.
1349         * reg-stack.c: Update tree_pass descriptors.
1350         * sched-rgn.c: Update tree_pass descriptors.
1351         * tree-ssa-structalias.c: Update tree_pass descriptors.
1352         * tree-cfg.c: Update tree_pass descriptors.
1353         * passes.c (current_pass): Update declaration.
1354         (finish_optimization_passes): Update.
1355         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
1356         (register_one_dump_file, register_dump_files_1, next_pass_1):
1357         Update arguments.
1358         (init_optimization_passes): Update handling of new types.
1359         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
1360         * ipa-struct-reorg.c: Update tree_pass descriptors.
1361         * tree-ssa-reassoc.c: Update tree_pass descriptors.
1362         * combine-stack-adj.c: Update tree_pass descriptors.
1363         * cfgrtl.c: Update tree_pass descriptors.
1364         * dce.c: Update tree_pass descriptors.
1365         * tree-ssanames.c: Update tree_pass descriptors.
1366
1367 2008-03-19  Richard Guenther  <rguenther@suse.de>
1368
1369         PR middle-end/35609
1370         * tree-ssa.c (walk_data): New structure.
1371         (warn_uninitialized_var): If not always_executed warn with "maybe"
1372         instead of "is".
1373         (execute_early_warn_uninitialized): Compute post-dominators.
1374         Initialize always_executed before processing each basic block.
1375
1376 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
1377
1378         PR target/35504
1379         * config/i386/i386.c (x86_this_parameter): Calculate correct location
1380         of "this" pointer when "regparm = N" or "fastcall" is in effect.
1381
1382 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1383
1384         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
1385
1386 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
1387
1388         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
1389         is true.
1390         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
1391         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
1392         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
1393         target after ignore has been set, and move there also the commputation
1394         of subtarget and original_target.
1395         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
1396         (LANG_HOOKS_INITIALIZER): Remove it.
1397         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
1398
1399 2008-03-18  Richard Guenther  <rguenther@suse.de>
1400
1401         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
1402         found an expression with constants, note that in the VN for the lhs.
1403         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
1404         fold them to constants if possible.  Run cleanup_cfg if done so.
1405         (execute_pre): Return todo.
1406         (do_pre): Likewise.
1407         (execute_fre): Likewise.
1408         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
1409         of constants.
1410         (get_prop_source_stmt): Look through pointer conversions.
1411
1412 2008-03-18  Jan Hubicka  <jh@suse.cz>
1413
1414         * tree-pretty-print.c: Include predict.h.
1415         (dump_generic_node): Dump predictor.
1416         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
1417         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
1418         * gimple-low.c (lower_stmt): Likewise.
1419         * expr.c (expand_expr_real): Likewise.
1420         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
1421         them.
1422         (build_predict_expr, build_predict_expr): New.
1423         * predict.h (predictor_name, build_predict_expr): Update.
1424         * c-typeck.c (c_finish_bc_stmt): Add prediction.
1425         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
1426         * predict.def (PRED_CONTINUE): Update hitrate.
1427         * tree.def (PREDICT_EXPR): Define.
1428         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
1429         do not handle BIND_EXPR.
1430         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
1431         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
1432         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
1433         operands.
1434
1435 2008-03-18  Michael Matz  <matz@suse.de>
1436
1437         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
1438
1439 2008-03-18  Richard Guenther  <rguenther@suse.de>
1440
1441         * tree-gimple.h (is_gimple_invariant_address): Declare.
1442         (is_gimple_constant): Likewise.
1443         * tree-gimple.c (is_gimple_constant): New function.
1444         (is_gimple_invariant_address): Likewise.
1445         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
1446         and is_gimple_invariant_address.
1447         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
1448         previous change.
1449         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
1450         an addressable base.
1451
1452 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
1453
1454         PR middle-end/35611
1455         * gimplify.c (gimplify_expr): Gimplify second operand of
1456         OMP_ATOMIC_LOAD.
1457
1458 2008-03-17  Richard Guenther  <rguenther@suse.de>
1459
1460         PR tree-optimization/19637
1461         * fold-const.c (fold_unary): Remove restrictions of removing
1462         intermediate pointer-conversions (P2)(P1)P0.
1463         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
1464         conversion to void pointer.
1465         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
1466
1467 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
1468
1469         PR debug/31510
1470         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
1471         emulated thread local variables.
1472
1473 2008-03-16  Richard Guenther  <rguenther@suse.de>
1474
1475         PR middle-end/35607
1476         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
1477         expand TREE_INVARIANT operations that are not gimple invariant.
1478
1479 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
1480
1481         * doc/extend.texi (Alignment): Say that the ABI controls
1482         the __alignof__ for non-strict-alignment targets rather
1483         than being a recommendation.
1484
1485 2008-03-15  Paul Brook  <paul@codesourcery.com>
1486
1487         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
1488         annotations.
1489         (arm_output_fn_unwind): Mark functions that can not be unwound.
1490
1491 2008-03-15  Paul Brook  <paul@codesourcery.com>
1492
1493         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
1494         extension instructions.
1495
1496 2008-03-15  Richard Guenther  <rguenther@suse.de>
1497
1498         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
1499         and fold constant aggregate refs.
1500         (fold_const_aggregate_ref): Handle string constants
1501         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
1502         (evaluate_stmt): Simplify now that ccp_fold folds constant
1503         aggregate refs.
1504
1505 2008-03-15  Paul Brook  <paul@codesourcery.com>
1506
1507         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
1508         (extzv): Use gen_extzv_t2.
1509         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
1510
1511 2008-03-15  Richard Guenther  <rguenther@suse.de>
1512
1513         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
1514         (fold_const_aggregate_ref): Likewise.
1515         (get_value): Return NULL if we don't have any values.
1516         (ccp_finalize): Set const_val to NULL after freeing it.
1517         * tree-flow.h (get_symbol_constant_value): Declare.
1518         (fold_const_aggregate_ref): Likewise.
1519         * tree-ssa-sccvn.c (try_to_simplify): Use them.
1520
1521 2008-03-15  Richard Guenther  <rguenther@suse.de>
1522
1523         PR middle-end/35593
1524         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
1525         to not produce negative array indices if not allowed.  Add
1526         parameter to indicate that.
1527         (maybe_fold_offset_to_component_ref): Allow negative array
1528         indices only for the first member of a structure.
1529         (maybe_fold_offset_to_reference): Allow negative array indices.
1530         (maybe_fold_stmt_addition): Likewise.
1531
1532 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
1533             Anatoly Sokolov <aesok@post.ru>
1534
1535         * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
1536         (avr_arch): Add ARCH_AVR6.
1537         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
1538         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
1539         instead of fixed value 2.
1540         (print_operand_address): Use gs() asm specifier instead of pm().
1541         (avr_assemble_integer): (Ditto.).
1542         (avr_output_addr_vec_elt): (Ditto.).
1543         (print_operand): Handle "!" code.
1544         * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
1545         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
1546         (AVR_HAVE_EIJMP_EICALL): Define.
1547         (AVR_3_BYTE_PC): Redefine.
1548         (AVR_2_BYTE_PC): (Ditto.).
1549         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
1550         (LINK_SPEC): Add atmega2560 and atmega2561.
1551         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
1552         (crtm2561.o).
1553         * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall 
1554         for 3 byte PC devices.
1555         (call_value_insn): (Ditto.).
1556         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
1557         (indirect_jump): Use only for for 2 byte PC devices.
1558         (*tablejump): (Ditto.).
1559         (*indirect_jump_avr6): Add insn.
1560         (*tablejump_rjmp): Don't use for 3 byte PC devices.
1561         * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp 
1562         instead of ijmp for 3 byte PC devices.
1563         (__tablejump2__): (Ditto.).
1564         * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
1565         (MULITLIB_DIRNAMES): (Ditto.). 
1566         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
1567
1568 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
1569
1570         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
1571         "sse2_umulsidi3".  Use V1DI mode for operand 0.
1572         ("mmx_psadbw"): Use V1DI mode for operand 0.
1573         * config/i386/i386-modes.def (V1SI): New vector mode.
1574         * config/i386/i386.c (struct builtin_description)
1575         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
1576         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
1577         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
1578         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
1579         v1di_ftype_v8qi_v8qi type.
1580         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
1581
1582         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
1583         __builtin_ia32_pmuludq]: Fix the mode of return value.
1584
1585 2008-03-15  Richard Guenther  <rguenther@suse.de>
1586
1587         PR middle-end/35595
1588         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
1589         being a PHI_NODE.
1590
1591 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
1592         
1593         * doc/invoke.texi (Option Summary, Xtensa Options): Document
1594         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
1595         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
1596         unless TARGET_SERIALIZE_VOLATILE is enabled.
1597         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
1598         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
1599         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
1600
1601 2008-03-14  Richard Guenther  <rguenther@suse.de>
1602
1603         PR tree-optimization/34172
1604         * tree-flow.h (refs_may_alias_p): Declare.
1605         (get_single_def_stmt): Likewise.
1606         (get_single_def_stmt_from_phi): Likewise.
1607         (get_single_def_stmt_with_phi): Likewise.
1608         * tree-dfa.c (refs_may_alias_p): New function.
1609         (get_single_def_stmt): Likewise.
1610         (get_single_def_stmt_from_phi): Likewise.
1611         (get_single_def_stmt_with_phi): Likewise.
1612         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
1613         (vn_reference_lookup_1): New helper function.
1614         (vn_reference_lookup): Walk the virtual use-def chain to
1615         continue searching for a match if the def does not alias the
1616         reference we are looking for.
1617
1618 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
1619
1620         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
1621         archive and Perzl.  Update The Written Word listing.
1622
1623 2008-03-14  Richard Guenther  <rguenther@suse.de>
1624
1625         PR tree-optimization/34043
1626         PR tree-optimization/33989
1627         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
1628         when doing FRE.
1629         (bitmap_find_leader): Use extra argument to verify dominance
1630         relationship inside a basic-block.
1631         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
1632         (find_leader_in_sets): Adjust.
1633         (create_component_ref_by_pieces): Take extra argument for
1634         dominance check, handle lookup failures.
1635         (find_or_generate_expression): Likewise.
1636         (create_expression_by_pieces): Likewise.
1637         (insert_into_preds_of_block): Adjust.
1638         (create_value_expr_from): If asked for, verify all operands
1639         are in the blocks AVAIL_OUT set.
1640         (make_values_for_stmt): Check for SSA_NAMEs that are life
1641         over an abnormal edge.
1642         (compute_avail): Remove such check.
1643         (do_SCCVN_insertion): New function.
1644         (eliminate): If we do not find a leader suitable for replacement
1645         insert a replacement expression from SCCVN if available.
1646         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
1647         (struct vn_ssa_aux): Add needs_insertion flag.
1648         * tree-ssa-sccvn.c (may_insert): New global flag.
1649         (copy_reference_ops_from_ref): Value-number union member access
1650         based on its size, not type and member if insertion is allowed.
1651         (visit_reference_op_load): For a weak match from union type
1652         punning lookup a view-converted value and insert a SSA_NAME
1653         for that value if that is not found.
1654         (visit_use): Make dumps shorter.  Do not disallow value numbering
1655         SSA_NAMEs that are life over an abnormal edge to constants.
1656         (free_scc_vn): Release inserted SSA_NAMEs.
1657         (run_scc_vn): New flag to specify whether insertion is allowed.
1658         Process SSA_NAMEs in forward order.
1659         * tree-ssa-loop-im.c (for_each_index): Handle invariant
1660         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
1661         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
1662         pointer type to/from integral types that do not change the
1663         precision to regular conversions.
1664
1665 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
1666
1667         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
1668         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
1669         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
1670         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
1671         input arguments and the mode of return value.  Built-in functions
1672         that operate on whole 64-bit MMX register now use V1DI mode.
1673
1674 2008-03-13  Alon Dayan  <alond@il.ibm.com>
1675             Olga Golovanevsky  <olga@il.ibm.com>
1676
1677         PR tree-optimization/35041
1678         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
1679         to locate the right position in a statement.
1680
1681 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
1682
1683         PR target/34000
1684         PR target/35553
1685         * config/i386/xmmintrin.h:  Change all static inline functions to
1686         extern inline and add __gnu_inline__ attribute.
1687         * config/i386/bmintrin.h: Ditto.
1688         * config/i386/smmintrin.h: Ditto.
1689         * config/i386/tmmintrin.h: Ditto.
1690         * config/i386/mmintrin-common.h: Ditto.
1691         * config/i386/ammintrin.h: Ditto.
1692         * config/i386/emmintrin.h: Ditto.
1693         * config/i386/pmmintrin.h: Ditto.
1694         * config/i386/mmintrin.h: Ditto.
1695         * config/i386/mm3dnow.h: Ditto.
1696
1697 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
1698
1699         PR middle-end/35185
1700         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
1701         (lower_omp_2): New function.
1702         (lower_omp_1, lower_omp): Rewritten.
1703
1704 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
1705
1706         PR 35054
1707         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
1708         with the phrase "Microsoft Windows compilers".
1709         (Push/Pop Macro Pragmas): New subsection. Document
1710         #pragma push_macro and pragma pop_macro.
1711
1712 2008-03-12  Paul Brook  <paul@codesourcery.com>
1713
1714         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
1715
1716 2008-03-12  Paul Brook  <paul@codesourcery.com>
1717
1718         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
1719         (thumb2_alusi3_short): Exclude PLUS and MINUS.
1720         (thumb2_addsi_shortim): Rename ...
1721         (thumb2_addsi_short): ... to this.  Allow register operands.
1722         (thumb2_subsi_short): New pattern.
1723         (thumb2_one_cmplsi2_short,
1724         thumb2_negsi2_short): New patterns and peepholes.
1725
1726 2008-03-12  Paul Brook  <paul@codesourcery.com>
1727
1728         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
1729
1730 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
1731
1732         * config/i386/i386.md (int_cond): New code iterator.
1733         (fp_cond): Ditto.
1734         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
1735         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
1736         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
1737         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
1738         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
1739         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
1740         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
1741         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
1742
1743 2008-03-12  Paul Brook  <paul@codesourcery.com>
1744
1745         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
1746         instead of {arm,thumb}_compute_save_reg_mask.
1747         (output_return_instruction): Ditto.
1748         (thumb_unexpanded_epilogue): Ditto.
1749         (thumb1_expand_prologue): Ditto.
1750         (thumb1_output_function_prologue): Ditto.
1751         (arm_set_return_address): Ditto.
1752         (thumb_set_return_address): Ditto.
1753         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
1754         regs to achieve stack alignment.
1755         (thumb1_compute_save_reg_mask): Fix compiler warning.
1756         (arm_output_epilogue): Use offsets->saved_regs_mask.
1757         Adjust stack pointer by poping call clobered registers.
1758         (arm_expand_prologue): Use offsets->saved_regs_mask.
1759         Adjust stack pointer by pushing extra registers.
1760         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
1761
1762 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
1763
1764         PR tree-opt/35422
1765         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
1766         conversion to the operands of a multiplication.
1767
1768 2008-03-12  Richard Guenther  <rguenther@suse.de>
1769
1770         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
1771         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
1772         * timevar.def (TV_TREE_PHIPROP): Add.
1773         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
1774         pass description.  Use TV_TREE_PHIPROP.
1775         * tree-ssa-forwprop.c: Remove phiprop code.
1776
1777 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
1778
1779         PR middle-end/35549
1780         * omp-low.c (maybe_lookup_decl): Constify first argument.
1781         (use_pointer_for_field): Change last argument from bool to
1782         omp_context *.  Disallow shared copy-in/out in nested
1783         parallel if decl is shared in outer parallel too.
1784         (build_outer_var_ref, scan_sharing_clauses,
1785         lower_rec_input_clauses, lower_copyprivate_clauses,
1786         lower_send_clauses, lower_send_shared_vars): Adjust callers.
1787
1788 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
1789             Ira Rosen  <irar@il.ibm.com>
1790
1791         * tree-vectorizer.c (free_stmt_vec_info): New function.
1792         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
1793         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
1794         * tree-vectorizer.h (free_stmt_vec_info): Declare.
1795         * tree-vect-transform.c (vectorizable_conversion): Free
1796         vec_oprnds0 if it was allocated.
1797         (vect_permute_store_chain): Remove unused VECs.
1798         (vectorizable_store): Free VECs that are allocated in the..
1799         function.
1800         (vect_transform_strided_load, vectorizable_load): Likewise.
1801         (vect_remove_stores): Simplify the code.
1802         (vect_transform_loop): Move code to vect_remove_stores().
1803         Call vect_remove_stores() and free_stmt_vec_info().
1804
1805 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1806
1807         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
1808         TARGET_HPUX.  Revise comment.
1809         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
1810         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
1811         Use sr4 variant of `be' instruction when not generating PIC code.
1812         (attr_length_call): Adjust for above change.
1813
1814 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1815
1816         * ipa-reference.c (static_execute): Remove module_statics_const and
1817         associated setting code.
1818
1819 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
1820
1821         PR target/35540
1822         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1823         predicate for operand 1.
1824         (paritysi2_cmp): Use register_operand predicate for operand 2.
1825         Use earlyclobber modifier for operand 1.  Remove support for
1826         memory operands.
1827         (paritydi2_cmp): Use register_operand predicate for operand 3.
1828         Use earlyclobber modifier for operand 1.  Remove support for
1829         memory operands.
1830
1831 2008-03-11  Paul Brook  <paul@codesourcery.com>
1832             Vladimir Prus  <vladimir@codesourcery.com>
1833
1834         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
1835         (arm_compute_save_reg0_reg12_mask): Always
1836         check if register 11 must be saved.  Always safe hard frame pointer
1837         when frame_pointer_needeed.
1838         (arm_compute_save_reg_mask): Save IP and PC
1839         only with apcs frames.
1840         (arm_output_epilogue): Adjust Thumb2 codepath to
1841         be also invoked and work for ARM non-apcs frames.
1842         (arm_expand_prologue): Don't bother saving IP
1843         for non-apcs frame, since it's not clobbered by
1844         prologue code.  Implement non-apcs frame
1845         layout.
1846
1847 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1848
1849         PR rtl-optimization/35281
1850         * expr.c (convert_move): Use a new pseudo for the intermediate
1851         from_mode->word_mode result.
1852
1853 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1854
1855         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
1856         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
1857         * toplev.c (compile_file): Don't call it.
1858
1859 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
1860
1861         PR middle-end/35526
1862         * expr.c (store_expr): Call emit_block_move if the mode
1863         of "temp" RTX is BLKmode.
1864
1865 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1866             Richard Guenther  <rguenther@suse.de>
1867
1868         PR tree-optimization/31358
1869         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
1870         the step with a NULL_TREE.
1871         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
1872         to sizetype if type is a pointer type.
1873         (add_candidate_1): Don't convert the base and step to
1874         the generic type if the orginal type is a pointer type.
1875         (add_iv_value_candidates): Use sizetype for the step
1876         if type is a pointer type.
1877         (cand_value_at): Likewise.
1878         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
1879         for pointer types.
1880         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
1881         Don't convert the tem affine to the type.
1882         (add_elt_to_tree): Use sizetype for the step if a pointer.
1883         Use POINTER_PLUS_EXPR for pointers.
1884         (aff_combination_to_tree): Use sizetype for the step if a
1885         pointer.
1886
1887 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
1888
1889         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
1890         Remove commutativity hint.
1891
1892 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
1893
1894         PR c/35438
1895         PR c/35439
1896         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
1897         errorneous type.  Check that v is a VAR_DECL.
1898
1899         PR middle-end/35099
1900         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
1901
1902 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
1903
1904         PR tree-optimization/35494
1905         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
1906         may be overriden at link and run time.
1907
1908 2008-03-10  Richard Guenther  <rguenther@suse.de>
1909
1910         PR tree-optimization/34677
1911         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
1912         (poolify_tree): Likewise.
1913         (modify_expr_template): Likewise.
1914         (poolify_modify_stmt): Likewise.
1915         (insert_fake_stores): Handle all component-ref style stores
1916         in addition to INDIRECT_REF.  Also handle complex types.
1917         Do not poolify the inserted load.
1918         (realify_fake_stores): Do not rebuild the tree but only
1919         make it a SSA_NAME copy.
1920         (init_pre): Remove initialzation of modify_expr_template.
1921         Do not allocate modify_expr_node_pool.
1922         (fini_pre): Do not free modify_expr_node_pool.
1923
1924 2008-03-10  Paul Brook  <paul@codesourcery.com>
1925
1926         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
1927         to avoid conflicts.
1928
1929 2008-03-10  Paul Brook  <paul@codesourcery.com>
1930             Mark Shinwell  <shinwell@codesourcery.com>
1931
1932         * config/arm/cortex-r4.md: New.
1933         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
1934         insn attributes.
1935         * config/arm/arm.md: Include cortex-r4.md.
1936         (insn): Add smmls, sdiv and udiv values.
1937         (generic_sched): Don't use generic scheduling for Cortex-R4.
1938         (arm_issue_rate): New function.
1939         (TARGET_SCHED_ISSUE_RATE): Define.
1940
1941 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
1942
1943         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
1944
1945 2008-03-10  Richard Guenther  <rguenther@suse.de>
1946
1947         * tree-ssa-pre.c (get_sccvn_value): Simplify.
1948         (compute_avail): Do not add stmt uses to AVAIL_OUT.
1949
1950 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
1951
1952         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
1953         Set default to true.
1954
1955 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1956
1957         * c.opt (Wsynth): Deprecate.
1958         * doc/invoke.texi (Option Summary, Warning Options): Document
1959         -Wno-format-contains-nul.
1960
1961 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
1962
1963         PR target/35496
1964         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
1965         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
1966
1967 2008-03-09  Ira Rosen  <irar@il.ibm.com>
1968
1969         * config/rs6000/rs6000.c (builtin_description): Rename vector
1970         left shift operations.
1971         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
1972         (altivec_vsl<VI_char>): Rename to ...
1973         (ashl<mode>3): ... new name.
1974         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
1975         gen_ashlv4si3.
1976         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
1977
1978 2008-03-08  Richard Guenther  <rguenther@suse.de>
1979
1980         * coverage.h (tree_coverage_counter_addr): Declare.
1981         * coverage.c (tree_coverage_counter_addr): New function.
1982         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
1983         before using again.
1984         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
1985         (tree_gen_one_value_profiler): Likewise.
1986         (tree_gen_ic_profiler): Likewise.
1987         (tree_gen_average_profiler): Likewise.
1988         (tree_gen_ior_profiler): Likewise.
1989
1990 2008-03-08  Richard Guenther  <rguenther@suse.de>
1991
1992         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
1993         (vn_binary_op_insert): Likewise.
1994         (vn_unary_op_lookup): Likewise.
1995         (vn_unary_op_insert): Likewise.
1996         (vn_nary_op_lookup): Declare.
1997         (vn_nary_op_insert): Likewise.
1998         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
1999         and binary hashes, use a single obstack for unary_op_pool
2000         and binary_op_pool.
2001         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
2002         a single struct vn_nary_op_s.  Store tree code length and
2003         a variable number of operands.
2004         (struct vn_reference_op_struct): Remove unused op2.
2005         (vn_reference_op_eq): Do not compare op2.
2006         (vn_reference_op_compute_hash): Do not compute hash of op2.
2007         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
2008         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
2009         with vn_nary_op_compute_hash.
2010         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
2011         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
2012         vn_nary_op_lookup.
2013         (vn_unary_op_insert, vn_binary_op_insert): Replace with
2014         vn_nary_op_insert.
2015         (visit_unary_op): Call nary functions.
2016         (visit_binary_op): Likewise.
2017         (process_scc): Adjust for struct vn_tables_s changes.
2018         (allocate_vn_table): Likewise.
2019         (free_vn_table): Likewise.
2020         * tree-vn.c (vn_add): Call nary functions.
2021         (vn_lookup): Likewise.
2022
2023 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
2024
2025         PR target/35498
2026         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
2027         wdst back after sync_compare_and_swapqhi_internal.
2028
2029 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
2030
2031         PR target/22152
2032         * config/i386/i386-modes.def (V1DI): New vector mode.
2033         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
2034         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
2035         (MMXMODE248): Ditto.
2036         (MMXMODE): Add V1DI mode.
2037         (mmxvecsize): Change DI mode to V1DI mode.
2038         ("mov<mode>): Use MMXMODEI8 mode iterator.
2039         ("*mov<mode>_internal_rex64"): Ditto.
2040         ("*mov<mode>_internal"): Ditto.
2041         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
2042         ("mmx_sub<mode>3"): Ditto.
2043         ("mmx_adddi3"): Remove insn pattern.
2044         ("mmx_subdi3"): Ditto.
2045         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
2046         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
2047         ("mmx_ashl<mode>3"): Ditto.
2048         ("mmx_lshrdi3"): Remove insn pattern.
2049         ("mmx_ashldi3"): Ditto.
2050         * config/i386/i386.c (classify_argument): Handle V1DImode.
2051         (function_arg_advance_32): Ditto.
2052         (function_arg_32): Ditto.
2053         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
2054         mmx_addv1di3 insn pattern.
2055         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
2056         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
2057         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
2058         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
2059         Remove definitions of built-in functions.
2060         (V1DI_type_node): New node.
2061         (v1di_ftype_v1di_int): Ditto.
2062         (v1di_ftype_v1di_v1di): Ditto.
2063         (v2si_ftype_v2si_si): Ditto.
2064         (v4hi_ftype_v4hi_di): Remove node.
2065         (v2si_ftype_v2si_di): Ditto.
2066         (ix86_init_mmx_sse_builtins): Handle V1DImode.
2067         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
2068         Redefine builtins using def_builtin_const with *_ftype_*_int node.
2069         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
2070         Add new builtins using def_builtin_const.
2071         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
2072         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
2073         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
2074         * config/i386/mmintrin.h (__v1di): New typedef.
2075         (_mm_add_si64): Cast arguments to __v1di type.
2076         (_mm_sub_si64): Ditto.
2077         (_mm_sll_pi16): Cast __count to __v4hi type.
2078         (_mm_sll_pi32): Cast __count to __v2si type.
2079         (_mm_sll_si64): Cast arguments to __v1di type.
2080         (_mm_srl_pi16): Cast __count to __v4hi type.
2081         (_mm_srl_pi32): Cast __count to __v2si type.
2082         (_mm_srl_si64): Cast arguments to __v1di type.
2083         (_mm_sra_pi16): Cast __count to __v4hi type.
2084         (_mm_sra_pi32): Cast __count to __v2si type.
2085         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
2086         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
2087         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
2088         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
2089         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
2090         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
2091         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
2092         (_mm_srai_pi32): Use __builtin_ia32_psradi.
2093         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
2094         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
2095         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
2096         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
2097
2098 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
2099
2100         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
2101
2102 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
2103
2104         PR target/35373
2105         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
2106         reg+const addressing for Altivec modes.  Don't generate reg+reg
2107         addressing for TFmode or TDmode quantities.
2108
2109 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
2110
2111         * c-common.c (vector_types_convertible_p): Call langhook
2112         instead of comptypes.
2113
2114 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2115
2116         PR tree-opt/35402
2117         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
2118         integral and scalar float variables which have a
2119         NULL DECL_INITIAL.
2120
2121 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
2122
2123         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
2124         dwarf_register_span hook when emitting unwind information for
2125         register-to-memory saves.
2126         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
2127         (rs6000_frame_related): Remove call to spe_synthesize_frame.
2128
2129 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
2130
2131         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
2132         for the same VAR_DECL.
2133
2134 2008-03-06  Tom Tromey  <tromey@redhat.com>
2135
2136         * treelang: Delete.
2137         * doc/standards.texi (Standards): Don't mention treelang.
2138         * doc/invoke.texi (Overall Options): Don't mention treelang.
2139         * doc/install.texi (Prerequisites): Don't mention bison or
2140         treelang.
2141         (Configuration): Don't mention treelang.
2142         (Building): Likewise.
2143         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
2144
2145 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
2146
2147         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
2148         word-extractions out of a multi-word object.
2149
2150 2008-03-06  Richard Guenther  <rguenther@suse.de>
2151
2152         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
2153         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
2154         result type and precision.
2155         * expr.c (get_inner_reference): Set unsignedp based on the result
2156         type of BIT_FIELD_REF.
2157         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
2158         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
2159         (try_instantiate_multiple_fields): Likewise.  Use the correct type
2160         for BIT_FIELD_REF.
2161         (sra_build_assignment): Likewise.
2162         (sra_build_elt_assignment): Likewise.
2163         (sra_explode_bitfield_assignment): Likewise.
2164         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
2165         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
2166         set BIT_FIELD_REF_UNSIGNED.
2167         (vectorizable_load): Likewise.
2168
2169 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
2170
2171         * cse.c (cse_extended_basic_block): Invalidate artificial defs
2172         at bb start.
2173
2174 2008-03-06  Richard Guenther  <rguenther@suse.de>
2175
2176         * alias.c (struct alias_set_entry): Move has_zero_child field
2177         to pack with alias_set.
2178
2179 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2180
2181         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2182         32bit host.
2183
2184 2008-03-05  Ian Lance Taylor  <iant@google.com>
2185
2186         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
2187
2188 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
2189
2190         * fwprop.c (update_df): Support width and offset parameters of
2191         df_ref_create.
2192         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
2193         global_conflicts): Change DF_REF_EXTRACT to either
2194         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
2195         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
2196         * df-scan.c (df_ref_record, df_defs_record,
2197         df_ref_create_structure, df_def_record_1, df_uses_record,
2198         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
2199         df_bb_refs_collect, df_entry_block_defs_collect,
2200         df_exit_block_uses_collect): Support new width and offset fields.
2201         (ref_extract_pool): New storage pool.
2202         (df_free_ref): New function.
2203         (df_reg_chain_unlink, df_free_collection_rec,
2204         df_sort_and_compress_refs): Call df_free_ref.
2205         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
2206         of df_ref_extract.
2207         (df_ref_create_structure): Allocate df_ref_extract if offset and
2208         width fields are used.
2209         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
2210         (df_uses_record): Get offset and width from ZERO_EXTRACT 
2211         and SIGN_EXTRACT.
2212         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
2213         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
2214         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
2215         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
2216         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
2217         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
2218         (df_ref_extract): New structure.
2219         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
2220         (df_ref_create): Add width and offset parameters.
2221         
2222 2008-03-05  Richard Guenther  <rguenther@suse.de>
2223
2224         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2225         Use ranges_overlap_p.
2226         (offset_overlaps_with_access): Rename
2227         to ranges_overlap_p and move ...
2228         * tree-flow-inline.h (ranges_overlap_p): ... here.
2229
2230         * tree.h (get_inner_reference, handled_component_p): Update
2231         comments.
2232
2233         * tree.h (record_component_aliases, get_alias_set,
2234         alias_sets_conflict_p, alias_sets_must_conflict_p,
2235         objects_must_conflict_p): Move declarations ...
2236         * alias.h (record_component_aliases, get_alias_set,
2237         alias_sets_conflict_p, alias_sets_must_conflict_p,
2238         objects_must_conflict_p): ... here.
2239         Include coretypes.h.
2240         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
2241
2242 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
2243
2244         * cfg.c: Include tree-flow.h.
2245         (remove_edge_raw): Call redirect_edge_var_map_clear.
2246         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
2247         * tree-flow-inline.h (redirect_edge_var_map_def): New.
2248         (redirect_edge_var_map_result): New.
2249         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
2250         PENDING_STMT use with redirect_edge_var_map_*.
2251         * tree-ssa.c (edge_var_maps): New definition.
2252         (redirect_edge_var_map_add): New.
2253         (redirect_edge_var_map_clear): New.
2254         (redirect_edge_var_map_dup): New.
2255         (redirect_edge_var_map_vector): New.
2256         (redirect_edge_var_map_destroy): New.
2257         (ssa_redirect_edge): Replace PENDING_STMT use with
2258         redirect_edge_var_map_*.
2259         (flush_pending_stmts): Same.
2260         (delete_tree_ssa): Destroy edge var map.
2261         * tree-flow.h (struct _edge_var_map): New.
2262         Define edge_var_map vector type.
2263         Declare redirect_edge_var_map_* prototypes.
2264         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
2265         * tree-cfg.c (reinstall_phi_args): Replace
2266         PENDING_STMT use with redirect_edge_var_map_*.
2267
2268 2008-03-05  Richard Guenther  <rguenther@suse.de>
2269
2270         PR tree-optimization/35472
2271         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
2272         whose single use_stmt has a overlapping set of loaded and
2273         stored symbols as that use_stmt might be a noop assignment then.
2274
2275 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
2276
2277         * gthr-rtems.h: Implement __gthread_mutex_destroy.
2278
2279 2008-03-05  Richard Guenther  <rguenther@suse.de>
2280
2281         PR c++/35336
2282         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
2283         should be constants.
2284         * tree-cfg.c (verify_expr): Verify it.
2285         * fold-const.c (fold_truthop): Remove code generating
2286         BIT_FIELD_REFs of structure bases.
2287         (fold_binary): Likewise.
2288         (fold_ternary): Position and size of BIT_FIELD_REFs are
2289         always host integers.
2290         (make_bit_field_ref): Remove.
2291         (optimize_bit_field_compare): Remove.
2292         (all_ones_mask_p): Remove.
2293
2294 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
2295
2296         PR gcc/33009
2297         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
2298         (split_block_and_df_analyze): New. Split basic block and rebuild
2299         dataflow.
2300         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
2301         SPLIT_BLOCK.
2302         (split_pattern_seq): Likewise.
2303         (erase_matching_seqs): Likewise.
2304         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
2305
2306 2008-03-04  Geoff Keating  <geoffk@apple.com>
2307
2308         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
2309         declaration and code.
2310         (tree_invalid_nonnegative_warnv_p): Likewise.
2311
2312 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
2313
2314         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
2315         examples.  Truncate option-names then causing overfull hbox.
2316
2317 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2318
2319         PR target/35222
2320         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
2321         on hpux10.
2322         * configure: Rebuilt.
2323
2324 2008-03-04  Rafael Espindola  <espindola@google.com>
2325
2326         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
2327         (tree_unary_nonnegative_warnv_p): New.
2328         (tree_binary_nonnegative_warnv_p): New.
2329         (tree_single_nonnegative_warnv_p): New.
2330         (tree_invalid_nonnegative_warnv_p): New.
2331         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
2332
2333 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2334
2335         PR 28322
2336         * opts.c (handle_option): Postpone 'unknown option' errors only for
2337         warning options.
2338
2339 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
2340
2341         PR target/35453
2342         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
2343         (_SIDD_XXX): This.
2344
2345 2008-03-04  Rafael Espindola  <espindola@google.com>
2346
2347         * fold-const.c (tree_unary_nonzero_warnv_p): New.
2348         (tree_binary_nonzero_warnv_p): New.
2349         (tree_single_nonzero_warnv_p): New.
2350         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
2351
2352 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
2353
2354         PR middle-end/35456
2355         * fold-const.c (fold_cond_expr_with_comparison): Prevent
2356         transformations for modes that have signed zeros.
2357         * ifcvt.c (noce_try_abs): Ditto.
2358
2359 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
2360
2361         * config/i386/i386.c (override_options): Force
2362         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
2363
2364 2008-03-04  Jan Hubicka  <jh@suse.cz>
2365
2366         PR c++/35262
2367         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
2368         in last commit.
2369
2370 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
2371
2372         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
2373         label to probe the stack.
2374
2375 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
2376
2377         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
2378         (__gthr_win32_mutex_destroy): Declare.
2379         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
2380         __gthr_win32_mutex_destroy.
2381         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
2382
2383 2008-03-03  Jan Hubicka  <jh@suse.cz>
2384
2385         PR c++/35262
2386         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
2387         aggressive on inlining cold calls.
2388
2389 2008-03-03  Richard Guenther  <rguenther@suse.de>
2390
2391         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
2392         struct copies into the expression table.
2393         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
2394         (try_to_simplify): Likewise.
2395         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
2396         integral and pointer arguments which do not change the
2397         precision to NOP_EXPRs.
2398         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
2399         VIEW_CONVERT_EXPR case.
2400
2401 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
2402
2403         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
2404         defined in a loop at depth 0 is invariant.
2405         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
2406         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
2407         be called at loop depth 0.
2408
2409 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
2410
2411         PR driver/35420
2412         * gcc.c (process_command): Update copyright notice dates.
2413         * gcov.c (print_version): Likewise.
2414         * gcov-dump.c (print_version): Likewise.
2415         * mips-tfile.c (main): Likewise.
2416         * mips-tdump.c (main): Likewise.
2417
2418 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2419
2420         PR 24924
2421         * c-common.c (flag_permissive): Delete.
2422         (constant_expression_warnings): Check flags first.
2423         (constant_expression_error): New.
2424         * c-common.h (flag_permissive): Delete.
2425         (constant_expression_error): Declare.
2426         * flags.h (flag_permissive): Declare. Update description.
2427         * diagnostic.c (pedwarn): Update.
2428         (permerror): New.
2429         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
2430         (permissive_error_kind): New.
2431         * toplev.c (flag_permissive): Define. Update description.
2432         * toplev.h (permissive_error_kind): Declare.
2433         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
2434         (pedwarn_c90): Use pedantic_warning_kind.
2435         * c-opts.c (c_common_post_options): flag_permissive does not affect
2436         flag_pedantic_errors.
2437
2438 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
2439
2440         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
2441         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
2442         __absvsi2, __absvDI2): Use unsigned arithmetic.
2443
2444 2008-03-02  Andi Kleen  <ak@suse.de>
2445             Richard Guenther  <rguenther@suse.de>
2446
2447         * struct-equiv.c: Remove file.
2448         * cfg_cleanup.c (condjump_equiv_p): Remove.
2449         * Makefile.in (OBJS-common): Remove struct-equiv.o.
2450         (struct-equiv.o): Remove rule.
2451         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
2452         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
2453         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
2454
2455 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2456
2457         * ifcvt.c (noce_process_if_block): Try to handle only the then
2458         block if the else block exists but isn't suitable.
2459
2460 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
2461
2462         PR gcc/35063
2463         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
2464         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
2465         regression from previous patch.
2466
2467 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
2468
2469         PR gcc/35063
2470         * gthr.h: Add __gthread_mutex_destroy as a function that must be
2471         implemented.
2472         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
2473         * gthr-single.h (__gthread_mutex_destroy): Likewise.
2474         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
2475         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
2476         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
2477         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
2478         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
2479         (__gthread_mutex_destroy_function): Rename to
2480         __gthread_mutex_destroy.
2481         * gthr-dce.h (__gthread_mutex_destroy): Call
2482         pthread_mutex_destroy.
2483         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
2484         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
2485         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
2486
2487 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2488
2489         * df-scan.c (df_ref_chain_change_bb): Simplify.
2490         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
2491         set_block_for_insn if there's any change.
2492         * df.h ((df_insn_change_bb): Fix prototype.
2493         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
2494         df_insn_change_bb, don't call set_block_for_insn.
2495         * emit-rtl.c (reorder_insns): Likewise.
2496         * haifa-sched.c (move_insn): Likewise.
2497
2498 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2499
2500         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
2501
2502 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2503
2504         * tree-flow-inline.h (next_readonly_imm_use): Return
2505         NULL_USE_OPERAND_P after the end.
2506
2507 2008-03-01  Richard Guenther  <rguenther@suse.de>
2508
2509         PR tree-optimization/35411
2510         * tree-sra.c (sra_build_assignment): Split conversion to
2511         final type to a separate statement if we are not assigning
2512         to a register.
2513
2514 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2515
2516         * fold-const.c (fold_convertible_p): Correct the logic to follow
2517         that in fold_convert().
2518
2519 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
2520
2521         PR c++/35315
2522         * tree-inline.c (build_duplicate_type): When we make a
2523         duplicate type, make it unique in the canonical types system.
2524
2525 2008-02-29  Tom Tromey  <tromey@redhat.com>
2526
2527         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
2528         input_file_stack_history, input_file_stack_restored): Remove.
2529         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
2530         * input.h (struct file_stack): Remove.
2531         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
2532         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
2533         Likewise.
2534         * diagnostic.h (struct diagnostic_context) <last_module>: Change
2535         type.
2536         (diagnostic_last_module_changed): Add 'map' argument.
2537         (diagnostic_set_last_function): Likewise.
2538         * diagnostic.c (undiagnostic_report_current_module): Iterate using
2539         line map, not input_file_stack.
2540         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
2541
2542 2008-02-29  Paul Brook  <paul@codesourcery.com>
2543
2544         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
2545
2546 2008-02-29  Paul Brook  <paul@codesourcery.com>
2547
2548         * config/arm/ieee754-df.S (muldf3): Use RET macros.
2549
2550 2008-02-29  Richard Guenther  <rguenther@suse.de>
2551
2552         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
2553         vn_lookup_or_add.
2554         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
2555         value for comparing for a store match.
2556         (simplify_unary_expression): Do nothing for SSA_NAMEs.
2557         (try_to_simplify): Do not do a full-blown reference lookup.
2558
2559 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2560
2561         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
2562         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
2563
2564         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
2565
2566 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
2567
2568         * tree-loop-linear.c (try_interchange_loops): Compare memory access
2569         strides against cache sizes.
2570
2571 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2572
2573         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
2574         constant to fpul.
2575
2576 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2577
2578         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
2579         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
2580         is smaller than the original promoted value.
2581         (simplify_subreg): If OP is a SUBREG, try to preserve its
2582         SUBREG_PROMOTED_VAR_P information.
2583
2584 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
2585
2586         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
2587         (VN_INFO_GET): Allocate new objects on the obstack.
2588         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
2589         for rpo_numbers_temp, for consistency.
2590         (free_scc_vn): Free the obstack.
2591
2592 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
2593
2594         * doc/invoke.texi: Document -ftree-loop-distribution.
2595         * tree-loop-distribution.c: New.
2596         * tree-pass.h (pass_loop_distribution): New.
2597         * graphds.h (struct graph): Add htab_t indices.
2598         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
2599         * tree-vectorizer.c (rename_variables_in_loop): Extern.
2600         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
2601         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
2602         * tree-data-ref.c (debug_data_dependence_relations): New.
2603         (dump_data_dependence_relation): Also print data references.
2604         (free_data_ref): Extern.
2605         (same_access_functions): Moved...
2606         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
2607         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
2608         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
2609         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
2610         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
2611         (stmts_from_loop): Skip LABEL_EXPR.
2612         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
2613         New.
2614         (build_rdg): Initialize rdg->indices htab.
2615         (free_rdg, stores_from_loop, ref_base_address,
2616         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
2617         have_similar_memory_accesses_1, ref_base_address_1,
2618         remove_similar_memory_refs): New.
2619         * tree-data-ref.h: Depend on tree-chrec.h.
2620         (debug_data_dependence_relations, free_data_ref): Declared.
2621         (same_access_functions): ... here.
2622         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
2623         New.
2624         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
2625         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
2626         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
2627         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
2628         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
2629         rdg_vertex_for_stmt): Declared.
2630         (struct rdg_edge): Add level.
2631         (RDGE_LEVEL): New.
2632         (free_rdg, stores_from_loop, remove_similar_memory_refs,
2633         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
2634         Declared.
2635         (rdg_has_similar_memory_accesses): New.
2636         * tree-vect-analyze.c: Remove unused static decls.
2637         * lambda.h (dependence_level): New.
2638         * common.opt (ftree-loop-distribution): New.
2639         * tree-flow.h (mark_virtual_ops_in_bb, 
2640         slpeel_tree_duplicate_loop_to_edge_cfg,
2641         rename_variables_in_loop): Declared.
2642         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
2643         (OBJS-common): Add tree-loop-distribution.o.
2644         (tree-loop-distribution.o): New rule.
2645         * tree-cfg.c (mark_virtual_ops_in_bb): New.
2646         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
2647         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
2648
2649 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
2650
2651         PR target/33963
2652         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
2653         other than structures and unions.
2654
2655 2008-02-28  Richard Guenther  <rguenther@suse.de>
2656
2657         Revert:
2658         2008-02-26  Richard Guenther  <rguenther@suse.de>
2659
2660         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2661         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2662         (lookup_decl_from_uid): Declare.
2663         (remove_decl_from_map): Likewise.
2664         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2665         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2666         (decl_for_uid_map): New global hashtable mapping DECL_UID
2667         to the decl tree.
2668         (init_ttree): Allocate it.
2669         (insert_decl_to_uid_decl_map): New helper function.
2670         (make_node_stat): Insert new decls into the map.
2671         (copy_node_stat): Likewise.
2672         (lookup_decl_from_uid): New function.
2673         (remove_decl_from_map): Likewise.
2674         (print_decl_for_uid_map_statistics): New helper.
2675         (dump_tree_statistics): Call it.
2676
2677         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2678         (referenced_var_iterator): Adjust.
2679         (FOR_EACH_REFERENCED_VAR): Adjust.
2680         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2681         (num_referenced_vars): Adjust.
2682         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2683         (first_referenced_var): Remove.
2684         (end_referenced_vars_p): Likewise.
2685         (next_referenced_var): Likewise.
2686         (referenced_var_iterator_set): New helper function.
2687         * tree-dfa.c (referenced_var_lookup): Adjust.
2688         (referenced_var_check_and_insert): Likewise.
2689         (remove_referenced_var): Likewise.
2690         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2691         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2692         (verify_call_clobbering): Likewise.
2693         (verify_memory_partitions): Likewise.
2694         (init_tree_ssa): Allocate bitmap instead of hashtable for
2695         referenced_vars.
2696         (delete_tree_ssa): Adjust.
2697         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2698         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2699         (compute_tag_properties): Likewise.
2700         (set_initial_properties): Likewise.
2701         (find_partition_for): Likewise.
2702         (update_reference_counts): Likewise.
2703         (dump_may_aliases_for): Likewise.
2704         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2705         (add_call_clobber_ops): Likewise.
2706         (add_call_read_ops): Likewise.
2707         (get_asm_expr_operands): Likewise.
2708         * tree-into-ssa.c (dump_decl_set): Likewise.
2709         (update_ssa): Likewise.
2710         * tree-sra.c (scan_function): Likewise.
2711         (decide_instantiations): Likewise.
2712         (scalarize_parms): Likewise.
2713         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2714         (dsa_named_for): Likewise.
2715         * tree-ssa-structalias.c (update_alias_info): Likewise.
2716         (merge_smts_into): Likewise.
2717
2718 2008-02-27  David Daney  <ddaney@avtrex.com>
2719
2720         PR target/34409
2721         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
2722         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
2723         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
2724         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
2725         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
2726
2727 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
2728
2729         PR target/25477
2730         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
2731         (BUILT_IN_NEXTTOWARD): Remove.
2732         (BUILT_IN_NEXTTOWARDF): Ditto.
2733         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
2734         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
2735
2736 2008-02-27  Tom Tromey  <tromey@redhat.com>
2737
2738         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
2739         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
2740
2741 2008-02-27  Jan Beulich  <jbeulich@novell.com>
2742
2743         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
2744         update the respective field on newdecl.
2745
2746 2008-02-27  Revital Eres  <eres@il.ibm.com>
2747
2748         PR rtl-optimization/34999
2749         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
2750         crossing edges that ends with a call insn.
2751         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
2752         call insn and clear the EDGE_CROSSING flag of the crossing edge
2753         when fixing fallthru edges.
2754
2755 2008-02-27  Richard Guenther  <rguenther@suse.de>
2756
2757         PR middle-end/35390
2758         * fold-const.c (fold_unary): Return the correct argument,
2759         converted to the result type.
2760
2761 2008-02-27  Richard Guenther  <rguenther@suse.de>
2762
2763         PR middle-end/34971
2764         * expr.c (expand_expr_real_1): Assert on rotates that operate
2765         on partial modes.
2766         * fold-const.c (fold_binary): Use the types precision, not the
2767         bitsize of the mode if folding rotate expressions.  Build rotates
2768         only for full modes.
2769
2770 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
2771
2772         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
2773         and CPP_PRAGMA_EOL.
2774         * c-pragma.c (pragma_ns_name): New typedef.
2775         (registered_pp_pragmas): New variable.
2776         (c_pp_lookup_pragma): New function.
2777         (c_register_pragma_1): If flag_preprocess_only, do nothing
2778         for non-expanded pragmas, for expanded ones push pragma's
2779         namespace and name into registered_pp_pragmas vector.
2780         (c_invoke_pragma_handler): Register OpenMP pragmas even when
2781         flag_preprocess_only, don't register GCC pch_preprocess
2782         pragma if flag_preprocess_only.
2783         * c-opts.c (c_common_init): Call init_pragma even if
2784         flag_preprocess_only.
2785         * c-pragma.c (c_pp_lookup_pragma): New prototype.
2786         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
2787         cpp_register_pragma if flag_preprocess_only.
2788
2789 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2790
2791         PR c/28800
2792         * c-parser.c (c_parser_translation_unit): Warn for empty
2793         translation unit, not empty source file.
2794
2795 2008-02-26  Paul Brook  <paul@codesourcery.com>
2796
2797         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
2798         operand for Thumb-2.
2799         * config/arm/arm.h (reg_class): Add CORE_REGS.
2800         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
2801         (BASE_REG_CLASS): Use CORE_REGS.
2802         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
2803         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
2804         (REGNO_OK_FOR_INDEX_P): Exclude SP.
2805         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
2806         ARM_REGNO_OK_FOR_INDEX_P.
2807         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
2808         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
2809         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
2810         (ldm/stm peepholes): Ditto.
2811         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
2812         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
2813         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
2814         * config/arm/constraints.md: Enable "k" constraint on ARM.
2815
2816 2008-02-27  Ben Elliston  <bje@au.ibm.com>
2817
2818         * config/rs6000/rs6000.c: Annotate cache line size field in all
2819         instances of struct processor_costs.
2820
2821 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
2822
2823         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
2824         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
2825         jump_bypass): New counters.
2826         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
2827         * dce.c (gate_ud_dce): Same.
2828         (gate_fast_dce): Same.
2829         * dse.c (gate_dse1): New function.
2830         (gate_dse2): New function.
2831         (gate_dse): Merge results of new gate functions.
2832         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
2833         (gate_handle_jump_bypass): Add dbg_cnt.
2834         (gate_handle_gcse): Add dbg_cnt.
2835         * ifcvt.c (gate_handle_if_conversion): Same.
2836         (gate_handle_if_after_combine): Same.
2837         (gate_handle_if_after_reload): Same.
2838         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
2839
2840 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
2841
2842         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
2843         line sizes.
2844         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
2845
2846 2008-02-26  Jason Merrill  <jason@redhat.com>
2847
2848         PR c++/35315
2849         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
2850         alone if it's the naming decl for the type's main variant.
2851
2852 2008-02-26  Tom Tromey  <tromey@redhat.com>
2853
2854         * system.h (USE_MAPPED_LOCATION): Poison.
2855         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
2856         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
2857         (make_goto_expr_edges): Likewise.
2858         (remove_bb): Likewise.
2859         (execute_warn_function_return): Likewise.
2860         * basic-block.h (struct edge_def) <goto_locus>: Change type to
2861         location_t.
2862         * c-common.c (fname_decl): Remove old location code.
2863         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
2864         location code.
2865         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
2866         variant.
2867         (ASM_INPUT_SOURCE_LOCATION): Likewise.
2868         (gen_rtx_ASM_INPUT): Likewise.
2869         (gen_rtx_ASM_INPUT_loc): Likewise.
2870         (get_rtx_asm_OPERANDS): Remove.
2871         * cfglayout.c (insn_locators_alloc): Remove old location code.
2872         (set_curr_insn_source_location): Likewise.
2873         (curr_insn_locator): Likewise.
2874         * print-tree.c (print_node): Remove old location code.
2875         * tree-mudflap.c (mf_varname_tree): Remove old location code.
2876         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
2877         * cfgexpand.c (expand_gimple_cond_expr): Don't use
2878         location_from_locus.
2879         (construct_exit_block): Remove old location code.
2880         * emit-rtl.c (force_next_line_note): Remove old location code.
2881         * profile.c (branch_prob): Remove old location code.
2882         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
2883         LOC_LINE): Remove old-location variants.
2884         * langhooks.c (lhd_print_error_function): Remove old location
2885         code.
2886         * configure, config.in: Rebuilt.
2887         * configure.ac (--enable-mapped-location): Remove.
2888         * c-decl.c (c_init_decl_processing): Remove old location code.
2889         (finish_function): Likewise.
2890         * recog.c (decode_asm_operands): Remove old location code.
2891         * c-pch.c (c_common_read_pch): Remove old location code.
2892         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
2893         variants.
2894         * gimple-low.c (lower_function_body): Remove old location code.
2895         * toplev.c (unknown_location): Remove.
2896         (push_srcloc): Remove old-location variant.
2897         (process_options): Remove old location code.
2898         (lang_dependent_init): Likewise.
2899         * input.h (UNKNOWN_LOCATION): Move definition.
2900         (location_t): Undeprecate.
2901         (source_locus): Remove.
2902         (location_from_locus): Remove.
2903         (struct location_s): Remove.
2904         Remove all old-location code.
2905         (input_line, input_filename): Remove.
2906         * final.c (final_scan_insn): Remove old location code.
2907         * diagnostic.c (diagnostic_build_prefix): Remove
2908         USE_MAPPED_LOCATION test.
2909         * tree.h (gimple_stmt) <locus>: Now a location_t.
2910         (tree_exp) <locus>: Likewise.
2911         (DECL_IS_BUILTIN): Remove old-location variant.
2912         (annotate_with_file_line, annotate_with_locus): Likewise.
2913         (expr_locus, set_expr_locus): Update.
2914         * tree.c (build1_stat): Remove old location code.
2915         (last_annotated_node): Remove.
2916         (annotate_with_file_line): Remove old-location variant.
2917         (annotate_with_locus): Likewise.
2918         (expr_location): Remove old location code.
2919         (set_expr_location): Likewise.
2920         (expr_has_location): Likewise.
2921         (expr_locus): Likewise.
2922         (set_expr_locus): Likewise.
2923         (expr_filename): Don't use location_from_locus.
2924         (expr_lineno): Likewise.
2925         * rtl-error.c (location_for_asm): Remove old location code.
2926         * c-lex.c (cb_line_change): Remove old location code.
2927         (fe_file_change): Likewise.
2928         (cb_def_pragma): Likewise.
2929         (c_lex_with_flags): Likewise.
2930         * gengtype.c (do_typedef): Don't special-case location types.
2931         (define_location_structures): Remove.
2932         (main): Don't call define_location_structures.
2933         * tree-pretty-print.c (dump_implicit_edges): Remove old location
2934         code.
2935
2936 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2937
2938         PR 26264
2939         * builtins.def (BUILT_IN_STDARG_START): Remove.
2940         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
2941         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2942         * tree-inline.c (inline_forbidden_p_1): Likewise.
2943         
2944 2008-02-26  Richard Guenther  <rguenther@suse.de>
2945
2946         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2947         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2948         (lookup_decl_from_uid): Declare.
2949         (remove_decl_from_map): Likewise.
2950         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2951         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2952         (decl_for_uid_map): New global hashtable mapping DECL_UID
2953         to the decl tree.
2954         (init_ttree): Allocate it.
2955         (insert_decl_to_uid_decl_map): New helper function.
2956         (make_node_stat): Insert new decls into the map.
2957         (copy_node_stat): Likewise.
2958         (lookup_decl_from_uid): New function.
2959         (remove_decl_from_map): Likewise.
2960         (print_decl_for_uid_map_statistics): New helper.
2961         (dump_tree_statistics): Call it.
2962
2963         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2964         (referenced_var_iterator): Adjust.
2965         (FOR_EACH_REFERENCED_VAR): Adjust.
2966         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2967         (num_referenced_vars): Adjust.
2968         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2969         (first_referenced_var): Remove.
2970         (end_referenced_vars_p): Likewise.
2971         (next_referenced_var): Likewise.
2972         (referenced_var_iterator_set): New helper function.
2973         * tree-dfa.c (referenced_var_lookup): Adjust.
2974         (referenced_var_check_and_insert): Likewise.
2975         (remove_referenced_var): Likewise.
2976         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2977         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2978         (verify_call_clobbering): Likewise.
2979         (verify_memory_partitions): Likewise.
2980         (init_tree_ssa): Allocate bitmap instead of hashtable for
2981         referenced_vars.
2982         (delete_tree_ssa): Adjust.
2983         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2984         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2985         (compute_tag_properties): Likewise.
2986         (set_initial_properties): Likewise.
2987         (find_partition_for): Likewise.
2988         (update_reference_counts): Likewise.
2989         (dump_may_aliases_for): Likewise.
2990         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2991         (add_call_clobber_ops): Likewise.
2992         (add_call_read_ops): Likewise.
2993         (get_asm_expr_operands): Likewise.
2994         * tree-into-ssa.c (dump_decl_set): Likewise.
2995         (update_ssa): Likewise.
2996         * tree-sra.c (scan_function): Likewise.
2997         (decide_instantiations): Likewise.
2998         (scalarize_parms): Likewise.
2999         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3000         (dsa_named_for): Likewise.
3001         * tree-ssa-structalias.c (update_alias_info): Likewise.
3002         (merge_smts_into): Likewise.
3003
3004 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3005
3006         PR 34351
3007         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
3008         * c-opts.c (c_common_handle_option): Wall enables
3009         Wvolatile-register-var.
3010         * common.opt: Move Wvolatile-register-var to...
3011         * c.opt: ...here.
3012         
3013 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3014
3015         * common.opt (Wlarger-than=): New.
3016         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
3017         -Wlarger-than=.
3018         * opts.c (common_handle_option): Handle -Wlarger-than=.
3019         * optc-gen.awk: Likewise.
3020         * opth-gen.awk: Likewise.
3021         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
3022         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3023         
3024 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3025
3026         * c-common.c (match_case_to_enum_1): Add appropriate
3027         OPT_W* parameter to warning.
3028         (c_do_switch_warnings): Likewise.
3029         * c-typeck.c (warning_init): Add one more parameter following
3030         'warning' function.
3031         (push_init_level): Update call to warning_init.
3032         (pop_init_level): Likewise.
3033         (add_pending_init): Likewise.
3034         (output_init_element: Likewise.
3035
3036 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3037
3038         PR 28322
3039         * toplev.c (toplev_main): If there are warnings or error, print
3040         errors for ignored options.
3041         * opts.c (ignored_options): New static variable.
3042         (postpone_unknown_option_error): New.
3043         (print_ignored_options): New.
3044         (handle_option): Postpone errors for unknown -Wno-* options.
3045         * opts.h (print_ignored_options): Declare.
3046         
3047 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
3048
3049         * config/mips/mips.md (loadgp_blockage, blockage): Change type
3050         to "ghost".
3051
3052 2008-02-25  Richard Guenther  <rguenther@suse.de>
3053
3054         Revert:
3055         2008-02-25  Richard Guenther  <rguenther@suse.de>
3056
3057         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3058         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3059         (lookup_decl_from_uid): Declare.
3060         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3061         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3062         (decl_for_uid_map): New global hashtable mapping DECL_UID
3063         to the decl tree.
3064         (init_ttree): Allocate it.
3065         (insert_decl_to_uid_decl_map): New helper function.
3066         (make_node_stat): Insert new decls into the map.
3067         (copy_node_stat): Likewise.
3068         (lookup_decl_from_uid): New function.
3069         (print_decl_for_uid_map_statistics): New helper.
3070         (dump_tree_statistics): Call it.
3071
3072         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3073         (referenced_var_iterator): Adjust.
3074         (FOR_EACH_REFERENCED_VAR): Adjust.
3075         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3076         (num_referenced_vars): Adjust.
3077         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3078         (first_referenced_var): Remove.
3079         (end_referenced_vars_p): Likewise.
3080         (next_referenced_var): Likewise.
3081         (referenced_var_iterator_set): New helper function.
3082         * tree-dfa.c (referenced_var_lookup): Adjust.
3083         (referenced_var_check_and_insert): Likewise.
3084         (remove_referenced_var): Likewise.
3085         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
3086         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3087         (verify_call_clobbering): Likewise.
3088         (verify_memory_partitions): Likewise.
3089         (init_tree_ssa): Allocate bitmap instead of hashtable for
3090         referenced_vars.
3091         (delete_tree_ssa): Adjust.
3092         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
3093         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3094         (compute_tag_properties): Likewise.
3095         (set_initial_properties): Likewise.
3096         (find_partition_for): Likewise.
3097         (update_reference_counts): Likewise.
3098         (dump_may_aliases_for): Likewise.
3099         * tree-ssa-operands.c (add_virtual_operand): Likewise.
3100         (add_call_clobber_ops): Likewise.
3101         (add_call_read_ops): Likewise.
3102         (get_asm_expr_operands): Likewise.
3103         * tree-into-ssa.c (dump_decl_set): Likewise.
3104         (update_ssa): Likewise.
3105         * tree-sra.c (scan_function): Likewise.
3106         (decide_instantiations): Likewise.
3107         (scalarize_parms): Likewise.
3108         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3109         (dsa_named_for): Likewise.
3110         * tree-ssa-structalias.c (update_alias_info): Likewise.
3111         (merge_smts_into): Likewise.
3112
3113 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
3114
3115         PR fortran/29549
3116         * doc/invoke.texi (-fcx-limited-range): Document new option.
3117         * toplev.c (process_options): Handle -fcx-fortran-rules.
3118         * common.opt: Add documentation for -fcx-fortran-rules.
3119
3120 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
3121
3122         PR c/35162
3123         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
3124         actual behaviour and C99.
3125         
3126 2008-02-26  Ben Elliston  <bje@au.ibm.com>
3127
3128         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
3129         (ASM_CPU_POWER6_SPEC): Likewise.
3130         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
3131         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
3132         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
3133
3134 2008-02-25  Richard Guenther  <rguenther@suse.de>
3135
3136         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3137         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3138         (lookup_decl_from_uid): Declare.
3139         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3140         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3141         (decl_for_uid_map): New global hashtable mapping DECL_UID
3142         to the decl tree.
3143         (init_ttree): Allocate it.
3144         (insert_decl_to_uid_decl_map): New helper function.
3145         (make_node_stat): Insert new decls into the map.
3146         (copy_node_stat): Likewise.
3147         (lookup_decl_from_uid): New function.
3148         (print_decl_for_uid_map_statistics): New helper.
3149         (dump_tree_statistics): Call it.
3150
3151         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3152         (referenced_var_iterator): Adjust.
3153         (FOR_EACH_REFERENCED_VAR): Adjust.
3154         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3155         (num_referenced_vars): Adjust.
3156         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3157         (first_referenced_var): Remove.
3158         (end_referenced_vars_p): Likewise.
3159         (next_referenced_var): Likewise.
3160         (referenced_var_iterator_set): New helper function.
3161         * tree-dfa.c (referenced_var_lookup): Adjust.
3162         (referenced_var_check_and_insert): Likewise.
3163         (remove_referenced_var): Likewise.
3164         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
3165         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3166         (verify_call_clobbering): Likewise.
3167         (verify_memory_partitions): Likewise.
3168         (init_tree_ssa): Allocate bitmap instead of hashtable for
3169         referenced_vars.
3170         (delete_tree_ssa): Adjust.
3171         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
3172         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3173         (compute_tag_properties): Likewise.
3174         (set_initial_properties): Likewise.
3175         (find_partition_for): Likewise.
3176         (update_reference_counts): Likewise.
3177         (dump_may_aliases_for): Likewise.
3178         * tree-ssa-operands.c (add_virtual_operand): Likewise.
3179         (add_call_clobber_ops): Likewise.
3180         (add_call_read_ops): Likewise.
3181         (get_asm_expr_operands): Likewise.
3182         * tree-into-ssa.c (dump_decl_set): Likewise.
3183         (update_ssa): Likewise.
3184         * tree-sra.c (scan_function): Likewise.
3185         (decide_instantiations): Likewise.
3186         (scalarize_parms): Likewise.
3187         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3188         (dsa_named_for): Likewise.
3189         * tree-ssa-structalias.c (update_alias_info): Likewise.
3190         (merge_smts_into): Likewise.
3191
3192 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
3193
3194         PR target/35258
3195         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
3196         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
3197         * alias.h (nonoverlapping_memrefs_p): Likewise.
3198
3199 2008-02-25  Jan Beulich  <jbeulich@novell.com>
3200
3201         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
3202         * config/i386/netware-libgcc.exp: Add __bswap?i2,
3203         __emultls_get_address, __emultls_register_common,
3204         __floatundi?f, and _Unwind_GetIPInfo.
3205         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
3206         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
3207         (gen_regparm_prefix): Likewise.
3208         (i386_nlm_encode_section_info): Sync with
3209         config/i386/winnt.c:i386_pe_encode_section_info().
3210         (i386_nlm_maybe_mangle_decl_assembler_name): New.
3211         i386_nlm_mangle_decl_assembler_name): New.
3212         (netware_override_options): New.
3213         * config/i386/netware.h (netware_override_options): Declare.
3214         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
3215         (i386_nlm_mangle_decl_assembler_name): Declare.
3216         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
3217
3218 2008-02-25  Ben Elliston  <bje@au.ibm.com>
3219
3220         PR other/32948
3221         * c-decl.c (grokdeclarator): Remove unused local variables
3222         `typedef_type' and `type_as_written'.
3223         * bb-reorder.c
3224         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
3225         unused local variable `has_hot_blocks'.
3226         (fix_crossing_conditional_branches): Remove unused local variable
3227         `prev_bb'.
3228         
3229 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
3230
3231         PR middle-end/19984
3232         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
3233         using DEF_C99_BUILTIN.
3234         (BUILT_IN_NANF): Ditto.
3235         (BUILT_IN_NANL): Ditto.
3236
3237 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
3238             Revital Eres  <eres@il.ibm.com>
3239
3240         * modulo-sched.c (calculate_must_precede_follow): Address TODO
3241         regarding the order of two dependent insns in the same row.
3242
3243 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
3244
3245         * stor-layout.c (layout_decl): Do not bump the alignment of a
3246         bit-field to more than byte alignment if it is packed.
3247
3248 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
3249
3250         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
3251         e300c2 and e300c3.
3252
3253 2008-02-24  Diego Novillo  <dnovillo@google.com>
3254
3255         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
3256
3257         PR 33738
3258         * tree-vrp.c (vrp_evaluate_conditional): With
3259         -Wtype-limits, emit a warning when comparing against a
3260         constant outside the natural range of OP0's type.
3261         * c.opt (Wtype-limits): Move ...
3262         * common.opt (Wtype-limits): ... here.
3263
3264 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
3265
3266         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
3267         * config/rs6000/e300c2c3.md: New file.
3268         * config/rs6000/rs6000.c (processor_costs): Add new costs for
3269         e300c2 and e300c3.
3270         (rs6000_override_options): Add e300c2 and e300c3 cases to
3271         processor_target_table. Do not allow usage of Altivec or Spe
3272         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
3273         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
3274         * config/rs6000/rs6000.h (processor_type): Add
3275         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
3276         (ASM_CPU_SPEC): Add e300c2 and e300c3.
3277         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
3278         and ppce300c3. Include e300c2c3.md.
3279
3280 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
3281
3282         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
3283         instead of TARGET_STRICT_ALIGN.
3284
3285 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
3286
3287         * explow.c (memory_address): Assert that the generated address is
3288         valid.
3289
3290 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3291
3292         PR target/25477
3293         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
3294         * config/darwin-ppc-ldouble-patch.def: New file.
3295         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
3296         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
3297         SUBTARGET_INIT_BUILTINS if defined.
3298         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
3299         New functions.
3300
3301 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3302
3303         PR rtl-opt/33512
3304         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
3305         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
3306
3307 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3308
3309         PR pch/35027
3310         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
3311         file" warning condtional on -Winvalid-PCH.
3312
3313 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
3314
3315         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
3316
3317 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
3318
3319         PR target/22076
3320         PR target/34256 
3321         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
3322         prevent reload from using MMX registers.
3323         (*mov<mode>_internal): Ditto.
3324         (*movv2sf_internal_rex64): Ditto.
3325         (*movv2sf_internal): Ditto.
3326
3327 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3328
3329         PR documentation/31569
3330         * doc/install.texi2html: Use makeinfo --no-number-sections.
3331
3332 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
3333
3334         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
3335         ensure that we can address an entire entity > 8 bytes.  Don't
3336         generate reg+reg addressing for such data.
3337
3338 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
3339
3340         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
3341         strings when optimizing for size, unless the target cares about
3342         alignment.
3343
3344 2008-02-22  Tom Tromey  <tromey@redhat.com>
3345
3346         * regclass.c (current_pass): Remove declaration.
3347
3348 2008-02-22  Anatoly Sokolov <aesok@post.ru>
3349
3350         * config/avr/libgcc.S (__RAMPZ__): Define.
3351         (__do_copy_data): Add for devices with 128KB code memory.
3352
3353 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
3354
3355         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3356         Use spe_abi.
3357         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
3358
3359 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
3360
3361         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
3362         GENNONACR_REGS.
3363
3364 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3365
3366         PR c/19999
3367         * c-typeck.c (build_binary_op): Warn about floating point
3368         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
3369
3370 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
3371
3372         PR target/34526
3373         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
3374         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
3375         add vrsave.
3376         (rs6000_override_options): Set altivec_abi as default, not override,
3377         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
3378         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
3379         is used; use new member spe_abi.
3380         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
3381         spe_abi and altivec_abi.
3382
3383 2008-02-22  Tomas Bily  <tbily@suse.cz>
3384
3385         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
3386
3387 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3388
3389         PR bootstrap/35273
3390         * config.build (build_file_translate): Set to `CMD //c' only if
3391         it works.
3392         * Makefile.in (build_file_translate): Improve comment.
3393
3394 2008-02-21  Jan Hubicka  <jh@suse.cz>
3395
3396         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
3397         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
3398         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
3399
3400 2008-02-21  Michael Matz  <matz@suse.de>
3401
3402         PR target/35264
3403         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
3404
3405 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
3406
3407         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
3408         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
3409         as insn constraint.
3410         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
3411         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
3412         SSE_VEC_FLOAT_MODE_P as insn constraint.
3413         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
3414         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
3415         sse4a_movntdf using MODEF mode iterator.
3416         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
3417         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
3418         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
3419         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
3420         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
3421         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
3422         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
3423
3424 2008-02-21  Richard Guenther  <rguenther@suse.de>
3425
3426         * tree.def (PAREN_EXPR): New tree code.
3427         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
3428         and PAREN_EXPR.
3429         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
3430         * expr.c (expand_expr_real_1): Likewise.
3431         * tree-inline.c (estimate_num_insns_1): Likewise.
3432         * tree-complex.c (expand_complex_move): Likewise.
3433         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
3434         as plain x.
3435
3436 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3437
3438         PR target/35225
3439         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
3440
3441 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3442
3443         PR target/35190
3444         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
3445
3446         * config/sh/sh.c (find_barrier): Don't go past
3447         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
3448
3449 2008-02-20  DJ Delorie  <dj@redhat.com>
3450
3451         * config/h8300/h8300.md (insv): Force source operand to be a register.
3452
3453         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
3454         as a jump, not as a plain insn.
3455         
3456 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
3457
3458         * doc/invoke.texi (Warning Options): Add new option
3459         -Wframe-larger-than=.
3460         (-Wframe-larger-than): Document.
3461
3462         * flags.h (warn_frame_larger_than, frame_larger_than_size):
3463         Add declarations for new option variables.
3464
3465         * final.c (final_start_function): Check the frame size
3466         before emission and issue a Wframe-larger-than warning.
3467
3468         * opts.c (warn_frame_larger_than, frame_larger_than_size):
3469         Add definitions for new option variables.
3470         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
3471
3472         * common.opt (Wframe-larger-than=): New option.
3473
3474 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
3475
3476         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
3477         (<sse>_div<mode>3): Ditto.
3478         (<sse>_vmdiv<mode>3): Ditto.
3479         (<sse>_vmsqrt<mode>2): Ditto.
3480         (*smax<mode>3): Ditto.
3481         (sse5_frcz<mode>2): Ditto.
3482         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
3483         as insn constraint.
3484
3485 2008-02-20  Richard Guenther  <rguenther@suse.de>
3486
3487         PR middle-end/35265
3488         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
3489         be happy with INTEGRAL_TYPE_P.
3490
3491 2008-02-20  Richard Guenther  <rguenther@suse.de>
3492
3493         * fold-const.c (split_tree): Associate floatig-point expressions
3494         if flag_associative_math is set.
3495
3496 2008-02-20  Richard Guenther  <rguenther@suse.de>
3497
3498         * tree.h (fold_real_zero_addition_p): Declare.
3499         * fold-const.c (fold_real_zero_addition_p): Export.
3500         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
3501         floating-point operations with zero and one.
3502
3503 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
3504
3505         * doc/install.texi: Correct references to CFLAGS, replacing them
3506         with BOOT_CFLAGS.  Document flags used during bootstrap for
3507         target libraries.
3508                                 
3509 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
3510
3511         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
3512         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
3513         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
3514         insn constraint.
3515         (smin<mode>3): Ditto from similar patterns.
3516         (smax<mode>3): Ditto.
3517         (*ieee_smin<mode>3): Ditto.
3518         (*ieee_smax<mode>3): Ditto.
3519         * config/i386/sse.md (sse): New mode attribute.
3520         (mov<mode>): Macroize expander from movv4sf and movv2df using
3521         SSEMODEF2P mode iterator.
3522         (<sse>_movnt<mode>): Ditto from similar patterns. Use
3523         SSE_VEC_FLOAT_MODE_P as insn constraint.
3524         (storent<mode>): Ditto.
3525         (storent<mode>): Macroize expander from storentsf and storentdf using
3526         MODEF mode iterator.
3527         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
3528         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
3529         (abs<mode>2): Ditto from similar patterns.
3530         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
3531         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
3532         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
3533         (<sse>_vmsqrt<mode>2): Ditto.
3534         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
3535         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
3536         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
3537         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
3538         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
3539         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
3540         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
3541         insn constraint.
3542         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
3543         iterator and SSE_FLOAT_MODE_P as insn constraint.
3544         (<sse>_ucomi): Ditto from similar patterns.
3545         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
3546         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
3547         SSE_VEC_FLOAT_MODE_P as insn constraint.
3548         (vcond<mode>): Ditto from similar patterns.
3549         (and<mode>3, *and<mode>3): Ditto.
3550         (<sse>_nand<mode>3): Ditto.
3551         (ior<mode>3, *ior<mode>3): Ditto.
3552         (xor<mode>3, *xor<mode>3): Ditto.
3553         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
3554         iterator and SSE_FLOAT_MODE_P as insn constraint.
3555         (*nand<mode>3): Ditto from similar patterns.
3556         (*ior<mode>3): Ditto.
3557         (*xor<mode>3): Ditto.
3558
3559 2008-02-20  Ira Rosen  <irar@il.ibm.com>
3560
3561         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
3562         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
3563         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
3564
3565 2008-02-19  Jan Hubicka  <jh@suse.cz>
3566
3567         * predict.c (tree_bb_level_predictions): Remove variable next
3568         mistakely introduced by previous commit.
3569
3570 2008-02-19  Jan Hubicka  <jh@suse.cz>
3571
3572         * predict.c (predict_paths_leading_to): Rewrite.
3573         (predict_paths_for_bb): New.
3574         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
3575
3576 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3577
3578         PR bootstrap/35218
3579         * Makefile.in (build_file_translate): New.
3580         (gcc-vers.texi): Use it for translating $(abs_srcdir).
3581         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
3582         * configure.ac (build_file_translate): Substitute it.
3583         * configure: Regenerate.
3584
3585 2008-02-19  Jan Hubicka  <jh@suse.cz>
3586
3587         PR rtl-optimization/34408
3588         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
3589         invalid sharing.
3590
3591 2008-02-19  Jan Hubicka  <jh@suse.cz>
3592
3593         PR middle-end/28779
3594         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
3595         call_expr.
3596
3597 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
3598
3599         PR Ada/35186
3600         * config/i386/i386-modes.def: Revert the last DI alignment
3601         change until Ada people can look into it.
3602
3603 2008-02-19  Nick Clifton  <nickc@redhat.com>
3604
3605         * opts.c (print_specific_help): Fix typo in --help text.
3606
3607 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
3608
3609         PR target/35239
3610         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
3611         32-bit inline asm without asm alternatives for host GCC < 3.0.
3612
3613 2008-02-19  Richard Guenther  <rguenther@suse.de>
3614
3615         PR tree-optimization/34989
3616         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
3617         Allow propagation to INDIRECT_REF if we can simplify only.
3618
3619 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3620
3621         * c-common.c (warn_for_collisions_1): Use appropriate option when
3622         warning.
3623
3624 2008-02-19  Nick Clifton  <nickc@redhat.com>
3625
3626         PR other/31349
3627         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
3628         (handle_options): Fix indentation.
3629         (print_filtered_help): If no language-specific options were
3630         displayed tell the user how to list all the options supported by
3631         the language's front-end.
3632         (print_specific_help): Fix indentation and remove duplicate line.
3633         (common_handle_option): Handle the -v option.
3634         For --help enable the display of undocumented options if the -v
3635         switch has been included on the command line.
3636         For --help= check for overlaps in the arguments between the option
3637         classes and the language names and issue a warning when they
3638         cannot be disambiguated.
3639         * c.opt (v): Pass on to the common option handler.
3640
3641 2008-02-19  Revital Eres  <eres@il.ibm.com> 
3642
3643         * modulo-sched.c (sms_schedule): Change dump message when
3644         create_ddg function fails.
3645         (try_scheduling_node_in_cycle): Rename row to cycle.
3646         (print_partial_schedule): Rename CYCLE to ROW.
3647
3648 2008-02-19  Christian Bruel  <christian.bruel@st.com>
3649             Zdenek Dvorak  <ook@ucw.cz>
3650
3651         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
3652
3653 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
3654
3655         PR target/33555
3656         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
3657         (*x86_movdicc_0_m1_se): Ditto.
3658
3659 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
3660
3661         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
3662         (CMPtype): Define as __gcc_CMPtype.
3663         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
3664         (CMPtype): Define as __gcc_CMPtype.
3665
3666 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
3667
3668         Support valgrind 3.3 for --enable-checking=valgrind.
3669         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
3670         here.
3671         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
3672         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
3673         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
3674         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
3675         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
3676         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
3677         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
3678         respectively.
3679         * ggc-zone.c: Similar.
3680         * ggc-page.c: Similar.
3681
3682 2008-02-19  Paul Brook  <paul@codesourcery.com>
3683
3684         PR target/35071
3685         * config/arm/ieee754-df.S: Fix do_it typo.
3686         * config/arm/ieee754-sf.S: Fix do_it typo.
3687
3688 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
3689
3690         PR target/35189
3691         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
3692         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
3693         (OPTION_MASK_ISA_SSE_SET): Likewise.
3694         (OPTION_MASK_ISA_SSE2_SET): Likewise.
3695         (OPTION_MASK_ISA_SSE3_SET): Likewise.
3696         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
3697         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
3698         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
3699         (OPTION_MASK_ISA_SSE4_SET): Likewise.
3700         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
3701         (OPTION_MASK_ISA_SSE5_SET): Likewise.
3702         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
3703         (OPTION_MASK_ISA_MMX_UNSET): Updated.
3704         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
3705         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
3706         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
3707         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
3708         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
3709         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
3710         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
3711         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
3712         (OPTION_MASK_ISA_SSE4): Removed.
3713         (ix86_handle_option): Turn on bits in ix86_isa_flags and
3714         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
3715         (override_options): Don't turn on implied SSE/MMX bits in
3716         ix86_isa_flags.
3717
3718 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
3719
3720         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3721         32bit host.
3722
3723 2008-02-18  Joey Ye  <joey.ye@intel.com>
3724
3725         PR middle-end/34921
3726         * tree-nested.c (insert_field_into_struct): Set type alignment
3727         to field alignment if the former is less than the latter.
3728
3729 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
3730
3731         * BASE-VER: Set to 4.4.0.
3732
3733 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3734
3735         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
3736         * doc/cfg.texi: Likewise.
3737         * doc/extend.texi: Likewise.
3738         * doc/gty.texi: Likewise.
3739         * doc/invoke.texi: Likewise.
3740         * doc/loop.texi: Likewise.
3741         * doc/md.texi: Likewise.
3742         * doc/passes.texi: Likewise.
3743         * doc/rtl.texi: Likewise.
3744         * doc/sourcebuild.texi: Likewise.
3745         * doc/tm.texi: Likewise.
3746         * doc/tree-ssa.texi: Likewise.
3747
3748 2008-02-17  Richard Guenther  <rguenther@suse.de>
3749
3750         PR middle-end/35227
3751         * tree-complex.c (init_parameter_lattice_values): Handle parameters
3752         without default definition.
3753
3754 2008-02-17  Richard Guenther  <rguenther@suse.de>
3755
3756         PR tree-optimization/35231
3757         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
3758         if A | B != 1.
3759
3760 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
3761
3762         Revert:
3763         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
3764         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
3765         libgcc_cmp_return mode.
3766
3767 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3768
3769         PR c/28368
3770         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
3771
3772 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
3773
3774         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
3775         multilibs.
3776
3777 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3778
3779         * doc/c-tree.texi: Use `@.' where appropriate.
3780         * doc/extend.texi: Likewise.
3781         * doc/install.texi: Likewise.
3782         * doc/invoke.texi: Likewise.
3783         * doc/loop.texi: Likewise.
3784         * doc/makefile.texi: Likewise.
3785         * doc/md.texi: Likewise.
3786         * doc/passes.texi: Likewise.
3787         * doc/standards.texi: Likewise.
3788         * doc/tm.texi: Likewise.
3789
3790 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3791
3792         PR middle-end/35196
3793         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
3794         in entry_bb.
3795         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
3796         rather than in entry_bb.
3797
3798 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3799
3800         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
3801         libgcc_cmp_return mode.
3802
3803 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3804
3805         PR middle-end/35130
3806         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
3807         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
3808
3809 2008-02-15  Richard Guenther  <rguenther@suse.de>
3810             Zdenek Dvorak  <ook@ucw.cz>
3811
3812         PR tree-optimization/35164
3813         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
3814         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
3815         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3816         Only propagate addresses which do not have abnormal SSA_NAMEs
3817         in their operands.
3818
3819 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
3820
3821         PR target/35088
3822         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
3823
3824 2008-02-15  Jan Hubicka  <jh@suse.cz>
3825
3826         PR middle-end/35149
3827         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
3828
3829 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3830
3831         PR middle-end/34621
3832         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
3833         when calculating alignment_pad.
3834
3835 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3836
3837         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
3838         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
3839         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
3840         and STACK_BOUNDARY define.
3841
3842 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
3843
3844         PR preprocessor/35061
3845         * c-pragma.c (handle_pragma_pop_macro): Check that
3846         pushed_macro_table has been allocated.
3847
3848 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
3849
3850         PR middle-end/35136
3851         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
3852         (force_gimple_operand): Likewise.
3853         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
3854         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
3855         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
3856         (find_interesting_uses_address): Check addressability and alignment
3857         of the base expression only after substituting bases of IVs into it.
3858
3859 2008-02-14  Michael Matz  <matz@suse.de>
3860
3861         PR target/34930
3862         * function.c (instantiate_virtual_regs_in_insn): Reload address
3863         before falling back to reloading the whole operand.
3864
3865 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3866
3867         * config/s390/s390.c (s390_mainpool_start): Emit the pool
3868         before the first section switch note.
3869
3870 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3871
3872         * doc/bugreport.texi: Update copyright years.
3873         * doc/c-tree.texi: Likewise.
3874         * doc/cfg.texi: Likewise.
3875         * doc/cpp.texi: Likewise.
3876         * doc/cppinternals.texi: Likewise.
3877         * doc/fragments.texi: Likewise.
3878         * doc/frontends.texi: Likewise.
3879         * doc/gcc.texi: Likewise.
3880         * doc/gty.texi: Likewise.
3881         * doc/hostconfig.texi: Likewise.
3882         * doc/implement-c.texi: Likewise.
3883         * doc/libgcc.texi: Likewise.
3884         * doc/loop.texi: Likewise.
3885         * doc/makefile.texi: Likewise.
3886         * doc/options.texi: Likewise.
3887         * doc/passes.texi: Likewise.
3888         * doc/rtl.texi: Likewise.
3889         * doc/sourcebuild.texi: Likewise.
3890         * doc/standards.texi: Likewise.
3891         * doc/tree-ssa.texi: Likewise.
3892         * doc/trouble.texi: Likewise.
3893
3894         * doc/extend.texi: Use @: or add comma where appropriate.
3895         * doc/invoke.texi: Likewise.
3896         * doc/tm.texi: Likewise.
3897
3898 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
3899
3900         PR target/34393
3901         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
3902         to a reg.
3903
3904 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
3905
3906         * doc/md.texi (clz, ctz): Add reference.
3907         * doc/rtl.texi (clz, ctz): Likewise.
3908
3909 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3910
3911         PR other/35148
3912         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
3913         srcdir.
3914
3915 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3916
3917         * config/s390/s390.c (struct constant_pool): New field
3918         emit_pool_after added.
3919         (s390_mainpool_start): Set the emit_pool_after flag according
3920         to the section switch notes.
3921         (s390_mainpool_finish): Consider emit_pool_after when emitting
3922         the literal pool at the end of the function.
3923         (s390_chunkify_start): Force literal pool splits at section
3924         switch notes.
3925
3926 2008-02-13  Michael Matz  <matz@suse.de>
3927
3928         PR debug/35065
3929         * var-tracking.c (clobber_variable_part): Correctly traverse the
3930         list.
3931
3932 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3933
3934         PR 29673
3935         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
3936         Add -fdump-ipa-inline.
3937         * tree-dump.c (dump_files): Remove tree-inlined dump.
3938         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
3939         
3940 2008-02-12  Richard Guenther  <rguenther@suse.de>
3941
3942         PR tree-optimization/35171
3943         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
3944         default defs.
3945
3946 2008-02-12  Richard Guenther  <rguenther@suse.de>
3947
3948         PR middle-end/35163
3949         * fold-const.c (fold_widened_comparison): Use get_unwidened in
3950         value-preserving mode.  Disallow final truncation.
3951
3952 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3953
3954         PR middle-end/35136
3955         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
3956         code from here to...
3957         (force_gimple_operand): ...here.
3958
3959 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
3960
3961         PR c++/35144
3962         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
3963         non-compatible pointers.
3964         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
3965         different FIELD_DECLs, try harder by comparing field offsets, sizes
3966         and types.
3967
3968         PR inline-asm/35160
3969         * function.c (match_asm_constraints_1): Don't replace the same input
3970         multiple times.
3971
3972 2008-02-12  Anatoly Sokolov <aesok@post.ru>
3973
3974         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
3975         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
3976         (expand_epilogue): Restore RAMPZ register.
3977         * config/avr/avr.md (RAMPZ_ADDR): New constant.
3978
3979 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
3980
3981         * config/i386/cygwin.asm: (__alloca): Correct calling
3982         convention and alignment.
3983         (__chkstk): Force 8 byte stack alignment.
3984
3985 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
3986             Richard Guenther  <rguenther@suse.de>
3987
3988         PR tree-optimization/33992
3989         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
3990         the zero we compare against.
3991
3992 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
3993
3994         PR libfortran/35063
3995         * gthr-win32.h (__gthread_mutex_destroy_function): New function
3996         to CloseHandle after unlocking to prevent accumulation of handle
3997         count.
3998
3999 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4000
4001         PR middle_end/34150
4002         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
4003         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
4004         and update LABEL_NUSES during and after reload.
4005
4006 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
4007
4008         PR middle-end/34627
4009         * combine.c (simplify_if_then_else): Make sure the comparison is
4010         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
4011
4012 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4013
4014         PR bootstrap/35051
4015         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
4016         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
4017         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
4018         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
4019         * tree.h (get_type_static_bounds): Likewise.
4020
4021 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4022
4023         * doc/invoke.texi (Option Summary, C++ Dialect Options)
4024         (Objective-C and Objective-C++ Dialect Options, Warning Options):
4025         Make -Wfoo language annotations match what the compiler outputs.
4026
4027 2008-02-08  Sa Liu  <saliu@de.ibm.com>
4028
4029         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
4030         intrinsics spu_convts, spu_convtu, spu_convtf.
4031         * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
4032
4033 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
4034
4035         * doc/extend.texi (Function Attributes) <noinline>: Mention
4036         asm ("") as method to keep calls.
4037
4038 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4039
4040         PR other/32754
4041         * doc/options.texi (Options): Replace references to opts.sh with
4042         optc-gen.awk.
4043         * opts-common.c: Likewise.
4044         * optc-gen.awk: Likewise.
4045         
4046 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
4047
4048         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
4049
4050 2008-02-07  Richard Henderson  <rth@redhat.com>
4051
4052         PR rtl-opt/33410
4053         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
4054         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
4055         funny mode.
4056
4057 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
4058
4059         PR tree-optimization/35085
4060         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
4061         for operand entry oe2 in addition to operand entry oe3 in order to
4062         expose more opportunities for vectorizer sum reduction.
4063
4064 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4065
4066         PR other/35107
4067         * Makefile.in (LIBS): Remove $(GMPLIBS).
4068         (cc1-dummy, cc1): Add $(GMPLIBS).
4069
4070 2008-02-06  Jan Hubicka  <jh@suse.cz>
4071
4072         PR target/23322
4073         * i386.md (moddf_integer): Do not produce partial memory stalls for
4074         targets where it hurts.
4075
4076 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
4077
4078         PR target/35083
4079         * optabs.c (expand_float): Do not check for decimal modes when
4080         expanding unsigned integer through signed conversion.
4081
4082 2008-02-06  Nick Clifton  <nickc@redhat.com>
4083
4084         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
4085         inside the clobber with a match_operand and duplicated operand
4086         number in the constraint.
4087         (ineqbranchsi): Delete redundant comment.
4088
4089 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
4090
4091         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
4092         builtin_define ("__USE_INIT_FINI__").
4093         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
4094         -msx multilibs.
4095         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
4096
4097 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4098
4099         PR documentation/30330
4100         * doc/invoke.texi (C++ Dialect Options)
4101         (Objective-C and Objective-C++ Dialect Options, Warning Options):
4102         For each warning option -Wfoo that allows -Wno-foo, ensure both
4103         -Wfoo and -Wno-foo are listed in the option index.  Fix index
4104         entry of -Wswitch-default, index -Wnormalized= including the
4105         `=', and -Wlarger-than-@var{len} including @var{len}.
4106
4107 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
4108
4109         * config/i386/i386.md (floatunssisf2): Use
4110         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
4111         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
4112         Macroize expander using MODEF mode iterator.
4113
4114 2008-02-05  Diego Novillo  <dnovillo@google.com>
4115
4116         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
4117
4118         PR 33738
4119         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
4120
4121 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4122
4123         PR other/35070
4124         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
4125
4126 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
4127
4128         PR target/35084
4129         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
4130         to indicate if a message should be generated.
4131         (init_cumulative_args): Updated.
4132         (function_value_32): Likewise.
4133
4134 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
4135
4136         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
4137
4138 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
4139
4140         PR target/35083
4141         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
4142         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
4143
4144 2008-02-04  Diego Novillo  <dnovillo@google.com>
4145
4146         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
4147
4148         PR 33738
4149         * tree-vrp.c (vrp_evaluate_conditional): With
4150         -Wtype-limits, emit a warning when comparing against a
4151         constant outside the natural range of OP0's type.
4152
4153 2008-02-04  Richard Guenther  <rguenther@suse.de>
4154
4155         PR middle-end/33631
4156         * expr.c (count_type_elements): Give for unions instead of
4157         guessing.
4158
4159 2008-02-04  Richard Guenther  <rguenther@suse.de>
4160
4161         PR middle-end/35043
4162         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
4163         to TYPE_DOMAINs base type instead of using bitsizetype here.
4164
4165 2008-02-03  Jason Merrill  <jason@redhat.com>
4166
4167         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
4168
4169 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4170
4171         PR other/29972
4172         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
4173         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
4174         (RS/6000 and PowerPC Options): Fix typos and markup.
4175         * doc/passes.texi (Tree-SSA passes): Likewise.
4176
4177 2008-02-02  Michael Matz  <matz@suse.de>
4178
4179         PR target/35045
4180         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
4181         from record_last_reg_set_info.
4182         (record_last_reg_set_info): Take an RTX argument, iterate over all
4183         constituent hardregs.
4184         (record_last_set_info, record_opr_changes): Change calls to
4185         new signature or to record_last_reg_set_info_regno.
4186
4187 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
4188
4189         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
4190
4191 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
4192
4193         PR rtl-optimization/34773
4194         * reg-notes.def (EQUAL): Mention significance of combination of
4195         REG_EQUAL and REG_RETVAL.
4196         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
4197         insn that has a REG_RETVAL.
4198
4199 2008-02-01  Roger Sayle  <roger@eyesopen.com>
4200
4201         PR bootstrap/33781
4202         * configure.ac (--enable-fixed-point): Disable unless explicitly
4203         requested on IRIX.
4204         * configure: Regenerate.
4205
4206 2008-02-01  Richard Guenther  <rguenther@suse.de>
4207
4208         PR other/35042
4209         * invoke.texi (-finline-limit): Remove no longer true parts
4210         of the documentation.  Note that there is no default value.
4211
4212 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
4213             Mark Mitchell  <mark@codesourcery.com>
4214             Ben Elliston  <bje@au.ibm.com>
4215
4216         PR c/29326
4217         * doc/extend.texi (Other Builtins): Document.
4218
4219 2008-01-31  Tom Browder <tom.browder@gmail.com>
4220
4221         * doc/c-tree.texi (Types): Fix grammar.
4222         (Expression trees): Ditto.
4223         * doc/passes.texi (Tree-SSA passes): Ditto.
4224         
4225         * doc/configterms.texi (Configure Terms): Fix typo.
4226         * doc/cpp.texi (Common Predefined Macros): Ditto.
4227         * doc/md.texi (Machine Constraints): Ditto.
4228         
4229         * doc/makefile.texi (Makefile): Add comma.
4230
4231 2008-01-31  Tom Browder  <tom.browder@gmail.com>
4232             Gerald Pfeifer  <gerald@pfeifer.com>
4233         
4234         * doc/sourcebuild.texi (Front End): Remove references to CVS
4235         and CVSROOT/modules.
4236         (Texinfo Manuals): Replace reference to CVS by one to SVN.
4237         (Back End): Remove reference to CVS.
4238
4239 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
4240
4241         PR target/34900
4242         * config/mips/mips.c (gen_load_const_gp): New function, taking a
4243         comment from...
4244         (mips16_gp_pseudo_reg): ...here.
4245         * config/mips/mips.md (load_const_gp): Replace with...
4246         (load_const_gp_<mode>): ...this :P-based insn.
4247
4248 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4249
4250         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
4251         options. Minor fixes.
4252         (-std): Move reference to standards closer to where language
4253         standards are first mentioned.
4254         
4255 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
4256
4257         PR rtl-optimization/34995
4258         * reload.c (alternative_allows_const_pool_ref): Take an rtx
4259         parameter and return a bool.  If the rtx parameter is nonnull,
4260         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
4261         (find_reloads): Update call accordingly.  Pass the new operand
4262         if it needed no address reloads, otherwise pass null.
4263
4264 2008-01-30  Richard Henderson  <rth@redhat.com>
4265
4266         PR c/34993
4267         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
4268         for unbounded arrays.
4269
4270 2008-01-30  Silvius Rus  <rus@google.com>
4271
4272         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
4273
4274 2008-01-30  Jan Hubicka  <jh@suse.cz>
4275
4276         PR target/34982
4277         * i386.c (init_cumulative_args): Use real function declaration when
4278         calling locally.
4279
4280 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4281
4282         PR rtl-optimization/34998
4283         * global.c (build_insn_chain): Treat non-subreg_lowpart
4284         SUBREGs of pseudos as clobbering all the words covered by the
4285         SUBREG, not just all the bytes.
4286         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
4287         original df_ref rather than an extract parameter.
4288         (global_conflicts): Update call accordingly.
4289
4290 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
4291
4292         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
4293         the overflow check to make it easier to read.
4294         (__fixtfdi): Change the type of the ll member in union
4295         long_double to UDItype_x.
4296
4297 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
4298
4299         PR middle-end/34969
4300         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
4301         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
4302         * tree-inline.c (fold_marked_statements): Call
4303         cgraph_update_edges_for_call_stmt if folding a call statement.
4304         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
4305         debug_generic_stmt calls, reset it back afterwards.
4306
4307         PR c/35017
4308         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
4309         static decls.
4310         * c-typeck.c (build_external_ref): Don't pedwarn about
4311         static vars in current function's scope.
4312
4313 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
4314
4315         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
4316
4317 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
4318
4319         PR c/35002
4320         * ipa-struct-reorg.c: Fix spelling.
4321         * params.def: Ditto.
4322
4323 2008-01-29  Richard Guenther  <rguenther@suse.de>
4324
4325         PR middle-end/35006
4326         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
4327         field.
4328         * tree-inline.c (remap_type): Increment remapping_type_depth
4329         around remapping types.
4330         (copy_body_r): Only add referenced variables if they are referenced
4331         from code, not types.
4332
4333 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
4334
4335         PR c++/34055
4336         PR c++/34103
4337         PR c++/34219
4338         PR c++/34606
4339         PR c++/34753
4340         PR c++/34754
4341         PR c++/34755
4342         PR c++/34919
4343         PR c++/34961
4344         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
4345         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
4346
4347 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
4348
4349         PR target/34412
4350         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
4351         pointer for tiny stack.
4352
4353 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
4354
4355         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
4356
4357 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
4358
4359         * config/vx-common.h: Fix typo in comment.
4360
4361 2008-01-28  Ian Lance Taylor  <iant@google.com>
4362
4363         PR c++/34862
4364         PR c++/33407
4365         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
4366         coalesce pointers if they have different DECL_NO_TBAA_P values.
4367         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
4368         between variables with different DECL_NO_TBAA_P values.
4369
4370 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
4371
4372         PR 31535
4373         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
4374         are not legitimate small data references on SPE targets.
4375
4376 2008-01-28  David Daney  <ddaney@avtrex.com>
4377
4378         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
4379
4380 2008-01-28  David Daney  <ddaney@avtrex.com>
4381
4382         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
4383
4384 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
4385
4386         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
4387         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
4388         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
4389         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
4390         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
4391         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
4392         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
4393         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
4394
4395 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
4396
4397         * basic-block.h (condjump_equiv_p): Fix comment.
4398
4399 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
4400
4401         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
4402         print_generic_stmt_indented): Fix comment.
4403
4404 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
4405
4406         * configure.ac (__stack_chk_fail): Add detecion for availability
4407         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
4408         * configure: Regenerate.
4409
4410 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
4411
4412         PR middle-end/34688
4413         * final.c (output_addr_const): Handle TRUNCATE.
4414
4415 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
4416
4417         PR target/34711
4418         * tree-ssa-loop-ivopts.c (comp_cost): New type.
4419         (zero_cost, infinite_cost): New constants.
4420         (struct cost_pair): Change type of cost to comp_cost.
4421         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
4422         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
4423         New functions.
4424         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
4425         split_address_cost, ptr_difference_cost, difference_cost,
4426         get_computation_cost_at, get_computation_cost,
4427         determine_use_iv_cost_generic, determine_use_iv_cost_address,
4428         determine_use_iv_cost_condition, determine_use_iv_costs,
4429         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
4430         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
4431         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
4432         Change type of cost to comp_cost.
4433         (determine_iv_cost): Increase cost of non-original ivs, instead
4434         of decreasing the cost of original ones.
4435         (get_address_cost): Indicate the complexity of the addressing mode 
4436         in comp_cost.
4437         (try_add_cand_for): Prefer using ivs not specific to some object.
4438         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
4439
4440 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
4441             Janis Johnson  <janis187@us.ibm.com>
4442
4443         PR target/34814
4444         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
4445         (TARGET_INSTANTIATE_DECLS): Likewise.
4446         * target.h (expand_to_rtl_hook): New target hook.
4447         (instantiate_decls): Likewise.
4448         * function.c (instantiate_decl): Make non-static.  Rename to...
4449         (instantiate_decl_rtl): ... this.
4450         (instantiate_expr): Use instantiate_decl_rtl.
4451         (instantiate_decls_1): Likewise.
4452         (instantiate_decls): Likewise.
4453         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
4454         * function.h (instantiate_decl_rtl): Add prototype.
4455         * cfgexpand.c (target.h): New include.
4456         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
4457         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
4458         (TARGET_INSTANTIATE_DECLS): Likewise.
4459         (TARGET_INITIALIZER): New target hooks added.
4460         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
4461         New prototype.
4462         * config/rs6000/rs6000.c (tree-flow.h): New include.
4463         (machine_function): Add sdmode_stack_slot field.
4464         (rs6000_alloc_sdmode_stack_slot): New function.
4465         (rs6000_instantiate_decls): Likewise.
4466         (rs6000_secondary_memory_needed_rtx): Likewise.
4467         (rs6000_check_sdmode): Likewise.
4468         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
4469         (TARGET_INSTANTIATE_DECLS): Likewise.
4470         (rs6000_hard_regno_mode_ok): Allow SDmode.
4471         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
4472         (rs6000_emit_move): Handle SDmode.
4473         (function_arg_advance): Likewise.
4474         (function_arg): Likewise.
4475         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
4476         SDmode var args for 32-bit compiles.
4477         (rs6000_secondary_reload_class): Handle SDmode.
4478         (rs6000_output_function_epilogue): Likewise.
4479         (rs6000_function_value): Simplify if statement.
4480         (rs6000_libcall_value): Likewise.
4481         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
4482         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
4483         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
4484         (movsd_hardfloat): New define_insn.
4485         (movsd_softfloat): Likewise.
4486         (movsd_store): Likewise.
4487         (movsd_load): Likewise.
4488         (extendsddd2): Likewise.
4489         (extendsdtd2): Likewise.
4490         (truncddsd2): Likewise.
4491         (movdd_hardfloat64): Fixup comment.
4492         (UNSPEC_MOVSD_LOAD): New constant.
4493         (UNSPEC_MOVSD_STORE): Likewise.
4494
4495 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
4496
4497         PR c++/34965
4498         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
4499         TRUTH_XOR_EXPR.
4500         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
4501         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
4502         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
4503         and TRUTH_XOR_EXPR.
4504
4505 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
4506
4507         PR target/34794
4508         * config.gcc: Separate AIX 5.3 from AIX 6.1.
4509         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4510         __LONGDOUBLE128 too.
4511         * config/rs6000/aix61.h: New file.
4512
4513 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
4514
4515         PR rtl-optimization/34959
4516         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
4517         popcount and parity rtxes the same mode as their operand.
4518         Truncate or extend the result to the return value's mode
4519         if necessary.
4520
4521 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
4522
4523         PR target/34981
4524         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
4525         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
4526         to GOT_VERSION_REGNUM.
4527         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
4528         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
4529         * config/mips/mips.c (mips_emit_call_insn): New function.
4530         (mips_call_tls_get_addr): Call mips_expand_call directly.
4531         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
4532         emit_call_insn.
4533         (mips16_build_call_stub): Likewise.  Return the call insn or null.
4534         (mips_expand_call): Update the call to mips16_build_call_stub
4535         accordingly and a remove redundant condition.  Assert that MIPS16
4536         stubs do not use lazy binding.  Use mips_emit_call_insn and return
4537         the call insn.
4538         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
4539         TARGET_USE_GOT.
4540         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
4541         (mips_avoid_hazard): Remove hazard_set handling.
4542         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
4543         (UNSPEC_RESTORE_GP): ...this.
4544         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
4545         (FAKE_CALL_REGNO): Rename to...
4546         (GOT_VERSION_REGNUM): ...this.
4547         (type): Add "ghost" value.  Add an associated insn reservation.
4548         (hazard_set): Remove.
4549         (exception_receiver): Rename to...
4550         (restore_gp): ...this and update the unspec identifier accordingly.
4551         (exception_receiver, nonlocal_got_receiver): New expanders.
4552         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
4553         FAKE_CALL_REGNO.  Remove hazard_set attribute.
4554         (set_got_version, update_got_version): New patterns.
4555
4556 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
4557
4558         PR target/34970
4559         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
4560
4561 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
4562
4563         PR other/31955
4564         * doc/install.texi2html: Generate gcc-vers.texi.
4565
4566 2008-01-25  DJ Delorie  <dj@redhat.com>
4567
4568         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4569
4570 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
4571
4572         * config/c4x: Remove directory.
4573         * config.gcc (crx-*, mt-*): Mark obsolete.
4574         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
4575         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
4576         sh-*-rtemscoff*): Remove cases.
4577         * defaults.h (C4X_FLOAT_FORMAT): Remove.
4578         * real.c (encode_c4x_single, decode_c4x_single,
4579         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
4580         c4x_extended_format): Remove.
4581         * real.h (c4x_single_format, c4x_extended_format): Remove.
4582         * doc/extend.texi (interrupt, naked): Remove mention of attributes
4583         on C4x.
4584         (Pragmas): Remove comment about c4x pragmas.
4585         * doc/install.texi (c4x): Remove target-specific instructions.
4586         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
4587         * doc/md.texi (Machine Constraints): Remove C4x documentation.
4588         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
4589         refer to C4x source files as examples.
4590         (C4X_FLOAT_FORMAT): Remove documentation.
4591
4592 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
4593
4594         * config/bfin/bfin.c (override_options): Reorder tests so that
4595         flag_pic gets enabled for -msep-data.
4596
4597 2008-01-25  Richard Guenther  <rguenther@suse.de>
4598
4599         PR middle-end/32244
4600         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
4601         to its bitfield precision if required.
4602
4603 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
4604
4605         PR middle-end/33880
4606         * tree-nested.c (walk_omp_for): New function.
4607         (convert_nonlocal_reference, convert_local_reference): Call
4608         walk_omp_for on OMP_FOR.
4609         (convert_call_expr): Call walk_body on OMP_FOR's
4610         OMP_FOR_PRE_INIT_BODY.
4611
4612 2008-01-25  Richard Guenther  <rguenther@suse.de>
4613
4614         PR tree-optimization/34966
4615         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
4616         default defs and PHI_NODEs we have to insert after the
4617         defining statement.
4618
4619 2008-01-24  Nick Clifton  <nickc@redhat.com>
4620
4621         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
4622         Provide a default definition.
4623         (LIBGCC2_UNITS_PER_WORD): Likewise.
4624
4625         * config/stormy16/stormy16.c: Include df.h for the prototype
4626         for df_regs_ever_live_p.
4627         (xstormy16_expand_builtin_va_start): Convert the stack offset
4628         into a component_ref and then use POINTER_PLUS_EXPR to add it
4629         to the incoming_virtual_args_rtx.
4630         (xstormy16_gimplify_va_arg_expr): Rename to
4631         xstormy16_gimplify_va_arg_expr.
4632         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
4633         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
4634         xstormy16_gimplify_va_arg_expr.
4635         Fix up some formatting issues.
4636
4637         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
4638         Move to predicates.md.
4639         (xs_hi_general_operand): Likewise.
4640         (xs_hi_nonmemory_operand): Likewise.
4641         * config/stormy16/predicates.md:
4642         (xstormy16_carry_plus_operand): New predicate.
4643         (xs_hi_general_operand): New predicate.
4644         (xs_hi_nonmemory_operand): New predicate.
4645         * config/stormy16/stormy16-protos.h:
4646         (xstormy16_carry_plus_operand): Delete prototype.
4647         (xs_hi_general_operand): Likewise.
4648         (xs_hi_nonmemory_operand): Likewise.
4649
4650         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
4651         modifiers as they are no longer needed and they can trigger
4652         reload spill failures.
4653
4654         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
4655         with a match_operand in order to help reload.
4656
4657         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
4658         constraint with 'e' for the 8th alternative as this version of
4659         the mov.w instruction only accepts the lower 8 registers.
4660
4661 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
4662
4663         PR target/34856
4664         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
4665         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
4666         vector elements.
4667
4668 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
4669
4670         PR middle-end/33333
4671         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
4672
4673 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
4674
4675         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
4676         New functions.
4677         (remove_structure): Update allocations list before removing structure.
4678         
4679 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
4680
4681         * ipa-struct-reorg.c (is_safe_cond_expr, 
4682         create_new_stmts_for_cond_expr): Use integer_zerop function,
4683         that recognize not only zero-pointer, but zero-integer too.
4684
4685 2008-01-25  Ben Elliston  <bje@au.ibm.com>
4686
4687         PR other/22232
4688         * fixproto: Escape "." in sed expression that strips leading "./".
4689
4690 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
4691
4692         PR driver/34904
4693         * gcc.c (SWITCH_OK): Removed.
4694         (SWITCH_LIVE): Changed to bit.
4695         (SWITCH_FALSE): Likewise.
4696         (SWITCH_IGNORE): Likewise.
4697         (switchstr): Change live_cond to unsigned int.
4698         (process_command): Replace SWITCH_OK with 0.
4699         (do_self_spec): Likewise.
4700         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
4701         (give_switch): Likewise.
4702         (used_arg): Likewise.
4703         (do_spec_1): Set the SWITCH_IGNORE bit.
4704         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
4705         bits.  Set the SWITCH_LIVE bit.
4706
4707 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
4708
4709         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
4710
4711 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
4712
4713         PR tree-optimization/34472
4714         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
4715         parameter to a "bool *" and set *DATA to false if there is
4716         an unsafe access.  Do not delete the structure here.
4717         (check_cond_exprs): Delete it here instead.
4718         (check_cond_exprs, exclude_cold_structs): Do not increase
4719         I when removing a structure.
4720
4721 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
4722
4723         PR target/34856
4724         * config/i386/i386.c (ix86_expand_vector_init): Consider only
4725         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
4726
4727 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
4728
4729         PR middle-end/34934
4730         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
4731         a fixed vector for stack.
4732
4733 2008-01-24  Ben Elliston  <bje@au.ibm.com>
4734
4735         PR c++/25701
4736         * doc/gcc.texi (Software development): Add a direntry for g++.
4737         
4738 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
4739
4740         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
4741         stale and straggling -fforce-addr comments above.
4742
4743         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
4744         define.
4745         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
4746         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
4747
4748 2008-01-23  Michael Matz  <matz@suse.de>
4749
4750         PR debug/34895
4751         * dwarf2out.c (force_type_die): Use modified_type_die instead of
4752         gen_type_die.
4753
4754 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
4755
4756         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
4757         malloc result type.
4758
4759 2008-01-23 Anatoly Sokolov <aesok@post.ru>
4760
4761         * config/avr/avr.c (avr_current_arch): New variable.
4762         (avr_arch_types): Add 'avr31' and 'avr51' entries.
4763         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
4764         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
4765         (avr_override_options): Init 'avr_current_arch'. 
4766         (base_arch_s): Move from here...
4767         * config/avr/avr.h (base_arch_s): ... here. Add new members 
4768         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
4769         'mega' to 'have_jmp_call'.
4770         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
4771         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
4772         macros.
4773         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
4774         architectures.
4775         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
4776         MULTILIB_MATCHES): (Ditto.).
4777
4778 2008-01-23  Richard Guenther  <rguenther@suse.de>
4779
4780         PR middle-end/31529
4781         * cgraphunit.c (cgraph_reset_node): Always mark the node
4782         not reachable if it is not queued already.
4783
4784 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
4785
4786         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
4787         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
4788         (cputype_selected): New static variable.
4789         (bfin_handle_option): Set it if -mcpu is used.
4790         (override_option): Select default set of workarounds if no cpu type
4791         selected on the command line.
4792         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
4793
4794         From  Michael Frysinger  <michael.frysinger@analog.com>
4795         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
4796         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
4797
4798         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
4799         for bf547, bf523, bf524, and bf526.
4800         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
4801         bf526.
4802         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4803         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
4804         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
4805         __ADSPBF547__ and __ADSPBF54x__ for bf547.
4806         * doc/invoke.texi (Blackfin Options): Document that
4807         -mcpu now accept bf547, bf523, bf524, and bf526.
4808
4809 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4810
4811         PR rtl-optimization/34628
4812         * combine.c (try_combine): Stop and undo after the first combination
4813         if an autoincrement side-effect on the first insn has effectively
4814         been lost.
4815
4816 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
4817
4818         PR target/34529
4819         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
4820         Offset addresses are not valid for Altivec or paired float modes.
4821
4822 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
4823
4824         PR c++/34607
4825         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
4826         if DECL_INITIAL (decl) is error_mark_node.
4827
4828         PR c++/34914
4829         * c-common.c (handle_vector_size_attribute): Only allow
4830         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
4831         the same way as pointer, array etc. types.
4832         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
4833
4834         PR c++/34917
4835         * tree.c (build_type_attribute_qual_variant): Call
4836         build_qualified_type if attributes are equal, but quals are not.
4837
4838 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4839
4840         PR 32102
4841         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
4842         * flags.h (warn_strict_aliasing): Remove.
4843         (warn_strict_overflow): Remove.
4844         * opts.c (warn_strict_aliasing): Remove.
4845         (warn_strict_overflow): Remove.
4846         * c-opts.c (c_common_handle_option): -Wall only sets
4847         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
4848         (c_common_post_options): Give default values to -Wstrict-aliasing
4849         and -Wstrict-overflow if they are uninitialized.
4850         * common.opt (Wstrict-aliasing): Specify Var and Init.
4851         (Wstrict-overflow): Likewise.
4852
4853 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
4854
4855         PR rtl-optimization/26854
4856         PR rtl-optimization/34400
4857         PR rtl-optimization/34884
4858         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
4859         DF_RD->gen.
4860         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
4861         (df_rd_bb_info.expanded_lr_out): Deleted
4862         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
4863         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
4864         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
4865         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
4866         Removed code to allocate, initialize or free expanded_lr_out.
4867         (df_rd_bb_local_compute_process_def): Restructured to make more
4868         understandable.
4869         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
4870         sets if the sets are being trimmed.
4871
4872 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
4873
4874         PR bootstrap/32287
4875         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
4876         (as_vers): Likewise.
4877         * configure: Regenerated.
4878
4879 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4880
4881         PR middle-end/33092
4882         * tree-pass.h (pass_build_alias): New pass.
4883         * tree-ssa-alias.c (gate_build_alias): New.
4884         (pass_build_alias): New.
4885         * passes.c (init_optimization_passes): Add pass_build_alias after
4886         pass_create_structure_vars.
4887
4888 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
4889
4890         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
4891         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
4892         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
4893         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
4894         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
4895         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
4896         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
4897         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
4898         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
4899         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
4900         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
4901         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
4902         * config/s390/s390.md (FP_ALL): New mode iterator.
4903         (_d): New mode attribute.
4904         ("*signbit<mode>2>"): Changed mode of first operand.
4905         ("isinf<mode>2"): Changed mode of first operand.
4906         ("*TDC_insn"): Adaptation for DFP modes.
4907
4908 2008-01-22  Ben Elliston  <bje@au.ibm.com>
4909
4910         * tree.c (check_qualified_type): Improve function description.
4911
4912 2008-01-21  Jason Merrill  <jason@redhat.com>
4913
4914         PR c++/34196
4915         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
4916         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
4917         if it is set.
4918
4919 2008-01-21  DJ Delorie  <dj@redhat.com>
4920
4921         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
4922         return zero.
4923
4924 2008-01-21  Richard Guenther  <rguenther@suse.de>
4925
4926         PR middle-end/34856
4927         * tree-cfg.c (verify_expr): Allow all invariant expressions
4928         instead of just constant class ones as reference argument.
4929         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
4930         like any other constant.
4931         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4932
4933 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
4934
4935         * regmove.c (fixup_match_1): Update call crossed frequencies.
4936
4937 2008-01-21  Richard Guenther  <rguenther@suse.de>
4938
4939         PR c/34885
4940         * tree-inline.c (setup_one_parameter): Deal with mismatched
4941         types using a VIEW_CONVERT_EXPR.
4942
4943 2008-01-21  Alon Dayan  <alond@il.ibm.com>
4944             Olga Golovanevsky  <olga@il.ibm.com>
4945         
4946         PR tree-optimization/34701
4947         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
4948         when the structure size is not a power of 2.
4949
4950 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
4951
4952         * doc/install.texi: Add doc for --enable-checking=df.
4953         
4954 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4955
4956         PR rtl-optimization/34808
4957         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
4958
4959 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
4960
4961         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
4962         input.
4963
4964 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
4965
4966         PR rtl-optimization/26854
4967         PR rtl-optimization/34400
4968         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
4969         DF_RD->gen.
4970         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
4971         (df_rd_bb_info.expanded_lr_out): New.
4972         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
4973         * loop_iv.c (iv_analysis_loop_init): Ditto.
4974         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
4975         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
4976         Added code to allocate, initialize or free expanded_lr_out.
4977         (df_rd_bb_local_compute_process_def): Restructured to make
4978         more understandable.
4979         (df_rd_confluence_n): Add code to do nothing with fake edges and
4980         code to no apply invalidate_by_call sets if the sets are being trimmed.
4981         (df_lr_local_finalize): Renamed to df_lr_finalize.
4982         (df_live_local_finalize): Renamed to df_live_finalize.
4983
4984 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
4985
4986         PR target/34831
4987         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
4988         deciding whether to use reciprocal instructions.
4989
4990 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
4991
4992         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
4993         dwarf2out_note_section_used if cold_text_section is NULL.
4994
4995 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
4996
4997         PR gcov-profile/34610
4998         * tree-cfg.c (make_edges): Mark both outgoing edges from
4999         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
5000         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
5001         from OMP_FOR and OMP_CONTINUE outgoing edges.
5002
5003         * tree-profile.c (tree_profiling): Return early if
5004         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
5005         at the end.
5006         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
5007         from cfun to child_cfun.
5008         * function.h (struct function): Add after_tree_profile bit.
5009
5010 2008-01-19 Anatoly Sokolov <aesok@post.ru>
5011
5012         * config/avr/avr.S (_exit): Disable interrupt.
5013
5014 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
5015             Steven Bosscher  <stevenb.gcc@gmail.com>
5016
5017         PR rtl-optimization/26854
5018         PR rtl-optimization/34400
5019         * df-problems.c (df_live_scratch): New scratch bitmap.
5020         (df_live_alloc): Allocate df_live_scratch when doing df_live.
5021         (df_live_reset): Clear the proper bitmaps.
5022         (df_live_bb_local_compute): Only process the artificial defs once
5023         since the order is not important.
5024         (df_live_init): Init the df_live sets only with the variables
5025         found live by df_lr.
5026         (df_live_transfer_function): Use the df_lr sets to prune the
5027         df_live sets as they are being computed.  
5028         (df_live_free): Free df_live_scratch.
5029
5030 2008-01-18  Ian Lance Taylor  <iant@google.com>
5031
5032         * common.opt: Add fmerge-debug-strings.
5033         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
5034         flag_merge_debug_strings rather than flag_merge_constants.
5035         * doc/invoke.texi (Option Summary): Mention
5036         -fmerge-debug-strings.
5037         (Debugging Options): Document -fmerge-debug-strings.
5038
5039 2008-01-18  Ian Lance Taylor  <iant@google.com>
5040
5041         PR c++/33407
5042         * tree.h (DECL_IS_OPERATOR_NEW): Define.
5043         (struct tree_function_decl): Add new field operator_new_flag.
5044         * tree-inline.c (expand_call_inline): When inlining a call to
5045         operator new, force the return value to go into a variable, and
5046         set DECL_NO_TBAA_P on that variable.
5047         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
5048
5049 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
5050
5051         PR debug/34484
5052         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
5053         DWARF2_DEBUGGING_INFO.
5054         (dwarf2out_note_section_used): Ditto.  Add prototype.
5055         (have_multiple_function_sections, text_section_used,
5056         cold_text_section_used, *cold_text_sections): Move declarations
5057         before their uses.
5058
5059 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
5060
5061         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
5062         field and add signal_ra.
5063         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
5064         assignments to frame state pc.  Move end of stack check after
5065         MD_FALLBACK_FRAME_STATE_FOR.
5066         (uw_update_context_1): Use frame state signal_regs if set, instead
5067         of checking signal_frame flag.
5068         (uw_update_context): Use frame state signal_ra if set.
5069         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
5070         * config/xtensa/linux-unwind.h: New file.
5071
5072 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
5073
5074         * modulo-sched.c (get_sched_window): Fix comment typo.
5075
5076 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
5077
5078         PR tree-optimization/34648
5079         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
5080
5081 2008-01-17  Anatoly Sokolov <aesok@post.ru>
5082
5083         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
5084         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
5085
5086 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
5087
5088         PR rtl-optimization/34400
5089         * df-core.c (df_worklist_dataflow_overeager,
5090         df_worklist_dataflow_doublequeue): New functions.
5091         (df_worklist_dataflow): Two different worklist solvers.
5092         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
5093         New param.
5094
5095 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5096
5097         PR testsuite/34821
5098         * doc/invoke.texi: Document the dependence on pthread for fopenmp
5099         and ftree-parallelize-loops.
5100
5101 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
5102
5103         PR rtl-optimization/34826
5104         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
5105
5106 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5107
5108         * global.c (find_reg): Mark the eh regs as used if necessary.
5109         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
5110         * ra.h (struct allocno): no_eh_reg field added.  Changed
5111         no_stack_reg type to bitfield.
5112
5113 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5114
5115         * tree.c (substitute_in_expr): Add missing 'break'.
5116
5117 2008-01-17  Richard Guenther  <rguenther@suse.de>
5118
5119         PR tree-optimization/34825
5120         * tree-ssa-math-opts.c (is_division_by): Do not recognize
5121         x / x as division to handle.
5122
5123 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5124
5125         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
5126         "-pthread" is specified.
5127         * pa-hpux11.h (LIB_SPEC): Likewise.
5128
5129 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
5130             Peter Bergner  <bergner@vnet.ibm.com>
5131
5132         PR rtl-optimization/33796
5133         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
5134
5135 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5136
5137         PR libgfortran/34699
5138         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
5139         static links.
5140         * pa-hpux10.h (LINK_SPEC): Likewise.
5141         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
5142
5143 2008-01-16  Richard Guenther  <rguenther@suse.de>
5144
5145         PR middle-end/32628
5146         * fold-const.c (fold_convert_const_int_from_int): Do not
5147         set overflow if that occured only because of a sign extension
5148         change when converting from/to a sizetype with the same
5149         precision and signedness.
5150
5151 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
5152
5153         PR debug/34249
5154         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
5155         location address to the correct place.  Update copyright year.
5156
5157 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5158
5159         * lambda-code.c (lambda_transform_legal_p): Handle the case of
5160         no dependences in the dependence_relations vector.
5161
5162 2008-01-16  Jan Hubicka  <jh@suse.cz>
5163
5164         PR rtl-optimization/31396
5165         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
5166         * cfg.c (dump_reg_info): Print it.
5167         * regs.h (struct reg_info_t): add freq_calls_crossed.
5168         (REG_FREQ_CALLS_CROSSED): New macro.
5169         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
5170         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
5171         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
5172         regmove_optimize): Update call crossed frequencies.
5173         * local-alloc.c (struct qty): Add freq_calls_crossed.
5174         (alloc_qty): Copute freq_calls_crossed.
5175         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
5176         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
5177         * ra.h (struct allocno): Add freq_calls_crossed.
5178
5179 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5180
5181         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
5182         libgomp when compiling with ftree-parallelize-loops.
5183         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
5184
5185 2008-01-16  Richard Guenther  <rguenther@suse.de>
5186
5187         PR tree-optimization/34769
5188         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
5189         * tree.c (int_cst_value): Instead make this function more
5190         permissive in what it accepts as valid input.  Document this
5191         function always sign-extends the value.
5192
5193 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
5194             Richard Guenther  <rguenther@suse.de>
5195
5196         PR c/34668
5197         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
5198         (gimple_fold_indirect_ref_rhs): ... this.
5199         (gimple_fold_indirect_ref): New function with foldings
5200         that preserve lvalueness.
5201         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
5202         * tree-flow.h (gimple_fold_indirect_ref): Declare.
5203         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
5204         to fold an INDIRECT_REF, fall back to the old use of
5205         fold_indirect_ref_1.
5206
5207 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5208
5209         * tree-data-ref.c (subscript_dependence_tester_1): Call 
5210         free_conflict_function.
5211         (compute_self_dependence): Same.
5212
5213 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
5214
5215         PR debug/34249
5216         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
5217         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
5218         function global.
5219         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
5220         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
5221         for DWARF2_UNWIND_INFO targets.
5222
5223 2008-01-16  Richard Guenther  <rguenther@suse.de>
5224
5225         PR c/34768
5226         * c-typeck.c (common_pointer_type): Do not merge inconsistent
5227         type qualifiers for function types.
5228
5229 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
5230
5231         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
5232         loop_iterator li from previous commit.
5233
5234 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
5235
5236         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
5237
5238 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
5239
5240         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
5241         (parallelize_loops): Don't parallelize irreducible components.
5242
5243 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5244
5245         PR c++/24924
5246         * c-opts (c_common_post_options): Do not enable CPP
5247         flag_pedantic_errors by default.
5248         
5249 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
5250
5251         PR rtl-optimization/31944
5252         * cse.c (remove_pseudo_from_table): New function.
5253         (merge_equiv_classes): Use above function to remove pseudo-registers.
5254         (invalidate): Likewise.
5255
5256 2008-01-13  Richard Guenther  <rguenther@suse.de>
5257
5258         PR middle-end/34601
5259         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
5260         instead of TYPE_MODE to deal with calls from expand_one_error_var.
5261
5262 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
5263
5264         * gcse.c (cprop_jump): Call validate_unshare_change instead of
5265         validate_change to unshare the source of the PC set.
5266
5267 2008-01-12  Jan Hubicka  <jh@suse.cz>
5268
5269         PR middle-end/32135
5270         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
5271         references above array bounds.  This might trigger bounds checks for
5272         pointers to arrays.
5273
5274 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
5275
5276         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
5277         new_replaceable_dependencies.
5278
5279 2008-01-12  Doug Kwan  <dougkwan@google.com>
5280
5281         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
5282         instead of OPT_Wreturn_type in warning due to ignored return type
5283         qualifiers.
5284         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
5285         options included in -Wextra.
5286         * c.opt: New option -Wignored_qualifiers.
5287         * doc/invoke.texi (Warning Options, -Wextra): Add new option
5288         -Wignore_qualifiers.
5289         (-Wignored-qualifiers): Document.
5290         (-Wreturn-type): Remove description of functionality now handled
5291         by -Wignored-qualifiers.
5292
5293 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
5294
5295         PR ada/33788
5296         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
5297         NOP_EXPR if it is between integral types with the same precision.
5298
5299 2008-01-12  Jan Hubicka  <jh@suse.cz>
5300
5301         PR other/28023
5302         * invoke.texi (max-inline-recursive-depth): Fix default value.
5303
5304 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
5305
5306         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
5307         correct type.
5308
5309 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
5310         
5311         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
5312         
5313 2008-01-11  James E. Wilson  <wilson@specifix.com>
5314
5315         PR target/26015
5316         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
5317
5318 2008-01-11  Anatoly Sokolov <aesok@post.ru>
5319
5320         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
5321         save/restore frame pointer register and don't use 'call-prologues' 
5322         optimization in function with "OS_task" attribute.
5323
5324 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
5325
5326         PR middle-end/31309
5327         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
5328         when copying to memory.
5329
5330 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
5331
5332         PR rtl-optimization/30905
5333         * cfgcleanup.c: Include dce.h
5334         (crossjumps_occured): New global variable.
5335         (try_crossjump_bb): Exit loop after finding a fallthru edge.
5336         If something changed, set crossjumps_occured to true.
5337         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
5338         Don't add/remove fake edges to exit here...
5339         (cleanup_cfg): ...but do it here, when crossjumping.
5340         Run a fast DCE when successful crossjumps occured in the latest
5341         iteration of try_optimize_cfg.
5342
5343 2008-01-11  Richard Guenther  <rguenther@suse.de>
5344
5345         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
5346         (struct vn_unary_op_s): Likewise.
5347         (vn_reference_insert): Free old reference on hash collision.
5348
5349 2008-01-10  Raksit Ashok  <raksit@google.com>
5350
5351         PR rtl-optimization/27971
5352         * combine.c (find_split_point): Split PLUS expressions which are
5353         inside a MEM rtx, and whose first operand is complex.
5354
5355 2008-01-10  DJ Delorie  <dj@redhat.com>
5356
5357         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
5358         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
5359         (m32c_hard_regno_ok): Call the underlying function.
5360
5361 2008-01-10  Richard Guenther  <rguenther@suse.de>
5362
5363         PR middle-end/34683
5364         * tree-cfg.c (tree_merge_blocks): Do not go through the
5365         full-blown folding and stmt updating path if we just deal
5366         with virtual operands.
5367         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
5368         test for abnormal SSA_NAMEs.
5369
5370 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5371
5372         PR middle-end/34641
5373         * reload.c (push_reload): Add assertions.  All constants from
5374         reg_equiv_constant should have been used for replacing the respective
5375         pseudo earlier.
5376         (find_reloads_address): Invoke find_reloads_address_part for
5377         constant taken from the reg_equiv_constant array.
5378
5379 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
5380
5381         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
5382         field (valnum) the first in the struct.  Replace bools with
5383         unit bit fields.
5384
5385 2008-01-10  Richard Guenther  <rguenther@suse.de>
5386
5387         PR tree-optimization/34651
5388         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
5389         types and ordering for masking and converting.
5390
5391 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
5392
5393         PR tree-optimization/34017
5394         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
5395         also for PHI_NODE expressions.
5396
5397 2008-01-09  Jan Hubicka  <jh@suse.cz>
5398
5399         PR tree-optimization/34708
5400         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
5401         based on number of case labels.
5402         (init_inline_once): Remove switch_cost.
5403         * tree-inline.h (eni_weights_d): Remove switch_cost.
5404
5405 2008-01-09  Richard Guenther  <rguenther@suse.de>
5406         Andrew Pinski  <andrew_pinski@playstation.sony.com>
5407
5408         PR middle-end/30132
5409         * gimplify.c (gimplify_cond_expr): Do not create an addressable
5410         temporary if an rvalue is ok or an lvalue is not required.
5411
5412 2008-01-09  Richard Guenther  <rguenther@suse.de>
5413
5414         PR middle-end/34458
5415         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
5416         adjust return type.
5417
5418 2008-01-09  Richard Guenther  <rguenther@suse.de>
5419
5420         PR middle-end/34679
5421         * tree.c (host_integerp): Check for sizetype only if the
5422         type is an integer type.
5423
5424 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
5425
5426         PR debug/26364
5427         * opts.c (decode_options): Disable inlining of functions called
5428         once if not in unit-at-a-time mode.
5429
5430 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
5431
5432         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
5433
5434 2008-01-08  Richard Guenther  <rguenther@suse.de>
5435
5436         PR middle-end/31863
5437         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
5438         out early if the result will be unused.
5439
5440 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
5441
5442         PR target/34709
5443         Revert:
5444
5445         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
5446         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
5447         for TARGET_RECIP.       
5448         
5449 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
5450         
5451         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
5452         for vectorization tuned.
5453         
5454 2008-01-08  Richard Guenther  <rguenther@suse.de>
5455
5456         PR tree-optimization/34683
5457         * tree-ssa-operands.c (operand_build_cmp): Export.
5458         * tree-ssa-operands.h (operand_build_cmp): Declare.
5459         * tree-vn.c (vuses_compare): Remove.
5460         (sort_vuses): Use operand_build_cmp.
5461         (sort_vuses_heap): Likewise.
5462         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
5463         to re-use old VEC if available.  Do not sort already sorted VUSEs.
5464         (vdefs_to_vec): Do not sort already sorted VDEFs.
5465
5466 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
5467
5468         PR middle-end/34694
5469         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
5470
5471 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
5472
5473         PR target/34702
5474         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
5475         limitations of reciprocal sequences on x86 targets.
5476
5477 2008-01-08  Richard Guenther  <rguenther@suse.de>
5478
5479         PR tree-optimization/34683
5480         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
5481
5482 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
5483
5484         PR target/34622
5485         * config/darwin.c (darwin_mergeable_string_section): Don't use
5486         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
5487
5488 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
5489
5490         PR target/34682
5491         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
5492         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
5493         predicates of op0 and op1 to register_operand.
5494         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
5495         expander using X87MODEF mode iterator.  Change predicates of
5496         op0 and op1 to register_operand.
5497         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
5498         corresponding patterns and macroize using MODEF macro.  Change
5499         predicates of op0 and op1 to register_operand and remove
5500         "m" constraint. Disparage "r" alternative with "!".
5501         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
5502         macroize using X87MODEF macro.  Change predicates of op0 and op1
5503         to register_operand and remove "m" constraint.  Disparage "r"
5504         alternative with "!".
5505         (absneg splitter with memory operands): Remove.
5506         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
5507         patterns and macroize using X87MODEF mode iterator.
5508         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
5509         Change predicate of op1 to register_operand.
5510         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
5511         for memory operands.
5512
5513 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
5514
5515         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
5516
5517 2008-01-07  Richard Guenther  <rguenther@suse.de>
5518
5519         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
5520         fields.
5521
5522 2008-01-07  Richard Guenther  <rguenther@suse.de>
5523
5524         PR tree-optimization/34683
5525         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
5526         VOPs of the needed size to save memory.  Use VEC_quick_push
5527         to save compile-time.
5528         (vdefs_to_vec): Likewise.
5529
5530 2008-01-07  Sa Liu  <saliu@de.ibm.com>
5531
5532         * config/spu/spu.md (divdf3): Genetate inline code for double
5533         division.  The implementation doesn't handle INF or NAN, therefore it
5534         only applies when -ffinite-math-only is given.
5535
5536 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
5537
5538         PR libstdc++/34680
5539         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
5540         * doc/cpp.texi ([Common Predefined Macros]): Document.
5541
5542 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
5543
5544         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
5545         order to use commutative addition instead of subtraction.
5546
5547 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5548             Mircea Namolaru  <namolaru@il.ibm.com>
5549             Vladimir Yanovsky  <yanov@il.ibm.com>
5550             Revital Eres  <eres@il.ibm.com>
5551
5552         PR tree-optimization/34263
5553         * tree-outof-ssa.c (process_single_block_loop_latch,
5554         contains_tree_r): New functions.
5555         (analyze_edges_for_bb): Call process_single_block_loop_latch
5556         function to empty single-basic-block latch block if possible.
5557
5558 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
5559
5560         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
5561         for TARGET_RECIP.
5562         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
5563
5564 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
5565
5566         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
5567
5568 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
5569
5570         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
5571
5572 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
5573
5574         PR tree-optimization/34618
5575         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
5576         flag from T.
5577
5578 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
5579
5580         PR target/34673
5581         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
5582         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
5583         Update copyright year.
5584
5585         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
5586         Update copyright year.
5587         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
5588         using NR fixup.
5589
5590 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
5591
5592         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
5593         edge does not point to current bb before changing need_assert.
5594
5595 2008-01-04  Richard Guenther  <rguenther@suse.de>
5596
5597         PR middle-end/34029
5598         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
5599         for verifying purposes if they are is_gimple_min_invariant.
5600
5601 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
5602
5603         PR tree-optimization/34448
5604         PR tree-optimization/34465
5605         * gimplify.c (gimplify_init_constructor): Add new parameter
5606         notify_temp_creation.  Use it.
5607         (gimplify_modify_expr_rhs): Take volatiles into account when
5608         optimizing constructors.
5609         Do not optimize constructors if gimplify_init_constructor will dump to
5610         memory.
5611         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
5612         * gcc.c-torture/compile/pr34448.c: New.
5613
5614 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
5615
5616         PR gcov-profile/34609
5617         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
5618         return_slot if result is TREE_ADDRESSABLE.
5619
5620 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
5621
5622         * config/mips/mips.md (sqrt_condition): Tweak comment.
5623         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
5624
5625 2008-01-03  Tom Tromey  <tromey@redhat.com>
5626
5627         PR c/34457
5628         * c-common.c (c_type_hash): Handle VLAs.
5629
5630 2008-01-03  Jan Hubicka  <jh@suse.cz>
5631
5632         PR tree-optimization/31081
5633         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
5634         0 when inlining and not inlining to first basic block.
5635         (remap_decl): When var is initialized to 0, don't set default_def.
5636         (expand_call_inline): Set entry_bb.
5637         * tree-inline.h (copy_body_data): Add entry_bb.
5638
5639 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
5640
5641         PR c++/34619
5642         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
5643         before returning.
5644
5645         PR tree-optimization/29484
5646         * tree-inline.c (inline_forbidden_p_2): New function.
5647         (inline_forbidden_p): Disallow inlining if some static var
5648         has an address of a local LABEL_DECL in its initializer.
5649         * doc/extend.texi (Labels as Values): Document &&foo behaviour
5650         vs. inlining.
5651
5652 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
5653
5654         PR tree-optimization/34635
5655         * tree-data-ref.c (add_other_self_distances): Make sure that the
5656         evolution step is constant.
5657
5658 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
5659
5660         PR middle-end/34608
5661         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
5662
5663 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
5664
5665         * tree-sra.c (scalarize_init): Insert the generate_element_init
5666         statements after the generate_element_zero statements.
5667
5668 2008-01-02  Richard Guenther  <rguenther@suse.de>
5669
5670         PR middle-end/34093
5671         PR middle-end/31976
5672         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
5673         for very large number of operands instead of ICEing.
5674
5675 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
5676
5677         PR target/34013
5678         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
5679         while stack probing.
5680
5681 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
5682
5683         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
5684         in C++0x mode.
5685
5686 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
5687
5688         PR libmudflap/26442
5689         * tree-mudflap.c (mx_register_decls): Guard warning by
5690         !DECL_ARTIFICIAL check.
5691
5692 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
5693
5694         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
5695         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
5696         sse5_perm<mode>): Fix constraints.