OSDN Git Service

2008-05-14 Paul Thomas <pault@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3
4         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
5         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
6         (vashl_optab): New optab for vector/vector shifts.
7         (vashr_optab): Ditto.
8         (vlshr_optab): Ditto.
9         (vrotl_optab): Ditto.
10         (vrotr_optab): Ditto.
11         (optab_subtype): New enum for optab_for_tree_code call.
12         (optab_for_tree_code): Add enum optab_subtype argument.
13
14         * optabs.c (optab_for_tree_code): Take an additional argument to
15         distinguish between a vector shift by a scalar and vector shift by
16         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
17         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
18         vector shift by a vector.
19         (expand_widen_pattern_expr): Pass additional argument to
20         optab_for_tree_code.
21
22         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
23         vrotl_optab, vrotr_optab.
24
25         * expr.c (expand_expr_real_1): Update calls to
26         optab_for_tree_code to distinguish between vector shifted by a
27         scalar and vector shifted by a vector.
28         * tree-vectorizer.c (supportable_widening_operation): Ditto.
29         (supportable_narrowing_operation): Ditto.
30         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
31         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
32         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
33         (vect_create_epilog_for_reduction): Ditto.
34         (vectorizable_reduction): Ditto.
35         (vectorizable_operation): Ditto.
36         (vect_strided_store_supported): Ditto.
37         (vect_strided_load_supported): Ditto.
38         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
39         * expmed.c (expand_shift): Ditto.
40
41         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
42         scalar type.
43         (ashr@var{m}3): Ditto.
44         (vashl@var{m}3): Document new vector/vector shift standard name.
45         (vashr@var{m}3): Ditto.
46         (vlshr@var{m}3): Ditto.
47         (vrotl@var{m}3): Ditto.
48         (vrotr@var{m}3): Ditto.
49
50         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from
51         i386.c.
52         (PPERM_INVERT): Ditto.
53         (PPERM_REVERSE): Ditto.
54         (PPERM_REV_INV): Ditto.
55         (PPERM_ZERO): Ditto.
56         (PPERM_ONES): Ditto.
57         (PPERM_SIGN): Ditto.
58         (PPERM_INV_SIGN): Ditto.
59         (PPERM_SRC1): Ditto.
60         (PPERM_SRC2): Ditto.
61
62         * config/i386/sse.md (mulv2di3): Add SSE5 support.
63         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
64         allows a memory operand to be the value being added, and split it
65         to improve vectorization.
66         (sse5_pmacsdqh_mem): Ditto.
67         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
68         (sse5_mulv2div2di3_high): Ditto.
69         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
70         (vec_pack_trunc_v4si): Ditto.
71         (vec_pack_trunc_v2di): Ditto.
72         (sse5_pcmov_<mode>): Remove code that tried to use use
73         andps/andnps instead of pcmov.
74         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
75         pmacsdqh instructions.
76         (vec_widen_smult_lo_v4si): Ditto.
77
78         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
79         (PPERM_INVERT): Ditto.
80         (PPERM_REVERSE): Ditto.
81         (PPERM_REV_INV): Ditto.
82         (PPERM_ZERO): Ditto.
83         (PPERM_ONES): Ditto.
84         (PPERM_SIGN): Ditto.
85         (PPERM_INV_SIGN): Ditto.
86         (PPERM_SRC1): Ditto.
87         (PPERM_SRC2): Ditto.
88         (ix86_expand_sse_movcc): Move the SSE5 test after the if
89         true/false tests.
90         (ix86_expand_int_vcond): If SSE5 generate all possible integer
91         comparisons.
92         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
93         says ignore whether the last reference is a memory operand.
94
95 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
96             Paolo Bonzini <bonzini at gnu dot org>
97
98         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
99         shift patterns.
100
101         * config/rs6000/altivec.md (vashl<mode>3): Rename from
102         ashl<mode>3.
103         (vlshr<mode>3): Rename from vlshr<mode>3.
104         (vashr<mode>3): Rename from vashr<mode>3.
105         (mulv4sf3): Change the names of vector shift patterns.
106         (mulv4si3): Ditto.
107         (negv4sf2): Ditt.
108
109         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
110         shift insns.
111
112         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift
113         insns.
114         (SI_SHLHI): Ditto.
115         (SI_SHL): Ditto.
116         (SI_SHLI): Ditto.
117         (SI_ROTH): Ditto.
118         (SI_ROTHI): Ditto.
119         (SI_ROT): Ditto.
120         (SI_ROTI): Ditto.
121         (SPU_RL_0): Ditto.
122         (SPU_RL_1): Ditto.
123         (SPU_RL_2): Ditto.
124         (SPU_RL_3): Ditto.
125         (SPU_RL_4): Ditto.
126         (SPU_RL_5): Ditto.
127         (SPU_RL_6): Ditto.
128         (SPU_RL_7): Ditto.
129         (SPU_SL_0): Ditto.
130         (SPU_SL_1): Ditto.
131         (SPU_SL_2): Ditto.
132         (SPU_SL_3): Ditto.
133         (SPU_SL_4): Ditto.
134         (SPU_SL_5): Ditto.
135         (SPU_SL_6): Ditto.
136         (SPU_SL_7): Ditto.
137
138         * config/spu/spu.md (v): New iterator macro to add v for vector types.
139         (floatunssidf2_internal): Change vector/vector shift names.
140         (floatunsdidf2_internal): Ditto.
141         (mulv8hi3): Ditto.
142         (ashrdi3): Ditto.
143         (ashrti3): Ditto.
144         (cgt_df): Ditto.
145         (cgt_v2df): Ditto.
146         (dftsv): Ditto.
147         (vashl<mode>3): Rename from ashl<mode>3.
148         (vashr<mode>3): Rename from ashr<mode>3.
149         (vlshr<mode>3): Rename from lshr<mode>3.
150         (vrotl<mode>3): Rename from rotl<mode>3.
151
152 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
153
154         PR target/36224
155         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using
156         unsigned multiply gives the wrong value when doing widening
157         multiplies.
158         (vec_widen_smult_lo_v4si): Ditto.
159
160 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
161
162         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
163         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
164         emit_library_call_value. 
165         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
166         * tree.h (ECF_LIBCALL_BLOCK): Removed.
167         * calls.c (initialize_argument_information, precompute_arguments, 
168         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
169         (precompute_arguments): Removed flags parameter.
170         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
171         
172 2008-05-14  Richard Guenther  <rguenther@suse.de>
173
174         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
175         Make sure to register the store if the use is a PHI_NODE.
176
177 2008-05-14  Olivier Hainque  <hainque@adacore.com>
178
179         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
180         memory if the component is to be referenced in BLKmode according
181         to get_inner_reference.
182
183 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
184
185         * calls.c (emit_library_call_value_1): Restore code clearing
186         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence
187         once.
188
189 2008-05-14  Olivier Hainque  <hainque@adacore.com>
190             Nicolas Roche  <roche@adacore.com>
191
192         * configure.ac: Add support for a "gcc_subdir" variable in
193         config-lang.in, to denote a subdirectory where the language/GCC
194         integration files are to be found.
195         * configure: Regenerate.
196
197 2008-05-14  Ira Rosen  <irar@il.ibm.com>
198
199         PR tree-optimization/36098
200         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
201         value for the first load in the group in case of a gap.
202         (vect_build_slp_tree): Check that there are no gaps in loads.
203
204 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
205
206         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
207         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
208         expand_copysign_bit, ): Change call to emit_no_conflict_block to
209         emit_insn and remove unneeded code to construct extra args.
210         (emit_no_conflict_block): Removed.
211         * optabls.h: (emit_no_conflict_block): Removed.
212         * cse.c (cse_extended_basic_block): Remove search for
213         REG_NO_CONFLICT note.  
214         * global.c: Removed incorrect comment added in revision 117.
215         * expr.c (convert_move): Change call to emit_no_conflict_block to
216         emit_insn.
217         * recog.c: Change comments so that they do not mention
218         REG_NO_CONFLICT.
219         * local_alloc.c (combine_regs): Removed last parameter.
220         (no_conflict_p): Removed.
221         (block_alloc): Removed note, no_conflict_combined_regno and set
222         local vars. Removed all code to process REG_NO_CONFLICT blocks.
223         (combine_regs): Removed already_dead and code to look for
224         REG_NO_CONFLICT notes.
225         * lower_subreg (remove_retval_note): Removed code to look for
226         REG_NO_CONFLICT block.
227         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
228         (resolve_clobber): Remove code to process libcalls that have
229         REG_NO_CONFLICT notes.
230         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
231         case.
232         * combine.c (can_combine_p, distribute_notes):  Removed REG_NO_CONFLICT
233         case.
234         * config/cris/cris.md (movdi pattern): Changed
235         emit_no_conflict_block to emit_insns.
236         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
237         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
238         Ditto. 
239         * reg-notes.def (NO_CONFLICT): Removed.
240         
241 2008-05-14  David S. Miller  <davem@davemloft.net>
242
243         * config/sparc/sparc.c (sparc_profile_hook): If
244         NO_PROFILE_COUNTERS, don't generate and pass a label
245         into mcount.
246         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
247         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
248
249 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
250
251         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
252
253 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
254
255         PR target/36222
256         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
257         and op1 expansion before vector concat to have less live pseudos.
258
259 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
260
261         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
262         ix86_expand_vector_set if supported.
263
264 2008-05-13  Diego Novillo  <dnovillo@google.com>
265             Kenneth Zadeck  <zadeck@naturalbridge.com>
266
267         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
268
269         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
270         phinodes_print_statistics, init_ssanames, fini_ssanames,
271         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
272         release_ssa_name, release_defs, replace_ssa_name_symbol,
273         ssanames_print_statistics): Move ...
274         * tree-flow.h: ... here.
275         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
276         Use FN instead of cfun.
277         (make_ssa_name_fn): Rename from make_ssa_name.
278         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
279         * tree-flow-inline.h (make_ssa_name): Move from
280         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
281         * omp-low.c (expand_omp_parallel):
282         * tree-flow-inline.h (redirect_edge_var_map_result):
283         * tree-ssa.c (init_tree_ssa): Add argument FN.  Use it instead of cfun.
284         Update all users.
285
286 2008-05-13  Tom Tromey  <tromey@redhat.com>
287
288         PR preprocessor/22168:
289         * doc/cpp.texi (Top): Update menu.
290         (Alternatives to Wrapper #ifndef): New node.
291         (Other Directives): Document deprecation.
292         (Obsolete Features): Remove menu.
293         (Assertions): Merge node into Obsolete Features.
294         (Obsolete once-only headers): Move earlier; rename to Alternatives
295         to Wrapper #ifndef.
296         * doc/cppopts.texi: Update.
297         * c.opt (Wdeprecated): Enable for C and ObjC.
298         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
299         (C++ Dialect Options): Move -Wno-deprecated from here to...
300         (Warning Options): ... here.
301
302 2008-05-13  Richard Guenther  <rguenther@suse.de>
303
304         PR middle-end/36227
305         * fold-const.c (fold_sign_changed_comparison): Do not allow
306         changes in pointer-ness.
307
308 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
309
310         PR target/24713
311         * config/sh/sh.c (sh_expand_prologue): Don't clear
312         RTX_FRAME_RELATED_P for push insns.
313
314 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
315
316         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
317
318 2008-05-12  Anatoly Sokolov <aesok@post.ru>
319
320         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
321         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
322         Use 'machine->is_leaf' instead of 'leaf_func_p'.
323
324 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
325
326         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
327         (*vec_concatv4sf_sse): This.
328         (*sse2_concatv2si): Renamed to ...
329         (*vec_concatv2si_sse2): This.
330         (*sse1_concatv2si): Renamed to ...
331         (*vec_concatv2si_sse): This.
332         (*vec_concatv2di_rex): Renamed to ...
333         (*vec_concatv2di_rex64): This.
334         (*vec_concatv2si_sse4_1): New.
335         (*vec_concatv2di_rex64_sse4_1): Likewise.
336
337 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
338
339         PR rtl-optimization/36111
340         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
341         that was created for swappable operands.
342
343 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
344
345         PR ada/36001
346         * Makefile.in: Substitute GNATMAKE and GNATBIND.
347         * configure.ac: Add call to ACX_PROG_GNAT.
348
349 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
350
351         * optc-gen.awk: Fix comment typo.
352
353 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
354
355         * pretty-print.c (pp_integer_with_precision): Use
356         HOST_LONG_LONG_FORMAT.
357
358 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
359
360         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
361                 
362 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
363
364         * config/i386/i386.c (bdesc_ptest): Removed.
365         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
366         (bdesc_args): Add __builtin_ia32_ptestz128,
367         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
368         (ix86_init_mmx_sse_builtins): Updated.
369         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
370         (ix86_expand_builtin): Updated.
371
372 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
373
374         * tree-cfg.c (valid_fixed_convert_types_p): New function.
375         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
376
377 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
378
379         * value-prof.c (interesting_stringop_to_profile): Do not
380         return early for BUILT_IN_MEMPCPY.
381
382 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
383
384         * calls.c (expand_call): Don't use callgraph to increase
385         preferred_stack_boundary.
386
387         * cgraph.h (cgraph_rtl_info): Use unsigned on
388         preferred_incoming_stack_boundary.
389
390         * final.c (rest_of_clean_state): Use unsigned on
391         preferred_stack_boundary.
392
393 2008-05-09  Tom Tromey  <tromey@redhat.com>
394
395         PR preprocessor/22231:
396         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
397         proceeding.
398
399 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
400
401         PR tree-optimization/36129
402         * tree-ssa-ccp.c: Include value-prof.h.
403         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
404         built-in function was folded to a constant.
405         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
406
407 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
408             Sebastian Pop  <sebastian.pop@amd.com>
409
410         * tree-scalar-evolution.c: Document instantiate_scev.
411         (instantiate_parameters_1): Renamed instantiate_scev_1.
412         Don't use the same loop for instantiation_loop and evolution_loop.
413         (instantiate_scev): New.
414         (instantiate_parameters): Moved...
415         (resolve_mixers): Update call to instantiate_scev_1 to pass the
416         same loop twice.  Maintains the semantics for this function.
417         * tree-scalar-evolution.h (instantiate_scev): Declare.
418         (instantiate_parameters): ...here.  Now static inline.
419         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
420         instead of resolve_mixers.
421
422 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
423
424         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
425
426 2008-05-09  Tomas Bily  <tbily@suse.cz>
427
428         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
429         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
430         * tree-ssa-structalias.c (get_constraint_for): Likewise.
431         * c-common.c (c_common_truthvalue_conversion): Likewise.
432         * tree-object-size.c (compute_object_offset): Likewise.
433         * tree-inline.c (estimate_num_insns_1): Likewise.
434         * varasm.c (const_hash_1, compare_constant, copy_constant)
435         (compute_reloc_for_constant, output_addressed_constants)
436         (initializer_constant_valid_p): Likewise.
437         * c-omp.c (check_omp_for_incr_expr): Likewise.
438         * gimplify.c (gimplify_expr): Likewise.
439         * c-typeck.c (c_finish_return): Likewise.
440         * tree-vectorizer.c (supportable_widening_operation)
441         (supportable_narrowing_operation): Likewise.
442         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
443         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
444         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
445         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
446         (descr_info_loc): Likewise.
447         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
448         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
449         (fold_unary): Likewise.
450         * builtins.c (get_pointer_alignment): Likewise.
451         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
452         (instantiate_parameters_1): Likewise.
453         * tree.c (expr_align, stabilize_reference): Likewise.
454         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
455         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
456         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
457         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
458         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
459         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
460         Likewise.
461         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
462         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
463         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
464         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
465         (forward_propagate_comparison)
466         (tree_ssa_forward_propagate_single_use_vars): Likewise.
467         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
468         * emit-rtl.c (component_ref_for_mem_expr)
469         (set_mem_attributes_minus_bitpos): Likewise.
470         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
471         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
472         Likewise.
473         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
474         (build_function_call, pointer_diff, build_compound_expr)
475         (c_finish_return): Likewise.
476         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
477         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
478         Likewise.
479         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
480         * expr.c (is_aligning_offset): Likewise.
481         * tree-ssa-alias.c (is_escape_site): Likewise.
482         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
483         (check_all_va_list_escapes): Likewise.
484         * tree-ssa-loop-ivopts.c (determine_base_object)
485         (determine_common_wider_type): Likewise.
486         * dojump.c (do_jump): Likewise.
487         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
488         * tree-gimple.c (is_gimple_cast): Likewise.
489         * fold-const.c (decode_field_reference, )
490         (fold_sign_changed_comparison, fold_unary, fold_comparison)
491         (fold_binary): Likewise.
492         * tree-ssa-alias-warnings.c (find_alias_site_helper)
493         (already_warned_in_frontend_p): Likewise.
494         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
495         * tree.c (really_constant_p, get_unwidened): Likewise.
496         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
497         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
498         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
499         Likewise.
500         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
501         CONVERT_EXPR_P.
502         (CONVERT_EXPR_P): Define.
503         (CASE_CONVERT): Define.
504         
505 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
506
507         PR middle-end/36117
508         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
509         (delete_unmarked_insns): When deleting a call, call
510         delete_unreachable_blocks.
511         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
512         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
513
514 2008-05-08  Richard Guenther  <rguenther@suse.de>
515
516         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
517         (-ftree-salias): Likewise.
518         (salias-max-implicit-fields): Remove param documentation.
519         (salias-max-array-elements): Likewise.
520         * tree-pass.h (pass_create_structure_vars): Remove.
521         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
522         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
523         * tree-ssa-alias.c (create_structure_vars): Remove.
524         (gate_structure_vars): Likewise.
525         (pass_create_structure_vars): Likewise.
526         (gate_build_alias): Likewise.
527         (pass_build_alias): Adjust to run always and dump the function.
528         * common.opt (ftree-salias): Hide.
529         * passes.c (init_optimization_passes): Remove
530         pass_create_structure_vars, adjust comment.
531         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
532         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
533         * opts.c (decode_options): Do not set flag_tree_salias.
534         (common_handle_option): Add OPT_ftree_salias to the backward
535         compatibility section.
536
537 2008-05-08  Richard Guenther  <rguenther@suse.de>
538
539         * tree-flow-inline.h (var_can_have_subvars): Move ...
540         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
541         * tree-flow.h (var_can_have_subvars): Remove.
542         (push_fields_onto_fieldstack): Remove.
543         (sort_fieldstack): Likewise.
544         (struct fieldoff): Move ...
545         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
546         alias_set and base_for_components fields.
547         (sort_fieldstack): Make static.
548         (push_fields_onto_fieldstack): Likewise.  Remove code that
549         handles anything but RECORD_TYPEs.  Remove alias_set and
550         base_for_components handling.
551         (create_variable_info_for): Adjust.
552
553 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
554
555         * common.opt (Wframe-larger-than=): Shorten the help message
556         to one line.
557         * doc/invoke.texi (Wframe-larger-than=): Add more description.
558
559 2008-05-08  Rafael Espindola  <espindola@google.com>
560
561         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
562         trap.
563         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
564         trap and that both operands are gimple values.
565         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
566         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
567         is a fp operation.
568
569 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
570
571         * read-rtl.c (join_c_conditions): Return the first string if the
572         two strings are equal.
573
574 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
575
576         * gensupport.h (pred_data): Add a "num_codes" field.
577         (add_predicate_code): Declare.
578         * gensupport.c (add_predicate_code): New function.
579         (std_pred_table): Add an "allows_const_p" field.
580         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
581         Remove the (incomplete) list of such codes from the codes field.
582         (init_predicate_table): Use add_predicate_code.  Add all
583         RTX_CONST_OBJs if allows_const_p is true.
584         * genrecog.c (process_define_predicate): Use add_predicate_code.
585
586 2008-05-08  David Daney  <ddaney@avtrex.com>
587             Richard Sandiford  <rsandifo@nildram.co.uk>
588         
589         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
590         special case of constant zero operands.
591         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
592         old and new values.  Special case constant zero values.
593         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
594         fails.
595         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
596         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
597
598 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
599
600         PR target/36090
601         * simplify-rtx.c (simplify_plus_minus): Create CONST of
602         similar RTX_CONST_OBJ before CONST_INT.
603
604 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
605
606         * stmt.c (expand_stack_restore): Change sa mode if needed.
607
608 2008-05-08  Richard Guenther  <rguenther@suse.de>
609
610         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
611         return type to bool.
612         (ix86_sol10_return_in_memory): Likewise.
613         (ix86_i386elf_return_in_memory): Likewise.
614         (ix86_i386interix_return_in_memory): Likewise.
615         * config/i386/i386.c (ix86_return_in_memory): Likewise.
616         (ix86_sol10_return_in_memory): Likewise.
617         (ix86_i386elf_return_in_memory): Likewise.
618         (ix86_i386interix_return_in_memory): Likewise.
619
620 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
621
622         PR bootstrap/36180
623         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
624         fndecl argument.
625         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
626         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
627         declared in front.
628
629 2008-05-08  Richard Guenther  <rguenther@suse.de>
630
631         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
632         * tree-data-ref.h (struct dr_alias): Remove subvars field.
633         (DR_SUBVARS): Remove.
634         * tree-dfa.c (dump_subvars_for): Remove.
635         (debug_subvars_for): Likewise.
636         (dump_variable): Do not dump subvars.
637         (remove_referenced_var): Do not remove subvars.
638         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
639         (lookup_subvars_for_var): Remove.
640         (get_subvars_for_var): Likewise.
641         (get_subvars_at): Likewise.
642         (get_first_overlapping_subvar): Likewise.
643         (overlap_subvar): Likewise.
644         * tree-flow.h (subvar_t): Remove.
645         (struct var_ann_d): Remove subvars field.
646         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
647         argument.  Remove special handling of SFTs.
648         (compute_tag_properties): Likewise.
649         (set_initial_properties): Likewise.
650         (compute_call_clobbered): Likewise.
651         (count_mem_refs): Likewise.
652         (compute_memory_partitions): Likewise.
653         (compute_flow_insensitive_aliasing): Likewise.
654         (setup_pointers_and_addressables): Likewise.
655         (new_type_alias): Likewise.
656         (struct used_part): Remove.
657         (used_portions): Likewise.
658         (struct used_part_map): Likewise.
659         (used_part_map_eq): Likewise.
660         (used_part_map_hash): Likewise.
661         (free_used_part_map): Likewise.
662         (up_lookup): Likewise.
663         (up_insert): Likewise.
664         (get_or_create_used_part_for): Likewise.
665         (create_sft): Likewise.
666         (create_overlap_variables_for): Likewise.
667         (find_used_portions): Likewise.
668         (create_structure_vars): Likewise.
669         * tree.def (STRUCT_FIELD_TAG): Remove.
670         * tree.h (MTAG_P): Adjust.
671         (struct tree_memory_tag): Remove base_for_components and
672         unpartitionable flags.
673         (struct tree_struct_field_tag): Remove.
674         (SFT_PARENT_VAR): Likewise.
675         (SFT_OFFSET): Likewise.
676         (SFT_SIZE): Likewise.
677         (SFT_NONADDRESSABLE_P): Likewise.
678         (SFT_ALIAS_SET): Likewise.
679         (SFT_UNPARTITIONABLE_P): Likewise.
680         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
681         (union tree_node): Remove sft field.
682         * alias.c (get_alias_set): Remove special handling of SFTs.
683         * print-tree.c (print_node): Remove handling of SFTs.
684         * tree-dump.c (dequeue_and_dump): Likewise.
685         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
686         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
687         * tree-predcom.c (set_alias_info): Do not set subvars.
688         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
689         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
690         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
691         (add_vars_for_offset): Remove.
692         (add_virtual_operand): Remove special handling of SFTs.
693         (add_call_clobber_ops): Likewise.
694         (add_call_read_ops): Likewise.
695         (get_asm_expr_operands): Likewise.
696         (get_modify_stmt_operands): Likewise.
697         (get_expr_operands): Likewise.
698         (add_to_addressable_set): Likewise.
699         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
700         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
701         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
702         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
703         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
704         (tree_node_structure): Likewise.
705         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
706         handling of SFTs.
707         (find_what_p_points_to): Likewise.
708
709 2008-05-08  Sa Liu  <saliu@de.ibm.com>
710
711         * config/spu/spu.md: Fixed subti3 pattern.
712
713 2008-05-08  Richard Guenther  <rguenther@suse.de>
714
715         PR middle-end/36154
716         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
717         sure to create a representative for trailing arrays for PTA.
718
719 2008-05-08  Richard Guenther  <rguenther@suse.de>
720
721         PR middle-end/36172
722         * fold-const.c (operand_equal_p): Two objects which types
723         differ in pointerness are not equal.
724
725 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
726
727         * calls.c (compute_argument_block_size): Add argument tree fndecl.
728         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
729         (emit_library_call_value_1): Add new variable fndecl initialized by
730         NULL_TREE. It should be the decl type of orgfun, but this information
731         seems not to be available here, so it uses the default calling abi.
732         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
733         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
734         by TARGET_RETURN_IN_MEMORY.
735         * config/i386/i386-interix.h: Likewise.
736         * config/i386/i386.h: Likewise.
737         * config/i386/i386elf.h: Likewise.
738         * config/i386/ptx4-i.h: Likewise.
739         * config/i386/sol2-10.h: Likewise.
740         * config/i386/sysv4.h: Likewise.
741         * config/i386/vx-common.h: Likewise.
742         * config/cris/cris.h: Removed #if 0 clause.
743         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
744         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
745         argument.
746         (ix86_sol10_return_in_memory): Likewise.
747         (ix86_i386elf_return_in_memory): New.
748         (ix86_i386interix_return_in_memory): New.
749         * config/mt/mt-protos.h (mt_return_in_memory): New.
750         * config/mt/mt.c: Likewise.
751         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
752         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
753         * config/bfin/bfin.h: Likewise.
754         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
755         argument.
756         * config/bfin/bfin.c: Likewise.
757         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
758         * config/alpha/unicosmk.h: Likewise.
759         * config/i386/cygming.h: Likewise.
760         * config/iq2000/iq2000.h: Likewise.
761         * config/mips/mips.h: Likewise.
762         * config/mn10300/mn10300.h: Likewise.
763         * config/rs6000/rs6000.h: Likewise.
764         * config/score/score.h: Likewise.
765         * config/spu/spu.h: Likewise.
766         * config/v850/v850.h: Likewise.
767         * defaults.h: Likewise.
768         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
769         * expr.c (emit_block_move): Adjust use of
770         OUTGOING_REG_PARM_STACK_SPACE.
771         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
772         OUTGOING_REG_PARM_STACK_SPACE.
773         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
774
775 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
776
777         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
778         on OMP_RETURN for OMP_FOR.
779
780         PR debug/35896
781         * dwarf2out.c (dw_expand_expr, common_check): Removed.
782         (fortran_common): New function.
783         (gen_variable_die): Call fortran_common instead of common_check,
784         adjust for it returning tree instead of rtx.  Formatting.
785
786 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
787
788         PR rtl/7335
789         PR rtl/33826
790         * see.c (see_copy_insn): Copy new pure const attributes for new call.
791         * c-decl.c (merge_decls): Ditto.
792         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
793         to RTL_CONST_OR_PURE_CALL_P.
794         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
795         Initialized DECL_LOOPING_CONST_PURE.
796         (process_call_operands): Set tree_side_effects properly.
797         * tree.h (TREE_READONLY_DECL_P): Removed.
798         (DECL_IS_PURE): Renamed to DECL_PURE_P.
799         (DECL_LOOPING_OR_CONST_P): New macro.
800         (struct tree_function_decl): Added looping_const_or_pure_p.
801         (ECF_*) Renumbered.
802         (ECF_LOOPING_OR_CONST_P): New macro.
803         * rtlanal.c (pure_const_p): Removed.
804         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
805         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
806         to RTL_CONST_CALL_P.
807         * ipa-pure-const.c (pure_const_state_e): Added looping field.
808         (check_decl, check_tree, check_call, scan_function): Initialize
809         looping.
810         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
811         (static_execute): Set looping true for recursive functions.
812         Undo setting state to IPA_NEITHER for recursive functions.
813         * cse.c (cse_insn): 
814         * ifcvt.c (noce_can_store_speculate_p): Changed
815         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
816         RTL_CONST_OR_PURE_CALL_P.
817         * dse.c (scan_insn): Ditto.
818         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
819         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
820         RTL_CONST_OR_PURE_CALL_P.
821         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
822         pure_call_p to RTL_CONST_CALL_P.
823         * gimplify.c (gimplify_call_expr): Clear side effects for
824         non-looping pure and constant calls.
825         * calls.c (emit_call_1): Set rtl flags from ecf flags.
826         (flags_from_decl_or_type): Set ecf flags from decl flags.
827         (initialize_argument_information): Turn off
828         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
829         Change const to pure if callee_copies is true rather than just
830         turning off const.
831         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
832         way of marking pure calls.
833         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
834         Remove hack that was supposed to fix pr7335 and remove old
835         way of marking pure calls.
836         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
837         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
838         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
839         RTL_CONST_OR_PURE_CALL_P.
840         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
841         * loop-invariant.c (find_exits, find_invariant_bb): Changed
842         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
843         * sched-deps.c (schedule_analyze): Ditto.
844         * rtl.h (struct rtx_def): Use call field, unchanging field, and
845         return_val field of calls to represent pure and const function info.
846         (CONST_OR_PURE_CALL_P): Deleted macro.
847         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
848         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
849         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
850         TREE_READONLY.
851         * tree-optimize.c (execute_fixup_cfg): Added test for
852         ECF_LOOPING_CONST_OR_PURE.
853         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
854         DECL_PURE_P.
855         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
856         effects for looping pure or const calls.
857         (verify_gimple_expr): Added verification code. 
858         * config/alpha/alpha.c (alpha_legitimize_address,
859         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
860         RTL_CONST_CALL_P.
861         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
862         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
863         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
864         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
865         RTL_CONST_OR_PURE_CALL_P.
866         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
867         and const calls to be deleted.
868
869 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
870
871         PR target/35714
872         * config/i386/mmx.md (mmx_subv2sf3): New expander.
873         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
874         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
875         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
876         to handle nonimmediate operands.
877         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
878         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
879         to handle nonimmediate operands.
880         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
881         (mmx_pmulhrwv4hi3): New expander.  Use
882         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
883         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
884         (sse2_umulv1siv1di3): New expander.  Use
885         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
886         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
887         (mmx_eq<mode>3): New expander.  Use
888         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
889         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
890         (mmx_uavgv8qi3): New expander.  Use
891         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
892         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
893         (mmx_uavgv4hi3): New expander.  Use
894         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
895
896         * config/i386/sse.md
897         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
898         to handle nonimmediate operands.
899         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
900         to handle nonimmediate operands.
901         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
902         to handle nonimmediate operands.
903         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
904         to handle nonimmediate operands.
905         (sse2_unpckhpd_exp): New expander.  Use
906         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
907         (sse2_unpcklpd_exp): New expander.  Use
908         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
909         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
910         to handle nonimmediate operands.
911         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
912         to handle nonimmediate operands.
913         (*sse2_<plusminus_insn><mode>3): Rename from
914         sse2_<plusminus_insn><mode>3 insn pattern.
915         (sse2_<plusminus_insn><mode>3): New expander.  Use
916         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
917         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
918         (sse2_umulv2siv2di3): New expander.  Use
919         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
920         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
921         (sse4_1_mulv2siv2di3): New expander.  Use
922         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
923         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
924         (sse2_pmaddwd): New expander.  Use
925         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
926         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
927         (sse2_eq<mode>3): New expander.  Use
928         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
929         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
930         (sse4_1_eqv2di3): New expander.  Use
931         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
932         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
933         (sse2_uavgv16qi3): New expander.  Use
934         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
935         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
936         (sse2_uavgv16qi3): New expander.  Use
937         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
938         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
939         (sse2_uavgv8hi3): New expander.  Use
940         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
941         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
942         (ssse3_pmulhrswv8hi3): New expander.  Use
943         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
944         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
945         (ssse3_pmulhrswv4hi3): New expander.  Use
946         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
947
948         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
949         (<sse>_vmmul<mode>3): Ditto.
950         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
951         (divv2df3): Ditto.
952         (ssse3_pmaddubsw128): Use register_operand for operand 1.
953         (ssse3_pmaddubsw): Ditto.
954
955         * config/i386/i386.c (struct_builtin_description)
956         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
957         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
958         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
959         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
960         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
961         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
962         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
963         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
964         (ix86_fixup_binary_operands): Assert that src1
965         and src2 must have the same mode when swapped.
966         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
967         and ix86_binary_operator_ok.  Do not force operands in registers
968         when optimizing.
969
970 2008-05-07  Jan Hubicka  <jh@suse.cz>
971
972         * cgraph.c (dump_cgraph_node): Update.
973         * cgraph.h (cgraph_local_info): Break out inline summary.
974         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
975         hook.
976         * ipa-inline (inline_summary): New accestor function.
977         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
978         cgraph_decide_inlining, compute_inline_parameters): Update.
979         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
980
981 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
982
983         Cleanup ColdFire scheduling support and add V4 pipeline model.
984
985         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
986         (define_attr cpu): Add cfv4 value.
987         (define_attr type, define_attr type1): Merge into a single 'type'
988         attribute.  Update all uses.
989         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
990         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
991         Update all uses.
992         (define_attr opx_mem, define_attr opy_mem): Remove.
993         (define_attr op_mem): Clean up, update comment.
994         (define_attr size): Use specific values instead of general int.
995         (define_attr guess, define_attr split): Remove.  Update all uses.
996         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
997         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
998         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
999         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
1000         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
1001         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
1002         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
1003         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
1004         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
1005         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
1006         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
1007         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
1008         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
1009         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
1010         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
1011         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
1012         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
1013         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
1014         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
1015         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
1016         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
1017         Update or set attributes.
1018         (stack_tie): New fake instruction.
1019
1020         * config/m68k/m68k.h (TUNE_CFV4): New macro.
1021         (m68k_sched_attr_size): Update declaration.
1022         (m68k_sched_attr_type2): Remove.
1023         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
1024         Declare new bypass predicates.
1025
1026         * config/m68k/m68k.c (m68k_sched_issue_rate,
1027         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
1028         implementations.
1029         (TARGET_SCHED_ISSUE_RATE,
1030         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
1031         (override_options): Handle scheduling for ColdFire V4 core.
1032         (m68k_expand_prologue): Emit stack_tie.
1033         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
1034         'OP_TYPE_FPN'.  Update all uses.
1035         (sched_guess_p): Remove.
1036         (sched_address_type): Handle symbolic addresses.
1037         (sched_get_operand): New static function.
1038         (sched_operand_type): Merge into sched_attr_op_type.
1039         (sched_attr_op_type): Handle FP registers, handle quick constants,
1040         update.
1041         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
1042         (m68k_sched_attr_size): Update.  Move logic to ...
1043         (sched_get_attr_size_int): New static function.
1044         (sched_get_opxy_mem_type): New static function.
1045         (m68k_sched_attr_op_mem): Update.
1046         (m68k_sched_attr_type2): Remove.
1047         (sched_cfv4_bypass_data): New static variable.
1048         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
1049         (m68k_sched_issue_rate): Implement scheduler hook.
1050         (struct _sched_ib: enabled_p): New field.
1051         (m68k_sched_variable_issue): Update.  Handle V4.
1052         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
1053         sched_dump_class_func_t, sched_dump_split_class,
1054         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
1055         sched_dump_dfa_class, m68k_sched_dump): Remove.
1056         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
1057         hook.
1058         (m68k_sched_init_global): Remove statisctics dumping, introduce
1059         sanity check that all instructions have pipeline reservations.  Handle
1060         ColdFire V4 core.
1061         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1062         Handle ColdFire V4 core.
1063         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
1064         New static functions.
1065         (m68k_sched_address_bypass_p): New bypass predicate.
1066         (sched_get_indexed_address_scale): New static function.
1067         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
1068
1069         * cf.md: Update comments.
1070         (define_attr type2): Remove.  Use 'type' attribute instead.
1071         Update all uses.
1072         (cf_ib): Rename to cfv123_ib.  Update all uses.
1073         (cf_oep): Rename to cfv123_oep.  Update all uses.
1074         (cf_chr): Rename to cfv123_chr.  Update all uses.
1075         (cf_mem): Rename to cfv123_mem.  Update all uses.
1076         (cf_mac): Move to more appropriate place.
1077         (cfv123_guess): New automaton and cpu_unit.
1078         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
1079         Update uses of 'size' attribute.  Handle before reload scheduling.
1080         (cfv123_guess): New dummy reservation for unhandled instructions.
1081         (cfv4_*): Pipeline description of ColdFire V4 core.
1082         (ignore): New reservation to handle 'ignore' type.
1083
1084 2008-05-07  Ian Lance Taylor  <iant@google.com>
1085
1086         PR middle-end/36013
1087         * gimplify.c (find_single_pointer_decl_1): Don't look through
1088         indirections.
1089         (find_single_pointer_decl): Adjust comments.
1090
1091 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
1092
1093         PR middle-end/36137
1094         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
1095         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
1096
1097         PR middle-end/36106
1098         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
1099         integral type rather than floating point, then VIEW_CONVERT_EXPR
1100         to the floating point type.
1101
1102 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1103
1104         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
1105         TFmode op0 to register.
1106
1107 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
1108
1109         * c-decl.c (grokdeclarator): Comment typo.
1110
1111 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
1112
1113         * tree-flow.h: Remove prototype for computed_goto_p.
1114         * tree-cfg.c (computed_goto_p): Make static.
1115
1116 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1117
1118         PR target/35657
1119         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1120         (contains_aligned_value_p): This.  Handle _Decimal128.
1121         (ix86_function_arg_boundary): Only align _Decimal128 to its
1122         natural boundary and handle it properly.
1123
1124 2008-05-06  Martin Jambor  <mjambor@suse.cz>
1125
1126         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
1127         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
1128         (ipcp_method_set_orig_node): Removed.
1129         (ipcp_cval_get_cvalue_type): Removed.
1130         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
1131         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
1132         (ipcp_cval_set_cvalue_type): Removed.
1133         (ipcp_cval_get_cvalue): Removed.
1134         (ipcp_cval_set_cvalue): Removed.
1135         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
1136         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
1137         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
1138         (ipcp_cval_meet): Renamed to ipa_lattice_meet
1139         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
1140         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
1141         (ipcp_get_ith_lattice): Changed parameters.
1142         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
1143         (ipcp_lattice_from_jfunc): Changed parameters.
1144         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
1145         (ipcp_method_cval_print): Added temporary variable info.
1146         (ipcp_redirect): Removed already unused local variable caller.
1147         (ipcp_redirect): New temporary variable orig_callee_info
1148         (ipcp_redirect): Removed newly unused local variable callee.
1149         (ipcp_redirect): Removed (a bit confusing) local variable type.
1150         (ipcp_insert_stage): Added local variable info.
1151         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
1152         renamed too
1153         (ipcp_formal_create): Removed.
1154         (ipcp_method_cval_set): Removed.
1155         (ipcp_propagate_stage): Renamed lattice variables.
1156         (ipcp_method_cval_set_cvalue_type): Removed.
1157         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
1158         (ipcp_print_all_lattices): Changed printed strings to refer to 
1159         lattices rather than cvals.
1160         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1161         (ipcp_propagate_const): Changed formal parameters.
1162         (build_const_val): Changed formal parameters.
1163         (ipcp_insert_stage): Removed useless variable cvalue
1164         (build_const_val): Changed formal parameters.
1165         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1166         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1167         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1168         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1169         (ipcp_print_func_profile_counts): Changed string from "method" to 
1170         "function"
1171         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1172         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1173         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1174         (ipcp_structures_print): Renamed to ipcp_print_all_structures
1175         (ipcp_profile_print): Renamed to ipcp_print_profile_data
1176         (ipcp_lat_is_const): Changed parameters and made inline.
1177         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1178         (ipcp_redirect): Renamed to ipcp_need_redirect_p
1179         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
1180         the predicate condition directly
1181         (ipcp_propagate_stage): Added local variable args. Removed local
1182         variable callee.  (Both are mere code simplifications.)
1183         (ipcp_method_dont_insert_const): Renamed to
1184         ipcp_node_not_modifiable_p.
1185         (ipcp_node_not_modifiable_p): Made inline.
1186         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1187         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1188         (ipcp_print_all_lattices): Removed variable cvalue
1189         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1190         Updated comments.
1191
1192 2008-05-06  Olivier Hainque  <hainque@adacore.com>
1193
1194         * tree-sra.c (try_instantiate_multiple_fields): Early return
1195         if field has POINTER_TYPE.
1196
1197 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
1198
1199         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1200         by using 'q' specifier for instruction.
1201         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1202
1203 2008-05-06  Anatoly Sokolov <aesok@post.ru>
1204
1205         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1206         Change mode of zero_extract from QImode to HImode.
1207         (sign bit tests peepholes): (Ditto.).
1208
1209 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
1210
1211         * config/i386/mmx.md: Remove double backslashes from asm templates.
1212         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
1213         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1214         to handle nonimmediate operands.
1215         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
1216         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1217         to handle nonimmediate operands.
1218         (*mmx_<code>v2sf3_finite): New insn pattern.
1219         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
1220         (mmx_<code>v2sf3): New expander.  Use
1221         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1222         (mmx_<plusminus_insn><mode>3): New expander.  Use
1223         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1224         (*mmx_<plusminus_insn><mode>3): New insn pattern.
1225         (mmx_add<mode>3): Removed.
1226         (mmx_ssadd<mode>3): Ditto.
1227         (mmx_usadd<mode>3): Ditto.
1228         (mmx_sub<mode>3): Ditto.
1229         (mmx_sssub<mode>3): Ditto.
1230         (mmx_ussub<mode>3): Ditto.
1231         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
1232         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
1233         to handle nonimmediate operands.
1234         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
1235         insn pattern.
1236         (mmx_smulv4hi3_highpart): New expander.  Use
1237         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1238         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
1239         insn pattern.
1240         (mmx_umulv4hi3_highpart): New expander.  Use
1241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1242         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
1243         (mmx_<code>v4hi3): New expander.  Use
1244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1245         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
1246         (mmx_<code>v8qi3): New expander.  Use
1247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1248         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
1249         (mmx_<code><mode>3): New expander.  Use
1250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1251
1252 2008-05-05  Jan Hubicka  <jh@suse.cz>
1253
1254         PR tree-optimization/36118
1255         * passes.c (pass_init_dump_file): Fix dump header.
1256
1257 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1258
1259         PR middle-end/36141
1260         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1261         VCE for function decls.
1262
1263 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1264
1265         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1266
1267 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1268
1269         * config/i386/i386.md (sat_plusminus): New.
1270         (plusminus_insn): Likewise.
1271         (plusminus_mnemonic): Likewise.
1272         (addsub): Removed.
1273         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1274         (*<addsub><mode>3_cc_overflow): Renamed to ...
1275         (*<plusminus_insn><mode>3_cc_overflow): This.
1276         (*<addsub>si3_zext_cc_overflow): Renamed to ...
1277         (*<plusminus_insn>si3_zext_cc_overflow): This.
1278
1279         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
1280         (<plusminus_insn><mode>3): This.
1281         (*<addsub><mode>3): Renamed to ...
1282         (*<plusminus_insn><mode>3): This.
1283         (<sse>_vm<addsub><mode>3): Renamed to ...
1284         (<sse>_vm<plusminus_insn><mode>3): This.
1285         (sse3_h<addsub>v4sf3): Renamed to ...
1286         (sse3_h<plusminus_insn>v4sf3): This.
1287         (sse3_h<addsub>v2df3): Renamed to ...
1288         (sse3_h<plusminus_insn>v2df3): This.
1289         (<plusminus_insn><mode>3): New.
1290         (*<plusminus_insn><mode>3): Likewise.
1291         (sse2_<plusminus_insn><mode>3): Likewise.
1292         (add<mode>): Removed.
1293         (*add<mode>3): Likewise.
1294         (sse2_ssadd<mode>3): Likewise.
1295         (sse2_usadd<mode>3): Likewise.
1296         (sub<mode>3): Likewise.
1297         (*sub<mode>3): Likewise.
1298         (sse2_sssub<mode>3): Likewise.
1299         (sse2_ussub<mode>3): Likewise.
1300
1301 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
1302
1303         * gthr-single.h: Add in required interface elements as per gthr.h.
1304         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1305         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1306         Generalize UNUSED macro. 
1307         (__gthread_once): Add.
1308         (__gthread_key_create): Add.
1309         (__gthread_key_delete): Add.
1310         (__gthread_getspecific): Add.
1311         (__gthread_setspecific): Add.
1312         
1313 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
1314
1315         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1316         the same size types for the indirect reference on the rhs, then
1317         create a VCE.
1318
1319 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
1320
1321         * config/i386/i386.md
1322         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1323         one insn template instead of template series.
1324         (*xordi_1_rex64): Ditto.
1325         (*xordi_2_rex64): Ditto.
1326
1327 2008-05-05  Ira Rosen  <irar@il.ibm.com>
1328
1329         PR tree-optimization/36119
1330         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1331         in case of SLP.
1332
1333 2008-06-04  Jan Hubicka  <jh@suse.cz>
1334
1335         tree-optimization/36100
1336         * tree-pass.h (pass_O0_always_inline): Declare.
1337         * ipa-inline.c (inline_transform): Remove dead code.
1338         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1339         pass_O0_always_inline): New.
1340         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1341
1342 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
1343
1344         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1345         mnemonic in this_param move for TARGET_64BIT.
1346
1347 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
1348
1349         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1350         (*strmovsi_rex_1): Ditto.
1351         (*strsetsi_1): Ditto.
1352         (*strsetsi_rex_1): Ditto.
1353
1354         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1355         adddicc expanders using SWI mode iterator.
1356
1357 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1358
1359         PR target/36121
1360         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1361         argument handling.
1362
1363 2008-05-04  David S. Miller  <davem@davemloft.net>
1364
1365         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1366         (sparc*-*-linux*): Use linux.h in tm_file.
1367         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1368         compiler defaulting to 32-bit.
1369         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1370         no longer needed.
1371         * config/sparc/linux.h: Remove definitions now obtained
1372         properly from linux.h
1373         * config/sparc/linux64.h: Likewise.
1374         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1375         don't want this setting for 32-bit builds in a biarch compiler.
1376         * doc/install.texi: Add sparc-linux to list of targets
1377         supporting --enable-targets=all.
1378
1379 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
1380
1381         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1382
1383 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
1384
1385         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1386         after V4SI_FTYPE_V8HI.
1387         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1388         case V4SI_FTYPE_V2DF.
1389
1390 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
1391
1392         * doc/invoke.texi (max-flow-memory-locations): Removed.
1393         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1394         
1395 2008-05-03  Richard Guenther  <rguenther@suse.de>
1396
1397         PR middle-end/34973
1398         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1399
1400 2008-05-02  David S. Miller  <davem@davemloft.net>
1401
1402         * config.gcc (need_64bit_hwint): Document libcpp dependency.
1403
1404 2008-05-02  Simon Baldwin <simonb@google.com>
1405
1406         PR bootstrap/36108
1407         * c-common.h (warn_array_subscript_range): Removed.
1408         * c-common.c (warn_array_subscript_range): Ditto.
1409         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1410         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1411
1412 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1413
1414         * config/i386/i386.c (ix86_special_builtin_type): New.
1415         (bdesc_special_args): Likewise.
1416         (ix86_expand_special_args_builtin): Likewise.
1417         (ix86_init_mmx_sse_builtins): Updated.
1418         (ix86_expand_builtin): Updated.
1419         (ix86_expand_store_builtin): Removed.
1420         (ix86_expand_unop_builtin): Likewise.
1421
1422         * config/i386/mm3dnow.h (__v2sf): Moved to ...
1423         * config/i386/mmintrin.h (__v2sf): Here.
1424
1425         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1426         const __v2sf.
1427         (_mm_loadl_pi): Likewise.
1428         (_mm_storeh_pi): Replace __v2si with __v2sf.
1429         (_mm_storel_pi): Likewise.
1430
1431         * doc/extend.texi: Correct __builtin_ia32_loadhps,
1432         __builtin_ia32_loadlps, __builtin_ia32_storehps,
1433         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1434         __builtin_ia32_loadlpd.
1435
1436 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1437
1438         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1439         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1440         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
1441         (ix86_init_mmx_sse_builtins): Updated.
1442         (ix86_expand_args_builtin): Likewise.
1443         (ix86_expand_builtin): Likewise.
1444         (ix86_expand_unop1_builtin): Renamed to ...
1445         (ix86_expand_unop_vec_merge_builtin): This.
1446
1447 2008-05-01  Jan Hubicka  <jh@suse.cz>
1448
1449         PR bootstrap/36100
1450         * ipa-inline.c (inline_generate_summary): Make static.
1451         (inline_transform): Do not call inlining at -O0; make static.
1452         * passes.c (execute_todo): Add sanity check.
1453         (execute_one_ipa_transform_pass): Execute proper flags.
1454
1455 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1456
1457         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1458         (DECL_NONADDRESSABLE_P): Likewise.
1459         * alias.c (record_component_aliases): Fix comment.
1460
1461 2008-05-01  Simon Baldwin <simonb@google.com>
1462
1463         * c-common.h (warn_array_subscript_range): New function.
1464         * c-common.c (warn_array_subscript_range): Ditto.
1465         * tree-vrp.c (check_array_ref): Corrected code to agree with
1466         comment, ignoring only arrays of size 0 or size 1.
1467         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1468
1469 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1470
1471         * config/i386/i386.c (ix86_builtin_type): Replace
1472         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1473         (bdesc_args): Updated.
1474         (ix86_init_mmx_sse_builtins): Likewise.
1475         (ix86_expand_args_builtin): Likewise.
1476
1477         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1478         with __v1di.
1479
1480         * doc/extend.texi: Correct __builtin_ia32_palignr.
1481
1482 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1483
1484         PR target/36095
1485         * config/i386/i386.c (bdesc_crc32): Removed.
1486         (ix86_expand_crc32): Likewise.
1487         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1488         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1489         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
1490         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1491         UINT_FTYPE_UINT_UCHAR.
1492         (bdesc_args): Updated. Add crc32 builtins.
1493         (ix86_init_mmx_sse_builtins): Updated.
1494         (ix86_expand_args_builtin): Updated to support subreg.
1495
1496         * doc/extend.texi: Correct __builtin_ia32_crc32di.
1497
1498 2008-05-01  Jan Hubicka  <jh@suse.cz>
1499
1500         * tree-pass.h (opt_pass): Add IPA_PASS.
1501         (varpool_node, cgraph_node): Forward declare.
1502         (ipa_opt_pass): Define.
1503         (pass_ipa_inline): Turn into ipa_opt_pass.
1504         (pass_apply_inline): Remove.
1505         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1506         (apply_inline): Turn into ....
1507         (inline_transform): ... this one.
1508         (inline_generate_summary): New function.
1509         (pass_apply_inline): Remove.
1510         * function.h (ipa_opt_pass): Forward declare structure; typedef;
1511         vector.
1512         (struct function): Add ipa_transforms_to_apply.
1513         * passes.c (register_one_dump_file): Work on IPA_PASS.
1514         (init_optimization_passes): Remove pass_inline_parameters and
1515         pass_apply_inline.
1516         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1517         (execute_one_pass) ... here; apply transforms when possible.
1518         (add_ipa_transform_pass, execute_ipa_summary_asses,
1519         execute_one_ipa_transform_pass): New.
1520         (execute_ipa_pass_list): Update for IPA_PASS type.
1521
1522 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1523
1524         * config/i386/i386.c (ix86_builtin_type): Add
1525         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1526         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1527         (bdesc_args): Add SSE4a builtins.
1528         (ix86_init_mmx_sse_builtins): Updated.
1529         (ix86_expand_args_builtin): Likewise.
1530         (ix86_expand_builtin): Likewise.
1531
1532 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1533
1534         * config/i386/i386.c (ix86_builtin_type): Add
1535         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1536         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1537         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1538         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1539         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1540         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1541         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1542         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1543         and DI_FTYPE_DI_DI_INT.
1544         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1545         (ix86_init_mmx_sse_builtins): Updated.
1546         (ix86_expand_args_builtin): Likewise.
1547         (ix86_expand_builtin): Likewise.
1548         (ix86_expand_binop_imm_builtin): Removed.
1549
1550         * doc/extend.texi: Correct __builtin_ia32_palignr128.
1551
1552 2008-04-30  Richard Guenther  <rguenther@suse.de>
1553
1554         PR tree-optimization/32921
1555         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1556
1557 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
1558
1559         * config/arm/arm.c (arm_unwind_emit): Use
1560         crtl->all_throwers_are_sibcalls instead of
1561         cfun->all_throwers_are_sibcalls.
1562         (arm_output_fn_unwind): Likewise.
1563         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1564         instead of cfun->uses_pic_offset_table.
1565         (frv_expand_prologue): Likewise.
1566         (frv_frame_pointer_required): Likewise.
1567         (frv_expand_fdpic_call): Likewise.
1568         (frv_emit_movsi): Likewise.
1569         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1570         cfun->returns_pcc_struct instead of
1571         current_function_returns_pcc_struct.
1572         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1573         instead of cfun->calls_eh_return.
1574         (m32c_pushm_popm): Likewise.
1575         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1576         "extern" declaration.
1577
1578 2008-04-30  Richard Guenther  <rguenther@suse.de>
1579
1580         PR tree-optimization/21636
1581         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1582         constant address.
1583         (evaluate_stmt): Print the likely value.
1584         (ccp_visit_stmt): Avoid excessive vertical spacing.
1585
1586 2008-04-30  Rafael Espindola  <espindola@google.com>
1587
1588         * builtins.c (fold_call_expr): Return realret.
1589         * tree-ssa-threadedge.c
1590         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1591         __builtin_object_size.
1592
1593 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
1594
1595         * gcc.c (wrapper_string): New variable.
1596         (insert_wrapper): New function.
1597         (execute): New option -wrapper.
1598         * doc/invoke.texi (Overall Options): New driver option -wrapper.
1599
1600 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
1601
1602         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1603         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1604         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1605         from...
1606         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
1607         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1608         config/rs6000/e500crtres64gprctr.asm,
1609         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1610         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1611         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1612         config/rs6000/e500crtsav64gprctr.asm,
1613         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1614         config/rs6000/e500crtsavg64gprctr.asm: New files.
1615         * config/rs6000/t-ppccomm: Add build rules for new files.
1616         (LIB2FUNCS_STATIC_EXTRA): Add new files.
1617         * config/rs6000/t-netbsd: Add build rules for new files.
1618         (LIB2FUNCS_STATIC_EXTRA): New variable.
1619         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1620         (CRTSAVRES_DEFAULT_SPEC): Likewise.
1621         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
1622
1623 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
1624
1625         * config/i386/i386.c (ix86_builtin_type): Add
1626         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1627         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1628         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1629         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1630         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1631         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1632         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1633         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1634         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1635         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1636         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1637         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1638         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1639         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1640         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1641         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1642         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1643         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1644         V1DI_FTYPE_V2SI_V2SI.
1645         (bdesc_2arg): Moved to ...
1646         (bdesc_args): Here.
1647         (ix86_init_mmx_sse_builtins): Updated.
1648         (ix86_expand_args_builtin): Updated.  Take a pointer
1649         to const struct builtin_description.  Handle comparison
1650         builtin functions.
1651         (ix86_expand_sse_compare): Take a new argument for swapping operands.
1652         (ix86_expand_builtin): Updated.
1653
1654         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1655         (ssse3_pmaddubsw128): This.
1656         (ssse3_pmaddubswv4hi3): Renamed to ...
1657         (ssse3_pmaddubsw): This.
1658
1659         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1660         (__builtin_ia32_packssdw128): Likewise.
1661         (__builtin_ia32_packuswb128): Likewise.
1662         (__builtin_ia32_pmaddubsw): Likewise.
1663         (__builtin_ia32_pmaddubsw128): Likewise.
1664
1665 2008-04-30  Richard Guenther  <rguenther@suse.de>
1666
1667         PR tree-optimization/14847
1668         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1669         (recognize_bits_test): Use it.
1670         (recognize_single_bit_test): Likewise.
1671
1672 2008-04-30  Martin Jambor  <mjambor@suse.cz>
1673
1674         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1675         instead of setting number of formal parameters to zero.
1676         (ipcp_init_stage): Do not set the number of actual parameters to zero 
1677         either.
1678         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1679         which are called with variable number of arguments.
1680         (ipcp_insert_stage): Explicitely skipping all nodes which are
1681         called with variable number of arguments.
1682         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
1683         number of parameters.
1684
1685         * ipa-prop.h (struct ipa_node_params): Added flag
1686         called_with_var_arguments
1687         (ipa_set_param_count): Added.  Changed sole setter to use it.
1688         (ipa_get_param_count): Added.  All readers of param_count
1689         converted to use it instead.
1690         (ipa_set_called_with_variable_arg): Added.
1691         (ipa_is_called_with_var_arguments): Added.
1692         (ipa_get_ith_param): Added.  All readers of param_decls converted
1693         to use it instead.
1694         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
1695         changed to use it. 
1696         (ipa_get_cs_argument_count): Added, all readers of argument_count
1697         changed to cal it.
1698         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
1699         to use it.
1700         
1701         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1702         (struct ipcp_lattice): Renamed cval_type to type
1703         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1704
1705         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1706         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1707         (ipcp_insert_stage): Changed the type of variable cvalue to tree
1708         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1709         (build_const_val): Changed the type of parameter cvalue to tree
1710         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1711         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1712         
1713         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
1714         constant 
1715
1716         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1717         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1718         (ipa_add_method): Renamed to ipa_push_func_to_list
1719         (ipa_remove_method): Renamed to ipa_pop_func_from_list
1720         (ipa_callsite_param_count): Removed.
1721         (ipa_callsite_param_count_set): Removed.
1722         (ipa_callsite_param): Removed.
1723         (ipa_callsite_callee): Removed.
1724         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1725         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1726         (ipa_method_formal_count): Removed.
1727         (ipa_method_formal_count_set): Removed.
1728         (ipa_method_get_tree): Removed.
1729         (ipa_method_tree_map_create): Removed.
1730         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1731         (ipa_create_param_decls_array): Creates the array itself
1732         (ipa_create_param_decls_array): Temporary variable info instead of 
1733         a few dereferences.
1734         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1735         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1736         (get_type): Removed.
1737         (ipa_jf_get_info_type): Removed.
1738         (ipa_node_create): Renamed to ipa_create_node_params
1739         (ipa_free): Renamed to ipa_free_all_node_params
1740         (ipa_nodes_create): Renamed to ipa_create_all_node_params
1741         (ipa_edges_create): Renamed to ipa_create_all_edge_args
1742         (ipa_edges_free): Renamed to ipa_free_all_edge_args
1743         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1744         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
1745         ipa_free_all_edge_args
1746         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1747         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1748         (ipa_create_methodlist_node): Removed.
1749         (ipa_methodlist_method): Removed.
1750         (ipa_methodlist_method_set): Removed.
1751         (ipa_methodlist_next_method): Removed.
1752         (ipa_methodlist_next_method_set): Removed.
1753         (ipa_method_is_modified): Removed.
1754         (ipa_method_modify_create): Removed.
1755         (ipa_method_modify_init): Temporary variable info instead of a few 
1756         dereferences.
1757         (ipa_detect_param_modifications): Temporary variable info instead of 
1758         a few dereferences.
1759         (ipa_compute_jump_functions): Temporary variable info instead of 
1760         a few dereferences.
1761         (ipa_method_modify_set): Removed.
1762         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1763         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
1764         than craph_node as the first parameter.
1765         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1766         (ipa_method_modify_init): Removed.
1767         (ipa_compute_jump_functions): Added a temp variable instead of 
1768         repeatadly dereferencing the cgraph_edge.aux pointer
1769         (ipa_callsite_param_set_type): Removed.
1770         (ipa_compute_jump_functions): i renamed to index and moved to 
1771         an inner block
1772         (ipa_callsite_param_set_info_type_formal): Removed.
1773         (ipa_callsite_param_set_info_type): Removed.
1774         (ipa_callsite_param_map_create): Removed.
1775         (ipa_callsite_tree): Removed.
1776         (ipa_callsite_caller): Removed.
1777         (ipa_pop_func_from_list): return_method removed to return_func
1778
1779         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1780         prefixed all values with IPA_. Changed all users.
1781         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
1782         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
1783         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
1784         (union parameter_info): Renamed to jump_func_value.
1785         (union jump_func_value): Renamed value to constant
1786         (struct ipa_jump_func): Renamed info_type to value
1787         (struct ipa_node): Renamed to ipa_node_params
1788         (struct ipa_node_params): Renamed ipa_arg_num to param_count
1789         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1790         (struct ipa_node_params): Renamed ipa_mod to modified_flags
1791         (struct ipa_edge): Renamed to ipa_edge_args
1792         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1793         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1794         (struct ipa_methodlist): Renamed to ipa_func_list
1795         (struct ipa_func_list): method_p renamed to node, next_method
1796         renamed to next
1797         (ipa_methodlist_p): Removed, switched all users to struct pointer
1798         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1799
1800 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
1801
1802         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1803         (rs6000_emit_epilogue): Use backchain to restore only when we
1804         have a large frame.  Make use of frame pointer to restore if we
1805         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1806
1807 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
1808
1809         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1810         Add mode to zero_extract.
1811         (sign bit tests peepholes): (Ditto.).
1812
1813 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1814
1815         * config/i386/i386.c (ix86_builtins): Replace Prescott New
1816         Instructions in comments with SSE3.
1817         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
1818         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1819         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1820         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1821         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1822         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1823         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1824         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1825         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1826         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1827         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1828         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1829         (bdesc_sse_args): Renamed to ...
1830         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1831         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1832         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1833         IX86_BUILTIN_FABSQ.
1834         (bdesc_1arg): Moved to ...
1835         (bdesc_args): Here.
1836         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
1837         Instructions in comments with SSE3.
1838         (ix86_expand_sse_operands_builtin): Renamed to ...
1839         (ix86_expand_args_builtin): This.  Updated.
1840         (ix86_expand_unop1_builtin): Update comments.
1841         (ix86_expand_builtin): Updated.
1842
1843 2008-04-29  Richard Guenther  <rguenther@suse.de>
1844
1845         PR tree-optimization/36078
1846         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1847         Update virtual SSA form after cleaning up the CFG.
1848
1849 2008-04-29  Richard Guenther  <rguenther@suse.de>
1850
1851         PR middle-end/15255
1852         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1853
1854 2008-04-29  Richard Guenther  <rguenther@suse.de>
1855
1856         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1857         (compute_may_aliases): Do not call finalize_ref_all_pointers.
1858         (compute_flow_insensitive_aliasing): Do not treat
1859         PTR_IS_REF_ALL pointers special.
1860         (get_smt_for): Likewise.
1861         (may_alias_p): Re-structure.
1862         (is_escape_site): A ref-all pointer conversion is not an escape site.
1863         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1864         PTR_IS_REF_ALL pointers special.
1865         * tree-ssa-structalias.h (struct alias_info): Remove
1866         ref_all_symbol_mem_tag field.
1867         (PTR_IS_REF_ALL): Remove.
1868
1869 2008-04-29  Richard Guenther  <rguenther@suse.de>
1870
1871         PR middle-end/36077
1872         * fold-const.c (extract_muldiv_1): In combining division constants
1873         make sure to never overflow.
1874
1875 2008-04-29  Nick Clifton  <nickc@redhat.com>
1876
1877         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1878
1879 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1880
1881         PR bootstrap/35169
1882         * optc-gen.awk: Work around HP-UX/IA awk bug.
1883
1884 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
1885
1886         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
1887         2008-04-25 commit.
1888
1889 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1890
1891         PR target/36073
1892         * config/i386/i386.md
1893         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
1894         Change operand 1 predicate to nonimmediate_operand.
1895
1896 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
1897
1898         PR debug/36060
1899         * dwarf2out.c (struct die_struct): Mark as chain_circular through
1900         die_sub field.
1901         * gengtype.c (walk_type, write_func_for_structure): Handle
1902         chain_circular.
1903         * doc/gty.texi: Document chain_circular.
1904
1905 2008-04-28  Richard Guenther  <rguenther@suse.de>
1906
1907         PR tree-optimization/36066
1908         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
1909         SCEV and loop.
1910
1911 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1912
1913         PR target/36064
1914         * config/i386/i386.md
1915         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
1916         Use match_scratch instead of match_operand for operands 3 and 4.
1917
1918 2008-04-27  Richard Guenther  <rguenther@suse.de>
1919
1920         PR tree-optimization/18754
1921         PR tree-optimization/34223
1922         * tree-pass.h (pass_complete_unrolli): Declare.
1923         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
1924         loop size before and after unconditionally of UL_NO_GROWTH in effect.
1925         Rewrite loop into loop closed SSA form if it is not already.
1926         (tree_unroll_loops_completely): Re-structure to iterate over
1927         innermost loops with intermediate CFG cleanups.
1928         Unroll outermost loops only if requested or the code does not grow
1929         doing so.
1930         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
1931         loops are available.
1932         (tree_vectorize): Instead do so here.
1933         (tree_complete_unroll): Also unroll outermost loops.
1934         (tree_complete_unroll_inner): New function.
1935         (gate_tree_complete_unroll_inner): Likewise.
1936         (pass_complete_unrolli): New pass.
1937         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
1938         uses outside of the loop.
1939         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
1940         form if it is available.  
1941         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
1942         * passes.c (init_optimization_passes): Schedule complete inner
1943         loop unrolling pass before the first CCP pass after final inlining.
1944
1945 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1946
1947         * targhooks.h (default_emutls_var_fields,
1948         default_emutls_var_init): Declare.
1949         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
1950         * target.h (struct gcc_target): Add struct emutls member.
1951         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
1952         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
1953         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
1954         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
1955         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
1956         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
1957         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
1958         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
1959         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
1960         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
1961         emit debug information.
1962         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
1963         * varasm.c: Include targhooks.h.
1964         (emutls_object_section, emutls_tmpl_section): New.
1965         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
1966         (EMUTLS_SEPARATOR): New.
1967         (prefix_name): New.
1968         (get_emutls_object_name): New.
1969         (default_emutls_var_fields): New, broken out of ...
1970         (get_emutls_object_type): ... here.  Adjust to use target hooks.
1971         (get_emutls_init_templ_addr): Adjust to use target hooks.
1972         (emutls_decl): Adjust to use target hooks.
1973         (emutls_finish): Likewise.
1974         (default_emutls_var_init): New, broken out of ...
1975         (assemble_variable): ... here.  Adjust to use target hooks.
1976         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
1977         SECCAT_EMUTLS_TMPL.
1978         * c-common.c (handle_section_attribute): Prevent overriding
1979         sections for emulated tls with special sections.
1980         * config/i386/i386.c (x86_64_elf_select_section): Add
1981         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
1982         (x86_64_elf_unique_section): Likewise.
1983         * config/vxworks.c: Include tree.h.
1984         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
1985         (vxworks_override_options): Set TLS scheme.
1986         * doc/tm.texi (Emulated TLS): New node.
1987
1988 2008-04-26  Simon Baldwin <simonb@google.com>
1989
1990         PR c/35652
1991         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
1992         with propagated string constants.
1993
1994 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
1995
1996         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
1997         constraint for operand 2 when operand 0 is memory operand.
1998         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
1999         operand 0 is memory operand.
2000         (fix_trunc<mode>_i387_with_temp): Ditto.
2001         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
2002         operand 2 when operand 1 is memory operand.
2003         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
2004         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
2005         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
2006         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2007         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
2008         operands 2,3 and 4 when operand 1 is memory operand.
2009         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
2010         is memory operand.
2011         (fistdi2_floor_with_temp): Ditto.
2012         (fist<mode>2_floor_with_temp): Ditto.
2013         (fistdi2_ceil_with_temp): Ditto.
2014         (fist<mode>2_ceil_with_temp): Ditto.
2015         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
2016
2017 2008-04-26  David Daney  <ddaney@avtrex.com>
2018
2019         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
2020         unspec_volitile.
2021         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
2022         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2023         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2024         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
2025         (compare_and_swap_12): New insn.
2026         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
2027         * config/mips/mips.c (mips_force_binary): New function.
2028         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
2029         (mips_expand_compare_and_swap_12): New function.
2030         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
2031
2032 2008-04-25  Jan Hubicka  <jh@suse.cz>
2033
2034         PR testsuite/35843
2035         * cfgexpand.c (pass_expand): Turn into RTL pass.
2036         * passes.c (execute_one_pass): Do pass typechecking after execution.
2037         * tree-pass.h (pass_expand): Turn into RTL pass.
2038
2039         * function.h (struct rtl_data): Move here fields
2040         accesses_prior_frames, calls_eh_return, saves_all_registers,
2041         has_nonlocal_goto, has_asm_statement, is_thunk,
2042         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
2043         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
2044         arg_pointer_save_area_init from struct function; turn into bool.
2045         (struct function): Move
2046         calls_eh_return, saves_all_registers, has_nonlocal_goto,
2047         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
2048         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
2049         tail_call_emit, arg_pointer_save_area_init
2050         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
2051         (current_function_returns_struct, current_function_returns_pcc_struct,
2052         current_function_calls_setjmp, current_function_calls_alloca,
2053         current_function_accesses_prior_frames,
2054         current_function_calls_eh_return, current_function_is_thunk,
2055         current_function_stdarg, current_function_profile,
2056         current_function_limit_stack, current_function_uses_pic_offset_table,
2057         current_function_uses_const_pool, current_function_has_nonlocal_label,
2058         current_function_saves_all_registers,
2059         current_function_has_nonlocal_goto,
2060         current_function_has_asm_statement): Remove accesor macros.
2061         * ra-conflict.c (global_conflicts): Update.
2062         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
2063         (suitable_for_tail_call_opt_p): Update.
2064         * builtins.c (expand_builtin_return_addr): Update.
2065         (expand_builtin_setjmp_setup): Update.
2066         (expand_builtin_nonlocal_goto): Update.
2067         * final.c (final_start_function): Update.
2068         (profile_function): Update.
2069         (leaf_function_p): Update.
2070         (only_leaf_regs_used): Update.
2071         * df-scan.c (df_get_exit_block_use_set): Update.
2072         * dojump.c (clear_pending_stack_adjust): Update.
2073         * tree-stdarg.c (gate_optimize_stdarg): Update.
2074         * gimple-low.c (lower_function_body): Update.
2075         * global.c (compute_regsets): Update.
2076         (global_alloc): Update.
2077         * dwarf2out.c (dwarf2out_begin_prologue): Update.
2078         * expr.c (expand_assignment): Update.
2079         * dse.c (dse_step0): Update.
2080         (dse_step1): Update.
2081         * c-decl.c (store_parm_decls): Update.
2082         * local-alloc.c (combine_regs): Update.
2083         (find_free_reg): Update.
2084         * function.c (assign_parms_augmented_arg_list): Update.
2085         (assign_parm_find_data_types): Update.
2086         (assign_parms): Update.
2087         (allocate_struct_function): Update.
2088         (expand_function_start): Update.
2089         (expand_function_end): Update.
2090         (get_arg_pointer_save_area): Update.
2091         (thread_prologue_and_epilogue_insns): Update.
2092         (rest_of_match_asm_constraints): Update.
2093         * stor-layout.c (variable_size): Update.
2094         * gcse.c (gcse_main): Update.
2095         (bypass_jumps): Update.
2096         * gimplify.c (gimplify_function_tree): Update.
2097         * calls.c (emit_call_1): Update.
2098         (expand_call): Update.
2099         * bt-load.c (compute_defs_uses_and_gen): Update.
2100         * except.c (sjlj_assign_call_site_values): Update.
2101         (sjlj_emit_function_enter): Update.
2102         (can_throw_external): Update.
2103         (set_nothrow_function_flags): Update.
2104         (expand_builtin_unwind_init): Update.
2105         (expand_eh_return): Update.
2106         (convert_to_eh_region_ranges): Update.
2107         (output_function_exception_table): Update.
2108         * emit-rtl.c (gen_tmp_stack_mem): Update.
2109         * cfgexpand.c (expand_used_vars): Update.
2110         (tree_expand_cfg): Update.
2111         * cfgcleanup.c (rest_of_handle_jump): Update.
2112         * explow.c (allocate_dynamic_stack_space): Update.
2113         * varasm.c (assemble_start_function): Update.
2114         (force_const_mem): Update.
2115         (mark_constant_pool): Update.
2116         * tree-optimize.c (tree_rest_of_compilation): Update.
2117         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
2118         * tree-cfg.c (notice_special_calls): Update.
2119         (is_ctrl_altering_stmt): Update.
2120         (tree_can_make_abnormal_goto): Update.
2121         (tree_purge_dead_abnormal_call_edges): Update.
2122         * config/alpha/predicates.md: Update.
2123         * config/alpha/alpha.c (alpha_sa_mask): Update.
2124         (alpha_sa_size): Update.
2125         (alpha_does_function_need_gp): Update.
2126         (alpha_expand_prologue): Update.
2127         (alpha_start_function): Update.
2128         (alpha_output_function_end_prologue): Update.
2129         (alpha_expand_epilogue): Update.
2130         * config/frv/frv.c (frv_stack_info): Update.
2131         (frv_expand_epilogue): Update.
2132         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
2133         (s390_register_info): Update.
2134         (s390_frame_info): Update.
2135         (s390_init_frame_layout): Update.
2136         (s390_can_eliminate): Update.
2137         (save_gprs): Update.
2138         * config/spu/spu.c (spu_split_immediate): Update.
2139         (need_to_save_reg): Update.
2140         (spu_expand_prologue): Update.
2141         (spu_expand_epilogue): Update.
2142         * config/sparc/sparc.md: Update.
2143         * config/sparc/sparc.c (eligible_for_return_delay): Update.
2144         (sparc_tls_got): Update.
2145         (legitimize_pic_address): Update.
2146         (sparc_emit_call_insn): Update.
2147         (sparc_expand_prologue): Update.
2148         (output_return): Update.
2149         (print_operand): Update.
2150         (sparc_function_ok_for_sibcall): Update.
2151         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
2152         * config/m32r/m32r.md: Update.
2153         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
2154         (m32r_compute_frame_size): Update.
2155         (m32r_expand_prologue): Update.
2156         (m32r_expand_epilogue): Update.
2157         (m32r_legitimize_pic_address): Update.
2158         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2159         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2160         * config/i386/i386.c (ix86_frame_pointer_required): Update.
2161         (gen_push): Update.
2162         (ix86_save_reg): Update.
2163         (ix86_compute_frame_layout): Update.
2164         (ix86_expand_prologue): Update.
2165         (ix86_expand_epilogue): Update.
2166         * config/sh/sh.c (output_stack_adjust): Update.
2167         (calc_live_regs): Update.
2168         (sh5_schedule_saves): Update.
2169         (sh_expand_prologue): Update.
2170         (sh_expand_epilogue): Update.
2171         (sh_setup_incoming_varargs): Update.
2172         (sh_allocate_initial_value): Update.
2173         (sh_get_pr_initial_val): Update.
2174         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2175         * config/sh/sh.md (label:): Update.
2176         * config/avr/avr.c (out_movhi_mr_r): Update.
2177         * config/crx/crx.h (enum): Update.
2178         * config/xtensa/xtensa.h (along): Update.
2179         * config/stormy16/stormy16.c Update.
2180         (xstormy16_compute_stack_layout): Update.
2181         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2182         (fr30_expand_prologue): Update.
2183         * config/cris/cris.c (cris_conditional_register_usage): Update.
2184         (cris_reg_saved_in_regsave_area): Update.
2185         (cris_initial_frame_pointer_offset): Update.
2186         (cris_simple_epilogue): Update.
2187         (cris_expand_prologue): Update.
2188         (cris_expand_epilogue): Update.
2189         (cris_expand_pic_call_address): Update.
2190         (cris_asm_output_symbol_ref): Update.
2191         (cris_asm_output_label_ref): Update.
2192         * config/cris/cris.md Update.
2193         * config/iq2000/iq2000.c (compute_frame_size): Update.
2194         (iq2000_expand_epilogue): Update.
2195         * config/mt/mt.h (save_direction): Update.
2196         * config/mn10300/mn10300.c (mn10300_function_value): Update.
2197         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2198         (ia64_secondary_reload_class): Update.
2199         * config/m68k/m68k.c (m68k_save_reg): Update.
2200         (m68k_expand_prologue): Update.
2201         (m68k_expand_epilogue): Update.
2202         (legitimize_pic_address): Update.
2203         * config/rs6000/rs6000.c (rs6000_got_register): Update.
2204         (first_reg_to_save): Update.
2205         (first_altivec_reg_to_save): Update.
2206         (compute_vrsave_mask): Update.
2207         (compute_save_world_info): Update.
2208         (rs6000_stack_info): Update.
2209         (spe_func_has_64bit_regs_p): Update.
2210         (rs6000_ra_ever_killed): Update.
2211         (rs6000_emit_eh_reg_restore): Update.
2212         (rs6000_emit_allocate_stack): Update.
2213         (rs6000_emit_prologue): Update.
2214         (rs6000_emit_epilogue): Update.
2215         (rs6000_output_function_epilogue): Update.
2216         (output_profile_hook): Update.
2217         (rs6000_elf_declare_function_name): Update.
2218         * config/rs6000/rs6000.h (rs6000_args): Update.
2219         * config/rs6000/rs6000.md: Update.
2220         * config/mcore/mcore.c (mcore_expand_prolog): Update.
2221         * config/arc/arc.c (arc_output_function_epilogue): Update.
2222         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2223         * config/darwin.c (machopic_function_base_name): Update.
2224         * config/score/score3.c (score3_compute_frame_size): Update.
2225         (rpush): Update.
2226         (rpop): Update.
2227         (score3_epilogue): Update.
2228         * config/score/score7.c (score7_compute_frame_size): Update.
2229         (score7_prologue): Update.
2230         (score7_epilogue): Update.
2231         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2232         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2233         * config/arm/arm.c (use_return_insn): Update.
2234         (require_pic_register): Update.
2235         (arm_load_pic_register): Update.
2236         (arm_compute_save_reg0_reg12_mask): Update.
2237         (arm_compute_save_reg_mask): Update.
2238         (thumb1_compute_save_reg_mask): Update.
2239         (output_return_instruction): Update.
2240         (arm_output_function_prologue): Update.
2241         (arm_output_epilogue): Update.
2242         (arm_get_frame_offsets): Update.
2243         (arm_expand_prologue): Update.
2244         (thumb_pushpop): Update.
2245         (thumb_exit): Update.
2246         (thumb1_expand_prologue): Update.
2247         (thumb1_expand_epilogue): Update.
2248         (arm_unwind_emit): Update.
2249         (arm_output_fn_unwind): Update.
2250         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2251         * config/arm/arm.md: Update.
2252         * config/pa/pa.md: Update.
2253         * config/pa/pa.c (legitimize_pic_address): Update.
2254         (compute_frame_size): Update.
2255         (hppa_expand_prologue): Update.
2256         (hppa_expand_epilogue): Update.
2257         (borx_reg_operand): Update.
2258         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2259         (HARD_REGNO_RENAME_OK): Update.
2260         * config/mips/mips.c (mips_global_pointer): Update.
2261         (mips_save_reg_p): Update.
2262         (mips_compute_frame_info): Update.
2263         (mips_frame_pointer_required): Update.
2264         (mips_expand_prologue): Update.
2265         (mips_expand_epilogue): Update.
2266         (mips_can_use_return_insn): Update.
2267         (mips_reorg_process_insns): Update.
2268         * config/v850/v850.c (compute_register_save_size): Update.
2269         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2270         * config/mmix/mmix.c (along): Update.
2271         (mmix_expand_epilogue): Update.
2272         * config/bfin/bfin.c (legitimize_pic_address): Update.
2273         (must_save_p): Update.
2274         (stack_frame_needed_p): Update.
2275         (add_to_reg): Update.
2276         (bfin_expand_prologue): Update.
2277         * stmt.c (expand_asm_operands): Update.
2278         * reload1.c (reload): Update.
2279         (init_elim_table): Update.
2280
2281 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
2282         
2283         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2284         
2285 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2286
2287         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
2288         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
2289         (mov<mode>): Removed.
2290         (*movv4sf_internal): Likewise.
2291         (*movv2df_internal): Likewise.
2292
2293 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2294
2295         * config.gcc (crx-*-elf): Remove deprecation.
2296
2297 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
2298
2299         * config/i386/cygming-crtend.c (register_frame_ctor): Register
2300         __gcc_deregister_frame with atexit.
2301         (deregister_frame_dtor): Remove.
2302
2303 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
2304             Nathan Sidwell  <nathan@codesourcery.com>
2305
2306         * config/rs6000/rs6000.opt (mspe): Remove Var property.
2307         (misel): Likewise.
2308         * config/rs6000/rs6000.h (rs6000_spe): Declare.
2309         (rs6000_isel): Likewise.
2310         * config/rs6000/rs6000.c (rs6000_spe): New variable.
2311         (rs6000_isel): New variable.
2312         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
2313
2314 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2315
2316         PR c++/35758
2317         * c-common.c (handle_vector_size_attribute): Call
2318         lang_hooks.types.reconstruct_complex_type instead of
2319         reconstruct_complex_type.
2320         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2321         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2322         * langhooks.h (struct lang_hooks_for_types): Add
2323         reconstruct_complex_type hook.
2324         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2325         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2326
2327 2008-04-24  Richard Guenther  <rguenther@suse.de>
2328
2329         * c-common.h (check_builtin_function_arguments): Declare.
2330         * c-common.c (validate_nargs): New function.
2331         (check_builtin_function_arguments): Likewise.
2332         * c-typeck.c (build_function_call): Call
2333         check_builtin_function_arguments.
2334         * builtins.c (fold_builtin_classify): Remove error reporting code.
2335         (fold_builtin_unordered_cmp): Likewise.
2336         (fold_builtin_1): Likewise.
2337         (fold_builtin_n): Likewise.
2338
2339 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2340
2341         PR tree-optimization/36008
2342         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2343         the original op1, rather than delta by step.
2344
2345 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
2346             Sebastian Pop  <sebastian.pop@amd.com>
2347
2348         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2349         eliminate_local_variables_stmt, eliminate_local_variables,
2350         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2351         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2352         of code delimited by two edges in the CFG.
2353         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2354         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2355         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
2356         the case of parallelisation of reductions.
2357         (expr_invariant_in_region_p): New.
2358
2359         * tree-flow.h (gather_blocks_in_sese_region): Declared.
2360         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2361
2362 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2363             Richard Guenther  <rguenther@suse.de>
2364
2365         PR tree-optimization/36034
2366         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2367         incapable of dealing with loads with gaps.
2368
2369 2008-04-24  Rafael Espindola  <espindola@google.com>
2370
2371         * tree-flow.h (vrp_evaluate_conditional): Change signature.
2372         * tree-ssa-propagate.c (fold_predicate_in): Update call to
2373         vrp_evaluate_conditional.
2374         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
2375         (vrp_evaluate_conditional): Split the cond argument.
2376         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2377         (simplify_stmt_for_jump_threading): Update call to
2378         vrp_evaluate_conditional.
2379
2380 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2381
2382         PR tree-optimization/35982
2383         * tree-vect-analyze.c (vect_check_interleaving): Check that the
2384         interleaved data-refs are of the same type.
2385
2386 2008-04-24  Danny Smith  <dannysmith@users.net>
2387
2388         * c-format.c (check_format_info_main): Use strncmp rather than a
2389         magic prefix to handle multichar length specs.
2390         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2391         Don't prefix "I64" and "I32" with '\0'.
2392
2393 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2394
2395         PR target/36015
2396         * config/i386/i386.c (init_cumulative_args): Don't pass anything
2397         in registers for -m32 only if stdarg_p (fntype).
2398
2399 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
2400
2401         PR rtl-optimization/36006
2402         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2403         temp to op0 in order to avoid invalid rtx sharing.
2404
2405 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2406
2407         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
2408         check TREE_INVARIANT.
2409         * tree-gimple.c (is_gimple_address): New.
2410         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2411         * tree-gimple.h (is_gimple_address): New.
2412         * tree.h (decl_address_invariant_p): New.
2413         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2414         (build_string): Likewise.
2415         (decl_address_invariant_p): New, from is_gimple_invariant_address.
2416         (tree_invariant_p_1): Likewise.
2417         (save_expr): Use it.
2418         (tree_invariant_p): New.
2419         (skip_simple_arithmetic): Use it.
2420         (stabilize_reference_1): Use it.
2421         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2422         simplify.
2423         (build1_stat): Drop code to compute TREE_INVARIANT.
2424         (build2_stat): Drop code to compute TREE_INVARIANT.
2425         (build3_stat): Drop code to compute TREE_INVARIANT.
2426         (build4_stat): Drop code to compute TREE_INVARIANT.
2427         (build5_stat): Drop code to compute TREE_INVARIANT.
2428         (build7_stat): Drop code to compute TREE_INVARIANT.
2429         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2430         * tree.h (struct tree_base): Remove invariant_flag.
2431         (TREE_INVARIANT): Remove.
2432         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2433         (fold_builtin_expect): Check TREE_CONSTANT.
2434         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2435         * c-tree.h (c_expr_to_decl): Drop third parameter.
2436         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2437         (build_c_cast): Don't set TREE_INVARIANT.
2438         (pop_init_level): Don't set TREE_INVARIANT.
2439         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2440         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2441         TREE_CONSTANT.
2442         (gimplify_init_constructor): Don't set TREE_INVARIANT.
2443         (gimplify_addr_expr): Adjust comment.
2444         * tree-mudflap.c (mf_build_string):
2445         * print-tree.c (print_node): Don't print TREE_INVARIANT.
2446         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2447         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2448         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2449         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2450         * langhooks.h (struct lang_hooks): Drop third parameter from
2451         expr_to_decl.
2452
2453 2008-04-23  Richard Guenther  <rguenther@suse.de>
2454
2455         PR tree-optimization/27799
2456         PR tree-optimization/32921
2457         PR tree-optimization/32624
2458         * tree-ssa-structalias.c (merge_smts_into): Only merge the
2459         SMTs aliases and the tag itself into the solution.
2460         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2461         merge the points-to solution back into the SMT aliases.
2462         (may_alias_p): Use alias_set_subset_of instead of
2463         aliases_conflict_p.  A pointer which points to
2464         memory with alias set zero may access any variable.
2465
2466 2008-04-23  Richard Guenther  <rguenther@suse.de>
2467
2468         * alias.c (alias_set_subset_of): Correctly handle asking
2469         if zero is a subset of an alias set with zero child.
2470         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2471         (compute_flow_insensitive_aliasing): Correctly walk all
2472         pointers.  Do not unnecessarily union sets.
2473
2474 2008-04-23  Richard Guenther  <rguenther@suse.de>
2475
2476         PR middle-end/36021
2477         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2478
2479 2008-04-22  Tomas Bily  <tbily@suse.cz>
2480
2481         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2482         unreachable case.
2483         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2484         NON_LVALUE_EXPR.
2485         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2486         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2487         * tree-inline.c (estimate_num_insns_1): Likewise.
2488         * varasm.c (const_hash_1, compare_constant, copy_constant)
2489         (compute_reloc_for_constant, output_addressed_constants): Likewise.
2490         * emit-rtl.c (component_ref_for_mem_expr)
2491         (set_mem_attributes_minus_bitpos): Likewise.
2492         * expr.c (highest_pow2_factor, expand_expr_real_1, )
2493         (is_aligning_offset): Likewise.
2494         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2495         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2496         * dojump.c (do_jump): Likewise.
2497         * builtins.c (get_pointer_alignment, get_memory_rtx)
2498         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2499         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
2500
2501 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
2502
2503         PR rtl-optimization/36017
2504         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2505         expanding the library call.
2506
2507 2008-04-22  Ian Lance Taylor  <iant@google.com>
2508
2509         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2510         than size_in_bytes.
2511
2512 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
2513
2514         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2515         of LR/CTR moves for Power6.
2516
2517 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
2518
2519         PR middle-end/36003
2520         * passes.c (init_optimization_passes): Remove
2521         pass_fast_rtl_byte_dce.
2522         
2523 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
2524
2525         PR target/29096
2526         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2527         builtin functions to generate faster code.
2528         (_mm_cvtpu16_ps): Ditto.
2529         (_mm_cvtpi32x2_ps): Ditto.
2530
2531 2008-04-22  Nick Clifton  <nickc@redhat.com>
2532
2533         * common.opt (ftree-loop-distribution): Add Optimization
2534         attribute.
2535
2536         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2537         (frv_expand_builtin_va_start): Likewise.
2538
2539         * config/arm/arm.c (thumb_find_work_register): Fix location of
2540         argument register count.
2541
2542 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2543
2544         Support scheduling for ColdFire V1 and V3 microarchitecture.
2545         Improve scheduling of multiplication instructions.
2546
2547         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
2548         (mac): New instruction attribute.
2549         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2550         (m68k_sched_mac): New variable.
2551         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2552         Handle cfv1 and cfv3.
2553         (max_insn_size): New static variable.
2554         (struct _sched_ib): New type.
2555         (sched_ib): New static variable.
2556         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2557         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
2558         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2559         Update.
2560         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2561         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
2562         new variables.  Update.
2563         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2564         Add modeling of cfv3 instruction buffer.  Update.
2565         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2566         * config/m68k/m68k.h (TUNE_CFV3): New macro.
2567         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2568         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2569         a particular reservation applies to.
2570         (type2): Reorganize attribute values.  Rename alu to alu_reg,
2571         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
2572         to mul_l and mul_w.
2573         (cf_ib_*): Simplify description of instruction buffer.
2574         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2575         (cf_mem): Split into cf_mem1 and cf_mem2.
2576         (cf_v2_move_??): Rename to cfv12_alu_??.
2577         (cf_v2_move_l_??): Rename to cfv12_omove_??.
2578         (cf_v2_mul_??): Remove reservations.
2579         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2580         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2581         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2582         appropriate place.
2583         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2584         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2585         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2586         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2587         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2588         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2589         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2590         expansions of the above reservations for instructions of sizes
2591         1, 2 and 3 words.
2592
2593 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2594
2595         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2596
2597 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
2598
2599         * coverage.c: Include tree-pass.h.
2600         (coverage_counter_alloc): Print da_file_name to the dump file.
2601
2602 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
2603
2604         * sbitmap.c (sbitmap_range_empty_p): New function.
2605         * sbitmap.h (sbitmap_range_empty_p): New function.
2606         * bitmap.h: Now includes obstack.h.
2607
2608 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2609             Kenneth Zadeck  <zadeck@naturalbridge.com>
2610
2611         * dbgcnt.def (ra_byte_scan): Added.
2612         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2613         when the last hit happens for a counter.  
2614         * timevar.def (TV_DF_BYTE_LR): New variable.
2615         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2616         * passes.c (pass_fast_rtl_byte_dce): New pass.
2617         * fwprop.c (update_df): Added mode to call df_ref_create.
2618         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2619         DF_REF_EXTRACT_OFFSET.
2620         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
2621         DF_BYTE_LR_OUT, df_byte_lr): New macro.
2622         (df_mm): New enum.
2623         (df_ref_extract): Added mode field.
2624         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2625         DF_REF_EXTRACT_OFFSET.
2626         (DF_REF_EXTRACT_MODE): New macro.
2627         (df_byte_lr_bb_info): New structure.
2628         (df_print_byte_regset, df_compute_accessed_bytes, 
2629         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2630         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2631         df_byte_lr_simulate_uses,
2632         df_byte_lr_simulate_artificial_refs_at_top,
2633         df_byte_lr_simulate_artificial_refs_at_end,
2634         df_compute_accessed_bytes): New function.
2635         (df_ref_create): Add parameter.
2636         (df_byte_lr_get_bb_info): New inline function.
2637         * df-scan.c (df_ref_record, df_uses_record,
2638         df_ref_create_structure): Added mode parameter.
2639         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
2640         df_defs_record, df_uses_record, df_get_conditional_uses,
2641         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
2642         df_entry_block_defs_collect, df_exit_block_uses_collect):
2643         Added mode parameter to calls to df_ref_record, df_uses_record,
2644         df_ref_create_structure.
2645         (df_ref_equal_p, df_ref_compare): Added test for modes.
2646         (df_ref_create_structure): Added code to set mode.  Renamed
2647         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2648         DF_REF_EXTRACT_OFFSET.
2649         * df-core.c (df_print_byte_regset): New function.
2650         * df-byte-scan.c: New file.
2651         * df-problems.c (df_rd_transfer_function): Removed unnecessary
2652         calls to BITMAP_FREE.  
2653         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2654         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2655         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
2656         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
2657         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2658         df_byte_lr_local_compute, df_byte_lr_init,
2659         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
2660         df_byte_lr_transfer_function, df_byte_lr_free, 
2661         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2662         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
2663         df_byte_lr_simulate_uses,
2664         df_byte_lr_simulate_artificial_refs_at_top,
2665         df_byte_lr_simulate_artificial_refs_at_end): New function.
2666         * dce.c (byte_dce_process_block): New function.
2667         (dce_process_block): au is now passed in rather than computed
2668         locally.  Changed loops that look at artificial defs to not look
2669         for conditional or partial ones, because there never are any.  
2670         (fast_dce): Now is able to drive byte_dce_process_block or 
2671         dce_process_block depending on the kind of dce being done.
2672         (rest_of_handle_fast_dce): Add parameter to fast_dce.
2673         (rest_of_handle_fast_byte_dce): New function.
2674         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2675         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2676
2677 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
2678
2679         PR fortran/35019
2680         * gcc.h: Added fortran options that take arguments to
2681         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2682         macros.
2683
2684 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2685
2686         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2687         scalarization if on the LHS and not a full access.
2688
2689 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2690
2691         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
2692
2693 2008-04-18  Rafael Espindola  <espindola@google.com>
2694
2695         * tree-vrp.c (find_case_label_index): Fix the binary search.
2696         (find_case_label_range): New.
2697         (vrp_visit_switch_stmt): Use find_case_label_range.
2698         (simplify_switch_using_ranges): Use find_case_label_range.
2699
2700 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2701
2702         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2703         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2704
2705 2008-04-18  Tom Tromey  <tromey@redhat.com>
2706
2707         PR libcpp/15500:
2708         * doc/cpp.texi (Implementation-defined behavior): Mention
2709         -finput-charset.
2710
2711 2008-04-18  Ian Lance Taylor  <iant@google.com>
2712
2713         * fold-const.c (pointer_may_wrap_p): New static function.
2714         (fold_comparison): Add another test for pointer overflow.  Use
2715         pointer_may_wrap_p to disable some false positives.
2716
2717 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
2718           
2719         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2720         (fname_as_string): Match updated cpp_interpret_string prototype.
2721         (fix_string_type): Support char16_t* and char32_t*.
2722         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2723         derivative) nodes.  Register as builtin if C++0x.
2724         (c_parse_error): Support CPP_CHAR{16,32}.
2725         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
2726         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2727         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2728         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2729         CTI_CHAR32_ARRAY_TYPE>: New elements.
2730         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2731         char32_type_node, signed_char32_type_node, char16_array_type_node,
2732         char32_array_type_node): New defines.
2733         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2734         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2735         (lex_string): Support CPP_STRING{16,32}, match updated
2736         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2737         (lex_charconst): Support CPP_CHAR{16,32}.
2738         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2739         and CPP_STRING{16,32}.
2740
2741 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2742
2743         PR bootstrap/35457
2744         * aclocal.m4: Regenerate.
2745         * configure: Regenerate.
2746
2747 2008-04-18  Jan Hubicka  <jh@suse.cz>
2748
2749         * except.c (dw2_size_of_call_site_table,
2750         sjlj_size_of_call_site_table): Use vector API for call_site_record.
2751
2752         * cgraphbuild.c (build_cgraph_edges): Update.
2753         * tree-pass.h: Update comment.
2754         * final.c (leaf_function_p): Update.
2755         (leaf_renumber_regs): Update.
2756         (rest_of_clean_state): Update.
2757         * omp-low.c (expand_omp_parallel): Update.
2758         * ipa-reference.c (analyze_function): Update.
2759         * reorg.c (find_end_label): Update.
2760         (optimize_skip): Update.
2761         (fill_simple_delay_slots): Update.
2762         (fill_simple_delay_slots): Update.
2763         (make_return_insns): Update.
2764         (dbr_schedule): Update.
2765         * gimple-low.c (record_vars_into): Update.
2766         * cfgbuild.c (make_edges): Update.
2767         * function.c (assign_stack_local): Update.
2768         (assign_parm_adjust_stack_rtl): Update.
2769         (locate_and_pad_parm): Update.
2770         (allocate_struct_function): Do not initialize stack_alignment_needed
2771         and preferred_stack_boundary here.
2772         (stack_protect_prologue): Update.
2773         (stack_protect_epilogue): Update.
2774         (expand_function_start): Initialize stack_alignment_needed,
2775         preferred_stack_boundary and max_jumptable_ents.
2776         (expand_function_end): Update.
2777         (free_after_compilation): Do not NULLify epilogue_delay_list.
2778         * function.h (struct rtl_data): Add stack_protect_guard,
2779         stack_alignment_needed,
2780         preferred_stack_boundary, epilogue_delay_list.
2781         (struct function): Remove value_histograms, stack_alignment_needed,
2782         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2783         last_label_uid,
2784         unexpanded_var_list, stack_protect_guard.
2785         (current_function_epilogue_delay_list): Remove.
2786         * ipa-type-escape.c (analyze_function): Update.
2787         * gimplify.c (pop_gimplify_context): Update comment.
2788         * calls.c (expand_call): Update.
2789         (emit_library_call_value_1): Update.
2790         * except.c (set_nothrow_function_flags): Update.
2791         * cfgexpand.c (get_decl_align_unit): Update.
2792         (create_stack_guard): Update.
2793         (estimated_stack_frame_size): Update.
2794         (expand_used_vars): Update.
2795         (tree_expand_cfg): Free histogram earliers, init expansion variables.
2796         * explow.c (allocate_dynamic_stack_space): Update.
2797         * tree-ssa-live.c (remove_unused_locals): Update.
2798         * varasm.c (mark_constant_pool): Update.
2799         * tree-inline.c (remap_decls): Update.
2800         (initialize_cfun): Update.
2801         (declare_return_variable): Update.
2802         (inline_forbidden_p): Update.
2803         (expand_call_inline): Update.
2804         (declare_inline_vars): Update.
2805         (tree_function_versioning): Update.
2806         * tree-flow.h (value_histograms): New.
2807         (VALUE_HISTOGRAMS): New macro.
2808         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2809         last_label_uid.
2810         * tree-cfg.c (set_bb_for_stmt): Update.
2811         (replace_by_duplicate_decl): Update.
2812         (move_block_to_fn): Update.
2813         (new_label_mapper): Update.
2814         (dump_function_to_file): Update.
2815         * ipa-struct-reorg.c (build_data_structure): Update.
2816         * cfgrtl.c (print_rtl_with_bb): Update.
2817         * reload1.c (reload): Update.
2818         (reload): Update.
2819         * config/i386/i386.c (setup_incoming_varargs_64,
2820         ix86_compute_frame_layout): Update.
2821         * config/arc/arc.c (arc_output_function_epilogue): Update.
2822
2823 2008-04-18  Marius Strobl <marius@FreeBSD.org>
2824
2825         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2826         for FreeBSD as well.
2827         * gthr-posix95.h: Likewise.
2828
2829 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
2830
2831         PR rtl-optimization/35838
2832         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2833         out the byte offset of the first subreg.
2834
2835 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
2836
2837         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2838         to split_ti instead of three separate calls with single member arrays.
2839         (subti3 splitter): Ditto.
2840         (adddi3 splitter): Ditto with split_di.
2841         (subdi3 splitter): Ditto.
2842         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2843         two separate calls with single member arrays.  Swap match_dup
2844         operands 1 and 2 to better fit into the array.
2845         (negdi2 splitter): Ditto with split_di.
2846         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
2847         two separate calls with single member arrays.  Swap match_dup operands
2848         6 and 7 to better fit into the array.
2849
2850 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2851
2852         * config/i386/i386.c (sse_builtin_type): New.
2853         (bdesc_sse_args): Likewise.
2854         (bdesc_sse_3arg): Removed.
2855         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2856         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2857         IX86_BUILTIN_ROUNDPS.
2858         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
2859         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
2860         IX86_BUILTIN_ROUNDPS.
2861         (ix86_expand_sse_4_operands_builtin): Removed.
2862         (ix86_expand_sse_operands_builtin): New.
2863         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2864         and CODE_FOR_sse4_1_roundps.
2865         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2866         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
2867
2868 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
2869
2870         PR target/35907
2871         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2872         regs before frame pop when needed.  If use_backchain_to_restore_sp
2873         then load backchain into a temp reg to restore vr and vrsave.  Add
2874         code to restore vr after frame pop if possible.
2875
2876 2008-04-17  Richard Guenther  <rguenther@suse.de>
2877
2878         * tree-vn.c (expressions_equal_p): Do not check type
2879         equality or compatibility before calling operand_equal_p.
2880         * fold-const.c (operand_equal_p): Check equivalence of
2881         integer constants before bailing out due to signedness or
2882         precision differences.
2883         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
2884         spurious differences in type qualification.  Ignore types
2885         for COMPONENT_REFs at all.
2886
2887 2008-04-17  Christian Bruel  <christian.bruel@st.com>
2888
2889         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
2890         msw_skip comparison.
2891         
2892 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
2893
2894         PR c/35739
2895         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
2896         reg type.
2897
2898         PR tree-optimization/35899
2899         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
2900         rather than TREE_OPERAND.
2901
2902 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
2903
2904         PR target/35944
2905         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
2906         temporary registers.  Change operand predicate to general_operand.
2907         (remainderxf3): Ditto.
2908
2909 2008-04-16  Richard Guenther  <rguenther@suse.de>
2910
2911         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
2912         * tree-affine.c (aff_combination_expand): Look through some
2913         conversions.
2914
2915 2008-04-15  Doug Kwan  <dougkwan@google.com>
2916
2917         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
2918         for hex printing.
2919         * tree-pretty-print.c (dump_generic_node): Ditto.
2920         * final.c (output_addr_const): Ditto.
2921         * dwarf2out.c (output_cfi): Ditto.
2922         * c-pretty-print.c (pp_c_integer_constant): Ditto.
2923         * print-rtl.c (print_rtx): Ditto.
2924         * print-tree.c (print_node_brief, print_node): Ditto.
2925         * c-common.c (match_case_to_enum_1): Ditto.
2926         * sched-vis.c (print_value): Ditto.
2927         * config/i386/i386.c (print_operand): Cast to long unsigned int
2928         for hex printing.
2929
2930 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
2931         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
2932         MS Windows VirtualProtect function.
2933
2934 2008-04-15  Jan Hubicka  <jh@suse.cz>
2935
2936         * gengtype.c (write_root): Param_is argument is OK.
2937         * expr.c (expand_expr_real_1): Update call of get_exception_*.
2938         * function.h: Include varray.h
2939         (rtl_eh): New stucture based on except.c one.
2940         (call_site_record): New forward declaration and vector type.
2941         * calls.c (emit_call_1): Do not call
2942         note_current_region_may_contain_throw.
2943         * except.c (eh_status): Remove cur_region, try_region since they are
2944         unused.
2945         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
2946         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
2947         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
2948         Remove call_site_data_used, call_site_data_size.
2949         Turn call_site_record into vector in function.h.
2950         (note_current_region_may_contain_throw): Remove.
2951         (get_exception_pointer, get_exception_filter): Do not take struct
2952         function argument; update.
2953         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
2954         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
2955         build_post_landing_pads, dw2_build_landing_pads,
2956         sjlj_assign_call_site_values, sjlj_mark_call_sites,
2957         sjlj_emit_function_enter, sjlj_emit_function_enter, 
2958         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
2959         sjlj_build_landing_pads, finish_eh_generation,
2960         remove_exception_handler_label, remove_eh_handler,
2961         maybe_remove_eh_handler, add_reachable_handler,
2962         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
2963         add_action_record, collect_one_action_chain, add_call_site,
2964         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
2965         sjlj_output_call_site_table, output_function_exception_table,
2966         * except.h (note_current_region_may_contain_throw): Remove
2967         (get_exception_pointer, get_exception_filter): Do not take struct
2968         function argument.
2969         * Makefile.in (GTFILES): Put varargs before struct function.
2970
2971 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2972
2973         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
2974         punt for STRING_CST.
2975         (get_constraint_for): Deal with STRING_CST here instead.
2976
2977 2008-04-15  Richard Guenther  <rguenther@suse.de>
2978
2979         * tree-ssa-propagate.c (substitute_and_fold): Substitute
2980         statements in a basic-block with a backward walk.  Do not
2981         substitute into dead statements but instead remove those.
2982
2983 2008-04-15  Richard Guenther  <rguenther@suse.de>
2984
2985         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
2986         to zero, thus disable creation of SFTs.
2987
2988 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2989
2990         * tree-predcom.c (suitable_reference_p): Return false if the
2991         reference can throw.
2992
2993 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
2994
2995         PR c/35751
2996         * c-decl.c (finish_decl): If extern or static var has variable
2997         size, set TREE_TYPE (decl) to error_mark_node.
2998
2999 2008-04-15  Rafael Espindola  <espindola@google.com>
3000
3001         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
3002         variable arg1.
3003
3004 2008-04-15  Richard Guenther  <rguenther@suse.de>
3005
3006         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
3007         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
3008         (visit_reference_op_load): Do walk vuse-vdef chains on
3009         vn_reference_lookup.
3010         (visit_reference_op_store): But do not here.
3011         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
3012         vn_reference_lookup.
3013         (vn_lookup_with_vuses): But do so here.
3014
3015 2008-04-14  Ian Lance Taylor  <iant@google.com>
3016
3017         * fold-const.c (fold_overflow_warning): Remove assertion.
3018
3019 2008-04-15  Ben Elliston  <bje@au.ibm.com>
3020
3021         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
3022         temp1 local variables.
3023
3024 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
3025
3026         PR target/35661
3027         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
3028         ".text.unlikely" section as executable.
3029
3030 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
3031
3032         * config/ia64/ia64.c (rtx_needs_barrier): Handle
3033         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
3034         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
3035         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
3036         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
3037         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
3038         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
3039
3040 2008-04-14  Ian Lance Taylor  <iant@google.com>
3041
3042         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
3043         * fold-const.c (fold_comparison): If appropriate, test
3044         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
3045         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
3046         reassociating a pointer type.
3047         * doc/invoke.texi (Optimize Options): Document that
3048         -fstrict-overflow applies to pointer wraparound.
3049
3050 2008-04-13  Jan Hubicka  <jh@suse.cz>
3051
3052         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
3053
3054 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
3055
3056         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
3057         we are going to "save the world".
3058
3059 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
3060
3061         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
3062         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
3063         operand 0 constraint, not "=".
3064
3065 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
3066
3067         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
3068
3069 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
3070
3071         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
3072         of size of positions_needed * CHAR_BIT.
3073
3074 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
3075
3076         PR middle-end/35897
3077         * dse.c (store_info): Change positions_needed to unsigned
3078         HOST_WIDE_INT.
3079         (lowpart_bitmask): New.
3080         (record_store): Cast to unsigned HOST_WIDE_INT for
3081         positions_needed.  Assert width <= size of positions_needed *
3082         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
3083         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
3084         lowpart_bitmask to set mask.
3085
3086 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
3087
3088         * config/bfin/constraints.md: New file.
3089         * config/bfin/bfin.md: Include it.
3090         (adddi3): Use satisfies_constraint functions instead of the old macros.
3091         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
3092         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
3093         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
3094         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
3095         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
3096         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
3097         EXTRA_CONSTRAINT): Delete.
3098         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
3099         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
3100         of the old macros.
3101         * config/bfin/bfin.c: Include "tm-constrs.h".
3102         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
3103         Use satisfies_constraint functions instead of the old macros.
3104         * doc/md.texi (Blackfin Constraints): Update file name reference.
3105
3106 2008-04-11  Richard Guenther  <rguenther@suse.de>
3107
3108         PR tree-optimization/35869
3109         * tree-vrp.c (execute_vrp): Move switch statement update after
3110         jump threading.  Schedule another cfg cleanup run.
3111
3112 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
3113
3114         PR c/35744
3115         * attribs.c (decl_attributes): Return early on errorneous node.
3116
3117 2008-04-10  Oleg Ryjkov  <olegr@google.com>
3118
3119         * tree.h (struct tree_base): Added a new flag default_def_flag.
3120         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
3121
3122 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3123
3124         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
3125
3126 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3127
3128         PR target/35768
3129         * pa.md: Define mode iterator P.  Define mode attribute dwc.
3130         (dcacheflush): Update pattern to use iterator P and attribute dwc.
3131         (icacheflush): Likewise.
3132         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
3133         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
3134
3135 2008-04-11  Ben Elliston  <bje@au.ibm.com>
3136
3137         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
3138
3139 2008-04-10  Rafael Espindola  <espindola@google.com>
3140
3141         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
3142         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
3143         (extract_range_from_expr): The same.
3144
3145 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
3146
3147         * config/mips/mips.md (GPR2): New mode iterator.
3148         (seq): Add comment.
3149         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
3150         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
3151         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
3152         Rewrite these to take two modes, the mode of comparison and the
3153         mode of the destination.
3154         * config/mips/mips.c (mips_expand_scc): Instead of having
3155         paradoxical subreg as destination, expand "narrowing" scc if mode
3156         of comparison is SI and target is requested in DI mode.
3157         (mips_emit_int_order_test): Update comment.  Make mode of
3158         comparison match CMP0 rather than TARGET.  When creating inverse
3159         target use mode of TARGET.
3160
3161 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
3162
3163         * gcov-dump.c (tag_summary): Only print summaries for the first
3164         GCOV_COUNTERS_SUMMABLE counters.
3165
3166 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
3167
3168         * config/i386/i386.md (absneg): New code iterator.
3169         (absnegprefix): New code attribute.
3170         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
3171         patterns using absneg code iterator.
3172         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
3173         using absneg code iterator.
3174         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
3175         *neg<mode>2 patterns using absneg code iterator.
3176         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3177         *negextendsfdf2 patterns using absneg code iterator.
3178         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
3179         *negextendsfxf2 patterns using absneg code iterator.
3180         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3181         *negextendsfdf2 patterns using absneg code iterator.
3182         * config/i386/sse.md (<code><mode>2): Macroize expander from
3183         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
3184
3185 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
3186
3187         * config/s390/s390.h: Remove the remains of the recent search
3188         & replace action of current_function_outgoing_args_size.
3189
3190 2008-04-10  Ira Rosen  <irar@il.ibm.com>
3191
3192         PR tree-optimization/35821
3193         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
3194         NEW_STMT_LIST is not NULL.
3195
3196 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
3197
3198         PR libstdc++/35597
3199         * toplev.c (process_options): Remove -ffunction-sections debugging
3200         warning.
3201
3202 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
3203
3204         PR middle-end/PR28690
3205         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
3206         than gen_rtx_fmt_ee to perform more canonicalizations.
3207
3208 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3209
3210         PR driver/35665
3211         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
3212
3213 2008-04-09  Richard Guenther  <rguenther@suse.de>
3214
3215         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
3216         (dump_function_to_file): Dump function arguments with types.
3217
3218 2008-04-08  Richard Guenther  <rguenther@suse.de>
3219
3220         * fold-const.c (fold_widened_comparison): Do not allow
3221         sign-changes that change the result.
3222
3223 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
3224
3225         PR target/35839
3226         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
3227         kinds of indirect references.
3228
3229 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
3230
3231         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
3232         GNU Fortran language string.
3233
3234 2008-04-08  Rafael Espindola  <espindola@google.com>
3235
3236         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
3237         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
3238         * tree.h (tree_call_nonnegative_warnv_p): New.
3239
3240 2008-04-08  Jan Hubicka  <jh@suse.cz>
3241
3242         * function.c (free_after_compilation): Clear out regno_reg_rtx
3243         pointer.
3244
3245 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
3246
3247         Revert
3248         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3249
3250         PR middle-end/PR28690
3251         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
3252         same precedence as REG_POINTER and MEM_POINTER operands.
3253
3254 2008-04-08  Richard Guenther  <rguenther@suse.de>
3255
3256         PR middle-end/35834
3257         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
3258         for adding index to base.
3259
3260 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
3261
3262         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
3263         (MINGW_ENABLE_EXECUTE_STACK): New.
3264         (IN_LIBGCC2): For libgcc include windows.h file for
3265         function declarations.
3266
3267 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
3268
3269         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
3270         and tem2 if tem1 is not a REG or MULT.
3271
3272 2008-04-08  Jan Hubicka  <jh@suse.cz>
3273
3274         * function.h (incomming_args): Break out of struct function.
3275         (function_subsections): Break out of struct function.
3276         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
3277         return_rtx and hard_reg_initial_vals from struct function.
3278         Kill inl_max_label_num.
3279         (current_function_pops_args, current_function_args_info,
3280         current_function_args_size, current_function_args_size,
3281         current_function_pretend_args_size,
3282         current_function_outgoing_args_size,
3283         current_function_internal_arg_pointer, current_function_return_rtx):
3284         Kill compatibility accestor macros.
3285         * builtins.c (expand_builtin_apply_args_1): Update.
3286         (expand_builtin_next_arg): Update.
3287         * df-scan.c (df_get_call_refs): Update.
3288         * dbxout.c (dbxout_function_end): Update.
3289         * dwarf2out.c (dwarf2out_switch_text_section): Update.
3290         (output_line_info): Update.
3291         (secname_for_decl): Update.
3292         (dwarf2out_var_location): Update.
3293         * function.c (free_after_compilation): Update.
3294         (assign_parm_find_stack_rtl): Update.
3295         (assign_parms): Update.
3296         (expand_dummy_function_end): Update.
3297         (expand_function_end): Update.
3298         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
3299         (expand_call): Update.
3300         (emit_library_call_value_1): Update.
3301         (store_one_arg): Update.
3302         * varasm.c (initialize_cold_section_name): Update.
3303         (unlikely_text_section): Update.
3304         (unlikely_text_section_p): Update.
3305         (assemble_start_function): Update.
3306         (assemble_end_function): Update.
3307         (default_section_type_flags): Update.
3308         (switch_to_section): Update.
3309         * integrate.c (set_decl_abstract_flags): Update.
3310         (get_hard_reg_initial_val): Update.
3311         (has_hard_reg_initial_val): Update.
3312         (allocate_initial_values): Update.
3313         * resource.c (init_resource_info): Update.
3314         * config/alpha/alpha.c (NUM_ARGS): Update.
3315         (direct_return): Update.
3316         (alpha_va_start): Update.
3317         (alpha_sa_size): Update.
3318         (alpha_initial_elimination_offset): Update.
3319         (alpha_expand_prologue): Update.
3320         (alpha_start_function): Update.
3321         (alpha_expand_epilogue): Update.
3322         (unicosmk_initial_elimination_offset):
3323         * config/alpha/alpha.md (call expander): Update.
3324         * config/s390/s390.c (s390_register_info): Update.
3325         (s390_register_info): Update.
3326         (s390_frame_info): Update.
3327         (s390_initial_elimination_offset): Update.
3328         (s390_build_builtin_va_list): Update.
3329         (s390_va_start): Update.
3330         * config/spu/spu.c (direct_return): Update.
3331         (spu_expand_prologue): Update.
3332         (spu_initial_elimination_offset): Update.
3333         (spu_build_builtin_va_list): Update.
3334         (spu_va_start): Update.
3335         * config/sparc/sparc.c (sparc_init_modes): Update.
3336         (sparc_compute_frame_size): Update.
3337         (function_value): Update.
3338         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
3339         * config/i386/i386.md (return expander): Update.
3340         * config/i386/i386.c (ix86_va_start): Update.
3341         (ix86_can_use_return_insn_p): Update.
3342         (ix86_compute_frame_layout): Update.
3343         (ix86_expand_epilogue): Update.
3344         * config/sh/sh.c (output_stack_adjust): Update.
3345         (calc_live_regs): Update.
3346         (sh_expand_prologue): Update.
3347         (sh_builtin_saveregs): Update.
3348         (sh_va_start): Update.
3349         (initial_elimination_offset): Update.
3350         (sh_allocate_initial_value): Update.
3351         (sh_function_ok_for_sibcall): Update.
3352         (sh_get_pr_initial_val): Update.
3353         * config/sh/sh.md (return expander): Update.
3354         * config/avr/avr.c (frame_pointer_required_p): UPdate.
3355         * config/crx/crx.c (crx_compute_frame): UPdate.
3356         (crx_initial_elimination_offset): UPdate.
3357         * config/xtensa/xtensa.c (compute_frame_size): Update
3358         (xtensa_builtin_saveregs): Update.
3359         (xtensa_va_start): Update.
3360         (order_regs_for_local_alloc): Update.
3361         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3362         (xstormy16_expand_builtin_va_start): Update.
3363         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3364         * config/m68hc11/m68hc11.md (return expanders): Update.
3365         * config/m68hc11/m68hc11.c (expand_prologue): Update.
3366         (expand_epilogue): Update.
3367         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3368         (cris_simple_epilogue): Update.
3369         (cris_expand_prologue): Update.
3370         (cris_expand_epilogue): Update.
3371         * config/iq2000/iq2000.c (iq2000_va_start): Update.
3372         (compute_frame_size): Update.
3373         * config/mt/mt.c (mt_compute_frame_size): Update.
3374         * config/mn10300/mn10300.c (expand_prologue): Update.
3375         (expand_epilogue): Update.
3376         (initial_offset): Update.
3377         (mn10300_builtin_saveregs):
3378         * config/mn10300/mn10300.md (return expander): Update.
3379         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3380         (ia64_initial_elimination_offset): Update.
3381         (ia64_initial_elimination_offset): Update.
3382         (ia64_expand_prologue): Update.
3383         * config/m68k/m68k.md (return expander): Update.
3384         * config/rs6000/rs6000.c (rs6000_va_start): Update.
3385         (rs6000_stack_info): Update.
3386         * config/mcore/mcore.c (layout_mcore_frame): Update.
3387         (mcore_expand_prolog): Update.
3388         * config/arc/arc.c (arc_compute_frame_size): Update.
3389         * config/score/score3.c (score3_compute_frame_size): Update.
3390         * config/score/score7.c (score7_compute_frame_size): Update.
3391         * config/arm/arm.c (use_return_insn): Update.
3392         (thumb_find_work_register): Update.
3393         (arm_compute_save_reg_mask): Update.
3394         (arm_output_function_prologue): Update.
3395         (arm_output_epilogue): Update.
3396         (arm_size_return_regs): Update.
3397         (arm_get_frame_offsets): Update.
3398         (arm_expand_prologue): Update.
3399         (thumb_exit): Update.
3400         (thumb_unexpanded_epilogue): Update.
3401         (thumb1_output_function_prologue): Update.
3402         * config/pa/pa.md (return expander): Update.
3403         * config/pa/pa.c (compute_frame_size): Update.
3404         (hppa_builtin_saveregs): Update.
3405         * config/mips/mips.c (mips_va_start): Update.
3406         (mips16_build_function_stub): Update.
3407         (mips_compute_frame_info): Update.
3408         (mips_restore_gp): Update.
3409         (mips_output_function_prologue): Update.
3410         (mips_expand_prologue): Update.
3411         * config/v850/v850.c (compute_frame_size): Update.
3412         (expand_prologue): * config/mmix/mmix.c (along): update.
3413         (mmix_initial_elimination_offset): update.
3414         (mmix_reorg): update.
3415         (mmix_use_simple_return): update.
3416         (mmix_expand_prologue): update.
3417         (mmix_expand_epilogue): Update.
3418         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3419         (emit_link_insn): Update.
3420
3421 2008-04-08  Anatoly Sokolov <aesok@post.ru>
3422
3423         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
3424         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
3425         instructions.
3426         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
3427         atmega103 device.
3428
3429 2008-04-07  Jan Hubicka  <jh@suse.cz>
3430
3431         * function.h (rtl): Rename to x_rtl.
3432         (crtl): New define.
3433         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3434         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3435         used_temp_slots avail_temp_slots, temp_slot_level,
3436         nonlocal_goto_handler_labels): Update accesstors.
3437         (rtl): New global variable.
3438         (struct function): Move some fileds to rtl_data.
3439         (get_arg_pointer_save_area): Update prototype.
3440         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3441         get_arg_pointer_save_area.
3442         * expr.c (init_expr): Update
3443         * function.c (get_frame_size): Update
3444         (assign_stack_local): Update
3445         (expand_function_end): Update.
3446         (get_art_pointer_save_area): Update
3447         * function.h 
3448         * emit-rtl.c (rtl): Declare.
3449         (regno_reg_rtx): Declare.
3450         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3451         Update.
3452         (gen_reg_rtx): Update.
3453         * varasm.c (n_deferred_constatns): Update accestor.
3454         (init_varasm_status): Do not allocate varasm_status.
3455         (force_const_mem, get_pool_size, output_constant_pool): Update.
3456         * stmt.c (force_label_rtx): Do not use x_ prefixes.
3457         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3458         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3459         * sparc/sparc.h (INIT_EXPANDERS): Update.
3460         * ia64/ia64.h (INIT_EXPANDERS): Update.
3461
3462 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
3463
3464         * reload.c (push_secondary_reload): Add missing break to for loop.
3465
3466 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3467
3468         PR middle-end/PR28690
3469         * rtlanal.c: Update copyright years.
3470         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3471         as REG_POINTER and MEM_POINTER operands.
3472         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3473         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3474         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3475         * gcse.c: Update copyright years.
3476         (pre_delete): Call gen_reg_rtx_and_attrs.
3477         (hoist_code): Likewise.
3478         (build_store_vectors): Likewise.
3479         (delete_store): Likewise.
3480         * loop-invariant.c (move_invariant_reg): Likewise.
3481         Update copyright years.
3482
3483 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
3484
3485         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3486         control string instead of quoted.
3487
3488 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3489
3490         * doc/rtl.texi: Rewrite of subreg section.
3491
3492 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
3493
3494         PR/35842
3495         * config/i386/i386.c (legitimize_pic_address): Add treating
3496         of dllimport SYM_REF's.
3497         (legitimize_dllimport_symbol): Add prototype.
3498
3499 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3500
3501         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
3502         reference in constructor with non self-referential type.
3503
3504 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3505
3506         Removal of Return with Depressed Stack Pointer support
3507         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3508         (ECF_SP_DEPRESSED): Likewise.
3509         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3510         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3511         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3512         (expand_call): Do not test ECF_SP_DEPRESSED.
3513         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3514         * function.c (keep_stack_depressed): Delete.
3515         (handle_epilogue_set): Likewise.
3516         (update_epilogue_consts): Likewise.
3517         (emit_equiv_load): Likewise.
3518         (thread_prologue_and_epilogue_insns): Remove support for Return with
3519         Depressed Stack Pointer.
3520         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3521
3522 2008-04-06  Richard Guenther  <rguenther@suse.de>
3523
3524         PR tree-optimization/35400
3525         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3526         information from SSA_NAMEs.
3527
3528 2008-04-06  Anatoly Sokolov <aesok@post.ru>
3529
3530         * config/avr/avr.h (avr_mega_p): Remove declaration.
3531         (AVR_MEGA): Remove macro.
3532         * config/avr/avr.c (avr_mega_p): Remove variable.
3533         (avr_override_options): Remove inicializion of avr_mega_p.
3534         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3535         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3536         (avr_jump_mode): (Ditto.).
3537         (avr_output_progmem_section_asm_op): (Ditto.).
3538         (avr_asm_init_sections): (Ditto.).
3539         (avr_asm_init_sections): (Ditto.).
3540         (avr_rtx_costs): (Ditto.).
3541         * config/avr/avr.md: (Ditto.).
3542         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
3543         '__AVR_MEGA__'.
3544
3545 2008-04-06  Richard Guenther  <rguenther@suse.de>
3546
3547         PR tree-optimization/35842
3548         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3549         is_gimple_invariant_address.
3550
3551 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3552
3553         * gcc.c (default_compilers): Sync Fortran extensions list with
3554         that in fortran/lang-specs.h.
3555         * doc/invoke.texi: Likewise.
3556         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3557         * dwarf2out.c (gen_compile_unit_die): Likewise.
3558
3559 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
3560
3561         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3562
3563 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
3564
3565         PR target/12329
3566         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3567         attribute is used for nested functions.
3568
3569 2008-04-05  Jan Hubicka  <jh@suse.cz>
3570
3571         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3572
3573         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3574         letter argument.
3575         (dump_files): Update.
3576         (enable_rtl_dump_file): Do not accept letter argument.
3577         * tree-pass.h (dump_file_info): Remove letter argument.
3578         * toplev.c (decode_d_option): Update -da handling.
3579         * toplev.h (enable_rtl_dump_file): Update prototype.
3580         * passes.c (register_one_dump_file): Do not accept IPA argument; work
3581         it out based on pass type.
3582         (register_dump_files_1): Likewise.
3583         (init_optimization_passes): Update register_one_dump_file calls.
3584         (execute_one_pass): Sanity check that IPA passes are called at IPA
3585         level and RTL passes at RTL level.
3586         (execute_pass_list): IPA pass can not be after or subpass of
3587         GIMPLE/RTL pass.
3588         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3589         disallov RTL subpasses of IPA subpasses.
3590
3591 2008-04-05  Ben Elliston  <bje@au.ibm.com>
3592
3593         * tree-cfg.c (need_fake_edge_p): Return false for calls to
3594         builtins that return exactly once and do not throw. Cache call to
3595         call_expr_flags.
3596
3597 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3598
3599         PR rtl-optimization/34916
3600         PR middle-end/35519
3601         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3602         between instruction pairs.
3603
3604 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
3605
3606         * doc/invoke.texi: Document -mbitops for SH.
3607         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3608         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3609         * config/sh/sh.c (print_operand): Add %t operand code.
3610         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3611         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3612         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3613         (extendqihi2): Likewise.
3614         (movqi_i): Likewise.
3615         (insv): Use bset, bclr and bst instructions for SH2A if possible.
3616         (extv): Use bld instruction for SH2A if possible.
3617         (extzv): Likewise.
3618         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3619         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3620         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3621         (bset.b, bclr.b): Define peepholes.
3622         * config/sh/sh.opt (mbitops): New option.
3623
3624 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
3625
3626         PR target/35620
3627         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3628         and view convert expression.
3629
3630 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3631
3632         PR target/35364
3633         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3634
3635 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
3636
3637         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3638
3639         * config/i386/cpuid.h (bit_AES): New.
3640         (bit_PCLMUL): Likewise.
3641
3642         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3643         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
3644         SSE2 if AES or PCLMUL is enabled.
3645         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3646         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3647         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3648         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3649         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3650         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3651         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3652         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3653         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3654         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3655         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3656         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3657         __builtin_ia32_aeskeygenassist128 and
3658         __builtin_ia32_pclmulqdq128.
3659         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3660         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3661         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
3662
3663         * config/i386/i386.h (TARGET_AES): New.
3664         (TARGET_PCLMUL): Likewise.
3665         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3666
3667         * config/i386/i386.md (UNSPEC_AESENC): New.
3668         (UNSPEC_AESENCLAST): Likewise.
3669         (UNSPEC_AESDEC): Likewise.
3670         (UNSPEC_AESDECLAST): Likewise.
3671         (UNSPEC_AESIMC): Likewise.
3672         (UNSPEC_AESKEYGENASSIST): Likewise.
3673         (UNSPEC_PCLMUL): Likewise.
3674
3675         * config/i386/i386.opt (maes): New.
3676         (mpclmul): Likewise.
3677
3678         * config/i386/sse.md (aesenc): New pattern.
3679         (aesenclast): Likewise.
3680         (aesdec): Likewise.
3681         (aesdeclast): Likewise.
3682         (aesimc): Likewise.
3683         (aeskeygenassist): Likewise.
3684         (pclmulqdq): Likewise.
3685
3686         * config/i386/wmmintrin.h: New.
3687
3688         * doc/extend.texi: Document AES and PCLMUL built-in function.
3689
3690         * doc/invoke.texi: Document -maes and -mpclmul.
3691
3692 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
3693
3694         * function.c (free_after_parsing): Replace with
3695         cxx_push_function_context from C++ front-end.
3696         (allocate_struct_function): Don't call langhook.
3697         * langhooks.h (struct lang_hooks_for_functions): Delete.
3698         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3699         member "function".
3700         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3701         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3702         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3703         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3704         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3705         remove LANG_HOOKS_FUNCTION_INITIALIZER.
3706         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3707
3708         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3709         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3710         
3711 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3712
3713         PR c/35440
3714         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3715         for all types.
3716
3717 2008-04-04  Richard Guenther  <rguenther@suse.de>
3718
3719         PR middle-end/35823
3720         * fold-const.c (optimize_minmax_comparison): Use the correct
3721         type for the constant in the simplified comparison.
3722
3723 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
3724
3725         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3726         Pass L2 size as "--param l2-cache-size" to the compiler.
3727         (decode_l2_cache): New function to decode L2 cache parameters using
3728         0x8000006 extended cpuid function.
3729         (detect_caches_amd): Determine parameters of L2 cache using
3730         decode_l2_caches function.
3731         (decode_caches_intel): Decode L2 cache parameters.
3732         (detect_caches_intel): Determine L2 cache parameters using
3733         decode_caches_intel and decode_l2_caches functions.
3734
3735 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
3736
3737         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3738         secondary input reload for subword loads from the constant pool.
3739
3740 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
3741
3742         PR target/35713
3743         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3744           constants of the appropriate size for runtime calculations.
3745
3746         PR c/35712
3747         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3748           decimal-float literal constant zero.
3749
3750 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
3751
3752         PR c/35738
3753         * c-parser.c (c_parser_omp_atomic): Call
3754         default_function_array_conversion on the RHS.
3755
3756         PR middle-end/35818
3757         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3758         call is_variable_sized if decl has incomplete type.
3759
3760 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
3761
3762         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3763
3764 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
3765
3766         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3767         iterators.
3768         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
3769         (sgt<u>): Merge sgt and sgtu into new expander.
3770         (sgt, sgtu): Remove expanders.
3771         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
3772         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3773         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3774         *sgtu_<mode>_mips16 into new pattern.
3775         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3776         (sge<u>): Merge sge and sgeu into new expander.
3777         (sge, sgeu): Remove expanders.
3778         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3779         new pattern.
3780         (*sge_<mode>, second *sge_<mode>): Remove patterns.
3781         (slt<u>): Merge slt and sltu into new expander.
3782         (slt, sltu): Remove expanders.
3783         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
3784         (*slt_<mode>, *sltu_<mode>): Remove patterns.
3785         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3786         *sltu_<mode>_mips16 into new pattern.
3787         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3788         (sle<u>): Merge sle and sleu into new expander.
3789         (sle, sleu): Remove expanders.
3790         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
3791         (*sle_<mode>, *sleu_<mode>): Remove patterns.
3792         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3793         *sleu_<mode>_mips16 into new pattern.
3794         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3795
3796 2008-04-03  Jan Hubicka  <jh@suse.cz>
3797
3798         PR tree-optimization/35795
3799         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3800         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3801         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3802         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3803         * score/score3.c (score3_output_mi_thunk): Likewise.
3804         * score/score7.c (score7_output_mi_thunk): Likewise.
3805         * mips/mips.c (mips_output_mi_thunk): Likewise.
3806
3807 2008-04-03  Richard Guenther  <rguenther@suse.de>
3808
3809         * tree-vrp.c (extract_range_from_unary_expr): Handle all
3810         conversions.  Simplify code.
3811
3812 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3813
3814         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3815
3816 2008-04-03  Tom Tromey  <tromey@redhat.com>
3817             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3818
3819         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3820         * config/bfin/t-bfin-linux (generated_files): Add
3821         linux-sysroot-suffix.h.
3822         * doc/install.texi (Prerequisites): Require make 3.80.
3823         * doc/sourcebuild.texi (Front End Directory): Document new
3824         variable.
3825         * Makefile.in (generated_files): New variable.
3826         (ALL_HOST_OBJS): New variable.
3827         ($(ALL_HOST_OBJS)): New target.
3828
3829 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3830
3831         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3832         (remap_block): Call id->transform_lang_insert_block instead
3833         of langhook.
3834         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3835         Set id.transform_lang_insert_block to NULL.
3836         (clone_body): Move to cp/optimize.c
3837         * tree-inline.h (struct copy_body_data): Change
3838         transform_lang_insert_block to function pointer.
3839         (copy_generic_body, copy_decl_no_change): Export.
3840         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3841         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3842         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3843
3844         * c-tree.h (insert_block): Kill.
3845         * c-decl.c (insert_block): Kill.
3846
3847 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3848
3849         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3850         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3851         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3852         argument.
3853         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3854         argument, call {push,pop}_function_context from here.
3855         * c-parser.c: Use c_{push,pop}_function_context.
3856
3857         * function.c (push_function_context_to): Move meat ...
3858         (push_function_context): ... here.  Simplify.
3859         * function.c (pop_function_context_from): Move meat ...
3860         (pop_function_context): ... here.  Simplify.
3861         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3862         leave_nested).
3863         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3864         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3865         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3866         * tree.h (push_function_context_to, pop_function_context_from): Remove.
3867
3868 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3869
3870         * expmed.c (extract_force_align_mem_bit_field): Remove.
3871
3872 2008-04-03  Richard Guenther  <rguenther@suse.de>
3873
3874         PR middle-end/35800
3875         * expr.h (try_casesi): Adjust prototype.
3876         * expr.c (try_casesi): Take fallback label as extra parameter.
3877         Use that for gen_casesi if default_label is NULL.
3878         * stmt.c (expand_case): Pass fallback label to try_casesi,
3879         make sure to fill gaps with a fallback label if default_label
3880         is not present.
3881
3882 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
3883
3884         PR target/35801
3885         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
3886
3887 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3888
3889         * expmed.c (extract_split_bit_field): Remove if (0) code.
3890         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
3891         (do_ds_constraint): Likewise.
3892
3893 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
3894
3895         * doc/cppopts.texi (-dU): Document.
3896         * c-common.h (flag_dump_macros): Update comment.
3897         * c-opts.c (handle_OPT_d): Handle -dU.
3898         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
3899         dump_queued_macros, cb_used_define, cb_used_undef): New.
3900         (init_pp_output): Handle -dU.
3901         (cb_line_change): Call dump_queued_macros.
3902         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
3903
3904 2008-04-02  Anatoly Sokolov <aesok@post.ru>
3905
3906         * config/avr/predicates.md (io_address_operand): New predicate. 
3907         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
3908         * config/avr/avr.c (avr_io_address_p): Remove function.
3909         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
3910         'avr_io_address_p' function.
3911         (out_movhi_r_mr): (Ditto.).
3912         (out_movqi_mr_r): (Ditto.).
3913         (out_movhi_mr_r): (Ditto.).
3914         (avr_address_cost): (Ditto.).
3915
3916 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
3917
3918         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
3919         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
3920         in 32bit mode when XMM registers are available to avoid store
3921         forwarding stalls.
3922         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
3923         corresponding post-reload splitters.
3924
3925 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3926
3927         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
3928         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
3929         __builtin_ia32_roundss.
3930         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
3931         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
3932         __builtin_ia32_roundss.
3933         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
3934         IX86_BUILTIN_SHUFPD here.
3935
3936 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3937
3938         * config/i386/i386.md (plogic): New.
3939         (plogicprefix): Likewise.
3940
3941         * config/i386/mmx.md (mmx_<code><mode>3): New.
3942         (mmx_and<mode>3): Removed.
3943         (mmx_ior<mode>3): Likewise.
3944         (mmx_xor<mode>3): Likewise.
3945
3946         * config/i386/sse.md (<code><mode>3): New.
3947         (*<code><mode>3): Likewise.
3948         (*<code><mode>3): Likewise.
3949         (<code><mode>3): Likewise.
3950         (*sse_<code><mode>3): Likewise.
3951         (*sse2_<code><mode>3): Likewise.
3952         (<code>tf3): Likewise.
3953         (*<code>tf3): Likewise.
3954         (and<mode>3): Likewise.
3955         (*and<mode>3): Likewise.
3956         (ior<mode>3): Removed.
3957         (*ior<mode>3): Likewise.
3958         (xor<mode>3): Likewise.
3959         (*xor<mode>3): Likewise.
3960         (*and<mode>3): Likewise.
3961         (*ior<mode>3): Likewise.
3962         (*xor<mode>3): Likewise.
3963         (and<mode>3): Likewise.
3964         (*sse_and<mode>3): Likewise.
3965         (*sse2_and<mode>3): Likewise.
3966         (andtf3): Likewise.
3967         (*andtf3): Likewise.
3968         (ior<mode>3): Likewise.
3969         (*sse_ior<mode>3): Likewise.
3970         (*sse2_ior<mode>3): Likewise.
3971         (iortf3): Likewise.
3972         (*iortf3): Likewise.
3973         (xor<mode>3): Likewise.
3974         (*sse_xor<mode>3): Likewise.
3975         (*sse2_xor<mode>3): Likewise.
3976         (xortf3): Likewise.
3977         (*xortf3): Likewise.
3978
3979 2008-04-02  Richard Guenther  <rguenther@suse.de>
3980
3981         PR tree-optimization/14495
3982         PR tree-optimization/34793
3983         * tree-vrp.c (struct switch_update): New structure.
3984         (to_remove_edges, to_update_switch_stmts): New VECs.
3985         (simplify_switch_using_ranges): New function.  Remove not taken
3986         case labels and edges.
3987         (simplify_stmt_using_ranges): Call it.
3988         (identify_jump_threads): Mark edges we have queued for removal
3989         so we don't thread them.
3990         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
3991         case label vector.
3992         * tree-cfg.c (group_case_labels): Deal with missing default label.
3993         (tree_verify_flow_info): Allow missing default label.
3994         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
3995         (emit_case_nodes): Likewise.
3996         (expand_case): Do not rely on the default label to be present.
3997         * expr.c (try_casesi): Deal with NULL default_label.
3998         (do_tablejump): Likewise.
3999
4000 2008-04-02  Richard Guenther  <rguenther@suse.de>
4001
4002         PR tree-optimization/14495
4003         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
4004         SWITCH_EXPR here ...
4005         (vrp_visit_switch_stmt): ... but here (new function).
4006         (find_case_label_index): New helper function.
4007         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
4008
4009 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4010
4011         * fwprop.c: Fix ISO-C99ism.
4012
4013 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4014
4015         PR bootstrap/35752
4016         * Makefile.in (objdir): Set it here.
4017         * configure.ac: Not here.  Find dynamic linker characteristics.
4018         * exec-tool.in: Use them.
4019         * aclocal.m4: Regenerate.
4020         * configure: Regenerate.
4021
4022 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4023
4024         * expr.c (expand_var): Delete it.
4025         * expr.h (expand_var): Delete prototype.
4026         * function.c (expand_function_start): Use expand_decl instead.
4027         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
4028         langhook.
4029
4030 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
4031
4032         PR rtl-optimization/35542
4033         * fwprop.c (forward_propagate_and_simplify): Replace
4034         loc_reg_mentioned_in_p with reg_mentioned_p.
4035
4036 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4037
4038         PR rtl-optimization/35281
4039         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
4040         (propagate_rtx_1): Handle PR_HANDLE_MEM.
4041         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
4042         (varying_mem_p): Move above propagate_rtx.
4043         (all_uses_available_at): Do not check MEMs.
4044
4045 2008-04-02  Rafael Espindola  <espindola@google.com>
4046
4047         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
4048         (register_edge_assert_for_2): Split the cond argument.
4049         (register_edge_assert_for_1): Adjust for the change in
4050         register_edge_assert_for_2.
4051         (register_edge_assert_for): Split the cond argument.
4052         (find_switch_asserts): Adjust for the change in
4053         register_edge_assert_for.
4054
4055 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
4056
4057         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
4058         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
4059         offsets for 64-bit mingw.
4060         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
4061         abi for x86_64-pc-mingw.
4062
4063 2008-04-02  Richard Guenther  <rguenther@suse.de>
4064
4065         * tree-vrp.c (extract_range_from_assert): Make sure to not
4066         produce range min/max with TREE_OVERFOW set.
4067         If merging a anti-range and a range keep the anti-range if
4068         the range covers all values of the type.
4069         (register_edge_assert_for_2): Only allow sign-changing
4070         conversions in detecting canonical range checks.  Also
4071         register an assert for the unsigned name if useful.
4072
4073         PR tree-optimization/35787
4074         * tree-vrp.c (vrp_val_max): New function.
4075         (vrp_val_min): Likewise.
4076         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
4077         (vrp_val_is_min): Likewise.
4078         (supports_overflow_infinity): Use vrp_val_{min,max}.
4079         (negative_overflow_infinity): Likewise.
4080         (positive_overflow_infinity): Likewise.
4081         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
4082         (is_positive_overflow_infinity): Likewise.
4083         (is_overflow_infinity): Likewise.
4084         (avoid_overflow_infinity): Use vrp_val_{min,max} and
4085         vrp_val_is_{min,max}.
4086         (set_and_canonicalize_value_range): Canonicalize anti-ranges
4087         to ranges if possible.  Avoid empty ranges.
4088
4089 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4090
4091         PR middle-end/35705
4092         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
4093         the expression is a function address.
4094
4095 2008-04-01  George Helffrich  <george@gcc.gnu.org>
4096
4097         PR fortran/35154, fortran/23057
4098         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
4099         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
4100         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
4101         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
4102         in common.
4103         (dbxout_syms): Check for COMMON-based symbol and wrap in
4104         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
4105         in bracket for efficiency.
4106
4107         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
4108         using DW_TAG_common_block + member offset.
4109         (add_pubname_string): New function.
4110         (dw_expand_expr): New function to find block name and offset for
4111         COMMON var.
4112         (common_check): New function to check whether symbol in Fortran COMMON.
4113         (gen_variable_die): If COMMON, use DW_TAG_common_block.
4114
4115 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
4116
4117         PR c/35436
4118         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
4119
4120 2008-04-02  Ben Elliston  <bje@au.ibm.com>
4121
4122         * config/v850/v850.md (casesi): Remove if (0) code.
4123         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4124         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
4125
4126 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
4127
4128         * config/i386/i386.md (rex64suffix): New mode attribute.
4129         (floathi<mode>2): Disable expander for SSE math.
4130         (*floathi<mode>2_1): New insn insn_and_split pattern.
4131         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
4132         corresponding post-reload splitters.
4133         (*floathi<mode>2_i387): New macroized insn pattern.
4134         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
4135         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
4136         insn_and_split pattern.
4137         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
4138         New macroized instruction patterns and corresponding post-reload
4139         splitters.
4140         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
4141         and corresponding post-reload splitters.
4142         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
4143         New macroized instruction patterns.
4144         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
4145         macroized instruction patterns and corresponding post-reload splitters.
4146         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
4147         corresponding post-reload splitters.
4148         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
4149         New macroized instruction patterns.
4150         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
4151         corresponding post-reload splitters.
4152         (*floatsi<mode>2_i387): New macroized instruction patterns.
4153
4154 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
4155
4156         * config/i386/i386.md (smaxmin): New.
4157         (umaxmin): Likewise.
4158         (maxminiprefix): Likewise.
4159         (maxminfprefix): Likewise.
4160         (<code><mode>3): Likewise.
4161         (smin<mode>3): Removed.
4162         (smax<mode>3): Likewise.
4163
4164         * config/i386/mmx.md (mmx_<code>v2sf3): New.
4165         (mmx_<code>v4hi3): Likewise.
4166         (mmx_<code>v8qi3): Likewise.
4167         (mmx_smaxv2sf3): Removed.
4168         (mmx_sminv2sf3): Likewise.
4169         (mmx_umaxv8qi3): Likewise.
4170         (mmx_smaxv4hi3): Likewise.
4171         (mmx_uminv8qi3): Likewise.
4172         (mmx_sminv4hi3): Likewise.
4173
4174         * config/i386/sse.md (<addsub><mode>3): New.
4175         (*<addsub><mode>3): Likewise.
4176         (<sse>_vm<addsub><mode>3): Likewise.
4177         (<maxmin><mode>3): Likewise.
4178         (*<maxmin><mode>3_finite): Likewise.
4179         (*<maxmin><mode>3): Likewise.
4180         (<sse>_vm<maxmin><mode>3): Likewise.
4181         (sse3_h<addsub>v4sf3): Likewise.
4182         (sse3_h<addsub>v2df3): Likewise.
4183         (<maxmin>v16qi3): Likewise.
4184         (*<maxmin>v16qi3): Likewise.
4185         (<maxmin>v8hi3): Likewise.
4186         (*<maxmin>v8hi3): Likewise.
4187         (*sse4_1_<maxmin><mode>3): Likewise.
4188         (*sse4_1_<maxmin><mode>3): Likewise.
4189         (add<mode>3): Removed.
4190         (*add<mode>3): Likewise.
4191         (<sse>_vmadd<mode>3): Likewise.
4192         (sub<mode>3): Likewise.
4193         (*sub<mode>3): Likewise.
4194         (<sse>_vmsub<mode>3): Likewise.
4195         (smin<mode>3): Likewise.
4196         (*smin<mode>3_finite): Likewise.
4197         (*smin<mode>3): Likewise.
4198         (<sse>_vmsmin<mode>3): Likewise.
4199         (smax<mode>3): Likewise.
4200         (*smax<mode>3_finite): Likewise.
4201         (*smax<mode>3): Likewise.
4202         (<sse>_vmsmax<mode>3): Likewise.
4203         (sse3_haddv4sf3): Likewise.
4204         (sse3_haddv2df3): Likewise.
4205         (sse3_hsubv4sf3): Likewise.
4206         (sse3_hsubv2df3): Likewise.
4207         (umaxv16qi3): Likewise.
4208         (*umaxv16qi3): Likewise.
4209         (smaxv8hi3): Likewise.
4210         (*smaxv8hi3): Likewise.
4211         (*sse4_1_smax<mode>3): Likewise.
4212         (*sse4_1_umax<mode>3): Likewise.
4213         (uminv16qi3): Likewise.
4214         (*uminv16qi3): Likewise.
4215         (sminv8hi3): Likewise.
4216         (*sminv8hi3): Likewise.
4217         (*sse4_1_smin<mode>3): Likewise.
4218         (*sse4_1_umin<mode>3): Likewise.
4219
4220 2008-04-01  Rafael Espindola  <espindola@google.com>
4221
4222         * tree-cfg.c (verify_expr): remove in_phi.
4223         (verify_stmt): Don't call walk_tree with verify_expr. Use
4224         is_gimple_min_invariant instead of is_gimple_val.
4225
4226 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
4227
4228         * doc/include/gpl_v3.texi: Update for manpage generation.
4229         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
4230         gpl.texi.
4231         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
4232         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
4233         gpl_v3.texi instead of gpl.texi.
4234         (gpl.pod): New.
4235
4236 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
4237
4238         PR pch/13675
4239         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
4240
4241 2008-04-01  Rafael Espindola  <espindola@google.com>
4242
4243         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
4244         (extract_code_and_val_from_cond): Use
4245         extract_code_and_val_from_cond_with_ops.
4246
4247 2008-04-01  Jan Hubicka  <jh@suse.cz>
4248
4249         * function.c (free_after_compilation): Free epilogue_delay_list.
4250         (prepare_function_start): Assert that previous compilation was freed.
4251
4252 2008-04-01  Jan Hubicka  <jh@suse.cz>
4253             Jim Wilson  <wilson@tuliptree.org>
4254             Andreas Tobler <andreast@gcc.gnu.org>
4255
4256         PR middle-end/35781
4257         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
4258         rtl.emit instead cfun->emit.
4259         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
4260         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
4261
4262 2008-04-01  Ben Elliston  <bje@au.ibm.com>
4263
4264         * doc/c-tree.texi (Function Basics): Fix grammatical error.
4265
4266 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
4267
4268         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
4269         New options
4270         (fprofile-use): Add var flag_profile_use
4271         * coverage.c (coverage_begin_output): Do not open a gcno file for
4272         output only if -ftest-coverage is set.
4273         Do not add getpwd() to gcda file path.
4274         (build_gcov_info): Check the new flag
4275         flag_profile_datafile_relative_path.
4276         (coverage_init): Use profile_data_prefix.
4277         Read profile counter only if flag_profile_use is set.
4278         * opts.c (common_handle_option): New option fprofile-use=,
4279         fprofile-dir=, fprofile-generate=.
4280         * toplev.c (profile_data_prefix): New variable definition.
4281         * toplev.h (profile_data_prefix): New declaration.
4282         * doc/invoke.tex (Option Summary, Optimization Options):
4283         Add new options.
4284
4285 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
4286
4287         * varasm.c (output_constant_pool_1): In LABEL_REF check,
4288         use tmp consistently.
4289
4290         PR target/35695
4291         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
4292         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4293         UNSPEC_FR_RECIP_APPROX_RES.
4294         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
4295
4296 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
4297
4298         PR c/35750
4299         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
4300
4301 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4302
4303         PR middle-end/30186
4304         * fold-const.c (fold_indirect_ref_1): Support accessing non first
4305         element of the vector via a pointer.
4306
4307 2008-03-31  Ian Lance Taylor  <iant@google.com>
4308
4309         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
4310
4311 2008-03-31  Jan Hubicka  <jh@suse.cz>
4312
4313         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4314         get_arg_pointer_save_area.
4315         * expr.c (init_expr): Just clear out rtl.expr.
4316         * function.c (free_after_compilation): Clear out whole RTL structure.
4317         (get_func_frame_size): Merge into ...
4318         (get_frame_size): ... this one.
4319         (assign_stack_local_1): Merge into ...
4320         (assign_stack_local): ... this one.
4321         (expand_function_end): Update call of get_arg_pointer_save_area.
4322         (get_art_pointer_save_area): Remove cfun argument.
4323         * function.h (emit_status): regno_pointer_align does not need length
4324         attribute. Move x_regno_reg_rtx to ...
4325         (regno_reg_rtx): ... new global array.
4326         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
4327         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
4328         apply_args_value, forced_labels, stack_pointer_delta):
4329         Update accestors.
4330         (struct varasm_status): Move here from varasm.c
4331         (struct rtl_data): New. Move here some fields from struct function.
4332         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4333         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4334         used_temp_slots avail_temp_slots, temp_slot_level,
4335         nonlocal_goto_handler_labels): Update accesstors.
4336         (rtl): New global variable.
4337         (struct function): Move some fileds to rtl_data.
4338         (get_arg_pointer_save_area): Update prototype.
4339         * emit-rtl.c (rtl): Declare.
4340         (regno_reg_rtx): Declare.
4341         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4342         Update.
4343         (gen_reg_rtx): Update.
4344         (init_virtual_regs): Do not tate emit_status argument.
4345         (init_emit): Do not allocate emit.
4346         * varasm.c (varasm_statuc): Move to function.h.
4347         (n_deferred_constatns): Update accestor.
4348         (init_varasm_status): Do not allocate varasm_status.
4349         (force_const_mem, get_pool_size, output_constant_pool): Update.
4350         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4351         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4352
4353 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
4354
4355         PR rtl-optimization/35729
4356         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4357         references.
4358
4359 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
4360
4361         PR target/32000
4362         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4363         load/store if memory is unaligned.
4364         (*movti_rex64): Likewise.
4365
4366         * config/i386/predicates.md (misaligned_operand): New.
4367
4368 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
4369
4370         PR tree-opt/35431
4371         * tree-ssa-phiopt.c (conditional_replacement): Return early for
4372         complex types.
4373
4374 2008-03-31  Jan Beulich  <jbeulich@novell.com>
4375
4376         * config/ia64/constraints.md: Add 'j' constraint.
4377         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4378         (movdi_internal): Likewise.
4379
4380 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
4381
4382         PR c/35748
4383         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4384
4385 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4386
4387         PR target/35757
4388         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4389         proper error message for the third argument on blendpd and
4390         blendps.
4391
4392         * config/i386/sse.md (blendbits): New.
4393         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4394
4395 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
4396
4397         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4398
4399 2008-03-30  Richard Guenther  <rguenther@suse.de>
4400
4401         PR middle-end/31023
4402         * fold-const.c (fold_sign_changed_comparison): Do leave
4403         conversions to base-types alone.
4404
4405 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4406
4407         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4408         the link register if one altivec register is be saved.
4409
4410 2008-03-30  Ben Elliston  <bje@au.ibm.com>
4411
4412         * final.c (final_scan_insn): Remove if (0) code.
4413
4414 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
4415
4416         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4417
4418 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
4419
4420         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4421         of V4SFmode to ix86_binary_operator_ok.
4422
4423 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
4424
4425         * config/i386/i386.c (override_options): Initialize
4426         ix86_veclib_handler to ix86_veclibabi_svml when
4427         -mveclibabi=svml is used.
4428         (ix86_veclibabi_svml): New function for SVML ABI style
4429         vectorization support.
4430         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4431
4432 2008-03-28  Rafael Espindola  <espindola@google.com>
4433
4434         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4435         (tree_binary_nonnegative_warnv_p): Make it public.
4436         (tree_single_nonnegative_warnv_p): Make it public.
4437         (tree_invalid_nonnegative_warnv_p): Make it public.
4438         (tree_unary_nonzero_warnv_p): Make it public.
4439         (tree_binary_nonzero_warnv_p): Make it public
4440         (tree_single_nonzero_warnv_p): Make it public.
4441         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4442         (extract_range_from_binary_expr): Split the expr argument.
4443         (extract_range_from_unary_expr): Split the expr argument.
4444         (extract_range_from_comparison): Split the expr argument.
4445         (extract_range_from_expr): Use the new aux functions.
4446         (vrp_evaluate_conditional_warnv): Use
4447         vrp_evaluate_conditional_warnv_with_ops.
4448         * tree.h (tree_unary_nonzero_warnv_p): Declare.
4449         (tree_binary_nonzero_warnv_p): Declare.
4450         (tree_single_nonzero_warnv_p): Declare.
4451         (tree_expr_nonzero_warnv_p): Declare.
4452         (tree_unary_nonnegative_warnv_p): Declare.
4453         (tree_binary_nonnegative_warnv_p): Declare.
4454         (tree_single_nonnegative_warnv_p): Declare.
4455         (tree_invalid_nonnegative_warnv_p): Declare.
4456
4457 2008-03-28  Richard Guenther  <rguenther@suse.de>
4458
4459         PR tree-optimization/30317
4460         PR tree-optimization/30911
4461         PR tree-optimization/34793
4462         * tree-vrp.c (set_and_canonicalize_value_range): New function.
4463         (struct assert_locus_d): New member EXPR.
4464         (register_new_assert_for): Add EXPR parameter to support
4465         ASSERT_EXPR <name, expr OP limit>.
4466         (register_edge_assert_for_1): Adjust callers.
4467         (find_assert_locations): Likewise.
4468         (process_assert_insertions_for): Build condition from expression.
4469         (extract_range_from_assert): Handle ASSERT_EXPRs
4470         of the form ASSERT_EXPR <name, expr OP limit>.
4471         (register_edge_assert_for_2): New helper registering
4472         asserts for comparisons.  Recognize range tests of the form
4473         (unsigned)i - CST1 OP CST2.
4474         (register_edge_assert_for_1): Use it.
4475         (register_edge_assert_for): Likewise.
4476         (needs_overflow_infinity): Integer sub-types
4477         do not need overflow infinities.
4478         (vrp_val_is_max): The extreme values of integer sub-types
4479         are those of the base type.
4480         (vrp_val_is_min): Likewise.
4481         * tree.def (ASSERT_EXPR): Document extra allowed conditional
4482         expressions.
4483
4484 2008-03-28  Nick Clifton  <nickc@redhat.com>
4485
4486         PR target/31110
4487         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
4488         Return GENERAL_REGS for stack adjustment reloads.
4489
4490 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4491
4492         PR target/31334
4493         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4494         const_vector when all the vectors are constant.
4495
4496 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
4497
4498         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4499         comparisons.
4500         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4501         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4502         (scc_sf): New.
4503         (s<code>_sf): Use new scc_sf attribute for opcode names.
4504
4505 2008-03-27  Tom Tromey  <tromey@redhat.com>
4506
4507         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4508         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4509         config/spu/t-spu-elf, config/i386/t-interix,
4510         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4511         config/i386/x-darwin, config/i386/x-mingw32,
4512         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4513         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4514         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4515         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4516         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4517         config/rs6000/x-darwin, config/rs6000/t-rs6000,
4518         config/score/t-score-elf, config/arm/t-strongarm-pe,
4519         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4520         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4521         Revert automatic dependency patch.
4522
4523 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4524
4525         PR target/35657
4526         * config/i386/i386.c (ix86_function_arg_boundary): Align
4527         decimal floating point to its natural boundary.
4528
4529 2008-03-27  Richard Guenther  <rguenther@suse.de>
4530
4531         PR middle-end/35716
4532         * fold-const.c (fold_comparison): Restrict distinct decl
4533         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
4534         solely rely on operand_equal_p.
4535
4536 2008-03-27  Richard Guenther  <rguenther@suse.de>
4537
4538         PR c/32511
4539         * c-common.c (handle_weak_attribute): Reject combination of
4540         weak and inline.
4541
4542 2008-03-27  Richard Guenther  <rguenther@suse.de>
4543
4544         PR tree-optimization/32810
4545         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4546         conversions from DECL_INITIAL.
4547         (fold_const_aggregate_ref): Likewise from constructor elements.
4548
4549 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
4550
4551         * tree-affine.h (aff_combination_expand): Declare.
4552         (get_inner_reference_aff): Likewise.
4553         * tree-affine.c (aff_combination_expand): Split out from
4554         tree_to_aff_combination_expand.
4555         (get_inner_reference_aff): New function.
4556         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
4557         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4558         (struct lim_aux_data): sm_done field removed.
4559         (mem_ref_loc_p, mem_ref_locs_p): New types.
4560         (struct mem_ref): Added id, stored, accesses_in_loop,
4561         indep_loop, dep_loop, indep_ref, dep_ref fields.
4562         Removed is_stored, locs and next fields.
4563         (memory_accesses): New variable.
4564         (movement_possibility): Do not allow moving statements
4565         that store to memory.
4566         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4567         New functions.
4568         (determine_max_movement): For statements with memory references,
4569         find the outermost loop in that the reference is independent.
4570         (move_computations_stmt): Mark the virtual operands for renaming.
4571         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4572         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4573         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4574         add_vop_ref_mapping, create_vop_ref_mapping_loop,
4575         create_vop_ref_mapping, analyze_memory_references,
4576         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4577         get_all_locs_in_loop, ref_always_accessed_p,
4578         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4579         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4580         store_motion_loop, store_motion): New functions.
4581         (struct vop_to_refs_elt): New type.
4582         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4583         memref_hash, memref_eq, hoist_memory_references): Rewritten.
4584         (schedule_sm): Replaced by...
4585         (execute_sm): ... this.
4586         (determine_lsm_ref, hoist_memory_references,
4587         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4588         find_more_ref_vops, free_mem_ref, free_mem_refs,
4589         determine_lsm_loop, determine_lsm): Removed.
4590         (tree_ssa_lim_finalize): Free data structures used by store motion.
4591         (tree_ssa_lim): Call analyze_memory_references.  Use
4592         store_motion instead of determine_lsm.
4593
4594 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4595
4596         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4597         rename tmake_file to m68hc11/t-m68hc11.
4598         (mcore): Set inhibit_libc to true.
4599         * config.host (alpha*-dec-*vms*): Set extra_programs.
4600         (interix3*): Don't use host_xmake_file.
4601         * configure.ac: Let config.gcc override inhibit_libc.
4602         * configure: Regenerate.
4603
4604         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4605         * config/t-openbsd-thread: Remove commented out lines.
4606         
4607         * config/x-interix: Remove.
4608
4609         * config/m68hc11/t-m68hc11-gas: Rename to...
4610         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
4611
4612         * config/mcore/t-mcore: Remove T_CFLAGS.
4613         * config/mcore/t-mcore-pe: Likewise.
4614
4615 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4616
4617         * configure.ac: Replace custom __GNU_SOURCE test with
4618         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
4619         * aclocal.m4: Regenerate.
4620         * configure: Regenerate.
4621         * config.in: Regenerate.
4622
4623 2008-03-27  Richard Guenther  <rguenther@suse.de>
4624
4625         * fold-const.c (target.h): Include.
4626         (fold_comparison): Fold comparison of addresses of decls
4627         that bind locally or of constants.  Consolidate address folding code.
4628         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4629         results from fold_binary_to_constant.
4630         (compare_values_warnv): Likewise.
4631
4632 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
4633
4634         PR middle-end/35429
4635         * fold-const.c (fold_truthop): Check for integeral types when folding
4636         a == 0 && b == 0 and a != 0 || b != 0 .
4637
4638 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4639
4640         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4641
4642 2008-03-26  Andreas Schwab  <schwab@suse.de>
4643
4644         * doc/invoke.texi: Fix use of @item vs. @itemx.
4645
4646 2008-03-26  Tom Tromey  <tromey@redhat.com>
4647
4648         * Makefile.in (build/gensupport.o, build/print-rtl.o,
4649         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4650         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4651         build/gencodes.o, build/genconditions.o, build/genconfig.o,
4652         build/genconstants.o, build/genemit.o, build/genextract.o,
4653         build/genflags.o, build/genmddeps.o, build/genopinit.o,
4654         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4655         options.h.
4656
4657 2008-03-26  Richard Guenther  <rguenther@suse.de>
4658
4659         Revert
4660         2008-03-26  Richard Guenther  <rguenther@suse.de>
4661
4662         * fold-const.c (target.h): Include.
4663         (fold_comparison): Fold comparison of addresses of two decls
4664         that bind locally.  Consolidate address folding code.
4665
4666 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4667
4668         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4669         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4670         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4671         dconstsqrt2, dconstthird, dconste and/or dconst10.
4672         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4673         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4674         dconstsqrt2, dconste): Delete.
4675         (init_emit_once): Likewise.  Simplify initializing dconstm1.
4676         Constify variable.
4677         * real.c (get_real_const): New.
4678         * real.h (dconst3, dconst10, dconstm2, dconstthird,
4679         dconstsqrt2, dconste): Delete.
4680         (real_value_const, get_real_const): New.
4681
4682 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
4683
4684         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4685
4686         * config/i386/i386.c (ix86_function_arg_boundary): Check
4687         BIGGEST_ALIGNMENT instead of 128.
4688         (setup_incoming_varargs_64): Likewise.
4689
4690 2008-03-26  Tom Tromey  <tromey@redhat.com>
4691
4692         * Makefile.in (DEPFILES): Add missing '/'.
4693
4694 2008-03-26  Richard Guenther  <rguenther@suse.de>
4695
4696         * fold-const.c (target.h): Include.
4697         (fold_comparison): Fold comparison of addresses of two decls
4698         that bind locally.  Consolidate address folding code.
4699
4700 2008-03-26  Nick Clifton  <nickc@redhat.com>
4701
4702         PR target/31232
4703         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4704         not allow INT+INT as a legitimate addressing mode.
4705
4706 2008-03-26  Richard Guenther  <rguenther@suse.de>
4707
4708         * tree-flow.h (widen_bitfield): Remove declaration.
4709         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4710         (widen_bitfield): Remove function.
4711         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4712         code.
4713
4714 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4715
4716         PR target/31558
4717         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4718         error_mark_node's.
4719
4720 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4721
4722         PR rtl-optimization/35232
4723         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4724         (forget_old_reloads_1, forget_marked_reloads): Don't clear
4725         reg_reloaded_call_part_clobbered here.
4726         (reload_regs_reach_end_p): New function.
4727         (reload_reg_rtx_for_input): New variable.
4728         (reload_reg_rtx_for_output): Likewise.
4729         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4730         when reassigning a pseudo register.  Load reloadreg from 
4731         reload_reg_rtx_for_input, moving the mode and register
4732         calculation to...
4733         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
4734         instead of the original when deciding whether an input reload
4735         would be a no-op or whether an output reload can be deleted.
4736         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4737         when setting up new_spill_reg_store.  Load it from
4738         reload_reg_rtx_for_output, moving the mode and register
4739         calculation to...
4740         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
4741         instead of the original when deciding whether an output reload
4742         would be a no-op.  Do the same when modifying insn notes.
4743         Use rtx_equal_p instead of == to compare the registers.
4744         (inherit_piecemeal_p): Take a mode and two register numbers
4745         as argument.
4746         (emit_reload_insns): Clear new_spill_reg_store for every hard
4747         register in the reload register.  Remove spill registers
4748         from reg_reloaded_valid before considering whether to record
4749         inheritance information for them.  Use reload_reg_rtx_for_output
4750         instead of reg_rtx when recording output reloads.  Use
4751         reload_reg_rtx_for_input instead of reg_rtx when recording
4752         input reloads.  Set or clear reg_reloaded_call_part_clobbered
4753         at the same time as setting reg_reloaded_valid.
4754         (delete_output_reload): Add a new_reload_reg parameter and use it
4755         instead of rld[j].reg_rtx.
4756         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4757         calls accordingly.
4758
4759 2008-03-25  Tom Tromey  <tromey@redhat.com>
4760
4761         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4762         (build/genattr.o): Likewise.
4763         (build/genattrtab.o): Likewise.
4764         (build/gencodes.o): Likewise.
4765         (build/genconfig.o): Likewise.
4766         (build/genconstants.o): Likewise.
4767         (build/genemit.o): Likewise.
4768         (build/genextract.o): Likewise.
4769         (build/genflags.o): Likewise.
4770
4771 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
4772         
4773         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4774         instead of size_int for integer types.
4775         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
4776         to match type of MINUS_EXPR.
4777         
4778 2008-03-25  Tom Tromey  <tromey@redhat.com>
4779
4780         * configure: Rebuilt.
4781         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4782         Makefile.
4783
4784 2008-03-25  Tom Tromey  <tromey@redhat.com>
4785
4786         * config/x-solaris (host-solaris.o): Update.
4787         * config/x-linux (host-linux.o): Update.
4788         * config/x-hpux (host-hpux.o): Update.
4789         * config/x-darwin (host-darwin.o): Update.
4790         * config/v850/t-v850e (v850-c.o): Update.
4791         * config/v850/t-v850 (v850-c.o): Update.
4792         * config/t-vxworks (vxworks.o): Update.
4793         * config/t-sol2 (sol2-c.o, sol2.o): Update.
4794         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
4795         * config/spu/t-spu-elf (spu-c.o): Update.
4796         (spu.o): Remove.
4797         * config/sh/t-symbian (sh-c.o): Update.
4798         (symbian.o): Update.
4799         * config/sh/t-sh (sh-c.o): Update.
4800         * config/score/t-score-elf (score7.o, score3.o): Update.
4801         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4802         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4803         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4804         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4805         (rs6000.o): Remove.
4806         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4807         * config/m32c/t-m32c (m32c-pragma.o): Update.
4808         * config/ia64/t-ia64 (ia64-c.o): Update.
4809         * config/i386/x-mingw32 (host-mingw32.o): Update.
4810         * config/i386/x-i386 (driver-i386.o): Update.
4811         * config/i386/x-darwin (host-i386-darwin.o): Update.
4812         * config/i386/x-cygwin (host-cygwin.o): Update.
4813         * config/i386/t-nwld (nwld.o): Update.
4814         * config/i386/t-netware (netware.o): Update.
4815         * config/i386/t-interix (winnt.o): Update.
4816         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4817         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4818         msformat-c.o): Update.
4819         * config/bfin/t-bfin-linux (generated_files): Add
4820         linux-sysroot-suffix.h.
4821         * config/arm/t-wince-pe (pe.o): Update.
4822         * config/arm/t-strongarm-pe (pe.o): Update.
4823         * config/arm/t-pe (pe.o): Update.
4824         * config/arm/t-arm (arm-c.o): Update.
4825         * doc/install.texi (Prerequisites): Require make 3.80.
4826         * Makefile.in: Remove .o targets.
4827         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4828         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4829         (simple_generated_h, simple_generated_c): Move earlier.
4830         (generated_files): New variable.
4831         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4832         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4833         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4834         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4835         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4836         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4837         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4838         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4839         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4840         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4841         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4842         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4843         (.c.o): Remove.
4844         (COMPILE.base, COMPILE): New variables.
4845         (%.o): New pattern rule.
4846         (ALL_HOST_OBJS): New variable.
4847         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4848         (dummy-checksum.o, cc1-checksum.o): Remove.
4849         (DRIVER_SHLIB): New variable.
4850         (DRIVER_DEFINES): Use it.
4851         (gencondmd.c): Move out of build/.
4852         (s-conditions): Update.
4853         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4854         (ALL_BUILD_OBJS): Likewise.
4855         (build/%.o): Use BUILDCOMPILE.
4856         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4857         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4858         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4859         build/gencheck.o, build/gencodes.o, build/genconditions.o,
4860         build/genconfig.o, build/genconstants.o, build/genemit.o,
4861         build/genextract.o, build/genflags.o, build/genmddeps.o,
4862         build/genopinit.o, build/genoutput.o, build/genpeep.o,
4863         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4864         build/gen-protos.o, build/scan.o, build/fix-header.o,
4865         build/scan-decls.o): Simplify.
4866         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4867         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4868         prefix.o, toplev.o): Reduce to variable setting.
4869         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
4870         ($(out_object_file), gcc-options.o): New targets.
4871         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
4872         * configure: Rebuilt.
4873         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4874         * doc/sourcebuild.texi (Front End Directory): Document new variable.
4875
4876 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
4877
4878         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4879         complain when we hit an error, return ERROR_MARK_NODE.
4880
4881 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4882
4883         * config/sh/constraints.md (Pso, Psz): New constraints.
4884         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
4885         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
4886
4887 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4888
4889         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
4890         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
4891
4892 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4893
4894         * config/sh/sh.md (prefetch): Add condition for SH2A target.
4895         (prefetch_sh2a): New.   
4896
4897 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4898             Naveen.H.S  <naveen.hs@kpitcummins.com>
4899
4900         * config/sh/constraints.md (I28): New constraint.
4901         * config/sh/sh.c (broken_move): Add support for movi20s.
4902         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
4903
4904 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
4905             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4906             Naveen.H.S  <naveen.hs@kpitcummins.com>
4907
4908         * config/sh/sh.c (SH_ATTRIBUTES): Define.
4909         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
4910         (print_operand): Handle resbank in %@ operand code.
4911         (sh_encode_section_info): New.
4912         (push_regs): Add conditions for resbank.
4913         (sh_expand_epilogue): Likewise.
4914         (sh_insert_attributes): Likewise.
4915         (sh_attribute_table): Likewise.
4916         (sh_handle_resbank_handler_attribute): New.
4917         (sh2a_handle_function_vector_handler_attribute): New.
4918         (sh2a_is_function_vector_call): New.
4919         (sh2a_get_function_vector_number): New.
4920         (sh2a_function_vector_p): New.
4921         (sh_cfun_resbank_handler_p): New.
4922         * config/sh/sh.md (calli): Emit jsr/n if possible.
4923         (calli_tbr_rel): New.
4924         (calli_pcrel): Emit jsr/n if possible.
4925         (return_i): Emit rts/n if possible.
4926         (call_valuei_tbr_rel): New.
4927         (call_valuei_pcrel): Add condition for SH2A target.
4928         (call_value): Likewise.
4929         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
4930         (sh2a_get_function_vector_number): Likewise.
4931         (sh2a_is_function_vector_call): Likewise.
4932         * doc/extend.texi: Document TBR relative addressing of SH2A.
4933         (resbank): Add description for SH2A.
4934
4935 2008-03-24  Richard Guenther  <rguenther@suse.de>
4936
4937         PR c/22371
4938         * gimplify.c (gimplify_modify_expr): For frontend type-correct
4939         pointer assignments change conversions according to middle-end rules.
4940         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
4941         * configure.ac: Include type checking in yes.
4942         * configure: Regenerate.
4943
4944 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4945
4946         * diagnostic.c (diagnostic_count_diagnostic): Delete.
4947         (diagnostic_report_diagnostic): Update. Handle ICEs here.
4948         
4949 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
4950
4951         * gthr-vxworks.h (UNUSED): Define.
4952
4953 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
4954
4955         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
4956
4957 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
4958
4959         * doc/extend.texi (Function Attributes): Add missing comma in the
4960         example of the "alloc_size" attribute.
4961         
4962 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
4963
4964         Revert:
4965         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4966
4967         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4968         32bit host.
4969
4970         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4971
4972         PR target/35496
4973         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4974         of the underlying type of a MS bitfield layout to the natural
4975         alignment of the type.
4976
4977         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4978
4979         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4980         to their natural alignment to avoid store forwarding stalls.
4981
4982 2008-03-22  Richard Guenther  <rguenther@suse.de>
4983
4984         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
4985         For PHI nodes verify the address is invariant.
4986         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
4987         (get_symbol_constant_value): Use is_gimple_min_invariant.
4988         (maybe_fold_stmt_indirect): Likewise.
4989
4990 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4991
4992         PR rtl-optimization/33927
4993         * Makefile.in (dse.o): Depend on $(TM_P_H).
4994         * expr.h (extract_low_bits): Declare.
4995         * expmed.c (extract_low_bits): New function.
4996         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
4997         * dse.c: Include tm_p.h.
4998         (find_shift_sequence): Remove the read_reg argument and return the
4999         read value.  Emit the instructions instead of returning them.
5000         Iterate on new_mode rather than calculating it each time.
5001         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
5002         source to NEW_MODE and extract_low_bits to convert the shifted
5003         value to READ_MODE.
5004         (replace_read): Allow the load and store to have different mode
5005         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
5006         or extraction instructions before trying the replacement.  Update
5007         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
5008
5009 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
5010
5011         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5012         to their natural alignment to avoid store forwarding stalls.
5013
5014 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5015
5016         PR target/27946
5017         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
5018         encouraging but not allowing gprs for input;
5019         change the input constraint to !f#r.
5020         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
5021         gprs for output;
5022         change the output constraint to !f#r.
5023
5024 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
5025
5026         PR target/13958
5027         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
5028         corresponding post-reload splitters.
5029         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
5030         when x87 FP math is selected.
5031         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
5032         New function prototype.
5033         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
5034         unreachable function to ease macroization of insn patterns.
5035
5036 2008-03-21  Martin Jambor  <mjambor@suse.cz>
5037
5038         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
5039         reference dumps if ddr is NULL or dependence is unknown.
5040
5041 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5042
5043         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
5044         unsigned extension into account.
5045         (ATOMIC_COMPARE_AND_SWAP): Likewise.
5046         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
5047         Do computations on a scratch register.
5048
5049 2008-03-21  Richard Guenther  <rguenther@suse.de>
5050
5051         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
5052         Use is_gimple_min_invariant instead of TREE_INVARIANT.
5053         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5054         * tree-ssa-dom.c (record_equality): Likewise.
5055         * tree-inline.c (copy_body_r): Likewise.
5056         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
5057         TREE_INVARIANT.
5058
5059 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5060
5061         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
5062         as 'delete_unused' argument.
5063
5064 2008-03-20  Richard Guenther  <rguenther@suse.de>
5065
5066         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
5067         special casing of constant qualifiers.
5068         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
5069         care about them in general.
5070         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
5071         regardless of their type.
5072         (fold_stmt_r): Forcefully fold *& if we end up with that.
5073
5074 2008-03-20  Paul Brook  <paul@codesourcery.com>
5075
5076         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
5077         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
5078         linker flags.
5079         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
5080         definition.
5081         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
5082         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
5083
5084 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
5085
5086         * common.opt (Wmudflap): New option.
5087         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
5088         (mx_register_decls): Likewise.
5089         (mudflap_finish_file): Likewise.
5090         * doc/invoke.texi: Document -Wno-mudflap.
5091
5092 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
5093
5094         * c-format.c (replace_format_name_to_system_name): New.
5095         (cmp_attribs): New.
5096         (convert_format_name_to_system_name): New.
5097         (decode_format_attr): Add use of convert_format_name_to_system_name.
5098         (format_types_orig): Add gnu_ prefix to names.
5099         (check_format_info_main): Special treating of \0 escaped names for
5100         supporting multi-character format specifiers as I32, I64.
5101         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
5102         (gnu_target_overrides_format_attributes): New.
5103         * c-format.h: Add structure target_ovr_attr to hold
5104         system specific formatter names.
5105         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
5106         msformat-c.o file to c_target_objs and cxx_target_objs.
5107         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5108         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
5109         (TARGET_N_FORMAT_TYPES): New.
5110         * config/i386/msformat-c.c: New.
5111         * config/i386/t-cygming: Add build rule for msformat-c.o.
5112         * doc/extend.texi: Add new format names gnu_* and ms_* and
5113         further details.
5114         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5115
5116 2008-03-20  Ira Rosen  <irar@il.ibm.com>
5117
5118         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
5119         optimizations turned on under -O3.
5120         (ftree-vectorize): Add that the flag is turned on with -O3.
5121
5122 2008-03-20  Ben Elliston  <bje@au.ibm.com>
5123
5124         * regmove.c (try_auto_increment): Fix spelling error in comment.
5125         * final.c (final_scan_insn): Likewise.
5126
5127 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
5128
5129         PR target/14552
5130         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
5131         allocator preferences for "y" and "r" class registers.
5132         ("*mov<mode>_internal"): Ditto.
5133         ("*movv2sf_internal_rex64"): Ditto.
5134         ("*movv2sf_internal"): Ditto.
5135
5136 2008-03-19  Michael Matz  <matz@suse.de>
5137
5138         PR middle-end/35616
5139         * calls.c (expand_call): Check overlap of arguments with call
5140         address for sibcalls.
5141
5142 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
5143
5144         PR target/35496
5145         * stor-layout.c (update_alignment_for_field): Set minimum alignment
5146         of the underlying type of a MS bitfield layout to the natural
5147         alignment of the type.
5148
5149 2008-03-19  Jan Hubicka  <jh@suse.cz>
5150
5151         PR other/35094
5152         * toplev.c (decode_d_option): Handle all CPP flags.
5153         * tree-vrp.c: Update tree_pass descriptors.
5154         * regrename.c: Update tree_pass descriptors.
5155         * fwprop.c: Update tree_pass descriptors.
5156         * doc/invoke.texi: Remove documentation of dropped -d? flags.
5157         * tree-into-ssa.c: Update tree_pass descriptors.
5158         * tree-dump.c: Update tree_pass descriptors.
5159         * tree-complex.c: Update tree_pass descriptors.
5160         * tree-dump.h: Update tree_pass descriptors.
5161         * see.c: Update tree_pass descriptors.
5162         * cgraphbuild.c: Update tree_pass descriptors.
5163         * tracer.c: Update tree_pass descriptors.
5164         * tree-loop-distribution.c: Update tree_pass descriptors.
5165         * cgraph.c: Update tree_pass descriptors.
5166         * postreload-gcse.c: Update tree_pass descriptors.
5167         * postreload.c: Update tree_pass descriptors.
5168         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
5169         * tree-tailcall.c: Update tree_pass descriptors.
5170         * tree-pass.h (tree_opt_pass): Rename to ...
5171         (opt_pass) ... this one; add "type" field and remove letter field.
5172         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
5173         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
5174         all_lowering_passes): Update declaration.
5175         * ipa-cp.c: Update tree_pass descriptors.
5176         * final.c: Update tree_pass descriptors.
5177         * omp-low.c: Update tree_pass descriptors.
5178         * tree-ssa-dse.c: Update tree_pass descriptors.
5179         * ipa-reference.c: Update tree_pass descriptors.
5180         * tree-ssa-uncprop.c: Update tree_pass descriptors.
5181         * auto-inc-dec.c: Update tree_pass descriptors.
5182         * reorg.c: Update tree_pass descriptors.
5183         * cgraphunit.c: Update tree_pass descriptors.
5184         * tree-ssa-copyrename.c: Update tree_pass descriptors.
5185         * tree-ssa-ccp.c: Update tree_pass descriptors.
5186         * df-core.c: Update tree_pass descriptors.
5187         * mode-switching.c: Update tree_pass descriptors.
5188         * tree-nomudflap.c: Update tree_pass descriptors.
5189         * modulo-sched.c: Update tree_pass descriptors.
5190         * ipa-pure-const.c: Update tree_pass descriptors.
5191         * cse.c: Update tree_pass descriptors.
5192         * web.c: Update tree_pass descriptors.
5193         * tree-stdarg.c: Update tree_pass descriptors.
5194         * tree-ssa-math-opts.c: Update tree_pass descriptors.
5195         * tree-ssa-dom.c: Update tree_pass descriptors.
5196         * tree-nrv.c: Update tree_pass descriptors.
5197         * tree-ssa-alias.c: Update tree_pass descriptors.
5198         * loop-init.c: Update tree_pass descriptors.
5199         * gimple-low.c: Update tree_pass descriptors.
5200         * ipa-inline.c: Update tree_pass descriptors.
5201         * tree-ssa-sink.c: Update tree_pass descriptors.
5202         * global.c: Update tree_pass descriptors.
5203         * ifcvt.c: Update tree_pass descriptors.
5204         * jump.c: Update tree_pass descriptors.
5205         * predict.c: Update tree_pass descriptors.
5206         * tree-ssa-loop.c: Update tree_pass descriptors.
5207         * recog.c: Update tree_pass descriptors.
5208         * dse.c: Update tree_pass descriptors.
5209         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
5210         * tree-eh.c: Update tree_pass descriptors.
5211         * regmove.c: Update tree_pass descriptors.
5212         * local-alloc.c
5213         * function.c: Update tree_pass descriptors.
5214         * tree-vectorizer.c: Update tree_pass descriptors.
5215         * gcse.c: Update tree_pass descriptors.
5216         * ipa-type-escape.c: Update tree_pass descriptors.
5217         * tree-if-conv.c: Update tree_pass descriptors.
5218         * init-regs.c: Update tree_pass descriptors.
5219         * ipa.c: Update tree_pass descriptors.
5220         * tree-ssa-phiopt.c: Update tree_pass descriptors.
5221         * rtl-factoring.c: Update tree_pass descriptors.
5222         * lower-subreg.c: Update tree_pass descriptors.
5223         * bt-load.c: Update tree_pass descriptors.
5224         * tree-dfa.c: Update tree_pass descriptors.
5225         * except.c: Update tree_pass descriptors.
5226         * emit-rtl.c: Update tree_pass descriptors.
5227         * cfgexpand.c: Update tree_pass descriptors.
5228         * tree-cfgcleanup.c: Update tree_pass descriptors.
5229         * cfgcleanup.c: Update tree_pass descriptors.
5230         * tree-ssa-pre.c: Update tree_pass descriptors.
5231         * tree-sra.c: Update tree_pass descriptors.
5232         * tree-mudflap.c: Update tree_pass descriptors.
5233         * tree-ssa-copy.c: Update tree_pass descriptors.
5234         * cfglayout.c: Update tree_pass descriptors.
5235         * tree-ssa-forwprop.c: Update tree_pass descriptors.
5236         * tree-ssa-dce.c: Update tree_pass descriptors.
5237         * tree-ssa.c: Update tree_pass descriptors.
5238         * regclass.c: Update tree_pass descriptors.
5239         * integrate.c: Update tree_pass descriptors.
5240         * tree-optimize.c: Update tree_pass descriptors.
5241         * tree-ssa-phiprop.c: Update tree_pass descriptors.
5242         * tree-object-size.c: Update tree_pass descriptors.
5243         * combine.c: Update tree_pass descriptors.
5244         * tree-outof-ssa.c: Update tree_pass descriptors.
5245         * bb-reorder.c: Update tree_pass descriptors.
5246         * stack-ptr-mod.c: Update tree_pass descriptors.
5247         * var-tracking.c: Update tree_pass descriptors.
5248         * tree-profile.c: Update tree_pass descriptors.
5249         * tree-vect-generic.c: Update tree_pass descriptors.
5250         * reg-stack.c: Update tree_pass descriptors.
5251         * sched-rgn.c: Update tree_pass descriptors.
5252         * tree-ssa-structalias.c: Update tree_pass descriptors.
5253         * tree-cfg.c: Update tree_pass descriptors.
5254         * passes.c (current_pass): Update declaration.
5255         (finish_optimization_passes): Update.
5256         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
5257         (register_one_dump_file, register_dump_files_1, next_pass_1):
5258         Update arguments.
5259         (init_optimization_passes): Update handling of new types.
5260         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
5261         * ipa-struct-reorg.c: Update tree_pass descriptors.
5262         * tree-ssa-reassoc.c: Update tree_pass descriptors.
5263         * combine-stack-adj.c: Update tree_pass descriptors.
5264         * cfgrtl.c: Update tree_pass descriptors.
5265         * dce.c: Update tree_pass descriptors.
5266         * tree-ssanames.c: Update tree_pass descriptors.
5267
5268 2008-03-19  Richard Guenther  <rguenther@suse.de>
5269
5270         PR middle-end/35609
5271         * tree-ssa.c (walk_data): New structure.
5272         (warn_uninitialized_var): If not always_executed warn with "maybe"
5273         instead of "is".
5274         (execute_early_warn_uninitialized): Compute post-dominators.
5275         Initialize always_executed before processing each basic block.
5276
5277 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
5278
5279         PR target/35504
5280         * config/i386/i386.c (x86_this_parameter): Calculate correct location
5281         of "this" pointer when "regparm = N" or "fastcall" is in effect.
5282
5283 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5284
5285         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
5286
5287 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
5288
5289         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
5290         is true.
5291         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
5292         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
5293         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
5294         target after ignore has been set, and move there also the commputation
5295         of subtarget and original_target.
5296         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5297         (LANG_HOOKS_INITIALIZER): Remove it.
5298         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
5299
5300 2008-03-18  Richard Guenther  <rguenther@suse.de>
5301
5302         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
5303         found an expression with constants, note that in the VN for the lhs.
5304         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
5305         fold them to constants if possible.  Run cleanup_cfg if done so.
5306         (execute_pre): Return todo.
5307         (do_pre): Likewise.
5308         (execute_fre): Likewise.
5309         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
5310         of constants.
5311         (get_prop_source_stmt): Look through pointer conversions.
5312
5313 2008-03-18  Jan Hubicka  <jh@suse.cz>
5314
5315         * tree-pretty-print.c: Include predict.h.
5316         (dump_generic_node): Dump predictor.
5317         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
5318         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
5319         * gimple-low.c (lower_stmt): Likewise.
5320         * expr.c (expand_expr_real): Likewise.
5321         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
5322         them.
5323         (build_predict_expr, build_predict_expr): New.
5324         * predict.h (predictor_name, build_predict_expr): Update.
5325         * c-typeck.c (c_finish_bc_stmt): Add prediction.
5326         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
5327         * predict.def (PRED_CONTINUE): Update hitrate.
5328         * tree.def (PREDICT_EXPR): Define.
5329         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
5330         do not handle BIND_EXPR.
5331         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
5332         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
5333         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
5334         operands.
5335
5336 2008-03-18  Michael Matz  <matz@suse.de>
5337
5338         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
5339
5340 2008-03-18  Richard Guenther  <rguenther@suse.de>
5341
5342         * tree-gimple.h (is_gimple_invariant_address): Declare.
5343         (is_gimple_constant): Likewise.
5344         * tree-gimple.c (is_gimple_constant): New function.
5345         (is_gimple_invariant_address): Likewise.
5346         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5347         and is_gimple_invariant_address.
5348         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5349         previous change.
5350         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5351         an addressable base.
5352
5353 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
5354
5355         PR middle-end/35611
5356         * gimplify.c (gimplify_expr): Gimplify second operand of
5357         OMP_ATOMIC_LOAD.
5358
5359 2008-03-17  Richard Guenther  <rguenther@suse.de>
5360
5361         PR tree-optimization/19637
5362         * fold-const.c (fold_unary): Remove restrictions of removing
5363         intermediate pointer-conversions (P2)(P1)P0.
5364         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5365         conversion to void pointer.
5366         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5367
5368 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
5369
5370         PR debug/31510
5371         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5372         emulated thread local variables.
5373
5374 2008-03-16  Richard Guenther  <rguenther@suse.de>
5375
5376         PR middle-end/35607
5377         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5378         expand TREE_INVARIANT operations that are not gimple invariant.
5379
5380 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
5381
5382         * doc/extend.texi (Alignment): Say that the ABI controls
5383         the __alignof__ for non-strict-alignment targets rather
5384         than being a recommendation.
5385
5386 2008-03-15  Paul Brook  <paul@codesourcery.com>
5387
5388         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5389         annotations.
5390         (arm_output_fn_unwind): Mark functions that can not be unwound.
5391
5392 2008-03-15  Paul Brook  <paul@codesourcery.com>
5393
5394         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5395         extension instructions.
5396
5397 2008-03-15  Richard Guenther  <rguenther@suse.de>
5398
5399         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5400         and fold constant aggregate refs.
5401         (fold_const_aggregate_ref): Handle string constants
5402         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
5403         (evaluate_stmt): Simplify now that ccp_fold folds constant
5404         aggregate refs.
5405
5406 2008-03-15  Paul Brook  <paul@codesourcery.com>
5407
5408         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5409         (extzv): Use gen_extzv_t2.
5410         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5411
5412 2008-03-15  Richard Guenther  <rguenther@suse.de>
5413
5414         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5415         (fold_const_aggregate_ref): Likewise.
5416         (get_value): Return NULL if we don't have any values.
5417         (ccp_finalize): Set const_val to NULL after freeing it.
5418         * tree-flow.h (get_symbol_constant_value): Declare.
5419         (fold_const_aggregate_ref): Likewise.
5420         * tree-ssa-sccvn.c (try_to_simplify): Use them.
5421
5422 2008-03-15  Richard Guenther  <rguenther@suse.de>
5423
5424         PR middle-end/35593
5425         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5426         to not produce negative array indices if not allowed.  Add
5427         parameter to indicate that.
5428         (maybe_fold_offset_to_component_ref): Allow negative array
5429         indices only for the first member of a structure.
5430         (maybe_fold_offset_to_reference): Allow negative array indices.
5431         (maybe_fold_stmt_addition): Likewise.
5432
5433 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
5434             Anatoly Sokolov <aesok@post.ru>
5435
5436         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
5437         (avr_arch): Add ARCH_AVR6.
5438         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5439         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
5440         instead of fixed value 2.
5441         (print_operand_address): Use gs() asm specifier instead of pm().
5442         (avr_assemble_integer): (Ditto.).
5443         (avr_output_addr_vec_elt): (Ditto.).
5444         (print_operand): Handle "!" code.
5445         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
5446         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5447         (AVR_HAVE_EIJMP_EICALL): Define.
5448         (AVR_3_BYTE_PC): Redefine.
5449         (AVR_2_BYTE_PC): (Ditto.).
5450         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5451         (LINK_SPEC): Add atmega2560 and atmega2561.
5452         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
5453         (crtm2561.o).
5454         * config/avr/avr.md (call_insn): Use eicall instead of icall 
5455         for 3 byte PC devices.
5456         (call_value_insn): (Ditto.).
5457         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5458         (indirect_jump): Use only for for 2 byte PC devices.
5459         (*tablejump): (Ditto.).
5460         (*indirect_jump_avr6): Add insn.
5461         (*tablejump_rjmp): Don't use for 3 byte PC devices.
5462         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
5463         instead of ijmp for 3 byte PC devices.
5464         (__tablejump2__): (Ditto.).
5465         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
5466         (MULITLIB_DIRNAMES): (Ditto.). 
5467         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5468
5469 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
5470
5471         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5472         "sse2_umulsidi3".  Use V1DI mode for operand 0.
5473         ("mmx_psadbw"): Use V1DI mode for operand 0.
5474         * config/i386/i386-modes.def (V1SI): New vector mode.
5475         * config/i386/i386.c (struct builtin_description)
5476         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5477         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5478         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5479         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5480         v1di_ftype_v8qi_v8qi type.
5481         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5482
5483         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5484         __builtin_ia32_pmuludq]: Fix the mode of return value.
5485
5486 2008-03-15  Richard Guenther  <rguenther@suse.de>
5487
5488         PR middle-end/35595
5489         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5490         being a PHI_NODE.
5491
5492 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
5493         
5494         * doc/invoke.texi (Option Summary, Xtensa Options): Document
5495         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5496         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5497         unless TARGET_SERIALIZE_VOLATILE is enabled.
5498         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5499         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5500         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5501
5502 2008-03-14  Richard Guenther  <rguenther@suse.de>
5503
5504         PR tree-optimization/34172
5505         * tree-flow.h (refs_may_alias_p): Declare.
5506         (get_single_def_stmt): Likewise.
5507         (get_single_def_stmt_from_phi): Likewise.
5508         (get_single_def_stmt_with_phi): Likewise.
5509         * tree-dfa.c (refs_may_alias_p): New function.
5510         (get_single_def_stmt): Likewise.
5511         (get_single_def_stmt_from_phi): Likewise.
5512         (get_single_def_stmt_with_phi): Likewise.
5513         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5514         (vn_reference_lookup_1): New helper function.
5515         (vn_reference_lookup): Walk the virtual use-def chain to
5516         continue searching for a match if the def does not alias the
5517         reference we are looking for.
5518
5519 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
5520
5521         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
5522         archive and Perzl.  Update The Written Word listing.
5523
5524 2008-03-14  Richard Guenther  <rguenther@suse.de>
5525
5526         PR tree-optimization/34043
5527         PR tree-optimization/33989
5528         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5529         when doing FRE.
5530         (bitmap_find_leader): Use extra argument to verify dominance
5531         relationship inside a basic-block.
5532         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5533         (find_leader_in_sets): Adjust.
5534         (create_component_ref_by_pieces): Take extra argument for
5535         dominance check, handle lookup failures.
5536         (find_or_generate_expression): Likewise.
5537         (create_expression_by_pieces): Likewise.
5538         (insert_into_preds_of_block): Adjust.
5539         (create_value_expr_from): If asked for, verify all operands
5540         are in the blocks AVAIL_OUT set.
5541         (make_values_for_stmt): Check for SSA_NAMEs that are life
5542         over an abnormal edge.
5543         (compute_avail): Remove such check.
5544         (do_SCCVN_insertion): New function.
5545         (eliminate): If we do not find a leader suitable for replacement
5546         insert a replacement expression from SCCVN if available.
5547         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5548         (struct vn_ssa_aux): Add needs_insertion flag.
5549         * tree-ssa-sccvn.c (may_insert): New global flag.
5550         (copy_reference_ops_from_ref): Value-number union member access
5551         based on its size, not type and member if insertion is allowed.
5552         (visit_reference_op_load): For a weak match from union type
5553         punning lookup a view-converted value and insert a SSA_NAME
5554         for that value if that is not found.
5555         (visit_use): Make dumps shorter.  Do not disallow value numbering
5556         SSA_NAMEs that are life over an abnormal edge to constants.
5557         (free_scc_vn): Release inserted SSA_NAMEs.
5558         (run_scc_vn): New flag to specify whether insertion is allowed.
5559         Process SSA_NAMEs in forward order.
5560         * tree-ssa-loop-im.c (for_each_index): Handle invariant
5561         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5562         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5563         pointer type to/from integral types that do not change the
5564         precision to regular conversions.
5565
5566 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5567
5568         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5569         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5570         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5571         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5572         input arguments and the mode of return value.  Built-in functions
5573         that operate on whole 64-bit MMX register now use V1DI mode.
5574
5575 2008-03-13  Alon Dayan  <alond@il.ibm.com>
5576             Olga Golovanevsky  <olga@il.ibm.com>
5577
5578         PR tree-optimization/35041
5579         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5580         to locate the right position in a statement.
5581
5582 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5583
5584         PR target/34000
5585         PR target/35553
5586         * config/i386/xmmintrin.h:  Change all static inline functions to
5587         extern inline and add __gnu_inline__ attribute.
5588         * config/i386/bmintrin.h: Ditto.
5589         * config/i386/smmintrin.h: Ditto.
5590         * config/i386/tmmintrin.h: Ditto.
5591         * config/i386/mmintrin-common.h: Ditto.
5592         * config/i386/ammintrin.h: Ditto.
5593         * config/i386/emmintrin.h: Ditto.
5594         * config/i386/pmmintrin.h: Ditto.
5595         * config/i386/mmintrin.h: Ditto.
5596         * config/i386/mm3dnow.h: Ditto.
5597
5598 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
5599
5600         PR middle-end/35185
5601         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5602         (lower_omp_2): New function.
5603         (lower_omp_1, lower_omp): Rewritten.
5604
5605 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
5606
5607         PR 35054
5608         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5609         with the phrase "Microsoft Windows compilers".
5610         (Push/Pop Macro Pragmas): New subsection. Document
5611         #pragma push_macro and pragma pop_macro.
5612
5613 2008-03-12  Paul Brook  <paul@codesourcery.com>
5614
5615         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5616
5617 2008-03-12  Paul Brook  <paul@codesourcery.com>
5618
5619         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5620         (thumb2_alusi3_short): Exclude PLUS and MINUS.
5621         (thumb2_addsi_shortim): Rename ...
5622         (thumb2_addsi_short): ... to this.  Allow register operands.
5623         (thumb2_subsi_short): New pattern.
5624         (thumb2_one_cmplsi2_short,
5625         thumb2_negsi2_short): New patterns and peepholes.
5626
5627 2008-03-12  Paul Brook  <paul@codesourcery.com>
5628
5629         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5630
5631 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
5632
5633         * config/i386/i386.md (int_cond): New code iterator.
5634         (fp_cond): Ditto.
5635         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5636         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5637         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5638         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5639         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5640         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5641         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5642         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5643
5644 2008-03-12  Paul Brook  <paul@codesourcery.com>
5645
5646         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5647         instead of {arm,thumb}_compute_save_reg_mask.
5648         (output_return_instruction): Ditto.
5649         (thumb_unexpanded_epilogue): Ditto.
5650         (thumb1_expand_prologue): Ditto.
5651         (thumb1_output_function_prologue): Ditto.
5652         (arm_set_return_address): Ditto.
5653         (thumb_set_return_address): Ditto.
5654         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
5655         regs to achieve stack alignment.
5656         (thumb1_compute_save_reg_mask): Fix compiler warning.
5657         (arm_output_epilogue): Use offsets->saved_regs_mask.
5658         Adjust stack pointer by poping call clobered registers.
5659         (arm_expand_prologue): Use offsets->saved_regs_mask.
5660         Adjust stack pointer by pushing extra registers.
5661         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
5662
5663 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
5664
5665         PR tree-opt/35422
5666         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5667         conversion to the operands of a multiplication.
5668
5669 2008-03-12  Richard Guenther  <rguenther@suse.de>
5670
5671         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5672         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5673         * timevar.def (TV_TREE_PHIPROP): Add.
5674         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5675         pass description.  Use TV_TREE_PHIPROP.
5676         * tree-ssa-forwprop.c: Remove phiprop code.
5677
5678 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
5679
5680         PR middle-end/35549
5681         * omp-low.c (maybe_lookup_decl): Constify first argument.
5682         (use_pointer_for_field): Change last argument from bool to
5683         omp_context *.  Disallow shared copy-in/out in nested
5684         parallel if decl is shared in outer parallel too.
5685         (build_outer_var_ref, scan_sharing_clauses,
5686         lower_rec_input_clauses, lower_copyprivate_clauses,
5687         lower_send_clauses, lower_send_shared_vars): Adjust callers.
5688
5689 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
5690             Ira Rosen  <irar@il.ibm.com>
5691
5692         * tree-vectorizer.c (free_stmt_vec_info): New function.
5693         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5694         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5695         * tree-vectorizer.h (free_stmt_vec_info): Declare.
5696         * tree-vect-transform.c (vectorizable_conversion): Free
5697         vec_oprnds0 if it was allocated.
5698         (vect_permute_store_chain): Remove unused VECs.
5699         (vectorizable_store): Free VECs that are allocated in the..
5700         function.
5701         (vect_transform_strided_load, vectorizable_load): Likewise.
5702         (vect_remove_stores): Simplify the code.
5703         (vect_transform_loop): Move code to vect_remove_stores().
5704         Call vect_remove_stores() and free_stmt_vec_info().
5705
5706 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5707
5708         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5709         TARGET_HPUX.  Revise comment.
5710         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5711         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5712         Use sr4 variant of `be' instruction when not generating PIC code.
5713         (attr_length_call): Adjust for above change.
5714
5715 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5716
5717         * ipa-reference.c (static_execute): Remove module_statics_const and
5718         associated setting code.
5719
5720 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5721
5722         PR target/35540
5723         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
5724         predicate for operand 1.
5725         (paritysi2_cmp): Use register_operand predicate for operand 2.
5726         Use earlyclobber modifier for operand 1.  Remove support for
5727         memory operands.
5728         (paritydi2_cmp): Use register_operand predicate for operand 3.
5729         Use earlyclobber modifier for operand 1.  Remove support for
5730         memory operands.
5731
5732 2008-03-11  Paul Brook  <paul@codesourcery.com>
5733             Vladimir Prus  <vladimir@codesourcery.com>
5734
5735         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5736         (arm_compute_save_reg0_reg12_mask): Always
5737         check if register 11 must be saved.  Always safe hard frame pointer
5738         when frame_pointer_needeed.
5739         (arm_compute_save_reg_mask): Save IP and PC
5740         only with apcs frames.
5741         (arm_output_epilogue): Adjust Thumb2 codepath to
5742         be also invoked and work for ARM non-apcs frames.
5743         (arm_expand_prologue): Don't bother saving IP
5744         for non-apcs frame, since it's not clobbered by
5745         prologue code.  Implement non-apcs frame
5746         layout.
5747
5748 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5749
5750         PR rtl-optimization/35281
5751         * expr.c (convert_move): Use a new pseudo for the intermediate
5752         from_mode->word_mode result.
5753
5754 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5755
5756         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5757         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5758         * toplev.c (compile_file): Don't call it.
5759
5760 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5761
5762         PR middle-end/35526
5763         * expr.c (store_expr): Call emit_block_move if the mode
5764         of "temp" RTX is BLKmode.
5765
5766 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5767             Richard Guenther  <rguenther@suse.de>
5768
5769         PR tree-optimization/31358
5770         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5771         the step with a NULL_TREE.
5772         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5773         to sizetype if type is a pointer type.
5774         (add_candidate_1): Don't convert the base and step to
5775         the generic type if the orginal type is a pointer type.
5776         (add_iv_value_candidates): Use sizetype for the step
5777         if type is a pointer type.
5778         (cand_value_at): Likewise.
5779         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5780         for pointer types.
5781         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5782         Don't convert the tem affine to the type.
5783         (add_elt_to_tree): Use sizetype for the step if a pointer.
5784         Use POINTER_PLUS_EXPR for pointers.
5785         (aff_combination_to_tree): Use sizetype for the step if a
5786         pointer.
5787
5788 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
5789
5790         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5791         Remove commutativity hint.
5792
5793 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
5794
5795         PR c/35438
5796         PR c/35439
5797         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5798         errorneous type.  Check that v is a VAR_DECL.
5799
5800         PR middle-end/35099
5801         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5802
5803 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
5804
5805         PR tree-optimization/35494
5806         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5807         may be overriden at link and run time.
5808
5809 2008-03-10  Richard Guenther  <rguenther@suse.de>
5810
5811         PR tree-optimization/34677
5812         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5813         (poolify_tree): Likewise.
5814         (modify_expr_template): Likewise.
5815         (poolify_modify_stmt): Likewise.
5816         (insert_fake_stores): Handle all component-ref style stores
5817         in addition to INDIRECT_REF.  Also handle complex types.
5818         Do not poolify the inserted load.
5819         (realify_fake_stores): Do not rebuild the tree but only
5820         make it a SSA_NAME copy.
5821         (init_pre): Remove initialzation of modify_expr_template.
5822         Do not allocate modify_expr_node_pool.
5823         (fini_pre): Do not free modify_expr_node_pool.
5824
5825 2008-03-10  Paul Brook  <paul@codesourcery.com>
5826
5827         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5828         to avoid conflicts.
5829
5830 2008-03-10  Paul Brook  <paul@codesourcery.com>
5831             Mark Shinwell  <shinwell@codesourcery.com>
5832
5833         * config/arm/cortex-r4.md: New.
5834         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5835         insn attributes.
5836         * config/arm/arm.md: Include cortex-r4.md.
5837         (insn): Add smmls, sdiv and udiv values.
5838         (generic_sched): Don't use generic scheduling for Cortex-R4.
5839         (arm_issue_rate): New function.
5840         (TARGET_SCHED_ISSUE_RATE): Define.
5841
5842 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
5843
5844         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5845
5846 2008-03-10  Richard Guenther  <rguenther@suse.de>
5847
5848         * tree-ssa-pre.c (get_sccvn_value): Simplify.
5849         (compute_avail): Do not add stmt uses to AVAIL_OUT.
5850
5851 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
5852
5853         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5854         Set default to true.
5855
5856 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5857
5858         * c.opt (Wsynth): Deprecate.
5859         * doc/invoke.texi (Option Summary, Warning Options): Document
5860         -Wno-format-contains-nul.
5861
5862 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
5863
5864         PR target/35496
5865         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
5866         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5867
5868 2008-03-09  Ira Rosen  <irar@il.ibm.com>
5869
5870         * config/rs6000/rs6000.c (builtin_description): Rename vector
5871         left shift operations.
5872         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5873         (altivec_vsl<VI_char>): Rename to ...
5874         (ashl<mode>3): ... new name.
5875         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5876         gen_ashlv4si3.
5877         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5878
5879 2008-03-08  Richard Guenther  <rguenther@suse.de>
5880
5881         * coverage.h (tree_coverage_counter_addr): Declare.
5882         * coverage.c (tree_coverage_counter_addr): New function.
5883         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
5884         before using again.
5885         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
5886         (tree_gen_one_value_profiler): Likewise.
5887         (tree_gen_ic_profiler): Likewise.
5888         (tree_gen_average_profiler): Likewise.
5889         (tree_gen_ior_profiler): Likewise.
5890
5891 2008-03-08  Richard Guenther  <rguenther@suse.de>
5892
5893         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
5894         (vn_binary_op_insert): Likewise.
5895         (vn_unary_op_lookup): Likewise.
5896         (vn_unary_op_insert): Likewise.
5897         (vn_nary_op_lookup): Declare.
5898         (vn_nary_op_insert): Likewise.
5899         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
5900         and binary hashes, use a single obstack for unary_op_pool
5901         and binary_op_pool.
5902         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
5903         a single struct vn_nary_op_s.  Store tree code length and
5904         a variable number of operands.
5905         (struct vn_reference_op_struct): Remove unused op2.
5906         (vn_reference_op_eq): Do not compare op2.
5907         (vn_reference_op_compute_hash): Do not compute hash of op2.
5908         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
5909         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
5910         with vn_nary_op_compute_hash.
5911         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
5912         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
5913         vn_nary_op_lookup.
5914         (vn_unary_op_insert, vn_binary_op_insert): Replace with
5915         vn_nary_op_insert.
5916         (visit_unary_op): Call nary functions.
5917         (visit_binary_op): Likewise.
5918         (process_scc): Adjust for struct vn_tables_s changes.
5919         (allocate_vn_table): Likewise.
5920         (free_vn_table): Likewise.
5921         * tree-vn.c (vn_add): Call nary functions.
5922         (vn_lookup): Likewise.
5923
5924 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
5925
5926         PR target/35498
5927         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
5928         wdst back after sync_compare_and_swapqhi_internal.
5929
5930 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
5931
5932         PR target/22152
5933         * config/i386/i386-modes.def (V1DI): New vector mode.
5934         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
5935         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
5936         (MMXMODE248): Ditto.
5937         (MMXMODE): Add V1DI mode.
5938         (mmxvecsize): Change DI mode to V1DI mode.
5939         ("mov<mode>): Use MMXMODEI8 mode iterator.
5940         ("*mov<mode>_internal_rex64"): Ditto.
5941         ("*mov<mode>_internal"): Ditto.
5942         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
5943         ("mmx_sub<mode>3"): Ditto.
5944         ("mmx_adddi3"): Remove insn pattern.
5945         ("mmx_subdi3"): Ditto.
5946         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
5947         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
5948         ("mmx_ashl<mode>3"): Ditto.
5949         ("mmx_lshrdi3"): Remove insn pattern.
5950         ("mmx_ashldi3"): Ditto.
5951         * config/i386/i386.c (classify_argument): Handle V1DImode.
5952         (function_arg_advance_32): Ditto.
5953         (function_arg_32): Ditto.
5954         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
5955         mmx_addv1di3 insn pattern.
5956         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
5957         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
5958         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
5959         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
5960         Remove definitions of built-in functions.
5961         (V1DI_type_node): New node.
5962         (v1di_ftype_v1di_int): Ditto.
5963         (v1di_ftype_v1di_v1di): Ditto.
5964         (v2si_ftype_v2si_si): Ditto.
5965         (v4hi_ftype_v4hi_di): Remove node.
5966         (v2si_ftype_v2si_di): Ditto.
5967         (ix86_init_mmx_sse_builtins): Handle V1DImode.
5968         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
5969         Redefine builtins using def_builtin_const with *_ftype_*_int node.
5970         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
5971         Add new builtins using def_builtin_const.
5972         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
5973         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
5974         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
5975         * config/i386/mmintrin.h (__v1di): New typedef.
5976         (_mm_add_si64): Cast arguments to __v1di type.
5977         (_mm_sub_si64): Ditto.
5978         (_mm_sll_pi16): Cast __count to __v4hi type.
5979         (_mm_sll_pi32): Cast __count to __v2si type.
5980         (_mm_sll_si64): Cast arguments to __v1di type.
5981         (_mm_srl_pi16): Cast __count to __v4hi type.
5982         (_mm_srl_pi32): Cast __count to __v2si type.
5983         (_mm_srl_si64): Cast arguments to __v1di type.
5984         (_mm_sra_pi16): Cast __count to __v4hi type.
5985         (_mm_sra_pi32): Cast __count to __v2si type.
5986         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
5987         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
5988         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
5989         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
5990         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
5991         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
5992         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
5993         (_mm_srai_pi32): Use __builtin_ia32_psradi.
5994         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
5995         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5996         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5997         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
5998
5999 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
6000
6001         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
6002
6003 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
6004
6005         PR target/35373
6006         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
6007         reg+const addressing for Altivec modes.  Don't generate reg+reg
6008         addressing for TFmode or TDmode quantities.
6009
6010 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
6011
6012         * c-common.c (vector_types_convertible_p): Call langhook
6013         instead of comptypes.
6014
6015 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6016
6017         PR tree-opt/35402
6018         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
6019         integral and scalar float variables which have a
6020         NULL DECL_INITIAL.
6021
6022 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
6023
6024         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
6025         dwarf_register_span hook when emitting unwind information for
6026         register-to-memory saves.
6027         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
6028         (rs6000_frame_related): Remove call to spe_synthesize_frame.
6029
6030 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
6031
6032         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
6033         for the same VAR_DECL.
6034
6035 2008-03-06  Tom Tromey  <tromey@redhat.com>
6036
6037         * treelang: Delete.
6038         * doc/standards.texi (Standards): Don't mention treelang.
6039         * doc/invoke.texi (Overall Options): Don't mention treelang.
6040         * doc/install.texi (Prerequisites): Don't mention bison or
6041         treelang.
6042         (Configuration): Don't mention treelang.
6043         (Building): Likewise.
6044         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
6045
6046 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
6047
6048         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
6049         word-extractions out of a multi-word object.
6050
6051 2008-03-06  Richard Guenther  <rguenther@suse.de>
6052
6053         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
6054         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
6055         result type and precision.
6056         * expr.c (get_inner_reference): Set unsignedp based on the result
6057         type of BIT_FIELD_REF.
6058         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
6059         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
6060         (try_instantiate_multiple_fields): Likewise.  Use the correct type
6061         for BIT_FIELD_REF.
6062         (sra_build_assignment): Likewise.
6063         (sra_build_elt_assignment): Likewise.
6064         (sra_explode_bitfield_assignment): Likewise.
6065         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
6066         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
6067         set BIT_FIELD_REF_UNSIGNED.
6068         (vectorizable_load): Likewise.
6069
6070 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
6071
6072         * cse.c (cse_extended_basic_block): Invalidate artificial defs
6073         at bb start.
6074
6075 2008-03-06  Richard Guenther  <rguenther@suse.de>
6076
6077         * alias.c (struct alias_set_entry): Move has_zero_child field
6078         to pack with alias_set.
6079
6080 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6081
6082         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6083         32bit host.
6084
6085 2008-03-05  Ian Lance Taylor  <iant@google.com>
6086
6087         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
6088
6089 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
6090
6091         * fwprop.c (update_df): Support width and offset parameters of
6092         df_ref_create.
6093         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
6094         global_conflicts): Change DF_REF_EXTRACT to either
6095         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
6096         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6097         * df-scan.c (df_ref_record, df_defs_record,
6098         df_ref_create_structure, df_def_record_1, df_uses_record,
6099         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
6100         df_bb_refs_collect, df_entry_block_defs_collect,
6101         df_exit_block_uses_collect): Support new width and offset fields.
6102         (ref_extract_pool): New storage pool.
6103         (df_free_ref): New function.
6104         (df_reg_chain_unlink, df_free_collection_rec,
6105         df_sort_and_compress_refs): Call df_free_ref.
6106         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
6107         of df_ref_extract.
6108         (df_ref_create_structure): Allocate df_ref_extract if offset and
6109         width fields are used.
6110         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
6111         (df_uses_record): Get offset and width from ZERO_EXTRACT 
6112         and SIGN_EXTRACT.
6113         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
6114         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
6115         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6116         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
6117         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
6118         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6119         (df_ref_extract): New structure.
6120         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
6121         (df_ref_create): Add width and offset parameters.
6122         
6123 2008-03-05  Richard Guenther  <rguenther@suse.de>
6124
6125         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6126         Use ranges_overlap_p.
6127         (offset_overlaps_with_access): Rename
6128         to ranges_overlap_p and move ...
6129         * tree-flow-inline.h (ranges_overlap_p): ... here.
6130
6131         * tree.h (get_inner_reference, handled_component_p): Update
6132         comments.
6133
6134         * tree.h (record_component_aliases, get_alias_set,
6135         alias_sets_conflict_p, alias_sets_must_conflict_p,
6136         objects_must_conflict_p): Move declarations ...
6137         * alias.h (record_component_aliases, get_alias_set,
6138         alias_sets_conflict_p, alias_sets_must_conflict_p,
6139         objects_must_conflict_p): ... here.
6140         Include coretypes.h.
6141         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
6142
6143 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
6144
6145         * cfg.c: Include tree-flow.h.
6146         (remove_edge_raw): Call redirect_edge_var_map_clear.
6147         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
6148         * tree-flow-inline.h (redirect_edge_var_map_def): New.
6149         (redirect_edge_var_map_result): New.
6150         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
6151         PENDING_STMT use with redirect_edge_var_map_*.
6152         * tree-ssa.c (edge_var_maps): New definition.
6153         (redirect_edge_var_map_add): New.
6154         (redirect_edge_var_map_clear): New.
6155         (redirect_edge_var_map_dup): New.
6156         (redirect_edge_var_map_vector): New.
6157         (redirect_edge_var_map_destroy): New.
6158         (ssa_redirect_edge): Replace PENDING_STMT use with
6159         redirect_edge_var_map_*.
6160         (flush_pending_stmts): Same.
6161         (delete_tree_ssa): Destroy edge var map.
6162         * tree-flow.h (struct _edge_var_map): New.
6163         Define edge_var_map vector type.
6164         Declare redirect_edge_var_map_* prototypes.
6165         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
6166         * tree-cfg.c (reinstall_phi_args): Replace
6167         PENDING_STMT use with redirect_edge_var_map_*.
6168
6169 2008-03-05  Richard Guenther  <rguenther@suse.de>
6170
6171         PR tree-optimization/35472
6172         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
6173         whose single use_stmt has a overlapping set of loaded and
6174         stored symbols as that use_stmt might be a noop assignment then.
6175
6176 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
6177
6178         * gthr-rtems.h: Implement __gthread_mutex_destroy.
6179
6180 2008-03-05  Richard Guenther  <rguenther@suse.de>
6181
6182         PR c++/35336
6183         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
6184         should be constants.
6185         * tree-cfg.c (verify_expr): Verify it.
6186         * fold-const.c (fold_truthop): Remove code generating
6187         BIT_FIELD_REFs of structure bases.
6188         (fold_binary): Likewise.
6189         (fold_ternary): Position and size of BIT_FIELD_REFs are
6190         always host integers.
6191         (make_bit_field_ref): Remove.
6192         (optimize_bit_field_compare): Remove.
6193         (all_ones_mask_p): Remove.
6194
6195 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
6196
6197         PR gcc/33009
6198         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
6199         (split_block_and_df_analyze): New. Split basic block and rebuild
6200         dataflow.
6201         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
6202         SPLIT_BLOCK.
6203         (split_pattern_seq): Likewise.
6204         (erase_matching_seqs): Likewise.
6205         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
6206
6207 2008-03-04  Geoff Keating  <geoffk@apple.com>
6208
6209         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
6210         declaration and code.
6211         (tree_invalid_nonnegative_warnv_p): Likewise.
6212
6213 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
6214
6215         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
6216         examples.  Truncate option-names then causing overfull hbox.
6217
6218 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6219
6220         PR target/35222
6221         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
6222         on hpux10.
6223         * configure: Rebuilt.
6224
6225 2008-03-04  Rafael Espindola  <espindola@google.com>
6226
6227         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
6228         (tree_unary_nonnegative_warnv_p): New.
6229         (tree_binary_nonnegative_warnv_p): New.
6230         (tree_single_nonnegative_warnv_p): New.
6231         (tree_invalid_nonnegative_warnv_p): New.
6232         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
6233
6234 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6235
6236         PR 28322
6237         * opts.c (handle_option): Postpone 'unknown option' errors only for
6238         warning options.
6239
6240 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
6241
6242         PR target/35453
6243         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
6244         (_SIDD_XXX): This.
6245
6246 2008-03-04  Rafael Espindola  <espindola@google.com>
6247
6248         * fold-const.c (tree_unary_nonzero_warnv_p): New.
6249         (tree_binary_nonzero_warnv_p): New.
6250         (tree_single_nonzero_warnv_p): New.
6251         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
6252
6253 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
6254
6255         PR middle-end/35456
6256         * fold-const.c (fold_cond_expr_with_comparison): Prevent
6257         transformations for modes that have signed zeros.
6258         * ifcvt.c (noce_try_abs): Ditto.
6259
6260 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
6261
6262         * config/i386/i386.c (override_options): Force
6263         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
6264
6265 2008-03-04  Jan Hubicka  <jh@suse.cz>
6266
6267         PR c++/35262
6268         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
6269         in last commit.
6270
6271 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
6272
6273         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
6274         label to probe the stack.
6275
6276 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
6277
6278         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
6279         (__gthr_win32_mutex_destroy): Declare.
6280         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
6281         __gthr_win32_mutex_destroy.
6282         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
6283
6284 2008-03-03  Jan Hubicka  <jh@suse.cz>
6285
6286         PR c++/35262
6287         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
6288         aggressive on inlining cold calls.
6289
6290 2008-03-03  Richard Guenther  <rguenther@suse.de>
6291
6292         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
6293         struct copies into the expression table.
6294         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
6295         (try_to_simplify): Likewise.
6296         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
6297         integral and pointer arguments which do not change the
6298         precision to NOP_EXPRs.
6299         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
6300         VIEW_CONVERT_EXPR case.
6301
6302 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
6303
6304         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
6305         defined in a loop at depth 0 is invariant.
6306         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6307         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
6308         be called at loop depth 0.
6309
6310 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
6311
6312         PR driver/35420
6313         * gcc.c (process_command): Update copyright notice dates.
6314         * gcov.c (print_version): Likewise.
6315         * gcov-dump.c (print_version): Likewise.
6316         * mips-tfile.c (main): Likewise.
6317         * mips-tdump.c (main): Likewise.
6318
6319 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6320
6321         PR 24924
6322         * c-common.c (flag_permissive): Delete.
6323         (constant_expression_warnings): Check flags first.
6324         (constant_expression_error): New.
6325         * c-common.h (flag_permissive): Delete.
6326         (constant_expression_error): Declare.
6327         * flags.h (flag_permissive): Declare. Update description.
6328         * diagnostic.c (pedwarn): Update.
6329         (permerror): New.
6330         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
6331         (permissive_error_kind): New.
6332         * toplev.c (flag_permissive): Define. Update description.
6333         * toplev.h (permissive_error_kind): Declare.
6334         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
6335         (pedwarn_c90): Use pedantic_warning_kind.
6336         * c-opts.c (c_common_post_options): flag_permissive does not affect
6337         flag_pedantic_errors.
6338
6339 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
6340
6341         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
6342         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
6343         __absvsi2, __absvDI2): Use unsigned arithmetic.
6344
6345 2008-03-02  Andi Kleen  <ak@suse.de>
6346             Richard Guenther  <rguenther@suse.de>
6347
6348         * struct-equiv.c: Remove file.
6349         * cfg_cleanup.c (condjump_equiv_p): Remove.
6350         * Makefile.in (OBJS-common): Remove struct-equiv.o.
6351         (struct-equiv.o): Remove rule.
6352         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6353         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
6354         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6355
6356 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6357
6358         * ifcvt.c (noce_process_if_block): Try to handle only the then
6359         block if the else block exists but isn't suitable.
6360
6361 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6362
6363         PR gcc/35063
6364         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6365         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6366         regression from previous patch.
6367
6368 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6369
6370         PR gcc/35063
6371         * gthr.h: Add __gthread_mutex_destroy as a function that must be
6372         implemented.
6373         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6374         * gthr-single.h (__gthread_mutex_destroy): Likewise.
6375         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6376         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6377         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6378         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6379         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6380         (__gthread_mutex_destroy_function): Rename to
6381         __gthread_mutex_destroy.
6382         * gthr-dce.h (__gthread_mutex_destroy): Call
6383         pthread_mutex_destroy.
6384         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6385         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6386         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6387
6388 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6389
6390         * df-scan.c (df_ref_chain_change_bb): Simplify.
6391         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
6392         set_block_for_insn if there's any change.
6393         * df.h ((df_insn_change_bb): Fix prototype.
6394         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6395         df_insn_change_bb, don't call set_block_for_insn.
6396         * emit-rtl.c (reorder_insns): Likewise.
6397         * haifa-sched.c (move_insn): Likewise.
6398
6399 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6400
6401         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6402
6403 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6404
6405         * tree-flow-inline.h (next_readonly_imm_use): Return
6406         NULL_USE_OPERAND_P after the end.
6407
6408 2008-03-01  Richard Guenther  <rguenther@suse.de>
6409
6410         PR tree-optimization/35411
6411         * tree-sra.c (sra_build_assignment): Split conversion to
6412         final type to a separate statement if we are not assigning
6413         to a register.
6414
6415 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6416
6417         * fold-const.c (fold_convertible_p): Correct the logic to follow
6418         that in fold_convert().
6419
6420 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
6421
6422         PR c++/35315
6423         * tree-inline.c (build_duplicate_type): When we make a
6424         duplicate type, make it unique in the canonical types system.
6425
6426 2008-02-29  Tom Tromey  <tromey@redhat.com>
6427
6428         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6429         input_file_stack_history, input_file_stack_restored): Remove.
6430         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6431         * input.h (struct file_stack): Remove.
6432         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6433         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6434         Likewise.
6435         * diagnostic.h (struct diagnostic_context) <last_module>: Change
6436         type.
6437         (diagnostic_last_module_changed): Add 'map' argument.
6438         (diagnostic_set_last_function): Likewise.
6439         * diagnostic.c (undiagnostic_report_current_module): Iterate using
6440         line map, not input_file_stack.
6441         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6442
6443 2008-02-29  Paul Brook  <paul@codesourcery.com>
6444
6445         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6446
6447 2008-02-29  Paul Brook  <paul@codesourcery.com>
6448
6449         * config/arm/ieee754-df.S (muldf3): Use RET macros.
6450
6451 2008-02-29  Richard Guenther  <rguenther@suse.de>
6452
6453         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6454         vn_lookup_or_add.
6455         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6456         value for comparing for a store match.
6457         (simplify_unary_expression): Do nothing for SSA_NAMEs.
6458         (try_to_simplify): Do not do a full-blown reference lookup.
6459
6460 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6461
6462         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6463         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6464
6465         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6466
6467 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
6468
6469         * tree-loop-linear.c (try_interchange_loops): Compare memory access
6470         strides against cache sizes.
6471
6472 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6473
6474         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6475         constant to fpul.
6476
6477 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
6478
6479         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6480         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6481         is smaller than the original promoted value.
6482         (simplify_subreg): If OP is a SUBREG, try to preserve its
6483         SUBREG_PROMOTED_VAR_P information.
6484
6485 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
6486
6487         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6488         (VN_INFO_GET): Allocate new objects on the obstack.
6489         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
6490         for rpo_numbers_temp, for consistency.
6491         (free_scc_vn): Free the obstack.
6492
6493 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
6494
6495         * doc/invoke.texi: Document -ftree-loop-distribution.
6496         * tree-loop-distribution.c: New.
6497         * tree-pass.h (pass_loop_distribution): New.
6498         * graphds.h (struct graph): Add htab_t indices.
6499         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6500         * tree-vectorizer.c (rename_variables_in_loop): Extern.
6501         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6502         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6503         * tree-data-ref.c (debug_data_dependence_relations): New.
6504         (dump_data_dependence_relation): Also print data references.
6505         (free_data_ref): Extern.
6506         (same_access_functions): Moved...
6507         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6508         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6509         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6510         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6511         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6512         (stmts_from_loop): Skip LABEL_EXPR.
6513         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6514         New.
6515         (build_rdg): Initialize rdg->indices htab.
6516         (free_rdg, stores_from_loop, ref_base_address,
6517         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6518         have_similar_memory_accesses_1, ref_base_address_1,
6519         remove_similar_memory_refs): New.
6520         * tree-data-ref.h: Depend on tree-chrec.h.
6521         (debug_data_dependence_relations, free_data_ref): Declared.
6522         (same_access_functions): ... here.
6523         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6524         New.
6525         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6526         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6527         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6528         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6529         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6530         rdg_vertex_for_stmt): Declared.
6531         (struct rdg_edge): Add level.
6532         (RDGE_LEVEL): New.
6533         (free_rdg, stores_from_loop, remove_similar_memory_refs,
6534         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6535         Declared.
6536         (rdg_has_similar_memory_accesses): New.
6537         * tree-vect-analyze.c: Remove unused static decls.
6538         * lambda.h (dependence_level): New.
6539         * common.opt (ftree-loop-distribution): New.
6540         * tree-flow.h (mark_virtual_ops_in_bb, 
6541         slpeel_tree_duplicate_loop_to_edge_cfg,
6542         rename_variables_in_loop): Declared.
6543         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6544         (OBJS-common): Add tree-loop-distribution.o.
6545         (tree-loop-distribution.o): New rule.
6546         * tree-cfg.c (mark_virtual_ops_in_bb): New.
6547         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6548         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6549
6550 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
6551
6552         PR target/33963
6553         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6554         other than structures and unions.
6555
6556 2008-02-28  Richard Guenther  <rguenther@suse.de>
6557
6558         Revert:
6559         2008-02-26  Richard Guenther  <rguenther@suse.de>
6560
6561         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6562         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6563         (lookup_decl_from_uid): Declare.
6564         (remove_decl_from_map): Likewise.
6565         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6566         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6567         (decl_for_uid_map): New global hashtable mapping DECL_UID
6568         to the decl tree.
6569         (init_ttree): Allocate it.
6570         (insert_decl_to_uid_decl_map): New helper function.
6571         (make_node_stat): Insert new decls into the map.
6572         (copy_node_stat): Likewise.
6573         (lookup_decl_from_uid): New function.
6574         (remove_decl_from_map): Likewise.
6575         (print_decl_for_uid_map_statistics): New helper.
6576         (dump_tree_statistics): Call it.
6577
6578         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6579         (referenced_var_iterator): Adjust.
6580         (FOR_EACH_REFERENCED_VAR): Adjust.
6581         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6582         (num_referenced_vars): Adjust.
6583         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6584         (first_referenced_var): Remove.
6585         (end_referenced_vars_p): Likewise.
6586         (next_referenced_var): Likewise.
6587         (referenced_var_iterator_set): New helper function.
6588         * tree-dfa.c (referenced_var_lookup): Adjust.
6589         (referenced_var_check_and_insert): Likewise.
6590         (remove_referenced_var): Likewise.
6591         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6592         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6593         (verify_call_clobbering): Likewise.
6594         (verify_memory_partitions): Likewise.
6595         (init_tree_ssa): Allocate bitmap instead of hashtable for
6596         referenced_vars.
6597         (delete_tree_ssa): Adjust.
6598         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6599         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6600         (compute_tag_properties): Likewise.
6601         (set_initial_properties): Likewise.
6602         (find_partition_for): Likewise.
6603         (update_reference_counts): Likewise.
6604         (dump_may_aliases_for): Likewise.
6605         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6606         (add_call_clobber_ops): Likewise.
6607         (add_call_read_ops): Likewise.
6608         (get_asm_expr_operands): Likewise.
6609         * tree-into-ssa.c (dump_decl_set): Likewise.
6610         (update_ssa): Likewise.
6611         * tree-sra.c (scan_function): Likewise.
6612         (decide_instantiations): Likewise.
6613         (scalarize_parms): Likewise.
6614         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6615         (dsa_named_for): Likewise.
6616         * tree-ssa-structalias.c (update_alias_info): Likewise.
6617         (merge_smts_into): Likewise.
6618
6619 2008-02-27  David Daney  <ddaney@avtrex.com>
6620
6621         PR target/34409
6622         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6623         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6624         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6625         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6626         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6627
6628 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
6629
6630         PR target/25477
6631         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6632         (BUILT_IN_NEXTTOWARD): Remove.
6633         (BUILT_IN_NEXTTOWARDF): Ditto.
6634         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6635         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
6636
6637 2008-02-27  Tom Tromey  <tromey@redhat.com>
6638
6639         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6640         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6641
6642 2008-02-27  Jan Beulich  <jbeulich@novell.com>
6643
6644         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6645         update the respective field on newdecl.
6646
6647 2008-02-27  Revital Eres  <eres@il.ibm.com>
6648
6649         PR rtl-optimization/34999
6650         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6651         crossing edges that ends with a call insn.
6652         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6653         call insn and clear the EDGE_CROSSING flag of the crossing edge
6654         when fixing fallthru edges.
6655
6656 2008-02-27  Richard Guenther  <rguenther@suse.de>
6657
6658         PR middle-end/35390
6659         * fold-const.c (fold_unary): Return the correct argument,
6660         converted to the result type.
6661
6662 2008-02-27  Richard Guenther  <rguenther@suse.de>
6663
6664         PR middle-end/34971
6665         * expr.c (expand_expr_real_1): Assert on rotates that operate
6666         on partial modes.
6667         * fold-const.c (fold_binary): Use the types precision, not the
6668         bitsize of the mode if folding rotate expressions.  Build rotates
6669         only for full modes.
6670
6671 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
6672
6673         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6674         and CPP_PRAGMA_EOL.
6675         * c-pragma.c (pragma_ns_name): New typedef.
6676         (registered_pp_pragmas): New variable.
6677         (c_pp_lookup_pragma): New function.
6678         (c_register_pragma_1): If flag_preprocess_only, do nothing
6679         for non-expanded pragmas, for expanded ones push pragma's
6680         namespace and name into registered_pp_pragmas vector.
6681         (c_invoke_pragma_handler): Register OpenMP pragmas even when
6682         flag_preprocess_only, don't register GCC pch_preprocess
6683         pragma if flag_preprocess_only.
6684         * c-opts.c (c_common_init): Call init_pragma even if
6685         flag_preprocess_only.
6686         * c-pragma.c (c_pp_lookup_pragma): New prototype.
6687         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6688         cpp_register_pragma if flag_preprocess_only.
6689
6690 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6691
6692         PR c/28800
6693         * c-parser.c (c_parser_translation_unit): Warn for empty
6694         translation unit, not empty source file.
6695
6696 2008-02-26  Paul Brook  <paul@codesourcery.com>
6697
6698         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6699         operand for Thumb-2.
6700         * config/arm/arm.h (reg_class): Add CORE_REGS.
6701         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6702         (BASE_REG_CLASS): Use CORE_REGS.
6703         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6704         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6705         (REGNO_OK_FOR_INDEX_P): Exclude SP.
6706         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
6707         ARM_REGNO_OK_FOR_INDEX_P.
6708         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6709         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6710         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6711         (ldm/stm peepholes): Ditto.
6712         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6713         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6714         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6715         * config/arm/constraints.md: Enable "k" constraint on ARM.
6716
6717 2008-02-27  Ben Elliston  <bje@au.ibm.com>
6718
6719         * config/rs6000/rs6000.c: Annotate cache line size field in all
6720         instances of struct processor_costs.
6721
6722 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
6723
6724         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6725         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6726         jump_bypass): New counters.
6727         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6728         * dce.c (gate_ud_dce): Same.
6729         (gate_fast_dce): Same.
6730         * dse.c (gate_dse1): New function.
6731         (gate_dse2): New function.
6732         (gate_dse): Merge results of new gate functions.
6733         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6734         (gate_handle_jump_bypass): Add dbg_cnt.
6735         (gate_handle_gcse): Add dbg_cnt.
6736         * ifcvt.c (gate_handle_if_conversion): Same.
6737         (gate_handle_if_after_combine): Same.
6738         (gate_handle_if_after_reload): Same.
6739         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6740
6741 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
6742
6743         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6744         line sizes.
6745         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6746
6747 2008-02-26  Jason Merrill  <jason@redhat.com>
6748
6749         PR c++/35315
6750         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
6751         alone if it's the naming decl for the type's main variant.
6752
6753 2008-02-26  Tom Tromey  <tromey@redhat.com>
6754
6755         * system.h (USE_MAPPED_LOCATION): Poison.
6756         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6757         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6758         (make_goto_expr_edges): Likewise.
6759         (remove_bb): Likewise.
6760         (execute_warn_function_return): Likewise.
6761         * basic-block.h (struct edge_def) <goto_locus>: Change type to
6762         location_t.
6763         * c-common.c (fname_decl): Remove old location code.
6764         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6765         location code.
6766         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6767         variant.
6768         (ASM_INPUT_SOURCE_LOCATION): Likewise.
6769         (gen_rtx_ASM_INPUT): Likewise.
6770         (gen_rtx_ASM_INPUT_loc): Likewise.
6771         (get_rtx_asm_OPERANDS): Remove.
6772         * cfglayout.c (insn_locators_alloc): Remove old location code.
6773         (set_curr_insn_source_location): Likewise.
6774         (curr_insn_locator): Likewise.
6775         * print-tree.c (print_node): Remove old location code.
6776         * tree-mudflap.c (mf_varname_tree): Remove old location code.
6777         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6778         * cfgexpand.c (expand_gimple_cond_expr): Don't use
6779         location_from_locus.
6780         (construct_exit_block): Remove old location code.
6781         * emit-rtl.c (force_next_line_note): Remove old location code.
6782         * profile.c (branch_prob): Remove old location code.
6783         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6784         LOC_LINE): Remove old-location variants.
6785         * langhooks.c (lhd_print_error_function): Remove old location
6786         code.
6787         * configure, config.in: Rebuilt.
6788         * configure.ac (--enable-mapped-location): Remove.
6789         * c-decl.c (c_init_decl_processing): Remove old location code.
6790         (finish_function): Likewise.
6791         * recog.c (decode_asm_operands): Remove old location code.
6792         * c-pch.c (c_common_read_pch): Remove old location code.
6793         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6794         variants.
6795         * gimple-low.c (lower_function_body): Remove old location code.
6796         * toplev.c (unknown_location): Remove.
6797         (push_srcloc): Remove old-location variant.
6798         (process_options): Remove old location code.
6799         (lang_dependent_init): Likewise.
6800         * input.h (UNKNOWN_LOCATION): Move definition.
6801         (location_t): Undeprecate.
6802         (source_locus): Remove.
6803         (location_from_locus): Remove.
6804         (struct location_s): Remove.
6805         Remove all old-location code.
6806         (input_line, input_filename): Remove.
6807         * final.c (final_scan_insn): Remove old location code.
6808         * diagnostic.c (diagnostic_build_prefix): Remove
6809         USE_MAPPED_LOCATION test.
6810         * tree.h (gimple_stmt) <locus>: Now a location_t.
6811         (tree_exp) <locus>: Likewise.
6812         (DECL_IS_BUILTIN): Remove old-location variant.
6813         (annotate_with_file_line, annotate_with_locus): Likewise.
6814         (expr_locus, set_expr_locus): Update.
6815         * tree.c (build1_stat): Remove old location code.
6816         (last_annotated_node): Remove.
6817         (annotate_with_file_line): Remove old-location variant.
6818         (annotate_with_locus): Likewise.
6819         (expr_location): Remove old location code.
6820         (set_expr_location): Likewise.
6821         (expr_has_location): Likewise.
6822         (expr_locus): Likewise.
6823         (set_expr_locus): Likewise.
6824         (expr_filename): Don't use location_from_locus.
6825         (expr_lineno): Likewise.
6826         * rtl-error.c (location_for_asm): Remove old location code.
6827         * c-lex.c (cb_line_change): Remove old location code.
6828         (fe_file_change): Likewise.
6829         (cb_def_pragma): Likewise.
6830         (c_lex_with_flags): Likewise.
6831         * gengtype.c (do_typedef): Don't special-case location types.
6832         (define_location_structures): Remove.
6833         (main): Don't call define_location_structures.
6834         * tree-pretty-print.c (dump_implicit_edges): Remove old location
6835         code.
6836
6837 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6838
6839         PR 26264
6840         * builtins.def (BUILT_IN_STDARG_START): Remove.
6841         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6842         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6843         * tree-inline.c (inline_forbidden_p_1): Likewise.
6844         
6845 2008-02-26  Richard Guenther  <rguenther@suse.de>
6846
6847         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6848         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6849         (lookup_decl_from_uid): Declare.
6850         (remove_decl_from_map): Likewise.
6851         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6852         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6853         (decl_for_uid_map): New global hashtable mapping DECL_UID
6854         to the decl tree.
6855         (init_ttree): Allocate it.
6856         (insert_decl_to_uid_decl_map): New helper function.
6857         (make_node_stat): Insert new decls into the map.
6858         (copy_node_stat): Likewise.
6859         (lookup_decl_from_uid): New function.
6860         (remove_decl_from_map): Likewise.
6861         (print_decl_for_uid_map_statistics): New helper.
6862         (dump_tree_statistics): Call it.
6863
6864         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6865         (referenced_var_iterator): Adjust.
6866         (FOR_EACH_REFERENCED_VAR): Adjust.
6867         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6868         (num_referenced_vars): Adjust.
6869         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6870         (first_referenced_var): Remove.
6871         (end_referenced_vars_p): Likewise.
6872         (next_referenced_var): Likewise.
6873         (referenced_var_iterator_set): New helper function.
6874         * tree-dfa.c (referenced_var_lookup): Adjust.
6875         (referenced_var_check_and_insert): Likewise.
6876         (remove_referenced_var): Likewise.
6877         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6878         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6879         (verify_call_clobbering): Likewise.
6880         (verify_memory_partitions): Likewise.
6881         (init_tree_ssa): Allocate bitmap instead of hashtable for
6882         referenced_vars.
6883         (delete_tree_ssa): Adjust.
6884         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6885         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6886         (compute_tag_properties): Likewise.
6887         (set_initial_properties): Likewise.
6888         (find_partition_for): Likewise.
6889         (update_reference_counts): Likewise.
6890         (dump_may_aliases_for): Likewise.
6891         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6892         (add_call_clobber_ops): Likewise.
6893         (add_call_read_ops): Likewise.
6894         (get_asm_expr_operands): Likewise.
6895         * tree-into-ssa.c (dump_decl_set): Likewise.
6896         (update_ssa): Likewise.
6897         * tree-sra.c (scan_function): Likewise.
6898         (decide_instantiations): Likewise.
6899         (scalarize_parms): Likewise.
6900         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6901         (dsa_named_for): Likewise.
6902         * tree-ssa-structalias.c (update_alias_info): Likewise.
6903         (merge_smts_into): Likewise.
6904
6905 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6906
6907         PR 34351
6908         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
6909         * c-opts.c (c_common_handle_option): Wall enables
6910         Wvolatile-register-var.
6911         * common.opt: Move Wvolatile-register-var to...
6912         * c.opt: ...here.
6913         
6914 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6915
6916         * common.opt (Wlarger-than=): New.
6917         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
6918         -Wlarger-than=.
6919         * opts.c (common_handle_option): Handle -Wlarger-than=.
6920         * optc-gen.awk: Likewise.
6921         * opth-gen.awk: Likewise.
6922         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
6923         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6924         
6925 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6926
6927         * c-common.c (match_case_to_enum_1): Add appropriate
6928         OPT_W* parameter to warning.
6929         (c_do_switch_warnings): Likewise.
6930         * c-typeck.c (warning_init): Add one more parameter following
6931         'warning' function.
6932         (push_init_level): Update call to warning_init.
6933         (pop_init_level): Likewise.
6934         (add_pending_init): Likewise.
6935         (output_init_element: Likewise.
6936
6937 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6938
6939         PR 28322
6940         * toplev.c (toplev_main): If there are warnings or error, print
6941         errors for ignored options.
6942         * opts.c (ignored_options): New static variable.
6943         (postpone_unknown_option_error): New.
6944         (print_ignored_options): New.
6945         (handle_option): Postpone errors for unknown -Wno-* options.
6946         * opts.h (print_ignored_options): Declare.
6947         
6948 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6949
6950         * config/mips/mips.md (loadgp_blockage, blockage): Change type
6951         to "ghost".
6952
6953 2008-02-25  Richard Guenther  <rguenther@suse.de>
6954
6955         Revert:
6956         2008-02-25  Richard Guenther  <rguenther@suse.de>
6957
6958         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6959         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6960         (lookup_decl_from_uid): Declare.
6961         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6962         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6963         (decl_for_uid_map): New global hashtable mapping DECL_UID
6964         to the decl tree.
6965         (init_ttree): Allocate it.
6966         (insert_decl_to_uid_decl_map): New helper function.
6967         (make_node_stat): Insert new decls into the map.
6968         (copy_node_stat): Likewise.
6969         (lookup_decl_from_uid): New function.
6970         (print_decl_for_uid_map_statistics): New helper.
6971         (dump_tree_statistics): Call it.
6972
6973         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6974         (referenced_var_iterator): Adjust.
6975         (FOR_EACH_REFERENCED_VAR): Adjust.
6976         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6977         (num_referenced_vars): Adjust.
6978         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6979         (first_referenced_var): Remove.
6980         (end_referenced_vars_p): Likewise.
6981         (next_referenced_var): Likewise.
6982         (referenced_var_iterator_set): New helper function.
6983         * tree-dfa.c (referenced_var_lookup): Adjust.
6984         (referenced_var_check_and_insert): Likewise.
6985         (remove_referenced_var): Likewise.
6986         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6987         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6988         (verify_call_clobbering): Likewise.
6989         (verify_memory_partitions): Likewise.
6990         (init_tree_ssa): Allocate bitmap instead of hashtable for
6991         referenced_vars.
6992         (delete_tree_ssa): Adjust.
6993         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6994         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6995         (compute_tag_properties): Likewise.
6996         (set_initial_properties): Likewise.
6997         (find_partition_for): Likewise.
6998         (update_reference_counts): Likewise.
6999         (dump_may_aliases_for): Likewise.
7000         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7001         (add_call_clobber_ops): Likewise.
7002         (add_call_read_ops): Likewise.
7003         (get_asm_expr_operands): Likewise.
7004         * tree-into-ssa.c (dump_decl_set): Likewise.
7005         (update_ssa): Likewise.
7006         * tree-sra.c (scan_function): Likewise.
7007         (decide_instantiations): Likewise.
7008         (scalarize_parms): Likewise.
7009         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7010         (dsa_named_for): Likewise.
7011         * tree-ssa-structalias.c (update_alias_info): Likewise.
7012         (merge_smts_into): Likewise.
7013
7014 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
7015
7016         PR fortran/29549
7017         * doc/invoke.texi (-fcx-limited-range): Document new option.
7018         * toplev.c (process_options): Handle -fcx-fortran-rules.
7019         * common.opt: Add documentation for -fcx-fortran-rules.
7020
7021 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
7022
7023         PR c/35162
7024         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
7025         actual behaviour and C99.
7026         
7027 2008-02-26  Ben Elliston  <bje@au.ibm.com>
7028
7029         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
7030         (ASM_CPU_POWER6_SPEC): Likewise.
7031         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
7032         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
7033         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
7034
7035 2008-02-25  Richard Guenther  <rguenther@suse.de>
7036
7037         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7038         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7039         (lookup_decl_from_uid): Declare.
7040         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7041         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7042         (decl_for_uid_map): New global hashtable mapping DECL_UID
7043         to the decl tree.
7044         (init_ttree): Allocate it.
7045         (insert_decl_to_uid_decl_map): New helper function.
7046         (make_node_stat): Insert new decls into the map.
7047         (copy_node_stat): Likewise.
7048         (lookup_decl_from_uid): New function.
7049         (print_decl_for_uid_map_statistics): New helper.
7050         (dump_tree_statistics): Call it.
7051
7052         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7053         (referenced_var_iterator): Adjust.
7054         (FOR_EACH_REFERENCED_VAR): Adjust.
7055         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7056         (num_referenced_vars): Adjust.
7057         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7058         (first_referenced_var): Remove.
7059         (end_referenced_vars_p): Likewise.
7060         (next_referenced_var): Likewise.
7061         (referenced_var_iterator_set): New helper function.
7062         * tree-dfa.c (referenced_var_lookup): Adjust.
7063         (referenced_var_check_and_insert): Likewise.
7064         (remove_referenced_var): Likewise.
7065         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7066         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7067         (verify_call_clobbering): Likewise.
7068         (verify_memory_partitions): Likewise.
7069         (init_tree_ssa): Allocate bitmap instead of hashtable for
7070         referenced_vars.
7071         (delete_tree_ssa): Adjust.
7072         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7073         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7074         (compute_tag_properties): Likewise.
7075         (set_initial_properties): Likewise.
7076         (find_partition_for): Likewise.
7077         (update_reference_counts): Likewise.
7078         (dump_may_aliases_for): Likewise.
7079         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7080         (add_call_clobber_ops): Likewise.
7081         (add_call_read_ops): Likewise.
7082         (get_asm_expr_operands): Likewise.
7083         * tree-into-ssa.c (dump_decl_set): Likewise.
7084         (update_ssa): Likewise.
7085         * tree-sra.c (scan_function): Likewise.
7086         (decide_instantiations): Likewise.
7087         (scalarize_parms): Likewise.
7088         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7089         (dsa_named_for): Likewise.
7090         * tree-ssa-structalias.c (update_alias_info): Likewise.
7091         (merge_smts_into): Likewise.
7092
7093 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
7094
7095         PR target/35258
7096         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
7097         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
7098         * alias.h (nonoverlapping_memrefs_p): Likewise.
7099
7100 2008-02-25  Jan Beulich  <jbeulich@novell.com>
7101
7102         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
7103         * config/i386/netware-libgcc.exp: Add __bswap?i2,
7104         __emultls_get_address, __emultls_register_common,
7105         __floatundi?f, and _Unwind_GetIPInfo.
7106         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
7107         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
7108         (gen_regparm_prefix): Likewise.
7109         (i386_nlm_encode_section_info): Sync with
7110         config/i386/winnt.c:i386_pe_encode_section_info().
7111         (i386_nlm_maybe_mangle_decl_assembler_name): New.
7112         i386_nlm_mangle_decl_assembler_name): New.
7113         (netware_override_options): New.
7114         * config/i386/netware.h (netware_override_options): Declare.
7115         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
7116         (i386_nlm_mangle_decl_assembler_name): Declare.
7117         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
7118
7119 2008-02-25  Ben Elliston  <bje@au.ibm.com>
7120
7121         PR other/32948
7122         * c-decl.c (grokdeclarator): Remove unused local variables
7123         `typedef_type' and `type_as_written'.
7124         * bb-reorder.c
7125         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
7126         unused local variable `has_hot_blocks'.
7127         (fix_crossing_conditional_branches): Remove unused local variable
7128         `prev_bb'.
7129         
7130 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
7131
7132         PR middle-end/19984
7133         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
7134         using DEF_C99_BUILTIN.
7135         (BUILT_IN_NANF): Ditto.
7136         (BUILT_IN_NANL): Ditto.
7137
7138 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
7139             Revital Eres  <eres@il.ibm.com>
7140
7141         * modulo-sched.c (calculate_must_precede_follow): Address TODO
7142         regarding the order of two dependent insns in the same row.
7143
7144 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
7145
7146         * stor-layout.c (layout_decl): Do not bump the alignment of a
7147         bit-field to more than byte alignment if it is packed.
7148
7149 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
7150
7151         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
7152         e300c2 and e300c3.
7153
7154 2008-02-24  Diego Novillo  <dnovillo@google.com>
7155
7156         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
7157
7158         PR 33738
7159         * tree-vrp.c (vrp_evaluate_conditional): With
7160         -Wtype-limits, emit a warning when comparing against a
7161         constant outside the natural range of OP0's type.
7162         * c.opt (Wtype-limits): Move ...
7163         * common.opt (Wtype-limits): ... here.
7164
7165 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
7166
7167         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
7168         * config/rs6000/e300c2c3.md: New file.
7169         * config/rs6000/rs6000.c (processor_costs): Add new costs for
7170         e300c2 and e300c3.
7171         (rs6000_override_options): Add e300c2 and e300c3 cases to
7172         processor_target_table. Do not allow usage of Altivec or Spe
7173         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
7174         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
7175         * config/rs6000/rs6000.h (processor_type): Add
7176         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
7177         (ASM_CPU_SPEC): Add e300c2 and e300c3.
7178         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
7179         and ppce300c3. Include e300c2c3.md.
7180
7181 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
7182
7183         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
7184         instead of TARGET_STRICT_ALIGN.
7185
7186 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
7187
7188         * explow.c (memory_address): Assert that the generated address is
7189         valid.
7190
7191 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7192
7193         PR target/25477
7194         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
7195         * config/darwin-ppc-ldouble-patch.def: New file.
7196         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
7197         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
7198         SUBTARGET_INIT_BUILTINS if defined.
7199         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
7200         New functions.
7201
7202 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7203
7204         PR rtl-opt/33512
7205         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
7206         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
7207
7208 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7209
7210         PR pch/35027
7211         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
7212         file" warning condtional on -Winvalid-PCH.
7213
7214 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
7215
7216         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
7217
7218 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
7219
7220         PR target/22076
7221         PR target/34256 
7222         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
7223         prevent reload from using MMX registers.
7224         (*mov<mode>_internal): Ditto.
7225         (*movv2sf_internal_rex64): Ditto.
7226         (*movv2sf_internal): Ditto.
7227
7228 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7229
7230         PR documentation/31569
7231         * doc/install.texi2html: Use makeinfo --no-number-sections.
7232
7233 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7234
7235         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
7236         ensure that we can address an entire entity > 8 bytes.  Don't
7237         generate reg+reg addressing for such data.
7238
7239 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7240
7241         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
7242         strings when optimizing for size, unless the target cares about
7243         alignment.
7244
7245 2008-02-22  Tom Tromey  <tromey@redhat.com>
7246
7247         * regclass.c (current_pass): Remove declaration.
7248
7249 2008-02-22  Anatoly Sokolov <aesok@post.ru>
7250
7251         * config/avr/libgcc.S (__RAMPZ__): Define.
7252         (__do_copy_data): Add for devices with 128KB code memory.
7253
7254 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7255
7256         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
7257         Use spe_abi.
7258         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7259
7260 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
7261
7262         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
7263         GENNONACR_REGS.
7264
7265 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7266
7267         PR c/19999
7268         * c-typeck.c (build_binary_op): Warn about floating point
7269         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
7270
7271 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
7272
7273         PR target/34526
7274         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
7275         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
7276         add vrsave.
7277         (rs6000_override_options): Set altivec_abi as default, not override,
7278         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
7279         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
7280         is used; use new member spe_abi.
7281         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
7282         spe_abi and altivec_abi.
7283
7284 2008-02-22  Tomas Bily  <tbily@suse.cz>
7285
7286         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
7287
7288 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7289
7290         PR bootstrap/35273
7291         * config.build (build_file_translate): Set to `CMD //c' only if
7292         it works.
7293         * Makefile.in (build_file_translate): Improve comment.
7294
7295 2008-02-21  Jan Hubicka  <jh@suse.cz>
7296
7297         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
7298         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
7299         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
7300
7301 2008-02-21  Michael Matz  <matz@suse.de>
7302
7303         PR target/35264
7304         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
7305
7306 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
7309         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
7310         as insn constraint.
7311         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
7312         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
7313         SSE_VEC_FLOAT_MODE_P as insn constraint.
7314         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
7315         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
7316         sse4a_movntdf using MODEF mode iterator.
7317         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
7318         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
7319         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
7320         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
7321         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
7322         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
7323         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
7324
7325 2008-02-21  Richard Guenther  <rguenther@suse.de>
7326
7327         * tree.def (PAREN_EXPR): New tree code.
7328         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
7329         and PAREN_EXPR.
7330         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
7331         * expr.c (expand_expr_real_1): Likewise.
7332         * tree-inline.c (estimate_num_insns_1): Likewise.
7333         * tree-complex.c (expand_complex_move): Likewise.
7334         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
7335         as plain x.
7336
7337 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7338
7339         PR target/35225
7340         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
7341
7342 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7343
7344         PR target/35190
7345         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7346
7347         * config/sh/sh.c (find_barrier): Don't go past
7348         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7349
7350 2008-02-20  DJ Delorie  <dj@redhat.com>
7351
7352         * config/h8300/h8300.md (insv): Force source operand to be a register.
7353
7354         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7355         as a jump, not as a plain insn.
7356         
7357 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
7358
7359         * doc/invoke.texi (Warning Options): Add new option
7360         -Wframe-larger-than=.
7361         (-Wframe-larger-than): Document.
7362
7363         * flags.h (warn_frame_larger_than, frame_larger_than_size):
7364         Add declarations for new option variables.
7365
7366         * final.c (final_start_function): Check the frame size
7367         before emission and issue a Wframe-larger-than warning.
7368
7369         * opts.c (warn_frame_larger_than, frame_larger_than_size):
7370         Add definitions for new option variables.
7371         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7372
7373         * common.opt (Wframe-larger-than=): New option.
7374
7375 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7376
7377         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7378         (<sse>_div<mode>3): Ditto.
7379         (<sse>_vmdiv<mode>3): Ditto.
7380         (<sse>_vmsqrt<mode>2): Ditto.
7381         (*smax<mode>3): Ditto.
7382         (sse5_frcz<mode>2): Ditto.
7383         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
7384         as insn constraint.
7385
7386 2008-02-20  Richard Guenther  <rguenther@suse.de>
7387
7388         PR middle-end/35265
7389         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7390         be happy with INTEGRAL_TYPE_P.
7391
7392 2008-02-20  Richard Guenther  <rguenther@suse.de>
7393
7394         * fold-const.c (split_tree): Associate floatig-point expressions
7395         if flag_associative_math is set.
7396
7397 2008-02-20  Richard Guenther  <rguenther@suse.de>
7398
7399         * tree.h (fold_real_zero_addition_p): Declare.
7400         * fold-const.c (fold_real_zero_addition_p): Export.
7401         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7402         floating-point operations with zero and one.
7403
7404 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
7405
7406         * doc/install.texi: Correct references to CFLAGS, replacing them
7407         with BOOT_CFLAGS.  Document flags used during bootstrap for
7408         target libraries.
7409                                 
7410 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7411
7412         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7413         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7414         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7415         insn constraint.
7416         (smin<mode>3): Ditto from similar patterns.
7417         (smax<mode>3): Ditto.
7418         (*ieee_smin<mode>3): Ditto.
7419         (*ieee_smax<mode>3): Ditto.
7420         * config/i386/sse.md (sse): New mode attribute.
7421         (mov<mode>): Macroize expander from movv4sf and movv2df using
7422         SSEMODEF2P mode iterator.
7423         (<sse>_movnt<mode>): Ditto from similar patterns. Use
7424         SSE_VEC_FLOAT_MODE_P as insn constraint.
7425         (storent<mode>): Ditto.
7426         (storent<mode>): Macroize expander from storentsf and storentdf using
7427         MODEF mode iterator.
7428         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7429         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7430         (abs<mode>2): Ditto from similar patterns.
7431         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7432         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7433         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7434         (<sse>_vmsqrt<mode>2): Ditto.
7435         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7436         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7437         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7438         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7439         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7440         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7441         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7442         insn constraint.
7443         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7444         iterator and SSE_FLOAT_MODE_P as insn constraint.
7445         (<sse>_ucomi): Ditto from similar patterns.
7446         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7447         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7448         SSE_VEC_FLOAT_MODE_P as insn constraint.
7449         (vcond<mode>): Ditto from similar patterns.
7450         (and<mode>3, *and<mode>3): Ditto.
7451         (<sse>_nand<mode>3): Ditto.
7452         (ior<mode>3, *ior<mode>3): Ditto.
7453         (xor<mode>3, *xor<mode>3): Ditto.
7454         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7455         iterator and SSE_FLOAT_MODE_P as insn constraint.
7456         (*nand<mode>3): Ditto from similar patterns.
7457         (*ior<mode>3): Ditto.
7458         (*xor<mode>3): Ditto.
7459
7460 2008-02-20  Ira Rosen  <irar@il.ibm.com>
7461
7462         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7463         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7464         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7465
7466 2008-02-19  Jan Hubicka  <jh@suse.cz>
7467
7468         * predict.c (tree_bb_level_predictions): Remove variable next
7469         mistakely introduced by previous commit.
7470
7471 2008-02-19  Jan Hubicka  <jh@suse.cz>
7472
7473         * predict.c (predict_paths_leading_to): Rewrite.
7474         (predict_paths_for_bb): New.
7475         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7476
7477 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7478
7479         PR bootstrap/35218
7480         * Makefile.in (build_file_translate): New.
7481         (gcc-vers.texi): Use it for translating $(abs_srcdir).
7482         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7483         * configure.ac (build_file_translate): Substitute it.
7484         * configure: Regenerate.
7485
7486 2008-02-19  Jan Hubicka  <jh@suse.cz>
7487
7488         PR rtl-optimization/34408
7489         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7490         invalid sharing.
7491
7492 2008-02-19  Jan Hubicka  <jh@suse.cz>
7493
7494         PR middle-end/28779
7495         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7496         call_expr.
7497
7498 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7499
7500         PR Ada/35186
7501         * config/i386/i386-modes.def: Revert the last DI alignment
7502         change until Ada people can look into it.
7503
7504 2008-02-19  Nick Clifton  <nickc@redhat.com>
7505
7506         * opts.c (print_specific_help): Fix typo in --help text.
7507
7508 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
7509
7510         PR target/35239
7511         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7512         32-bit inline asm without asm alternatives for host GCC < 3.0.
7513
7514 2008-02-19  Richard Guenther  <rguenther@suse.de>
7515
7516         PR tree-optimization/34989
7517         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7518         Allow propagation to INDIRECT_REF if we can simplify only.
7519
7520 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7521
7522         * c-common.c (warn_for_collisions_1): Use appropriate option when
7523         warning.
7524
7525 2008-02-19  Nick Clifton  <nickc@redhat.com>
7526
7527         PR other/31349
7528         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
7529         (handle_options): Fix indentation.
7530         (print_filtered_help): If no language-specific options were
7531         displayed tell the user how to list all the options supported by
7532         the language's front-end.
7533         (print_specific_help): Fix indentation and remove duplicate line.
7534         (common_handle_option): Handle the -v option.
7535         For --help enable the display of undocumented options if the -v
7536         switch has been included on the command line.
7537         For --help= check for overlaps in the arguments between the option
7538         classes and the language names and issue a warning when they
7539         cannot be disambiguated.
7540         * c.opt (v): Pass on to the common option handler.
7541
7542 2008-02-19  Revital Eres  <eres@il.ibm.com> 
7543
7544         * modulo-sched.c (sms_schedule): Change dump message when
7545         create_ddg function fails.
7546         (try_scheduling_node_in_cycle): Rename row to cycle.
7547         (print_partial_schedule): Rename CYCLE to ROW.
7548
7549 2008-02-19  Christian Bruel  <christian.bruel@st.com>
7550             Zdenek Dvorak  <ook@ucw.cz>
7551
7552         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7553
7554 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7555
7556         PR target/33555
7557         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7558         (*x86_movdicc_0_m1_se): Ditto.
7559
7560 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7561
7562         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7563         (CMPtype): Define as __gcc_CMPtype.
7564         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7565         (CMPtype): Define as __gcc_CMPtype.
7566
7567 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
7568
7569         Support valgrind 3.3 for --enable-checking=valgrind.
7570         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7571         here.
7572         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7573         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7574         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7575         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7576         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7577         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7578         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7579         respectively.
7580         * ggc-zone.c: Similar.
7581         * ggc-page.c: Similar.
7582
7583 2008-02-19  Paul Brook  <paul@codesourcery.com>
7584
7585         PR target/35071
7586         * config/arm/ieee754-df.S: Fix do_it typo.
7587         * config/arm/ieee754-sf.S: Fix do_it typo.
7588
7589 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7590
7591         PR target/35189
7592         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7593         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7594         (OPTION_MASK_ISA_SSE_SET): Likewise.
7595         (OPTION_MASK_ISA_SSE2_SET): Likewise.
7596         (OPTION_MASK_ISA_SSE3_SET): Likewise.
7597         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7598         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7599         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7600         (OPTION_MASK_ISA_SSE4_SET): Likewise.
7601         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7602         (OPTION_MASK_ISA_SSE5_SET): Likewise.
7603         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7604         (OPTION_MASK_ISA_MMX_UNSET): Updated.
7605         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7606         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7607         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7608         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7609         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7610         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7611         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7612         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7613         (OPTION_MASK_ISA_SSE4): Removed.
7614         (ix86_handle_option): Turn on bits in ix86_isa_flags and
7615         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
7616         (override_options): Don't turn on implied SSE/MMX bits in
7617         ix86_isa_flags.
7618
7619 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7620
7621         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7622         32bit host.
7623
7624 2008-02-18  Joey Ye  <joey.ye@intel.com>
7625
7626         PR middle-end/34921
7627         * tree-nested.c (insert_field_into_struct): Set type alignment
7628         to field alignment if the former is less than the latter.
7629
7630 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
7631
7632         * BASE-VER: Set to 4.4.0.
7633
7634 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7635
7636         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7637         * doc/cfg.texi: Likewise.
7638         * doc/extend.texi: Likewise.
7639         * doc/gty.texi: Likewise.
7640         * doc/invoke.texi: Likewise.
7641         * doc/loop.texi: Likewise.
7642         * doc/md.texi: Likewise.
7643         * doc/passes.texi: Likewise.
7644         * doc/rtl.texi: Likewise.
7645         * doc/sourcebuild.texi: Likewise.
7646         * doc/tm.texi: Likewise.
7647         * doc/tree-ssa.texi: Likewise.
7648
7649 2008-02-17  Richard Guenther  <rguenther@suse.de>
7650
7651         PR middle-end/35227
7652         * tree-complex.c (init_parameter_lattice_values): Handle parameters
7653         without default definition.
7654
7655 2008-02-17  Richard Guenther  <rguenther@suse.de>
7656
7657         PR tree-optimization/35231
7658         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7659         if A | B != 1.
7660
7661 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
7662
7663         Revert:
7664         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
7665         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7666         libgcc_cmp_return mode.
7667
7668 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7669
7670         PR c/28368
7671         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7672
7673 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
7674
7675         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7676         multilibs.
7677
7678 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7679
7680         * doc/c-tree.texi: Use `@.' where appropriate.
7681         * doc/extend.texi: Likewise.
7682         * doc/install.texi: Likewise.
7683         * doc/invoke.texi: Likewise.
7684         * doc/loop.texi: Likewise.
7685         * doc/makefile.texi: Likewise.
7686         * doc/md.texi: Likewise.
7687         * doc/passes.texi: Likewise.
7688         * doc/standards.texi: Likewise.
7689         * doc/tm.texi: Likewise.
7690
7691 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7692
7693         PR middle-end/35196
7694         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7695         in entry_bb.
7696         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7697         rather than in entry_bb.
7698
7699 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7700
7701         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7702         libgcc_cmp_return mode.
7703
7704 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7705
7706         PR middle-end/35130
7707         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7708         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7709
7710 2008-02-15  Richard Guenther  <rguenther@suse.de>
7711             Zdenek Dvorak  <ook@ucw.cz>
7712
7713         PR tree-optimization/35164
7714         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7715         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7716         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7717         Only propagate addresses which do not have abnormal SSA_NAMEs
7718         in their operands.
7719
7720 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
7721
7722         PR target/35088
7723         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7724
7725 2008-02-15  Jan Hubicka  <jh@suse.cz>
7726
7727         PR middle-end/35149
7728         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7729
7730 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7731
7732         PR middle-end/34621
7733         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7734         when calculating alignment_pad.
7735
7736 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7737
7738         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7739         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7740         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7741         and STACK_BOUNDARY define.
7742
7743 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
7744
7745         PR preprocessor/35061
7746         * c-pragma.c (handle_pragma_pop_macro): Check that
7747         pushed_macro_table has been allocated.
7748
7749 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7750
7751         PR middle-end/35136
7752         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7753         (force_gimple_operand): Likewise.
7754         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7755         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7756         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7757         (find_interesting_uses_address): Check addressability and alignment
7758         of the base expression only after substituting bases of IVs into it.
7759
7760 2008-02-14  Michael Matz  <matz@suse.de>
7761
7762         PR target/34930
7763         * function.c (instantiate_virtual_regs_in_insn): Reload address
7764         before falling back to reloading the whole operand.
7765
7766 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7767
7768         * config/s390/s390.c (s390_mainpool_start): Emit the pool
7769         before the first section switch note.
7770
7771 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7772
7773         * doc/bugreport.texi: Update copyright years.
7774         * doc/c-tree.texi: Likewise.
7775         * doc/cfg.texi: Likewise.
7776         * doc/cpp.texi: Likewise.
7777         * doc/cppinternals.texi: Likewise.
7778         * doc/fragments.texi: Likewise.
7779         * doc/frontends.texi: Likewise.
7780         * doc/gcc.texi: Likewise.
7781         * doc/gty.texi: Likewise.
7782         * doc/hostconfig.texi: Likewise.
7783         * doc/implement-c.texi: Likewise.
7784         * doc/libgcc.texi: Likewise.
7785         * doc/loop.texi: Likewise.
7786         * doc/makefile.texi: Likewise.
7787         * doc/options.texi: Likewise.
7788         * doc/passes.texi: Likewise.
7789         * doc/rtl.texi: Likewise.
7790         * doc/sourcebuild.texi: Likewise.
7791         * doc/standards.texi: Likewise.
7792         * doc/tree-ssa.texi: Likewise.
7793         * doc/trouble.texi: Likewise.
7794
7795         * doc/extend.texi: Use @: or add comma where appropriate.
7796         * doc/invoke.texi: Likewise.
7797         * doc/tm.texi: Likewise.
7798
7799 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
7800
7801         PR target/34393
7802         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7803         to a reg.
7804
7805 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
7806
7807         * doc/md.texi (clz, ctz): Add reference.
7808         * doc/rtl.texi (clz, ctz): Likewise.
7809
7810 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7811
7812         PR other/35148
7813         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7814         srcdir.
7815
7816 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
7817
7818         * config/s390/s390.c (struct constant_pool): New field
7819         emit_pool_after added.
7820         (s390_mainpool_start): Set the emit_pool_after flag according
7821         to the section switch notes.
7822         (s390_mainpool_finish): Consider emit_pool_after when emitting
7823         the literal pool at the end of the function.
7824         (s390_chunkify_start): Force literal pool splits at section
7825         switch notes.
7826
7827 2008-02-13  Michael Matz  <matz@suse.de>
7828
7829         PR debug/35065
7830         * var-tracking.c (clobber_variable_part): Correctly traverse the
7831         list.
7832
7833 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7834
7835         PR 29673
7836         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7837         Add -fdump-ipa-inline.
7838         * tree-dump.c (dump_files): Remove tree-inlined dump.
7839         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7840         
7841 2008-02-12  Richard Guenther  <rguenther@suse.de>
7842
7843         PR tree-optimization/35171
7844         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7845         default defs.
7846
7847 2008-02-12  Richard Guenther  <rguenther@suse.de>
7848
7849         PR middle-end/35163
7850         * fold-const.c (fold_widened_comparison): Use get_unwidened in
7851         value-preserving mode.  Disallow final truncation.
7852
7853 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7854
7855         PR middle-end/35136
7856         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7857         code from here to...
7858         (force_gimple_operand): ...here.
7859
7860 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
7861
7862         PR c++/35144
7863         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7864         non-compatible pointers.
7865         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7866         different FIELD_DECLs, try harder by comparing field offsets, sizes
7867         and types.
7868
7869         PR inline-asm/35160
7870         * function.c (match_asm_constraints_1): Don't replace the same input
7871         multiple times.
7872
7873 2008-02-12  Anatoly Sokolov <aesok@post.ru>
7874
7875         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7876         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7877         (expand_epilogue): Restore RAMPZ register.
7878         * config/avr/avr.md (RAMPZ_ADDR): New constant.
7879
7880 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
7881
7882         * config/i386/cygwin.asm: (__alloca): Correct calling
7883         convention and alignment.
7884         (__chkstk): Force 8 byte stack alignment.
7885
7886 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
7887             Richard Guenther  <rguenther@suse.de>
7888
7889         PR tree-optimization/33992
7890         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
7891         the zero we compare against.
7892
7893 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7894
7895         PR libfortran/35063
7896         * gthr-win32.h (__gthread_mutex_destroy_function): New function
7897         to CloseHandle after unlocking to prevent accumulation of handle
7898         count.
7899
7900 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7901
7902         PR middle_end/34150
7903         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
7904         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
7905         and update LABEL_NUSES during and after reload.
7906
7907 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
7908
7909         PR middle-end/34627
7910         * combine.c (simplify_if_then_else): Make sure the comparison is
7911         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
7912
7913 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7914
7915         PR bootstrap/35051
7916         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
7917         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
7918         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
7919         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
7920         * tree.h (get_type_static_bounds): Likewise.
7921
7922 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7923
7924         * doc/invoke.texi (Option Summary, C++ Dialect Options)
7925         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7926         Make -Wfoo language annotations match what the compiler outputs.
7927
7928 2008-02-08  Sa Liu  <saliu@de.ibm.com>
7929
7930         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
7931         intrinsics spu_convts, spu_convtu, spu_convtf.
7932
7933 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
7934
7935         * doc/extend.texi (Function Attributes) <noinline>: Mention
7936         asm ("") as method to keep calls.
7937
7938 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7939
7940         PR other/32754
7941         * doc/options.texi (Options): Replace references to opts.sh with
7942         optc-gen.awk.
7943         * opts-common.c: Likewise.
7944         * optc-gen.awk: Likewise.
7945         
7946 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7947
7948         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
7949
7950 2008-02-07  Richard Henderson  <rth@redhat.com>
7951
7952         PR rtl-opt/33410
7953         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
7954         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
7955         funny mode.
7956
7957 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
7958
7959         PR tree-optimization/35085
7960         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
7961         for operand entry oe2 in addition to operand entry oe3 in order to
7962         expose more opportunities for vectorizer sum reduction.
7963
7964 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7965
7966         PR other/35107
7967         * Makefile.in (LIBS): Remove $(GMPLIBS).
7968         (cc1-dummy, cc1): Add $(GMPLIBS).
7969
7970 2008-02-06  Jan Hubicka  <jh@suse.cz>
7971
7972         PR target/23322
7973         * i386.md (moddf_integer): Do not produce partial memory stalls for
7974         targets where it hurts.
7975
7976 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
7977
7978         PR target/35083
7979         * optabs.c (expand_float): Do not check for decimal modes when
7980         expanding unsigned integer through signed conversion.
7981
7982 2008-02-06  Nick Clifton  <nickc@redhat.com>
7983
7984         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
7985         inside the clobber with a match_operand and duplicated operand
7986         number in the constraint.
7987         (ineqbranchsi): Delete redundant comment.
7988
7989 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
7990
7991         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
7992         builtin_define ("__USE_INIT_FINI__").
7993         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
7994         -msx multilibs.
7995         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
7996
7997 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7998
7999         PR documentation/30330
8000         * doc/invoke.texi (C++ Dialect Options)
8001         (Objective-C and Objective-C++ Dialect Options, Warning Options):
8002         For each warning option -Wfoo that allows -Wno-foo, ensure both
8003         -Wfoo and -Wno-foo are listed in the option index.  Fix index
8004         entry of -Wswitch-default, index -Wnormalized= including the
8005         `=', and -Wlarger-than-@var{len} including @var{len}.
8006
8007 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
8008
8009         * config/i386/i386.md (floatunssisf2): Use
8010         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
8011         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
8012         Macroize expander using MODEF mode iterator.
8013
8014 2008-02-05  Diego Novillo  <dnovillo@google.com>
8015
8016         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
8017
8018         PR 33738
8019         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
8020
8021 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8022
8023         PR other/35070
8024         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
8025
8026 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
8027
8028         PR target/35084
8029         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
8030         to indicate if a message should be generated.
8031         (init_cumulative_args): Updated.
8032         (function_value_32): Likewise.
8033
8034 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
8035
8036         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
8037
8038 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
8039
8040         PR target/35083
8041         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
8042         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
8043
8044 2008-02-04  Diego Novillo  <dnovillo@google.com>
8045
8046         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
8047
8048         PR 33738
8049         * tree-vrp.c (vrp_evaluate_conditional): With
8050         -Wtype-limits, emit a warning when comparing against a
8051         constant outside the natural range of OP0's type.
8052
8053 2008-02-04  Richard Guenther  <rguenther@suse.de>
8054
8055         PR middle-end/33631
8056         * expr.c (count_type_elements): Give for unions instead of
8057         guessing.
8058
8059 2008-02-04  Richard Guenther  <rguenther@suse.de>
8060
8061         PR middle-end/35043
8062         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
8063         to TYPE_DOMAINs base type instead of using bitsizetype here.
8064
8065 2008-02-03  Jason Merrill  <jason@redhat.com>
8066
8067         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
8068
8069 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8070
8071         PR other/29972
8072         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
8073         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
8074         (RS/6000 and PowerPC Options): Fix typos and markup.
8075         * doc/passes.texi (Tree-SSA passes): Likewise.
8076
8077 2008-02-02  Michael Matz  <matz@suse.de>
8078
8079         PR target/35045
8080         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
8081         from record_last_reg_set_info.
8082         (record_last_reg_set_info): Take an RTX argument, iterate over all
8083         constituent hardregs.
8084         (record_last_set_info, record_opr_changes): Change calls to
8085         new signature or to record_last_reg_set_info_regno.
8086
8087 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
8088
8089         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
8090
8091 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
8092
8093         PR rtl-optimization/34773
8094         * reg-notes.def (EQUAL): Mention significance of combination of
8095         REG_EQUAL and REG_RETVAL.
8096         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
8097         insn that has a REG_RETVAL.
8098
8099 2008-02-01  Roger Sayle  <roger@eyesopen.com>
8100
8101         PR bootstrap/33781
8102         * configure.ac (--enable-fixed-point): Disable unless explicitly
8103         requested on IRIX.
8104         * configure: Regenerate.
8105
8106 2008-02-01  Richard Guenther  <rguenther@suse.de>
8107
8108         PR other/35042
8109         * invoke.texi (-finline-limit): Remove no longer true parts
8110         of the documentation.  Note that there is no default value.
8111
8112 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
8113             Mark Mitchell  <mark@codesourcery.com>
8114             Ben Elliston  <bje@au.ibm.com>
8115
8116         PR c/29326
8117         * doc/extend.texi (Other Builtins): Document.
8118
8119 2008-01-31  Tom Browder <tom.browder@gmail.com>
8120
8121         * doc/c-tree.texi (Types): Fix grammar.
8122         (Expression trees): Ditto.
8123         * doc/passes.texi (Tree-SSA passes): Ditto.
8124         
8125         * doc/configterms.texi (Configure Terms): Fix typo.
8126         * doc/cpp.texi (Common Predefined Macros): Ditto.
8127         * doc/md.texi (Machine Constraints): Ditto.
8128         
8129         * doc/makefile.texi (Makefile): Add comma.
8130
8131 2008-01-31  Tom Browder  <tom.browder@gmail.com>
8132             Gerald Pfeifer  <gerald@pfeifer.com>
8133         
8134         * doc/sourcebuild.texi (Front End): Remove references to CVS
8135         and CVSROOT/modules.
8136         (Texinfo Manuals): Replace reference to CVS by one to SVN.
8137         (Back End): Remove reference to CVS.
8138
8139 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
8140
8141         PR target/34900
8142         * config/mips/mips.c (gen_load_const_gp): New function, taking a
8143         comment from...
8144         (mips16_gp_pseudo_reg): ...here.
8145         * config/mips/mips.md (load_const_gp): Replace with...
8146         (load_const_gp_<mode>): ...this :P-based insn.
8147
8148 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8149
8150         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
8151         options. Minor fixes.
8152         (-std): Move reference to standards closer to where language
8153         standards are first mentioned.
8154         
8155 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
8156
8157         PR rtl-optimization/34995
8158         * reload.c (alternative_allows_const_pool_ref): Take an rtx
8159         parameter and return a bool.  If the rtx parameter is nonnull,
8160         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
8161         (find_reloads): Update call accordingly.  Pass the new operand
8162         if it needed no address reloads, otherwise pass null.
8163
8164 2008-01-30  Richard Henderson  <rth@redhat.com>
8165
8166         PR c/34993
8167         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
8168         for unbounded arrays.
8169
8170 2008-01-30  Silvius Rus  <rus@google.com>
8171
8172         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
8173
8174 2008-01-30  Jan Hubicka  <jh@suse.cz>
8175
8176         PR target/34982
8177         * i386.c (init_cumulative_args): Use real function declaration when
8178         calling locally.
8179
8180 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8181
8182         PR rtl-optimization/34998
8183         * global.c (build_insn_chain): Treat non-subreg_lowpart
8184         SUBREGs of pseudos as clobbering all the words covered by the
8185         SUBREG, not just all the bytes.
8186         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
8187         original df_ref rather than an extract parameter.
8188         (global_conflicts): Update call accordingly.
8189
8190 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
8191
8192         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
8193         the overflow check to make it easier to read.
8194         (__fixtfdi): Change the type of the ll member in union
8195         long_double to UDItype_x.
8196
8197 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
8198
8199         PR middle-end/34969
8200         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
8201         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
8202         * tree-inline.c (fold_marked_statements): Call
8203         cgraph_update_edges_for_call_stmt if folding a call statement.
8204         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
8205         debug_generic_stmt calls, reset it back afterwards.
8206
8207         PR c/35017
8208         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
8209         static decls.
8210         * c-typeck.c (build_external_ref): Don't pedwarn about
8211         static vars in current function's scope.
8212
8213 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
8214
8215         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
8216
8217 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
8218
8219         PR c/35002
8220         * ipa-struct-reorg.c: Fix spelling.
8221         * params.def: Ditto.
8222
8223 2008-01-29  Richard Guenther  <rguenther@suse.de>
8224
8225         PR middle-end/35006
8226         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
8227         field.
8228         * tree-inline.c (remap_type): Increment remapping_type_depth
8229         around remapping types.
8230         (copy_body_r): Only add referenced variables if they are referenced
8231         from code, not types.
8232
8233 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
8234
8235         PR c++/34055
8236         PR c++/34103
8237         PR c++/34219
8238         PR c++/34606
8239         PR c++/34753
8240         PR c++/34754
8241         PR c++/34755
8242         PR c++/34919
8243         PR c++/34961
8244         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
8245         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
8246
8247 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
8248
8249         PR target/34412
8250         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
8251         pointer for tiny stack.
8252
8253 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
8254
8255         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
8256
8257 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
8258
8259         * config/vx-common.h: Fix typo in comment.
8260
8261 2008-01-28  Ian Lance Taylor  <iant@google.com>
8262
8263         PR c++/34862
8264         PR c++/33407
8265         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8266         coalesce pointers if they have different DECL_NO_TBAA_P values.
8267         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
8268         between variables with different DECL_NO_TBAA_P values.
8269
8270 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
8271
8272         PR 31535
8273         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
8274         are not legitimate small data references on SPE targets.
8275
8276 2008-01-28  David Daney  <ddaney@avtrex.com>
8277
8278         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
8279
8280 2008-01-28  David Daney  <ddaney@avtrex.com>
8281
8282         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
8283
8284 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
8285
8286         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
8287         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
8288         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
8289         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
8290         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8291         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
8292         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
8293         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
8294
8295 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8296
8297         * basic-block.h (condjump_equiv_p): Fix comment.
8298
8299 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8300
8301         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
8302         print_generic_stmt_indented): Fix comment.
8303
8304 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8305
8306         * configure.ac (__stack_chk_fail): Add detecion for availability
8307         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
8308         * configure: Regenerate.
8309
8310 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
8311
8312         PR middle-end/34688
8313         * final.c (output_addr_const): Handle TRUNCATE.
8314
8315 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
8316
8317         PR target/34711
8318         * tree-ssa-loop-ivopts.c (comp_cost): New type.
8319         (zero_cost, infinite_cost): New constants.
8320         (struct cost_pair): Change type of cost to comp_cost.
8321         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
8322         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
8323         New functions.
8324         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
8325         split_address_cost, ptr_difference_cost, difference_cost,
8326         get_computation_cost_at, get_computation_cost,
8327         determine_use_iv_cost_generic, determine_use_iv_cost_address,
8328         determine_use_iv_cost_condition, determine_use_iv_costs,
8329         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
8330         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
8331         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
8332         Change type of cost to comp_cost.
8333         (determine_iv_cost): Increase cost of non-original ivs, instead
8334         of decreasing the cost of original ones.
8335         (get_address_cost): Indicate the complexity of the addressing mode 
8336         in comp_cost.
8337         (try_add_cand_for): Prefer using ivs not specific to some object.
8338         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
8339
8340 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
8341             Janis Johnson  <janis187@us.ibm.com>
8342
8343         PR target/34814
8344         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8345         (TARGET_INSTANTIATE_DECLS): Likewise.
8346         * target.h (expand_to_rtl_hook): New target hook.
8347         (instantiate_decls): Likewise.
8348         * function.c (instantiate_decl): Make non-static.  Rename to...
8349         (instantiate_decl_rtl): ... this.
8350         (instantiate_expr): Use instantiate_decl_rtl.
8351         (instantiate_decls_1): Likewise.
8352         (instantiate_decls): Likewise.
8353         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8354         * function.h (instantiate_decl_rtl): Add prototype.
8355         * cfgexpand.c (target.h): New include.
8356         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8357         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8358         (TARGET_INSTANTIATE_DECLS): Likewise.
8359         (TARGET_INITIALIZER): New target hooks added.
8360         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8361         New prototype.
8362         * config/rs6000/rs6000.c (tree-flow.h): New include.
8363         (machine_function): Add sdmode_stack_slot field.
8364         (rs6000_alloc_sdmode_stack_slot): New function.
8365         (rs6000_instantiate_decls): Likewise.
8366         (rs6000_secondary_memory_needed_rtx): Likewise.
8367         (rs6000_check_sdmode): Likewise.
8368         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8369         (TARGET_INSTANTIATE_DECLS): Likewise.
8370         (rs6000_hard_regno_mode_ok): Allow SDmode.
8371         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
8372         (rs6000_emit_move): Handle SDmode.
8373         (function_arg_advance): Likewise.
8374         (function_arg): Likewise.
8375         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
8376         SDmode var args for 32-bit compiles.
8377         (rs6000_secondary_reload_class): Handle SDmode.
8378         (rs6000_output_function_epilogue): Likewise.
8379         (rs6000_function_value): Simplify if statement.
8380         (rs6000_libcall_value): Likewise.
8381         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8382         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8383         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8384         (movsd_hardfloat): New define_insn.
8385         (movsd_softfloat): Likewise.
8386         (movsd_store): Likewise.
8387         (movsd_load): Likewise.
8388         (extendsddd2): Likewise.
8389         (extendsdtd2): Likewise.
8390         (truncddsd2): Likewise.
8391         (movdd_hardfloat64): Fixup comment.
8392         (UNSPEC_MOVSD_LOAD): New constant.
8393         (UNSPEC_MOVSD_STORE): Likewise.
8394
8395 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
8396
8397         PR c++/34965
8398         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8399         TRUTH_XOR_EXPR.
8400         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8401         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8402         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8403         and TRUTH_XOR_EXPR.
8404
8405 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
8406
8407         PR target/34794
8408         * config.gcc: Separate AIX 5.3 from AIX 6.1.
8409         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8410         __LONGDOUBLE128 too.
8411         * config/rs6000/aix61.h: New file.
8412
8413 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8414
8415         PR rtl-optimization/34959
8416         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8417         popcount and parity rtxes the same mode as their operand.
8418         Truncate or extend the result to the return value's mode
8419         if necessary.
8420
8421 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8422
8423         PR target/34981
8424         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8425         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8426         to GOT_VERSION_REGNUM.
8427         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8428         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8429         * config/mips/mips.c (mips_emit_call_insn): New function.
8430         (mips_call_tls_get_addr): Call mips_expand_call directly.
8431         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8432         emit_call_insn.
8433         (mips16_build_call_stub): Likewise.  Return the call insn or null.
8434         (mips_expand_call): Update the call to mips16_build_call_stub
8435         accordingly and a remove redundant condition.  Assert that MIPS16
8436         stubs do not use lazy binding.  Use mips_emit_call_insn and return
8437         the call insn.
8438         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8439         TARGET_USE_GOT.
8440         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8441         (mips_avoid_hazard): Remove hazard_set handling.
8442         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8443         (UNSPEC_RESTORE_GP): ...this.
8444         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8445         (FAKE_CALL_REGNO): Rename to...
8446         (GOT_VERSION_REGNUM): ...this.
8447         (type): Add "ghost" value.  Add an associated insn reservation.
8448         (hazard_set): Remove.
8449         (exception_receiver): Rename to...
8450         (restore_gp): ...this and update the unspec identifier accordingly.
8451         (exception_receiver, nonlocal_got_receiver): New expanders.
8452         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
8453         FAKE_CALL_REGNO.  Remove hazard_set attribute.
8454         (set_got_version, update_got_version): New patterns.
8455
8456 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
8457
8458         PR target/34970
8459         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8460
8461 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8462
8463         PR other/31955
8464         * doc/install.texi2html: Generate gcc-vers.texi.
8465
8466 2008-01-25  DJ Delorie  <dj@redhat.com>
8467
8468         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8469
8470 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8471
8472         * config/c4x: Remove directory.
8473         * config.gcc (crx-*, mt-*): Mark obsolete.
8474         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8475         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8476         sh-*-rtemscoff*): Remove cases.
8477         * defaults.h (C4X_FLOAT_FORMAT): Remove.
8478         * real.c (encode_c4x_single, decode_c4x_single,
8479         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8480         c4x_extended_format): Remove.
8481         * real.h (c4x_single_format, c4x_extended_format): Remove.
8482         * doc/extend.texi (interrupt, naked): Remove mention of attributes
8483         on C4x.
8484         (Pragmas): Remove comment about c4x pragmas.
8485         * doc/install.texi (c4x): Remove target-specific instructions.
8486         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8487         * doc/md.texi (Machine Constraints): Remove C4x documentation.
8488         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8489         refer to C4x source files as examples.
8490         (C4X_FLOAT_FORMAT): Remove documentation.
8491
8492 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
8493
8494         * config/bfin/bfin.c (override_options): Reorder tests so that
8495         flag_pic gets enabled for -msep-data.
8496
8497 2008-01-25  Richard Guenther  <rguenther@suse.de>
8498
8499         PR middle-end/32244
8500         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8501         to its bitfield precision if required.
8502
8503 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8504
8505         PR middle-end/33880
8506         * tree-nested.c (walk_omp_for): New function.
8507         (convert_nonlocal_reference, convert_local_reference): Call
8508         walk_omp_for on OMP_FOR.
8509         (convert_call_expr): Call walk_body on OMP_FOR's
8510         OMP_FOR_PRE_INIT_BODY.
8511
8512 2008-01-25  Richard Guenther  <rguenther@suse.de>
8513
8514         PR tree-optimization/34966
8515         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8516         default defs and PHI_NODEs we have to insert after the
8517         defining statement.
8518
8519 2008-01-24  Nick Clifton  <nickc@redhat.com>
8520
8521         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8522         Provide a default definition.
8523         (LIBGCC2_UNITS_PER_WORD): Likewise.
8524
8525         * config/stormy16/stormy16.c: Include df.h for the prototype
8526         for df_regs_ever_live_p.
8527         (xstormy16_expand_builtin_va_start): Convert the stack offset
8528         into a component_ref and then use POINTER_PLUS_EXPR to add it
8529         to the incoming_virtual_args_rtx.
8530         (xstormy16_gimplify_va_arg_expr): Rename to
8531         xstormy16_gimplify_va_arg_expr.
8532         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8533         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8534         xstormy16_gimplify_va_arg_expr.
8535         Fix up some formatting issues.
8536
8537         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8538         Move to predicates.md.
8539         (xs_hi_general_operand): Likewise.
8540         (xs_hi_nonmemory_operand): Likewise.
8541         * config/stormy16/predicates.md:
8542         (xstormy16_carry_plus_operand): New predicate.
8543         (xs_hi_general_operand): New predicate.
8544         (xs_hi_nonmemory_operand): New predicate.
8545         * config/stormy16/stormy16-protos.h:
8546         (xstormy16_carry_plus_operand): Delete prototype.
8547         (xs_hi_general_operand): Likewise.
8548         (xs_hi_nonmemory_operand): Likewise.
8549
8550         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8551         modifiers as they are no longer needed and they can trigger
8552         reload spill failures.
8553
8554         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8555         with a match_operand in order to help reload.
8556
8557         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8558         constraint with 'e' for the 8th alternative as this version of
8559         the mov.w instruction only accepts the lower 8 registers.
8560
8561 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
8562
8563         PR target/34856
8564         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8565         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8566         vector elements.
8567
8568 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8569
8570         PR middle-end/33333
8571         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8572
8573 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8574
8575         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8576         New functions.
8577         (remove_structure): Update allocations list before removing structure.
8578         
8579 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8580
8581         * ipa-struct-reorg.c (is_safe_cond_expr, 
8582         create_new_stmts_for_cond_expr): Use integer_zerop function,
8583         that recognize not only zero-pointer, but zero-integer too.
8584
8585 2008-01-25  Ben Elliston  <bje@au.ibm.com>
8586
8587         PR other/22232
8588         * fixproto: Escape "." in sed expression that strips leading "./".
8589
8590 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8591
8592         PR driver/34904
8593         * gcc.c (SWITCH_OK): Removed.
8594         (SWITCH_LIVE): Changed to bit.
8595         (SWITCH_FALSE): Likewise.
8596         (SWITCH_IGNORE): Likewise.
8597         (switchstr): Change live_cond to unsigned int.
8598         (process_command): Replace SWITCH_OK with 0.
8599         (do_self_spec): Likewise.
8600         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8601         (give_switch): Likewise.
8602         (used_arg): Likewise.
8603         (do_spec_1): Set the SWITCH_IGNORE bit.
8604         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8605         bits.  Set the SWITCH_LIVE bit.
8606
8607 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8608
8609         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8610
8611 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
8612
8613         PR tree-optimization/34472
8614         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8615         parameter to a "bool *" and set *DATA to false if there is
8616         an unsafe access.  Do not delete the structure here.
8617         (check_cond_exprs): Delete it here instead.
8618         (check_cond_exprs, exclude_cold_structs): Do not increase
8619         I when removing a structure.
8620
8621 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
8622
8623         PR target/34856
8624         * config/i386/i386.c (ix86_expand_vector_init): Consider only
8625         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8626
8627 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
8628
8629         PR middle-end/34934
8630         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8631         a fixed vector for stack.
8632
8633 2008-01-24  Ben Elliston  <bje@au.ibm.com>
8634
8635         PR c++/25701
8636         * doc/gcc.texi (Software development): Add a direntry for g++.
8637         
8638 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
8639
8640         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8641         stale and straggling -fforce-addr comments above.
8642
8643         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8644         define.
8645         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8646         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8647
8648 2008-01-23  Michael Matz  <matz@suse.de>
8649
8650         PR debug/34895
8651         * dwarf2out.c (force_type_die): Use modified_type_die instead of
8652         gen_type_die.
8653
8654 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
8655
8656         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8657         malloc result type.
8658
8659 2008-01-23 Anatoly Sokolov <aesok@post.ru>
8660
8661         * config/avr/avr.c (avr_current_arch): New variable.
8662         (avr_arch_types): Add 'avr31' and 'avr51' entries.
8663         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8664         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8665         (avr_override_options): Init 'avr_current_arch'. 
8666         (base_arch_s): Move from here...
8667         * config/avr/avr.h (base_arch_s): ... here. Add new members 
8668         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
8669         'mega' to 'have_jmp_call'.
8670         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
8671         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
8672         macros.
8673         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
8674         architectures.
8675         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
8676         MULTILIB_MATCHES): (Ditto.).
8677
8678 2008-01-23  Richard Guenther  <rguenther@suse.de>
8679
8680         PR middle-end/31529
8681         * cgraphunit.c (cgraph_reset_node): Always mark the node
8682         not reachable if it is not queued already.
8683
8684 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
8685
8686         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8687         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8688         (cputype_selected): New static variable.
8689         (bfin_handle_option): Set it if -mcpu is used.
8690         (override_option): Select default set of workarounds if no cpu type
8691         selected on the command line.
8692         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
8693
8694         From  Michael Frysinger  <michael.frysinger@analog.com>
8695         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8696         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8697
8698         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8699         for bf547, bf523, bf524, and bf526.
8700         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
8701         bf526.
8702         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8703         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8704         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8705         __ADSPBF547__ and __ADSPBF54x__ for bf547.
8706         * doc/invoke.texi (Blackfin Options): Document that
8707         -mcpu now accept bf547, bf523, bf524, and bf526.
8708
8709 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8710
8711         PR rtl-optimization/34628
8712         * combine.c (try_combine): Stop and undo after the first combination
8713         if an autoincrement side-effect on the first insn has effectively
8714         been lost.
8715
8716 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
8717
8718         PR target/34529
8719         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8720         Offset addresses are not valid for Altivec or paired float modes.
8721
8722 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
8723
8724         PR c++/34607
8725         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8726         if DECL_INITIAL (decl) is error_mark_node.
8727
8728         PR c++/34914
8729         * c-common.c (handle_vector_size_attribute): Only allow
8730         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
8731         the same way as pointer, array etc. types.
8732         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8733
8734         PR c++/34917
8735         * tree.c (build_type_attribute_qual_variant): Call
8736         build_qualified_type if attributes are equal, but quals are not.
8737
8738 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8739
8740         PR 32102
8741         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8742         * flags.h (warn_strict_aliasing): Remove.
8743         (warn_strict_overflow): Remove.
8744         * opts.c (warn_strict_aliasing): Remove.
8745         (warn_strict_overflow): Remove.
8746         * c-opts.c (c_common_handle_option): -Wall only sets
8747         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8748         (c_common_post_options): Give default values to -Wstrict-aliasing
8749         and -Wstrict-overflow if they are uninitialized.
8750         * common.opt (Wstrict-aliasing): Specify Var and Init.
8751         (Wstrict-overflow): Likewise.
8752
8753 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
8754
8755         PR rtl-optimization/26854
8756         PR rtl-optimization/34400
8757         PR rtl-optimization/34884
8758         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8759         DF_RD->gen.
8760         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8761         (df_rd_bb_info.expanded_lr_out): Deleted
8762         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8763         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
8764         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8765         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8766         Removed code to allocate, initialize or free expanded_lr_out.
8767         (df_rd_bb_local_compute_process_def): Restructured to make more
8768         understandable.
8769         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8770         sets if the sets are being trimmed.
8771
8772 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8773
8774         PR bootstrap/32287
8775         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8776         (as_vers): Likewise.
8777         * configure: Regenerated.
8778
8779 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8780
8781         PR middle-end/33092
8782         * tree-pass.h (pass_build_alias): New pass.
8783         * tree-ssa-alias.c (gate_build_alias): New.
8784         (pass_build_alias): New.
8785         * passes.c (init_optimization_passes): Add pass_build_alias after
8786         pass_create_structure_vars.
8787
8788 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
8789
8790         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8791         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8792         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8793         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8794         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8795         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8796         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8797         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8798         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8799         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8800         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8801         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8802         * config/s390/s390.md (FP_ALL): New mode iterator.
8803         (_d): New mode attribute.
8804         ("*signbit<mode>2>"): Changed mode of first operand.
8805         ("isinf<mode>2"): Changed mode of first operand.
8806         ("*TDC_insn"): Adaptation for DFP modes.
8807
8808 2008-01-22  Ben Elliston  <bje@au.ibm.com>
8809
8810         * tree.c (check_qualified_type): Improve function description.
8811
8812 2008-01-21  Jason Merrill  <jason@redhat.com>
8813
8814         PR c++/34196
8815         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8816         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8817         if it is set.
8818
8819 2008-01-21  DJ Delorie  <dj@redhat.com>
8820
8821         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8822         return zero.
8823
8824 2008-01-21  Richard Guenther  <rguenther@suse.de>
8825
8826         PR middle-end/34856
8827         * tree-cfg.c (verify_expr): Allow all invariant expressions
8828         instead of just constant class ones as reference argument.
8829         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8830         like any other constant.
8831         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8832
8833 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
8834
8835         * regmove.c (fixup_match_1): Update call crossed frequencies.
8836
8837 2008-01-21  Richard Guenther  <rguenther@suse.de>
8838
8839         PR c/34885
8840         * tree-inline.c (setup_one_parameter): Deal with mismatched
8841         types using a VIEW_CONVERT_EXPR.
8842
8843 2008-01-21  Alon Dayan  <alond@il.ibm.com>
8844             Olga Golovanevsky  <olga@il.ibm.com>
8845         
8846         PR tree-optimization/34701
8847         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8848         when the structure size is not a power of 2.
8849
8850 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
8851
8852         * doc/install.texi: Add doc for --enable-checking=df.
8853         
8854 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8855
8856         PR rtl-optimization/34808
8857         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8858
8859 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8860
8861         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8862         input.
8863
8864 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
8865
8866         PR rtl-optimization/26854
8867         PR rtl-optimization/34400
8868         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8869         DF_RD->gen.
8870         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8871         (df_rd_bb_info.expanded_lr_out): New.
8872         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8873         * loop_iv.c (iv_analysis_loop_init): Ditto.
8874         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8875         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8876         Added code to allocate, initialize or free expanded_lr_out.
8877         (df_rd_bb_local_compute_process_def): Restructured to make
8878         more understandable.
8879         (df_rd_confluence_n): Add code to do nothing with fake edges and
8880         code to no apply invalidate_by_call sets if the sets are being trimmed.
8881         (df_lr_local_finalize): Renamed to df_lr_finalize.
8882         (df_live_local_finalize): Renamed to df_live_finalize.
8883
8884 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8885
8886         PR target/34831
8887         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
8888         deciding whether to use reciprocal instructions.
8889
8890 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
8891
8892         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
8893         dwarf2out_note_section_used if cold_text_section is NULL.
8894
8895 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
8896
8897         PR gcov-profile/34610
8898         * tree-cfg.c (make_edges): Mark both outgoing edges from
8899         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
8900         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
8901         from OMP_FOR and OMP_CONTINUE outgoing edges.
8902
8903         * tree-profile.c (tree_profiling): Return early if
8904         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
8905         at the end.
8906         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
8907         from cfun to child_cfun.
8908         * function.h (struct function): Add after_tree_profile bit.
8909
8910 2008-01-19 Anatoly Sokolov <aesok@post.ru>
8911
8912         * config/avr/avr.S (_exit): Disable interrupt.
8913
8914 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
8915             Steven Bosscher  <stevenb.gcc@gmail.com>
8916
8917         PR rtl-optimization/26854
8918         PR rtl-optimization/34400
8919         * df-problems.c (df_live_scratch): New scratch bitmap.
8920         (df_live_alloc): Allocate df_live_scratch when doing df_live.
8921         (df_live_reset): Clear the proper bitmaps.
8922         (df_live_bb_local_compute): Only process the artificial defs once
8923         since the order is not important.
8924         (df_live_init): Init the df_live sets only with the variables
8925         found live by df_lr.
8926         (df_live_transfer_function): Use the df_lr sets to prune the
8927         df_live sets as they are being computed.  
8928         (df_live_free): Free df_live_scratch.
8929
8930 2008-01-18  Ian Lance Taylor  <iant@google.com>
8931
8932         * common.opt: Add fmerge-debug-strings.
8933         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
8934         flag_merge_debug_strings rather than flag_merge_constants.
8935         * doc/invoke.texi (Option Summary): Mention
8936         -fmerge-debug-strings.
8937         (Debugging Options): Document -fmerge-debug-strings.
8938
8939 2008-01-18  Ian Lance Taylor  <iant@google.com>
8940
8941         PR c++/33407
8942         * tree.h (DECL_IS_OPERATOR_NEW): Define.
8943         (struct tree_function_decl): Add new field operator_new_flag.
8944         * tree-inline.c (expand_call_inline): When inlining a call to
8945         operator new, force the return value to go into a variable, and
8946         set DECL_NO_TBAA_P on that variable.
8947         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
8948
8949 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
8950
8951         PR debug/34484
8952         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
8953         DWARF2_DEBUGGING_INFO.
8954         (dwarf2out_note_section_used): Ditto.  Add prototype.
8955         (have_multiple_function_sections, text_section_used,
8956         cold_text_section_used, *cold_text_sections): Move declarations
8957         before their uses.
8958
8959 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
8960
8961         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
8962         field and add signal_ra.
8963         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
8964         assignments to frame state pc.  Move end of stack check after
8965         MD_FALLBACK_FRAME_STATE_FOR.
8966         (uw_update_context_1): Use frame state signal_regs if set, instead
8967         of checking signal_frame flag.
8968         (uw_update_context): Use frame state signal_ra if set.
8969         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
8970         * config/xtensa/linux-unwind.h: New file.
8971
8972 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
8973
8974         * modulo-sched.c (get_sched_window): Fix comment typo.
8975
8976 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
8977
8978         PR tree-optimization/34648
8979         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
8980
8981 2008-01-17  Anatoly Sokolov <aesok@post.ru>
8982
8983         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
8984         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
8985
8986 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
8987
8988         PR rtl-optimization/34400
8989         * df-core.c (df_worklist_dataflow_overeager,
8990         df_worklist_dataflow_doublequeue): New functions.
8991         (df_worklist_dataflow): Two different worklist solvers.
8992         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
8993         New param.
8994
8995 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8996
8997         PR testsuite/34821
8998         * doc/invoke.texi: Document the dependence on pthread for fopenmp
8999         and ftree-parallelize-loops.
9000
9001 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
9002
9003         PR rtl-optimization/34826
9004         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
9005
9006 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
9007
9008         * global.c (find_reg): Mark the eh regs as used if necessary.
9009         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
9010         * ra.h (struct allocno): no_eh_reg field added.  Changed
9011         no_stack_reg type to bitfield.
9012
9013 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
9014
9015         * tree.c (substitute_in_expr): Add missing 'break'.
9016
9017 2008-01-17  Richard Guenther  <rguenther@suse.de>
9018
9019         PR tree-optimization/34825
9020         * tree-ssa-math-opts.c (is_division_by): Do not recognize
9021         x / x as division to handle.
9022
9023 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9024
9025         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
9026         "-pthread" is specified.
9027         * pa-hpux11.h (LIB_SPEC): Likewise.
9028
9029 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
9030             Peter Bergner  <bergner@vnet.ibm.com>
9031
9032         PR rtl-optimization/33796
9033         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
9034
9035 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9036
9037         PR libgfortran/34699
9038         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
9039         static links.
9040         * pa-hpux10.h (LINK_SPEC): Likewise.
9041         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
9042
9043 2008-01-16  Richard Guenther  <rguenther@suse.de>
9044
9045         PR middle-end/32628
9046         * fold-const.c (fold_convert_const_int_from_int): Do not
9047         set overflow if that occured only because of a sign extension
9048         change when converting from/to a sizetype with the same
9049         precision and signedness.
9050
9051 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
9052
9053         PR debug/34249
9054         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
9055         location address to the correct place.  Update copyright year.
9056
9057 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9058
9059         * lambda-code.c (lambda_transform_legal_p): Handle the case of
9060         no dependences in the dependence_relations vector.
9061
9062 2008-01-16  Jan Hubicka  <jh@suse.cz>
9063
9064         PR rtl-optimization/31396
9065         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
9066         * cfg.c (dump_reg_info): Print it.
9067         * regs.h (struct reg_info_t): add freq_calls_crossed.
9068         (REG_FREQ_CALLS_CROSSED): New macro.
9069         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
9070         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
9071         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
9072         regmove_optimize): Update call crossed frequencies.
9073         * local-alloc.c (struct qty): Add freq_calls_crossed.
9074         (alloc_qty): Copute freq_calls_crossed.
9075         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
9076         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
9077         * ra.h (struct allocno): Add freq_calls_crossed.
9078
9079 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9080
9081         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
9082         libgomp when compiling with ftree-parallelize-loops.
9083         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
9084
9085 2008-01-16  Richard Guenther  <rguenther@suse.de>
9086
9087         PR tree-optimization/34769
9088         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
9089         * tree.c (int_cst_value): Instead make this function more
9090         permissive in what it accepts as valid input.  Document this
9091         function always sign-extends the value.
9092
9093 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
9094             Richard Guenther  <rguenther@suse.de>
9095
9096         PR c/34668
9097         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
9098         (gimple_fold_indirect_ref_rhs): ... this.
9099         (gimple_fold_indirect_ref): New function with foldings
9100         that preserve lvalueness.
9101         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
9102         * tree-flow.h (gimple_fold_indirect_ref): Declare.
9103         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
9104         to fold an INDIRECT_REF, fall back to the old use of
9105         fold_indirect_ref_1.
9106
9107 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9108
9109         * tree-data-ref.c (subscript_dependence_tester_1): Call 
9110         free_conflict_function.
9111         (compute_self_dependence): Same.
9112
9113 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
9114
9115         PR debug/34249
9116         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
9117         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
9118         function global.
9119         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
9120         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
9121         for DWARF2_UNWIND_INFO targets.
9122
9123 2008-01-16  Richard Guenther  <rguenther@suse.de>
9124
9125         PR c/34768
9126         * c-typeck.c (common_pointer_type): Do not merge inconsistent
9127         type qualifiers for function types.
9128
9129 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
9130
9131         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
9132         loop_iterator li from previous commit.
9133
9134 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9135
9136         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
9137
9138 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
9139
9140         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
9141         (parallelize_loops): Don't parallelize irreducible components.
9142
9143 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9144
9145         PR c++/24924
9146         * c-opts (c_common_post_options): Do not enable CPP
9147         flag_pedantic_errors by default.
9148         
9149 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
9150
9151         PR rtl-optimization/31944
9152         * cse.c (remove_pseudo_from_table): New function.
9153         (merge_equiv_classes): Use above function to remove pseudo-registers.
9154         (invalidate): Likewise.
9155
9156 2008-01-13  Richard Guenther  <rguenther@suse.de>
9157
9158         PR middle-end/34601
9159         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
9160         instead of TYPE_MODE to deal with calls from expand_one_error_var.
9161
9162 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
9163
9164         * gcse.c (cprop_jump): Call validate_unshare_change instead of
9165         validate_change to unshare the source of the PC set.
9166
9167 2008-01-12  Jan Hubicka  <jh@suse.cz>
9168
9169         PR middle-end/32135
9170         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
9171         references above array bounds.  This might trigger bounds checks for
9172         pointers to arrays.
9173
9174 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
9175
9176         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
9177         new_replaceable_dependencies.
9178
9179 2008-01-12  Doug Kwan  <dougkwan@google.com>
9180
9181         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
9182         instead of OPT_Wreturn_type in warning due to ignored return type
9183         qualifiers.
9184         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
9185         options included in -Wextra.
9186         * c.opt: New option -Wignored_qualifiers.
9187         * doc/invoke.texi (Warning Options, -Wextra): Add new option
9188         -Wignore_qualifiers.
9189         (-Wignored-qualifiers): Document.
9190         (-Wreturn-type): Remove description of functionality now handled
9191         by -Wignored-qualifiers.
9192
9193 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
9194
9195         PR ada/33788
9196         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
9197         NOP_EXPR if it is between integral types with the same precision.
9198
9199 2008-01-12  Jan Hubicka  <jh@suse.cz>
9200
9201         PR other/28023
9202         * invoke.texi (max-inline-recursive-depth): Fix default value.
9203
9204 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
9205
9206         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
9207         correct type.
9208
9209 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
9210         
9211         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
9212         
9213 2008-01-11  James E. Wilson  <wilson@specifix.com>
9214
9215         PR target/26015
9216         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
9217
9218 2008-01-11  Anatoly Sokolov <aesok@post.ru>
9219
9220         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
9221         save/restore frame pointer register and don't use 'call-prologues' 
9222         optimization in function with "OS_task" attribute.
9223
9224 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
9225
9226         PR middle-end/31309
9227         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
9228         when copying to memory.
9229
9230 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
9231
9232         PR rtl-optimization/30905
9233         * cfgcleanup.c: Include dce.h
9234         (crossjumps_occured): New global variable.
9235         (try_crossjump_bb): Exit loop after finding a fallthru edge.
9236         If something changed, set crossjumps_occured to true.
9237         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
9238         Don't add/remove fake edges to exit here...
9239         (cleanup_cfg): ...but do it here, when crossjumping.
9240         Run a fast DCE when successful crossjumps occured in the latest
9241         iteration of try_optimize_cfg.
9242
9243 2008-01-11  Richard Guenther  <rguenther@suse.de>
9244
9245         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
9246         (struct vn_unary_op_s): Likewise.
9247         (vn_reference_insert): Free old reference on hash collision.
9248
9249 2008-01-10  Raksit Ashok  <raksit@google.com>
9250
9251         PR rtl-optimization/27971
9252         * combine.c (find_split_point): Split PLUS expressions which are
9253         inside a MEM rtx, and whose first operand is complex.
9254
9255 2008-01-10  DJ Delorie  <dj@redhat.com>
9256
9257         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
9258         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
9259         (m32c_hard_regno_ok): Call the underlying function.
9260
9261 2008-01-10  Richard Guenther  <rguenther@suse.de>
9262
9263         PR middle-end/34683
9264         * tree-cfg.c (tree_merge_blocks): Do not go through the
9265         full-blown folding and stmt updating path if we just deal
9266         with virtual operands.
9267         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
9268         test for abnormal SSA_NAMEs.
9269
9270 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9271
9272         PR middle-end/34641
9273         * reload.c (push_reload): Add assertions.  All constants from
9274         reg_equiv_constant should have been used for replacing the respective
9275         pseudo earlier.
9276         (find_reloads_address): Invoke find_reloads_address_part for
9277         constant taken from the reg_equiv_constant array.
9278
9279 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
9280
9281         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
9282         field (valnum) the first in the struct.  Replace bools with
9283         unit bit fields.
9284
9285 2008-01-10  Richard Guenther  <rguenther@suse.de>
9286
9287         PR tree-optimization/34651
9288         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
9289         types and ordering for masking and converting.
9290
9291 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
9292
9293         PR tree-optimization/34017
9294         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
9295         also for PHI_NODE expressions.
9296
9297 2008-01-09  Jan Hubicka  <jh@suse.cz>
9298
9299         PR tree-optimization/34708
9300         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
9301         based on number of case labels.
9302         (init_inline_once): Remove switch_cost.
9303         * tree-inline.h (eni_weights_d): Remove switch_cost.
9304
9305 2008-01-09  Richard Guenther  <rguenther@suse.de>
9306         Andrew Pinski  <andrew_pinski@playstation.sony.com>
9307
9308         PR middle-end/30132
9309         * gimplify.c (gimplify_cond_expr): Do not create an addressable
9310         temporary if an rvalue is ok or an lvalue is not required.
9311
9312 2008-01-09  Richard Guenther  <rguenther@suse.de>
9313
9314         PR middle-end/34458
9315         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
9316         adjust return type.
9317
9318 2008-01-09  Richard Guenther  <rguenther@suse.de>
9319
9320         PR middle-end/34679
9321         * tree.c (host_integerp): Check for sizetype only if the
9322         type is an integer type.
9323
9324 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
9325
9326         PR debug/26364
9327         * opts.c (decode_options): Disable inlining of functions called
9328         once if not in unit-at-a-time mode.
9329
9330 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
9331
9332         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
9333
9334 2008-01-08  Richard Guenther  <rguenther@suse.de>
9335
9336         PR middle-end/31863
9337         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
9338         out early if the result will be unused.
9339
9340 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9341
9342         PR target/34709
9343         Revert:
9344
9345         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9346         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9347         for TARGET_RECIP.       
9348         
9349 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
9350         
9351         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9352         for vectorization tuned.
9353         
9354 2008-01-08  Richard Guenther  <rguenther@suse.de>
9355
9356         PR tree-optimization/34683
9357         * tree-ssa-operands.c (operand_build_cmp): Export.
9358         * tree-ssa-operands.h (operand_build_cmp): Declare.
9359         * tree-vn.c (vuses_compare): Remove.
9360         (sort_vuses): Use operand_build_cmp.
9361         (sort_vuses_heap): Likewise.
9362         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9363         to re-use old VEC if available.  Do not sort already sorted VUSEs.
9364         (vdefs_to_vec): Do not sort already sorted VDEFs.
9365
9366 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
9367
9368         PR middle-end/34694
9369         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9370
9371 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9372
9373         PR target/34702
9374         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9375         limitations of reciprocal sequences on x86 targets.
9376
9377 2008-01-08  Richard Guenther  <rguenther@suse.de>
9378
9379         PR tree-optimization/34683
9380         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9381
9382 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
9383
9384         PR target/34622
9385         * config/darwin.c (darwin_mergeable_string_section): Don't use
9386         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9387
9388 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
9389
9390         PR target/34682
9391         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9392         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
9393         predicates of op0 and op1 to register_operand.
9394         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
9395         expander using X87MODEF mode iterator.  Change predicates of
9396         op0 and op1 to register_operand.
9397         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9398         corresponding patterns and macroize using MODEF macro.  Change
9399         predicates of op0 and op1 to register_operand and remove
9400         "m" constraint. Disparage "r" alternative with "!".
9401         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9402         macroize using X87MODEF macro.  Change predicates of op0 and op1
9403         to register_operand and remove "m" constraint.  Disparage "r"
9404         alternative with "!".
9405         (absneg splitter with memory operands): Remove.
9406         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9407         patterns and macroize using X87MODEF mode iterator.
9408         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9409         Change predicate of op1 to register_operand.
9410         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
9411         for memory operands.
9412
9413 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
9414
9415         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9416
9417 2008-01-07  Richard Guenther  <rguenther@suse.de>
9418
9419         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9420         fields.
9421
9422 2008-01-07  Richard Guenther  <rguenther@suse.de>
9423
9424         PR tree-optimization/34683
9425         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9426         VOPs of the needed size to save memory.  Use VEC_quick_push
9427         to save compile-time.
9428         (vdefs_to_vec): Likewise.
9429
9430 2008-01-07  Sa Liu  <saliu@de.ibm.com>
9431
9432         * config/spu/spu.md (divdf3): Genetate inline code for double
9433         division.  The implementation doesn't handle INF or NAN, therefore it
9434         only applies when -ffinite-math-only is given.
9435
9436 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
9437
9438         PR libstdc++/34680
9439         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9440         * doc/cpp.texi ([Common Predefined Macros]): Document.
9441
9442 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
9443
9444         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9445         order to use commutative addition instead of subtraction.
9446
9447 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9448             Mircea Namolaru  <namolaru@il.ibm.com>
9449             Vladimir Yanovsky  <yanov@il.ibm.com>
9450             Revital Eres  <eres@il.ibm.com>
9451
9452         PR tree-optimization/34263
9453         * tree-outof-ssa.c (process_single_block_loop_latch,
9454         contains_tree_r): New functions.
9455         (analyze_edges_for_bb): Call process_single_block_loop_latch
9456         function to empty single-basic-block latch block if possible.
9457
9458 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9459
9460         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9461         for TARGET_RECIP.
9462         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9463
9464 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9465
9466         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9467
9468 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9469
9470         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9471
9472 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
9473
9474         PR tree-optimization/34618
9475         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9476         flag from T.
9477
9478 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9479
9480         PR target/34673
9481         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9482         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
9483         Update copyright year.
9484
9485         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9486         Update copyright year.
9487         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9488         using NR fixup.
9489
9490 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
9491
9492         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9493         edge does not point to current bb before changing need_assert.
9494
9495 2008-01-04  Richard Guenther  <rguenther@suse.de>
9496
9497         PR middle-end/34029
9498         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9499         for verifying purposes if they are is_gimple_min_invariant.
9500
9501 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
9502
9503         PR tree-optimization/34448
9504         PR tree-optimization/34465
9505         * gimplify.c (gimplify_init_constructor): Add new parameter
9506         notify_temp_creation.  Use it.
9507         (gimplify_modify_expr_rhs): Take volatiles into account when
9508         optimizing constructors.
9509         Do not optimize constructors if gimplify_init_constructor will dump to
9510         memory.
9511         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9512         * gcc.c-torture/compile/pr34448.c: New.
9513
9514 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
9515
9516         PR gcov-profile/34609
9517         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9518         return_slot if result is TREE_ADDRESSABLE.
9519
9520 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
9521
9522         * config/mips/mips.md (sqrt_condition): Tweak comment.
9523         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
9524
9525 2008-01-03  Tom Tromey  <tromey@redhat.com>
9526
9527         PR c/34457
9528         * c-common.c (c_type_hash): Handle VLAs.
9529
9530 2008-01-03  Jan Hubicka  <jh@suse.cz>
9531
9532         PR tree-optimization/31081
9533         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9534         0 when inlining and not inlining to first basic block.
9535         (remap_decl): When var is initialized to 0, don't set default_def.
9536         (expand_call_inline): Set entry_bb.
9537         * tree-inline.h (copy_body_data): Add entry_bb.
9538
9539 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9540
9541         PR c++/34619
9542         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9543         before returning.
9544
9545         PR tree-optimization/29484
9546         * tree-inline.c (inline_forbidden_p_2): New function.
9547         (inline_forbidden_p): Disallow inlining if some static var
9548         has an address of a local LABEL_DECL in its initializer.
9549         * doc/extend.texi (Labels as Values): Document &&foo behaviour
9550         vs. inlining.
9551
9552 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9553
9554         PR tree-optimization/34635
9555         * tree-data-ref.c (add_other_self_distances): Make sure that the
9556         evolution step is constant.
9557
9558 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9559
9560         PR middle-end/34608
9561         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
9562
9563 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
9564
9565         * tree-sra.c (scalarize_init): Insert the generate_element_init
9566         statements after the generate_element_zero statements.
9567
9568 2008-01-02  Richard Guenther  <rguenther@suse.de>
9569
9570         PR middle-end/34093
9571         PR middle-end/31976
9572         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9573         for very large number of operands instead of ICEing.
9574
9575 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
9576
9577         PR target/34013
9578         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
9579         while stack probing.
9580
9581 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
9582
9583         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
9584         in C++0x mode.
9585
9586 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
9587
9588         PR libmudflap/26442
9589         * tree-mudflap.c (mx_register_decls): Guard warning by
9590         !DECL_ARTIFICIAL check.
9591
9592 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
9593
9594         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9595         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9596         sse5_perm<mode>): Fix constraints.