OSDN Git Service

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