OSDN Git Service

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