OSDN Git Service

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