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