OSDN Git Service

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