OSDN Git Service

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