OSDN Git Service

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