OSDN Git Service

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