OSDN Git Service

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