OSDN Git Service

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