OSDN Git Service

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