OSDN Git Service

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