OSDN Git Service

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