OSDN Git Service

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