OSDN Git Service

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