OSDN Git Service

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