OSDN Git Service

2008-05-15 Diego Novillo <dnovillo@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-15  Diego Novillo  <dnovillo@google.com>
2
3         * config/arm/arm.c (arm_return_in_memory): Fix return
4         type.
5         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
6
7 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
8
9         PR middle-end/36194
10         * combine.c (check_conversion): Rename back to check_promoted_subreg. 
11         Don't call record_truncated_value from here. 
12         (record_truncated_value): Turn it into a for_each_rtx callback. 
13         (record_truncated_values): New function. 
14         (combine_instructions): Call note_uses with 
15         record_truncated_values.  Change name of check_conversion to 
16         check_promoted_subreg. 
17
18 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
19
20         * doc/sourcebuild.texi: Document support for torture tests.
21
22 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
23
24         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
25         to alternative 4 of operand 2.
26
27 2008-05-15  Richard Guenther  <rguenther@suse.de>
28
29         * tree-pass.h (current_pass): Declare.
30         (get_pass_for_id): Likewise.
31         * passes.c (passes_by_id, passes_by_id_size): New globals.
32         (set_pass_for_id): New function.
33         (get_pass_for_id): Likewise.
34         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
35         (execute_function_todo): Flush per function statistics.
36         * toplev.c (compile_file): Init statistics.
37         (general_init): Do early statistics initialization.
38         (finalize): Finish statistics.
39         * statistics.h (statistics_early_init): Declare.
40         (statistics_init): Likewise.
41         (statistics_fini): Likewise.
42         (statistics_fini_pass): Likewise.
43         (statistics_counter_event): Likewise.
44         (statistics_histogram_event): Likewise.
45         * statistics.c: New file.
46         * Makefile.in (OBJS-common): Add statistics.o.
47         (statistics.o): Add dependencies.
48         * doc/invoke.texi (-fdump-statistics): Document.
49
50         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
51         (insert): Likewise.
52         (execute_pre): Use statistics_counter_event.
53         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
54         (substitute_and_fold): Increment it.  Use statistics_counter_event.
55
56 2008-05-15  Diego Novillo  <dnovillo@google.com>
57
58         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
59
60         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
61         * tree-ssa-alias.c (new_type_alias): Remove references to
62         sub-variables from comment.
63         * tree-ssa-operands.c (swap_tree_operands): Likewise.
64
65 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
66
67         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
68         attribute to 1 only for insertps alternative.
69
70 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
71
72         * config/bfin/bfin.md (loadbytes): New pattern.
73         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
74         (bfin_init_builtins): Initialize it.
75         (bdesc_1arg): Add it.
76
77 2008-05-15  Sa Liu  <saliu@de.ibm.com>
78
79         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
80         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
81         * testsuite/lib/target-supports.exp: Add
82         check_effective_target_fortran_integer_16.
83
84 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
85
86         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
87         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
88         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
89         (TARGET_RETURN_IN_MEMORY): Define.
90
91 2008-05-15  Richard Guenther  <rguenther@suse.de>
92
93         PR middle-end/36244
94         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
95         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
96         represent unmodifiable vars.
97
98 2008-05-15  Richard Guenther  <rguenther@suse.de>
99
100         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
101         INDIRECT_REF and TARGET_MEM_REF.
102         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
103         TARGET_MEM_REF.
104
105 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
106             H.J. Lu  <hongjiu.lu@intel.com>
107
108         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
109         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
110         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
111         insn alternatives.  Add missing alternatives.
112         (*vec_concatv2di_rex64_sse4_1): Likewise.
113         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
114         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
115         Require TARGET_SSE.
116
117 2008-05-15  Richard Guenther  <rguenther@suse.de>
118
119         PR tree-optimization/36009
120         PR tree-optimization/36204
121         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
122         (determine_invariantness_stmt): Record the loop a store is
123         always executed in.
124         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
125         dependency.
126
127 2008-05-15  Richard Guenther  <rguenther@suse.de>
128
129         PR tree-optimization/34330
130         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
131         through the pointer will alias the SMT.
132
133 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
134
135         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
136
137 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
138
139         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
140
141 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
142             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
143
144         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
145         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
146         (vashl_optab): New optab for vector/vector shifts.
147         (vashr_optab): Ditto.
148         (vlshr_optab): Ditto.
149         (vrotl_optab): Ditto.
150         (vrotr_optab): Ditto.
151         (optab_subtype): New enum for optab_for_tree_code call.
152         (optab_for_tree_code): Add enum optab_subtype argument.
153
154         * optabs.c (optab_for_tree_code): Take an additional argument to
155         distinguish between a vector shift by a scalar and vector shift by
156         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
157         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
158         vector shift by a vector.
159         (expand_widen_pattern_expr): Pass additional argument to
160         optab_for_tree_code.
161
162         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
163         vrotl_optab, vrotr_optab.
164
165         * expr.c (expand_expr_real_1): Update calls to
166         optab_for_tree_code to distinguish between vector shifted by a
167         scalar and vector shifted by a vector.
168         * tree-vectorizer.c (supportable_widening_operation): Ditto.
169         (supportable_narrowing_operation): Ditto.
170         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
171         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
172         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
173         (vect_create_epilog_for_reduction): Ditto.
174         (vectorizable_reduction): Ditto.
175         (vectorizable_operation): Ditto.
176         (vect_strided_store_supported): Ditto.
177         (vect_strided_load_supported): Ditto.
178         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
179         * expmed.c (expand_shift): Ditto.
180
181         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
182         scalar type.
183         (ashr@var{m}3): Ditto.
184         (vashl@var{m}3): Document new vector/vector shift standard name.
185         (vashr@var{m}3): Ditto.
186         (vlshr@var{m}3): Ditto.
187         (vrotl@var{m}3): Ditto.
188         (vrotr@var{m}3): Ditto.
189
190         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
191         (PPERM_INVERT): Ditto.
192         (PPERM_REVERSE): Ditto.
193         (PPERM_REV_INV): Ditto.
194         (PPERM_ZERO): Ditto.
195         (PPERM_ONES): Ditto.
196         (PPERM_SIGN): Ditto.
197         (PPERM_INV_SIGN): Ditto.
198         (PPERM_SRC1): Ditto.
199         (PPERM_SRC2): Ditto.
200
201         * config/i386/sse.md (mulv2di3): Add SSE5 support.
202         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
203         allows a memory operand to be the value being added, and split it
204         to improve vectorization.
205         (sse5_pmacsdqh_mem): Ditto.
206         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
207         (sse5_mulv2div2di3_high): Ditto.
208         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
209         (vec_pack_trunc_v4si): Ditto.
210         (vec_pack_trunc_v2di): Ditto.
211         (sse5_pcmov_<mode>): Remove code that tried to use use
212         andps/andnps instead of pcmov.
213         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
214         pmacsdqh instructions.
215         (vec_widen_smult_lo_v4si): Ditto.
216
217         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
218         (PPERM_INVERT): Ditto.
219         (PPERM_REVERSE): Ditto.
220         (PPERM_REV_INV): Ditto.
221         (PPERM_ZERO): Ditto.
222         (PPERM_ONES): Ditto.
223         (PPERM_SIGN): Ditto.
224         (PPERM_INV_SIGN): Ditto.
225         (PPERM_SRC1): Ditto.
226         (PPERM_SRC2): Ditto.
227         (ix86_expand_sse_movcc): Move the SSE5 test after the if
228         true/false tests.
229         (ix86_expand_int_vcond): If SSE5 generate all possible integer
230         comparisons.
231         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
232         says ignore whether the last reference is a memory operand.
233
234 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
235             Paolo Bonzini <bonzini at gnu dot org>
236
237         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
238         shift patterns.
239
240         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
241         (vlshr<mode>3): Rename from vlshr<mode>3.
242         (vashr<mode>3): Rename from vashr<mode>3.
243         (mulv4sf3): Change the names of vector shift patterns.
244         (mulv4si3): Ditto.
245         (negv4sf2): Ditt.
246
247         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
248         shift insns.
249
250         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
251         (SI_SHLHI): Ditto.
252         (SI_SHL): Ditto.
253         (SI_SHLI): Ditto.
254         (SI_ROTH): Ditto.
255         (SI_ROTHI): Ditto.
256         (SI_ROT): Ditto.
257         (SI_ROTI): Ditto.
258         (SPU_RL_0): Ditto.
259         (SPU_RL_1): Ditto.
260         (SPU_RL_2): Ditto.
261         (SPU_RL_3): Ditto.
262         (SPU_RL_4): Ditto.
263         (SPU_RL_5): Ditto.
264         (SPU_RL_6): Ditto.
265         (SPU_RL_7): Ditto.
266         (SPU_SL_0): Ditto.
267         (SPU_SL_1): Ditto.
268         (SPU_SL_2): Ditto.
269         (SPU_SL_3): Ditto.
270         (SPU_SL_4): Ditto.
271         (SPU_SL_5): Ditto.
272         (SPU_SL_6): Ditto.
273         (SPU_SL_7): Ditto.
274
275         * config/spu/spu.md (v): New iterator macro to add v for vector types.
276         (floatunssidf2_internal): Change vector/vector shift names.
277         (floatunsdidf2_internal): Ditto.
278         (mulv8hi3): Ditto.
279         (ashrdi3): Ditto.
280         (ashrti3): Ditto.
281         (cgt_df): Ditto.
282         (cgt_v2df): Ditto.
283         (dftsv): Ditto.
284         (vashl<mode>3): Rename from ashl<mode>3.
285         (vashr<mode>3): Rename from ashr<mode>3.
286         (vlshr<mode>3): Rename from lshr<mode>3.
287         (vrotl<mode>3): Rename from rotl<mode>3.
288
289 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
290
291         PR target/36224
292         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
293         multiply gives the wrong value when doing widening multiplies.
294         (vec_widen_smult_lo_v4si): Ditto.
295
296 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
297
298         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
299         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
300         emit_library_call_value. 
301         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
302         * tree.h (ECF_LIBCALL_BLOCK): Removed.
303         * calls.c (initialize_argument_information, precompute_arguments, 
304         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
305         (precompute_arguments): Removed flags parameter.
306         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
307         
308 2008-05-14  Richard Guenther  <rguenther@suse.de>
309
310         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
311         Make sure to register the store if the use is a PHI_NODE.
312
313 2008-05-14  Olivier Hainque  <hainque@adacore.com>
314
315         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
316         memory if the component is to be referenced in BLKmode according
317         to get_inner_reference.
318
319 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
320
321         * calls.c (emit_library_call_value_1): Restore code clearing
322         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
323
324 2008-05-14  Olivier Hainque  <hainque@adacore.com>
325             Nicolas Roche  <roche@adacore.com>
326
327         * configure.ac: Add support for a "gcc_subdir" variable in
328         config-lang.in, to denote a subdirectory where the language/GCC
329         integration files are to be found.
330         * configure: Regenerate.
331
332 2008-05-14  Ira Rosen  <irar@il.ibm.com>
333
334         PR tree-optimization/36098
335         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
336         value for the first load in the group in case of a gap.
337         (vect_build_slp_tree): Check that there are no gaps in loads.
338
339 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
340
341         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
342         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
343         expand_copysign_bit, ): Change call to emit_no_conflict_block to
344         emit_insn and remove unneeded code to construct extra args.
345         (emit_no_conflict_block): Removed.
346         * optabls.h: (emit_no_conflict_block): Removed.
347         * cse.c (cse_extended_basic_block): Remove search for
348         REG_NO_CONFLICT note.
349         * global.c: Removed incorrect comment added in revision 117.
350         * expr.c (convert_move): Change call to emit_no_conflict_block to
351         emit_insn.
352         * recog.c: Change comments so that they do not mention
353         REG_NO_CONFLICT.
354         * local_alloc.c (combine_regs): Removed last parameter.
355         (no_conflict_p): Removed.
356         (block_alloc): Removed note, no_conflict_combined_regno and set
357         local vars. Removed all code to process REG_NO_CONFLICT blocks.
358         (combine_regs): Removed already_dead and code to look for
359         REG_NO_CONFLICT notes.
360         * lower_subreg (remove_retval_note): Removed code to look for
361         REG_NO_CONFLICT block.
362         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
363         (resolve_clobber): Remove code to process libcalls that have
364         REG_NO_CONFLICT notes.
365         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
366         case.
367         * combine.c (can_combine_p, distribute_notes):  Removed
368         REG_NO_CONFLICT case.
369         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
370         to emit_insns.
371         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
372         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
373         Ditto.
374         * reg-notes.def (NO_CONFLICT): Removed.
375
376 2008-05-14  David S. Miller  <davem@davemloft.net>
377
378         * config/sparc/sparc.c (sparc_profile_hook): If
379         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
380         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
381         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
382
383 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
384
385         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
386
387 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
388
389         PR target/36222
390         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
391         and op1 expansion before vector concat to have less live pseudos.
392
393 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
394
395         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
396         ix86_expand_vector_set if supported.
397
398 2008-05-13  Diego Novillo  <dnovillo@google.com>
399             Kenneth Zadeck  <zadeck@naturalbridge.com>
400
401         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
402
403         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
404         phinodes_print_statistics, init_ssanames, fini_ssanames,
405         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
406         release_ssa_name, release_defs, replace_ssa_name_symbol,
407         ssanames_print_statistics): Move ...
408         * tree-flow.h: ... here.
409         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
410         Use FN instead of cfun.
411         (make_ssa_name_fn): Rename from make_ssa_name.
412         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
413         * tree-flow-inline.h (make_ssa_name): Move from
414         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
415         * omp-low.c (expand_omp_parallel):
416         * tree-flow-inline.h (redirect_edge_var_map_result):
417         * tree-ssa.c (init_tree_ssa): Add argument FN.
418         Use it instead of cfun.  Update all users.
419
420 2008-05-13  Tom Tromey  <tromey@redhat.com>
421
422         PR preprocessor/22168:
423         * doc/cpp.texi (Top): Update menu.
424         (Alternatives to Wrapper #ifndef): New node.
425         (Other Directives): Document deprecation.
426         (Obsolete Features): Remove menu.
427         (Assertions): Merge node into Obsolete Features.
428         (Obsolete once-only headers): Move earlier; rename to Alternatives
429         to Wrapper #ifndef.
430         * doc/cppopts.texi: Update.
431         * c.opt (Wdeprecated): Enable for C and ObjC.
432         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
433         (C++ Dialect Options): Move -Wno-deprecated from here to...
434         (Warning Options): ... here.
435
436 2008-05-13  Richard Guenther  <rguenther@suse.de>
437
438         PR middle-end/36227
439         * fold-const.c (fold_sign_changed_comparison): Do not allow
440         changes in pointer-ness.
441
442 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
443
444         PR target/24713
445         * config/sh/sh.c (sh_expand_prologue): Don't clear
446         RTX_FRAME_RELATED_P for push insns.
447
448 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
449
450         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
451
452 2008-05-12  Anatoly Sokolov <aesok@post.ru>
453
454         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
455         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
456         Use 'machine->is_leaf' instead of 'leaf_func_p'.
457
458 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
459
460         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
461         (*vec_concatv4sf_sse): This.
462         (*sse2_concatv2si): Renamed to ...
463         (*vec_concatv2si_sse2): This.
464         (*sse1_concatv2si): Renamed to ...
465         (*vec_concatv2si_sse): This.
466         (*vec_concatv2di_rex): Renamed to ...
467         (*vec_concatv2di_rex64): This.
468         (*vec_concatv2si_sse4_1): New.
469         (*vec_concatv2di_rex64_sse4_1): Likewise.
470
471 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
472
473         PR rtl-optimization/36111
474         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
475         that was created for swappable operands.
476
477 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
478
479         PR ada/36001
480         * Makefile.in: Substitute GNATMAKE and GNATBIND.
481         * configure.ac: Add call to ACX_PROG_GNAT.
482
483 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
484
485         * optc-gen.awk: Fix comment typo.
486
487 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
488
489         * pretty-print.c (pp_integer_with_precision): Use
490         HOST_LONG_LONG_FORMAT.
491
492 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
493
494         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
495                 
496 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
497
498         * config/i386/i386.c (bdesc_ptest): Removed.
499         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
500         (bdesc_args): Add __builtin_ia32_ptestz128,
501         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
502         (ix86_init_mmx_sse_builtins): Updated.
503         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
504         (ix86_expand_builtin): Updated.
505
506 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
507
508         * tree-cfg.c (valid_fixed_convert_types_p): New function.
509         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
510
511 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
512
513         * value-prof.c (interesting_stringop_to_profile): Do not
514         return early for BUILT_IN_MEMPCPY.
515
516 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
517
518         * calls.c (expand_call): Don't use callgraph to increase
519         preferred_stack_boundary.
520
521         * cgraph.h (cgraph_rtl_info): Use unsigned on
522         preferred_incoming_stack_boundary.
523
524         * final.c (rest_of_clean_state): Use unsigned on
525         preferred_stack_boundary.
526
527 2008-05-09  Tom Tromey  <tromey@redhat.com>
528
529         PR preprocessor/22231:
530         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
531         proceeding.
532
533 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
534
535         PR tree-optimization/36129
536         * tree-ssa-ccp.c: Include value-prof.h.
537         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
538         built-in function was folded to a constant.
539         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
540
541 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
542             Sebastian Pop  <sebastian.pop@amd.com>
543
544         * tree-scalar-evolution.c: Document instantiate_scev.
545         (instantiate_parameters_1): Renamed instantiate_scev_1.
546         Don't use the same loop for instantiation_loop and evolution_loop.
547         (instantiate_scev): New.
548         (instantiate_parameters): Moved...
549         (resolve_mixers): Update call to instantiate_scev_1 to pass the
550         same loop twice.  Maintains the semantics for this function.
551         * tree-scalar-evolution.h (instantiate_scev): Declare.
552         (instantiate_parameters): ...here.  Now static inline.
553         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
554         instead of resolve_mixers.
555
556 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
557
558         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
559
560 2008-05-09  Tomas Bily  <tbily@suse.cz>
561
562         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
563         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
564         * tree-ssa-structalias.c (get_constraint_for): Likewise.
565         * c-common.c (c_common_truthvalue_conversion): Likewise.
566         * tree-object-size.c (compute_object_offset): Likewise.
567         * tree-inline.c (estimate_num_insns_1): Likewise.
568         * varasm.c (const_hash_1, compare_constant, copy_constant)
569         (compute_reloc_for_constant, output_addressed_constants)
570         (initializer_constant_valid_p): Likewise.
571         * c-omp.c (check_omp_for_incr_expr): Likewise.
572         * gimplify.c (gimplify_expr): Likewise.
573         * c-typeck.c (c_finish_return): Likewise.
574         * tree-vectorizer.c (supportable_widening_operation)
575         (supportable_narrowing_operation): Likewise.
576         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
577         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
578         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
579         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
580         (descr_info_loc): Likewise.
581         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
582         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
583         (fold_unary): Likewise.
584         * builtins.c (get_pointer_alignment): Likewise.
585         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
586         (instantiate_parameters_1): Likewise.
587         * tree.c (expr_align, stabilize_reference): Likewise.
588         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
589         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
590         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
591         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
592         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
593         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
594         Likewise.
595         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
596         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
597         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
598         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
599         (forward_propagate_comparison)
600         (tree_ssa_forward_propagate_single_use_vars): Likewise.
601         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
602         * emit-rtl.c (component_ref_for_mem_expr)
603         (set_mem_attributes_minus_bitpos): Likewise.
604         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
605         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
606         Likewise.
607         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
608         (build_function_call, pointer_diff, build_compound_expr)
609         (c_finish_return): Likewise.
610         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
611         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
612         Likewise.
613         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
614         * expr.c (is_aligning_offset): Likewise.
615         * tree-ssa-alias.c (is_escape_site): Likewise.
616         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
617         (check_all_va_list_escapes): Likewise.
618         * tree-ssa-loop-ivopts.c (determine_base_object)
619         (determine_common_wider_type): Likewise.
620         * dojump.c (do_jump): Likewise.
621         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
622         * tree-gimple.c (is_gimple_cast): Likewise.
623         * fold-const.c (decode_field_reference, )
624         (fold_sign_changed_comparison, fold_unary, fold_comparison)
625         (fold_binary): Likewise.
626         * tree-ssa-alias-warnings.c (find_alias_site_helper)
627         (already_warned_in_frontend_p): Likewise.
628         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
629         * tree.c (really_constant_p, get_unwidened): Likewise.
630         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
631         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
632         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
633         Likewise.
634         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
635         CONVERT_EXPR_P.
636         (CONVERT_EXPR_P): Define.
637         (CASE_CONVERT): Define.
638         
639 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
640
641         PR middle-end/36117
642         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
643         (delete_unmarked_insns): When deleting a call, call
644         delete_unreachable_blocks.
645         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
646         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
647
648 2008-05-08  Richard Guenther  <rguenther@suse.de>
649
650         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
651         (-ftree-salias): Likewise.
652         (salias-max-implicit-fields): Remove param documentation.
653         (salias-max-array-elements): Likewise.
654         * tree-pass.h (pass_create_structure_vars): Remove.
655         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
656         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
657         * tree-ssa-alias.c (create_structure_vars): Remove.
658         (gate_structure_vars): Likewise.
659         (pass_create_structure_vars): Likewise.
660         (gate_build_alias): Likewise.
661         (pass_build_alias): Adjust to run always and dump the function.
662         * common.opt (ftree-salias): Hide.
663         * passes.c (init_optimization_passes): Remove
664         pass_create_structure_vars, adjust comment.
665         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
666         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
667         * opts.c (decode_options): Do not set flag_tree_salias.
668         (common_handle_option): Add OPT_ftree_salias to the backward
669         compatibility section.
670
671 2008-05-08  Richard Guenther  <rguenther@suse.de>
672
673         * tree-flow-inline.h (var_can_have_subvars): Move ...
674         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
675         * tree-flow.h (var_can_have_subvars): Remove.
676         (push_fields_onto_fieldstack): Remove.
677         (sort_fieldstack): Likewise.
678         (struct fieldoff): Move ...
679         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
680         alias_set and base_for_components fields.
681         (sort_fieldstack): Make static.
682         (push_fields_onto_fieldstack): Likewise.  Remove code that
683         handles anything but RECORD_TYPEs.  Remove alias_set and
684         base_for_components handling.
685         (create_variable_info_for): Adjust.
686
687 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
688
689         * common.opt (Wframe-larger-than=): Shorten the help message
690         to one line.
691         * doc/invoke.texi (Wframe-larger-than=): Add more description.
692
693 2008-05-08  Rafael Espindola  <espindola@google.com>
694
695         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
696         trap.
697         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
698         trap and that both operands are gimple values.
699         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
700         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
701         is a fp operation.
702
703 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
704
705         * read-rtl.c (join_c_conditions): Return the first string if the
706         two strings are equal.
707
708 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
709
710         * gensupport.h (pred_data): Add a "num_codes" field.
711         (add_predicate_code): Declare.
712         * gensupport.c (add_predicate_code): New function.
713         (std_pred_table): Add an "allows_const_p" field.
714         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
715         Remove the (incomplete) list of such codes from the codes field.
716         (init_predicate_table): Use add_predicate_code.  Add all
717         RTX_CONST_OBJs if allows_const_p is true.
718         * genrecog.c (process_define_predicate): Use add_predicate_code.
719
720 2008-05-08  David Daney  <ddaney@avtrex.com>
721             Richard Sandiford  <rsandifo@nildram.co.uk>
722         
723         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
724         special case of constant zero operands.
725         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
726         old and new values.  Special case constant zero values.
727         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
728         fails.
729         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
730         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
731
732 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
733
734         PR target/36090
735         * simplify-rtx.c (simplify_plus_minus): Create CONST of
736         similar RTX_CONST_OBJ before CONST_INT.
737
738 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
739
740         * stmt.c (expand_stack_restore): Change sa mode if needed.
741
742 2008-05-08  Richard Guenther  <rguenther@suse.de>
743
744         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
745         return type to bool.
746         (ix86_sol10_return_in_memory): Likewise.
747         (ix86_i386elf_return_in_memory): Likewise.
748         (ix86_i386interix_return_in_memory): Likewise.
749         * config/i386/i386.c (ix86_return_in_memory): Likewise.
750         (ix86_sol10_return_in_memory): Likewise.
751         (ix86_i386elf_return_in_memory): Likewise.
752         (ix86_i386interix_return_in_memory): Likewise.
753
754 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
755
756         PR bootstrap/36180
757         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
758         fndecl argument.
759         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
760         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
761         declared in front.
762
763 2008-05-08  Richard Guenther  <rguenther@suse.de>
764
765         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
766         * tree-data-ref.h (struct dr_alias): Remove subvars field.
767         (DR_SUBVARS): Remove.
768         * tree-dfa.c (dump_subvars_for): Remove.
769         (debug_subvars_for): Likewise.
770         (dump_variable): Do not dump subvars.
771         (remove_referenced_var): Do not remove subvars.
772         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
773         (lookup_subvars_for_var): Remove.
774         (get_subvars_for_var): Likewise.
775         (get_subvars_at): Likewise.
776         (get_first_overlapping_subvar): Likewise.
777         (overlap_subvar): Likewise.
778         * tree-flow.h (subvar_t): Remove.
779         (struct var_ann_d): Remove subvars field.
780         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
781         argument.  Remove special handling of SFTs.
782         (compute_tag_properties): Likewise.
783         (set_initial_properties): Likewise.
784         (compute_call_clobbered): Likewise.
785         (count_mem_refs): Likewise.
786         (compute_memory_partitions): Likewise.
787         (compute_flow_insensitive_aliasing): Likewise.
788         (setup_pointers_and_addressables): Likewise.
789         (new_type_alias): Likewise.
790         (struct used_part): Remove.
791         (used_portions): Likewise.
792         (struct used_part_map): Likewise.
793         (used_part_map_eq): Likewise.
794         (used_part_map_hash): Likewise.
795         (free_used_part_map): Likewise.
796         (up_lookup): Likewise.
797         (up_insert): Likewise.
798         (get_or_create_used_part_for): Likewise.
799         (create_sft): Likewise.
800         (create_overlap_variables_for): Likewise.
801         (find_used_portions): Likewise.
802         (create_structure_vars): Likewise.
803         * tree.def (STRUCT_FIELD_TAG): Remove.
804         * tree.h (MTAG_P): Adjust.
805         (struct tree_memory_tag): Remove base_for_components and
806         unpartitionable flags.
807         (struct tree_struct_field_tag): Remove.
808         (SFT_PARENT_VAR): Likewise.
809         (SFT_OFFSET): Likewise.
810         (SFT_SIZE): Likewise.
811         (SFT_NONADDRESSABLE_P): Likewise.
812         (SFT_ALIAS_SET): Likewise.
813         (SFT_UNPARTITIONABLE_P): Likewise.
814         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
815         (union tree_node): Remove sft field.
816         * alias.c (get_alias_set): Remove special handling of SFTs.
817         * print-tree.c (print_node): Remove handling of SFTs.
818         * tree-dump.c (dequeue_and_dump): Likewise.
819         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
820         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
821         * tree-predcom.c (set_alias_info): Do not set subvars.
822         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
823         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
824         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
825         (add_vars_for_offset): Remove.
826         (add_virtual_operand): Remove special handling of SFTs.
827         (add_call_clobber_ops): Likewise.
828         (add_call_read_ops): Likewise.
829         (get_asm_expr_operands): Likewise.
830         (get_modify_stmt_operands): Likewise.
831         (get_expr_operands): Likewise.
832         (add_to_addressable_set): Likewise.
833         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
834         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
835         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
836         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
837         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
838         (tree_node_structure): Likewise.
839         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
840         handling of SFTs.
841         (find_what_p_points_to): Likewise.
842
843 2008-05-08  Sa Liu  <saliu@de.ibm.com>
844
845         * config/spu/spu.md: Fixed subti3 pattern.
846
847 2008-05-08  Richard Guenther  <rguenther@suse.de>
848
849         PR middle-end/36154
850         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
851         sure to create a representative for trailing arrays for PTA.
852
853 2008-05-08  Richard Guenther  <rguenther@suse.de>
854
855         PR middle-end/36172
856         * fold-const.c (operand_equal_p): Two objects which types
857         differ in pointerness are not equal.
858
859 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
860
861         * calls.c (compute_argument_block_size): Add argument tree fndecl.
862         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
863         (emit_library_call_value_1): Add new variable fndecl initialized by
864         NULL_TREE. It should be the decl type of orgfun, but this information
865         seems not to be available here, so it uses the default calling abi.
866         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
867         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
868         by TARGET_RETURN_IN_MEMORY.
869         * config/i386/i386-interix.h: Likewise.
870         * config/i386/i386.h: Likewise.
871         * config/i386/i386elf.h: Likewise.
872         * config/i386/ptx4-i.h: Likewise.
873         * config/i386/sol2-10.h: Likewise.
874         * config/i386/sysv4.h: Likewise.
875         * config/i386/vx-common.h: Likewise.
876         * config/cris/cris.h: Removed #if 0 clause.
877         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
878         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
879         argument.
880         (ix86_sol10_return_in_memory): Likewise.
881         (ix86_i386elf_return_in_memory): New.
882         (ix86_i386interix_return_in_memory): New.
883         * config/mt/mt-protos.h (mt_return_in_memory): New.
884         * config/mt/mt.c: Likewise.
885         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
886         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
887         * config/bfin/bfin.h: Likewise.
888         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
889         argument.
890         * config/bfin/bfin.c: Likewise.
891         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
892         * config/alpha/unicosmk.h: Likewise.
893         * config/i386/cygming.h: Likewise.
894         * config/iq2000/iq2000.h: Likewise.
895         * config/mips/mips.h: Likewise.
896         * config/mn10300/mn10300.h: Likewise.
897         * config/rs6000/rs6000.h: Likewise.
898         * config/score/score.h: Likewise.
899         * config/spu/spu.h: Likewise.
900         * config/v850/v850.h: Likewise.
901         * defaults.h: Likewise.
902         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
903         * expr.c (emit_block_move): Adjust use of
904         OUTGOING_REG_PARM_STACK_SPACE.
905         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
906         OUTGOING_REG_PARM_STACK_SPACE.
907         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
908
909 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
910
911         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
912         on OMP_RETURN for OMP_FOR.
913
914         PR debug/35896
915         * dwarf2out.c (dw_expand_expr, common_check): Removed.
916         (fortran_common): New function.
917         (gen_variable_die): Call fortran_common instead of common_check,
918         adjust for it returning tree instead of rtx.  Formatting.
919
920 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
921
922         PR rtl/7335
923         PR rtl/33826
924         * see.c (see_copy_insn): Copy new pure const attributes for new call.
925         * c-decl.c (merge_decls): Ditto.
926         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
927         to RTL_CONST_OR_PURE_CALL_P.
928         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
929         Initialized DECL_LOOPING_CONST_PURE.
930         (process_call_operands): Set tree_side_effects properly.
931         * tree.h (TREE_READONLY_DECL_P): Removed.
932         (DECL_IS_PURE): Renamed to DECL_PURE_P.
933         (DECL_LOOPING_OR_CONST_P): New macro.
934         (struct tree_function_decl): Added looping_const_or_pure_p.
935         (ECF_*) Renumbered.
936         (ECF_LOOPING_OR_CONST_P): New macro.
937         * rtlanal.c (pure_const_p): Removed.
938         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
939         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
940         to RTL_CONST_CALL_P.
941         * ipa-pure-const.c (pure_const_state_e): Added looping field.
942         (check_decl, check_tree, check_call, scan_function): Initialize
943         looping.
944         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
945         (static_execute): Set looping true for recursive functions.
946         Undo setting state to IPA_NEITHER for recursive functions.
947         * cse.c (cse_insn): 
948         * ifcvt.c (noce_can_store_speculate_p): Changed
949         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
950         RTL_CONST_OR_PURE_CALL_P.
951         * dse.c (scan_insn): Ditto.
952         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
953         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
954         RTL_CONST_OR_PURE_CALL_P.
955         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
956         pure_call_p to RTL_CONST_CALL_P.
957         * gimplify.c (gimplify_call_expr): Clear side effects for
958         non-looping pure and constant calls.
959         * calls.c (emit_call_1): Set rtl flags from ecf flags.
960         (flags_from_decl_or_type): Set ecf flags from decl flags.
961         (initialize_argument_information): Turn off
962         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
963         Change const to pure if callee_copies is true rather than just
964         turning off const.
965         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
966         way of marking pure calls.
967         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
968         Remove hack that was supposed to fix pr7335 and remove old
969         way of marking pure calls.
970         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
971         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
972         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
973         RTL_CONST_OR_PURE_CALL_P.
974         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
975         * loop-invariant.c (find_exits, find_invariant_bb): Changed
976         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
977         * sched-deps.c (schedule_analyze): Ditto.
978         * rtl.h (struct rtx_def): Use call field, unchanging field, and
979         return_val field of calls to represent pure and const function info.
980         (CONST_OR_PURE_CALL_P): Deleted macro.
981         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
982         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
983         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
984         TREE_READONLY.
985         * tree-optimize.c (execute_fixup_cfg): Added test for
986         ECF_LOOPING_CONST_OR_PURE.
987         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
988         DECL_PURE_P.
989         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
990         effects for looping pure or const calls.
991         (verify_gimple_expr): Added verification code. 
992         * config/alpha/alpha.c (alpha_legitimize_address,
993         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
994         RTL_CONST_CALL_P.
995         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
996         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
997         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
998         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
999         RTL_CONST_OR_PURE_CALL_P.
1000         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
1001         and const calls to be deleted.
1002
1003 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1004
1005         PR target/35714
1006         * config/i386/mmx.md (mmx_subv2sf3): New expander.
1007         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
1008         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
1009         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1010         to handle nonimmediate operands.
1011         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
1012         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
1013         to handle nonimmediate operands.
1014         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
1015         (mmx_pmulhrwv4hi3): New expander.  Use
1016         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1017         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
1018         (sse2_umulv1siv1di3): New expander.  Use
1019         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1020         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
1021         (mmx_eq<mode>3): New expander.  Use
1022         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1023         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
1024         (mmx_uavgv8qi3): New expander.  Use
1025         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1026         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
1027         (mmx_uavgv4hi3): New expander.  Use
1028         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1029
1030         * config/i386/sse.md
1031         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
1032         to handle nonimmediate operands.
1033         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
1034         to handle nonimmediate operands.
1035         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
1036         to handle nonimmediate operands.
1037         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
1038         to handle nonimmediate operands.
1039         (sse2_unpckhpd_exp): New expander.  Use
1040         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1041         (sse2_unpcklpd_exp): New expander.  Use
1042         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1043         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
1044         to handle nonimmediate operands.
1045         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
1046         to handle nonimmediate operands.
1047         (*sse2_<plusminus_insn><mode>3): Rename from
1048         sse2_<plusminus_insn><mode>3 insn pattern.
1049         (sse2_<plusminus_insn><mode>3): New expander.  Use
1050         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1051         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
1052         (sse2_umulv2siv2di3): New expander.  Use
1053         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1054         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
1055         (sse4_1_mulv2siv2di3): New expander.  Use
1056         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1057         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
1058         (sse2_pmaddwd): New expander.  Use
1059         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1060         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
1061         (sse2_eq<mode>3): New expander.  Use
1062         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1063         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
1064         (sse4_1_eqv2di3): New expander.  Use
1065         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1066         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1067         (sse2_uavgv16qi3): New expander.  Use
1068         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1069         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1070         (sse2_uavgv16qi3): New expander.  Use
1071         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1072         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
1073         (sse2_uavgv8hi3): New expander.  Use
1074         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1075         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
1076         (ssse3_pmulhrswv8hi3): New expander.  Use
1077         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1078         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
1079         (ssse3_pmulhrswv4hi3): New expander.  Use
1080         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1081
1082         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
1083         (<sse>_vmmul<mode>3): Ditto.
1084         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
1085         (divv2df3): Ditto.
1086         (ssse3_pmaddubsw128): Use register_operand for operand 1.
1087         (ssse3_pmaddubsw): Ditto.
1088
1089         * config/i386/i386.c (struct_builtin_description)
1090         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
1091         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
1092         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
1093         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
1094         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
1095         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
1096         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
1097         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
1098         (ix86_fixup_binary_operands): Assert that src1
1099         and src2 must have the same mode when swapped.
1100         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
1101         and ix86_binary_operator_ok.  Do not force operands in registers
1102         when optimizing.
1103
1104 2008-05-07  Jan Hubicka  <jh@suse.cz>
1105
1106         * cgraph.c (dump_cgraph_node): Update.
1107         * cgraph.h (cgraph_local_info): Break out inline summary.
1108         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
1109         hook.
1110         * ipa-inline (inline_summary): New accestor function.
1111         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
1112         cgraph_decide_inlining, compute_inline_parameters): Update.
1113         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
1114
1115 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1116
1117         Cleanup ColdFire scheduling support and add V4 pipeline model.
1118
1119         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
1120         (define_attr cpu): Add cfv4 value.
1121         (define_attr type, define_attr type1): Merge into a single 'type'
1122         attribute.  Update all uses.
1123         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
1124         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
1125         Update all uses.
1126         (define_attr opx_mem, define_attr opy_mem): Remove.
1127         (define_attr op_mem): Clean up, update comment.
1128         (define_attr size): Use specific values instead of general int.
1129         (define_attr guess, define_attr split): Remove.  Update all uses.
1130         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
1131         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
1132         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
1133         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
1134         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
1135         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
1136         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
1137         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
1138         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
1139         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
1140         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
1141         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
1142         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
1143         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
1144         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
1145         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
1146         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
1147         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
1148         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
1149         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
1150         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
1151         Update or set attributes.
1152         (stack_tie): New fake instruction.
1153
1154         * config/m68k/m68k.h (TUNE_CFV4): New macro.
1155         (m68k_sched_attr_size): Update declaration.
1156         (m68k_sched_attr_type2): Remove.
1157         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
1158         Declare new bypass predicates.
1159
1160         * config/m68k/m68k.c (m68k_sched_issue_rate,
1161         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
1162         implementations.
1163         (TARGET_SCHED_ISSUE_RATE,
1164         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
1165         (override_options): Handle scheduling for ColdFire V4 core.
1166         (m68k_expand_prologue): Emit stack_tie.
1167         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
1168         'OP_TYPE_FPN'.  Update all uses.
1169         (sched_guess_p): Remove.
1170         (sched_address_type): Handle symbolic addresses.
1171         (sched_get_operand): New static function.
1172         (sched_operand_type): Merge into sched_attr_op_type.
1173         (sched_attr_op_type): Handle FP registers, handle quick constants,
1174         update.
1175         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
1176         (m68k_sched_attr_size): Update.  Move logic to ...
1177         (sched_get_attr_size_int): New static function.
1178         (sched_get_opxy_mem_type): New static function.
1179         (m68k_sched_attr_op_mem): Update.
1180         (m68k_sched_attr_type2): Remove.
1181         (sched_cfv4_bypass_data): New static variable.
1182         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
1183         (m68k_sched_issue_rate): Implement scheduler hook.
1184         (struct _sched_ib: enabled_p): New field.
1185         (m68k_sched_variable_issue): Update.  Handle V4.
1186         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
1187         sched_dump_class_func_t, sched_dump_split_class,
1188         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
1189         sched_dump_dfa_class, m68k_sched_dump): Remove.
1190         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
1191         hook.
1192         (m68k_sched_init_global): Remove statisctics dumping, introduce
1193         sanity check that all instructions have pipeline reservations.  Handle
1194         ColdFire V4 core.
1195         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1196         Handle ColdFire V4 core.
1197         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
1198         New static functions.
1199         (m68k_sched_address_bypass_p): New bypass predicate.
1200         (sched_get_indexed_address_scale): New static function.
1201         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
1202
1203         * cf.md: Update comments.
1204         (define_attr type2): Remove.  Use 'type' attribute instead.
1205         Update all uses.
1206         (cf_ib): Rename to cfv123_ib.  Update all uses.
1207         (cf_oep): Rename to cfv123_oep.  Update all uses.
1208         (cf_chr): Rename to cfv123_chr.  Update all uses.
1209         (cf_mem): Rename to cfv123_mem.  Update all uses.
1210         (cf_mac): Move to more appropriate place.
1211         (cfv123_guess): New automaton and cpu_unit.
1212         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
1213         Update uses of 'size' attribute.  Handle before reload scheduling.
1214         (cfv123_guess): New dummy reservation for unhandled instructions.
1215         (cfv4_*): Pipeline description of ColdFire V4 core.
1216         (ignore): New reservation to handle 'ignore' type.
1217
1218 2008-05-07  Ian Lance Taylor  <iant@google.com>
1219
1220         PR middle-end/36013
1221         * gimplify.c (find_single_pointer_decl_1): Don't look through
1222         indirections.
1223         (find_single_pointer_decl): Adjust comments.
1224
1225 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
1226
1227         PR middle-end/36137
1228         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
1229         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
1230
1231         PR middle-end/36106
1232         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
1233         integral type rather than floating point, then VIEW_CONVERT_EXPR
1234         to the floating point type.
1235
1236 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1237
1238         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
1239         TFmode op0 to register.
1240
1241 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
1242
1243         * c-decl.c (grokdeclarator): Comment typo.
1244
1245 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
1246
1247         * tree-flow.h: Remove prototype for computed_goto_p.
1248         * tree-cfg.c (computed_goto_p): Make static.
1249
1250 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1251
1252         PR target/35657
1253         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1254         (contains_aligned_value_p): This.  Handle _Decimal128.
1255         (ix86_function_arg_boundary): Only align _Decimal128 to its
1256         natural boundary and handle it properly.
1257
1258 2008-05-06  Martin Jambor  <mjambor@suse.cz>
1259
1260         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
1261         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
1262         (ipcp_method_set_orig_node): Removed.
1263         (ipcp_cval_get_cvalue_type): Removed.
1264         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
1265         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
1266         (ipcp_cval_set_cvalue_type): Removed.
1267         (ipcp_cval_get_cvalue): Removed.
1268         (ipcp_cval_set_cvalue): Removed.
1269         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
1270         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
1271         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
1272         (ipcp_cval_meet): Renamed to ipa_lattice_meet
1273         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
1274         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
1275         (ipcp_get_ith_lattice): Changed parameters.
1276         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
1277         (ipcp_lattice_from_jfunc): Changed parameters.
1278         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
1279         (ipcp_method_cval_print): Added temporary variable info.
1280         (ipcp_redirect): Removed already unused local variable caller.
1281         (ipcp_redirect): New temporary variable orig_callee_info
1282         (ipcp_redirect): Removed newly unused local variable callee.
1283         (ipcp_redirect): Removed (a bit confusing) local variable type.
1284         (ipcp_insert_stage): Added local variable info.
1285         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
1286         renamed too
1287         (ipcp_formal_create): Removed.
1288         (ipcp_method_cval_set): Removed.
1289         (ipcp_propagate_stage): Renamed lattice variables.
1290         (ipcp_method_cval_set_cvalue_type): Removed.
1291         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
1292         (ipcp_print_all_lattices): Changed printed strings to refer to 
1293         lattices rather than cvals.
1294         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1295         (ipcp_propagate_const): Changed formal parameters.
1296         (build_const_val): Changed formal parameters.
1297         (ipcp_insert_stage): Removed useless variable cvalue
1298         (build_const_val): Changed formal parameters.
1299         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1300         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1301         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1302         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1303         (ipcp_print_func_profile_counts): Changed string from "method" to 
1304         "function"
1305         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1306         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1307         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1308         (ipcp_structures_print): Renamed to ipcp_print_all_structures
1309         (ipcp_profile_print): Renamed to ipcp_print_profile_data
1310         (ipcp_lat_is_const): Changed parameters and made inline.
1311         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1312         (ipcp_redirect): Renamed to ipcp_need_redirect_p
1313         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
1314         the predicate condition directly
1315         (ipcp_propagate_stage): Added local variable args. Removed local
1316         variable callee.  (Both are mere code simplifications.)
1317         (ipcp_method_dont_insert_const): Renamed to
1318         ipcp_node_not_modifiable_p.
1319         (ipcp_node_not_modifiable_p): Made inline.
1320         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1321         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1322         (ipcp_print_all_lattices): Removed variable cvalue
1323         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1324         Updated comments.
1325
1326 2008-05-06  Olivier Hainque  <hainque@adacore.com>
1327
1328         * tree-sra.c (try_instantiate_multiple_fields): Early return
1329         if field has POINTER_TYPE.
1330
1331 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
1332
1333         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1334         by using 'q' specifier for instruction.
1335         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1336
1337 2008-05-06  Anatoly Sokolov <aesok@post.ru>
1338
1339         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1340         Change mode of zero_extract from QImode to HImode.
1341         (sign bit tests peepholes): (Ditto.).
1342
1343 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
1344
1345         * config/i386/mmx.md: Remove double backslashes from asm templates.
1346         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
1347         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1348         to handle nonimmediate operands.
1349         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
1350         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1351         to handle nonimmediate operands.
1352         (*mmx_<code>v2sf3_finite): New insn pattern.
1353         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
1354         (mmx_<code>v2sf3): New expander.  Use
1355         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1356         (mmx_<plusminus_insn><mode>3): New expander.  Use
1357         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1358         (*mmx_<plusminus_insn><mode>3): New insn pattern.
1359         (mmx_add<mode>3): Removed.
1360         (mmx_ssadd<mode>3): Ditto.
1361         (mmx_usadd<mode>3): Ditto.
1362         (mmx_sub<mode>3): Ditto.
1363         (mmx_sssub<mode>3): Ditto.
1364         (mmx_ussub<mode>3): Ditto.
1365         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
1366         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
1367         to handle nonimmediate operands.
1368         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
1369         insn pattern.
1370         (mmx_smulv4hi3_highpart): New expander.  Use
1371         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1372         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
1373         insn pattern.
1374         (mmx_umulv4hi3_highpart): New expander.  Use
1375         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1376         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
1377         (mmx_<code>v4hi3): New expander.  Use
1378         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1379         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
1380         (mmx_<code>v8qi3): New expander.  Use
1381         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1382         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
1383         (mmx_<code><mode>3): New expander.  Use
1384         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1385
1386 2008-05-05  Jan Hubicka  <jh@suse.cz>
1387
1388         PR tree-optimization/36118
1389         * passes.c (pass_init_dump_file): Fix dump header.
1390
1391 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1392
1393         PR middle-end/36141
1394         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1395         VCE for function decls.
1396
1397 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1398
1399         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1400
1401 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1402
1403         * config/i386/i386.md (sat_plusminus): New.
1404         (plusminus_insn): Likewise.
1405         (plusminus_mnemonic): Likewise.
1406         (addsub): Removed.
1407         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1408         (*<addsub><mode>3_cc_overflow): Renamed to ...
1409         (*<plusminus_insn><mode>3_cc_overflow): This.
1410         (*<addsub>si3_zext_cc_overflow): Renamed to ...
1411         (*<plusminus_insn>si3_zext_cc_overflow): This.
1412
1413         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
1414         (<plusminus_insn><mode>3): This.
1415         (*<addsub><mode>3): Renamed to ...
1416         (*<plusminus_insn><mode>3): This.
1417         (<sse>_vm<addsub><mode>3): Renamed to ...
1418         (<sse>_vm<plusminus_insn><mode>3): This.
1419         (sse3_h<addsub>v4sf3): Renamed to ...
1420         (sse3_h<plusminus_insn>v4sf3): This.
1421         (sse3_h<addsub>v2df3): Renamed to ...
1422         (sse3_h<plusminus_insn>v2df3): This.
1423         (<plusminus_insn><mode>3): New.
1424         (*<plusminus_insn><mode>3): Likewise.
1425         (sse2_<plusminus_insn><mode>3): Likewise.
1426         (add<mode>): Removed.
1427         (*add<mode>3): Likewise.
1428         (sse2_ssadd<mode>3): Likewise.
1429         (sse2_usadd<mode>3): Likewise.
1430         (sub<mode>3): Likewise.
1431         (*sub<mode>3): Likewise.
1432         (sse2_sssub<mode>3): Likewise.
1433         (sse2_ussub<mode>3): Likewise.
1434
1435 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
1436
1437         * gthr-single.h: Add in required interface elements as per gthr.h.
1438         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1439         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1440         Generalize UNUSED macro. 
1441         (__gthread_once): Add.
1442         (__gthread_key_create): Add.
1443         (__gthread_key_delete): Add.
1444         (__gthread_getspecific): Add.
1445         (__gthread_setspecific): Add.
1446         
1447 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
1448
1449         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1450         the same size types for the indirect reference on the rhs, then
1451         create a VCE.
1452
1453 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
1454
1455         * config/i386/i386.md
1456         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1457         one insn template instead of template series.
1458         (*xordi_1_rex64): Ditto.
1459         (*xordi_2_rex64): Ditto.
1460
1461 2008-05-05  Ira Rosen  <irar@il.ibm.com>
1462
1463         PR tree-optimization/36119
1464         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1465         in case of SLP.
1466
1467 2008-06-04  Jan Hubicka  <jh@suse.cz>
1468
1469         tree-optimization/36100
1470         * tree-pass.h (pass_O0_always_inline): Declare.
1471         * ipa-inline.c (inline_transform): Remove dead code.
1472         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1473         pass_O0_always_inline): New.
1474         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1475
1476 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
1477
1478         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1479         mnemonic in this_param move for TARGET_64BIT.
1480
1481 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
1482
1483         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1484         (*strmovsi_rex_1): Ditto.
1485         (*strsetsi_1): Ditto.
1486         (*strsetsi_rex_1): Ditto.
1487
1488         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1489         adddicc expanders using SWI mode iterator.
1490
1491 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1492
1493         PR target/36121
1494         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1495         argument handling.
1496
1497 2008-05-04  David S. Miller  <davem@davemloft.net>
1498
1499         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1500         (sparc*-*-linux*): Use linux.h in tm_file.
1501         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1502         compiler defaulting to 32-bit.
1503         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1504         no longer needed.
1505         * config/sparc/linux.h: Remove definitions now obtained
1506         properly from linux.h
1507         * config/sparc/linux64.h: Likewise.
1508         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1509         don't want this setting for 32-bit builds in a biarch compiler.
1510         * doc/install.texi: Add sparc-linux to list of targets
1511         supporting --enable-targets=all.
1512
1513 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
1514
1515         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1516
1517 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
1518
1519         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1520         after V4SI_FTYPE_V8HI.
1521         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1522         case V4SI_FTYPE_V2DF.
1523
1524 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
1525
1526         * doc/invoke.texi (max-flow-memory-locations): Removed.
1527         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1528         
1529 2008-05-03  Richard Guenther  <rguenther@suse.de>
1530
1531         PR middle-end/34973
1532         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1533
1534 2008-05-02  David S. Miller  <davem@davemloft.net>
1535
1536         * config.gcc (need_64bit_hwint): Document libcpp dependency.
1537
1538 2008-05-02  Simon Baldwin <simonb@google.com>
1539
1540         PR bootstrap/36108
1541         * c-common.h (warn_array_subscript_range): Removed.
1542         * c-common.c (warn_array_subscript_range): Ditto.
1543         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1544         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1545
1546 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1547
1548         * config/i386/i386.c (ix86_special_builtin_type): New.
1549         (bdesc_special_args): Likewise.
1550         (ix86_expand_special_args_builtin): Likewise.
1551         (ix86_init_mmx_sse_builtins): Updated.
1552         (ix86_expand_builtin): Updated.
1553         (ix86_expand_store_builtin): Removed.
1554         (ix86_expand_unop_builtin): Likewise.
1555
1556         * config/i386/mm3dnow.h (__v2sf): Moved to ...
1557         * config/i386/mmintrin.h (__v2sf): Here.
1558
1559         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1560         const __v2sf.
1561         (_mm_loadl_pi): Likewise.
1562         (_mm_storeh_pi): Replace __v2si with __v2sf.
1563         (_mm_storel_pi): Likewise.
1564
1565         * doc/extend.texi: Correct __builtin_ia32_loadhps,
1566         __builtin_ia32_loadlps, __builtin_ia32_storehps,
1567         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1568         __builtin_ia32_loadlpd.
1569
1570 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1571
1572         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1573         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1574         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
1575         (ix86_init_mmx_sse_builtins): Updated.
1576         (ix86_expand_args_builtin): Likewise.
1577         (ix86_expand_builtin): Likewise.
1578         (ix86_expand_unop1_builtin): Renamed to ...
1579         (ix86_expand_unop_vec_merge_builtin): This.
1580
1581 2008-05-01  Jan Hubicka  <jh@suse.cz>
1582
1583         PR bootstrap/36100
1584         * ipa-inline.c (inline_generate_summary): Make static.
1585         (inline_transform): Do not call inlining at -O0; make static.
1586         * passes.c (execute_todo): Add sanity check.
1587         (execute_one_ipa_transform_pass): Execute proper flags.
1588
1589 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1590
1591         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1592         (DECL_NONADDRESSABLE_P): Likewise.
1593         * alias.c (record_component_aliases): Fix comment.
1594
1595 2008-05-01  Simon Baldwin <simonb@google.com>
1596
1597         * c-common.h (warn_array_subscript_range): New function.
1598         * c-common.c (warn_array_subscript_range): Ditto.
1599         * tree-vrp.c (check_array_ref): Corrected code to agree with
1600         comment, ignoring only arrays of size 0 or size 1.
1601         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1602
1603 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1604
1605         * config/i386/i386.c (ix86_builtin_type): Replace
1606         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1607         (bdesc_args): Updated.
1608         (ix86_init_mmx_sse_builtins): Likewise.
1609         (ix86_expand_args_builtin): Likewise.
1610
1611         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1612         with __v1di.
1613
1614         * doc/extend.texi: Correct __builtin_ia32_palignr.
1615
1616 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1617
1618         PR target/36095
1619         * config/i386/i386.c (bdesc_crc32): Removed.
1620         (ix86_expand_crc32): Likewise.
1621         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1622         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1623         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
1624         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1625         UINT_FTYPE_UINT_UCHAR.
1626         (bdesc_args): Updated. Add crc32 builtins.
1627         (ix86_init_mmx_sse_builtins): Updated.
1628         (ix86_expand_args_builtin): Updated to support subreg.
1629
1630         * doc/extend.texi: Correct __builtin_ia32_crc32di.
1631
1632 2008-05-01  Jan Hubicka  <jh@suse.cz>
1633
1634         * tree-pass.h (opt_pass): Add IPA_PASS.
1635         (varpool_node, cgraph_node): Forward declare.
1636         (ipa_opt_pass): Define.
1637         (pass_ipa_inline): Turn into ipa_opt_pass.
1638         (pass_apply_inline): Remove.
1639         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1640         (apply_inline): Turn into ....
1641         (inline_transform): ... this one.
1642         (inline_generate_summary): New function.
1643         (pass_apply_inline): Remove.
1644         * function.h (ipa_opt_pass): Forward declare structure; typedef;
1645         vector.
1646         (struct function): Add ipa_transforms_to_apply.
1647         * passes.c (register_one_dump_file): Work on IPA_PASS.
1648         (init_optimization_passes): Remove pass_inline_parameters and
1649         pass_apply_inline.
1650         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1651         (execute_one_pass) ... here; apply transforms when possible.
1652         (add_ipa_transform_pass, execute_ipa_summary_asses,
1653         execute_one_ipa_transform_pass): New.
1654         (execute_ipa_pass_list): Update for IPA_PASS type.
1655
1656 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1657
1658         * config/i386/i386.c (ix86_builtin_type): Add
1659         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1660         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1661         (bdesc_args): Add SSE4a builtins.
1662         (ix86_init_mmx_sse_builtins): Updated.
1663         (ix86_expand_args_builtin): Likewise.
1664         (ix86_expand_builtin): Likewise.
1665
1666 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1667
1668         * config/i386/i386.c (ix86_builtin_type): Add
1669         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1670         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1671         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1672         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1673         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1674         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1675         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1676         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1677         and DI_FTYPE_DI_DI_INT.
1678         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1679         (ix86_init_mmx_sse_builtins): Updated.
1680         (ix86_expand_args_builtin): Likewise.
1681         (ix86_expand_builtin): Likewise.
1682         (ix86_expand_binop_imm_builtin): Removed.
1683
1684         * doc/extend.texi: Correct __builtin_ia32_palignr128.
1685
1686 2008-04-30  Richard Guenther  <rguenther@suse.de>
1687
1688         PR tree-optimization/32921
1689         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1690
1691 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
1692
1693         * config/arm/arm.c (arm_unwind_emit): Use
1694         crtl->all_throwers_are_sibcalls instead of
1695         cfun->all_throwers_are_sibcalls.
1696         (arm_output_fn_unwind): Likewise.
1697         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1698         instead of cfun->uses_pic_offset_table.
1699         (frv_expand_prologue): Likewise.
1700         (frv_frame_pointer_required): Likewise.
1701         (frv_expand_fdpic_call): Likewise.
1702         (frv_emit_movsi): Likewise.
1703         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1704         cfun->returns_pcc_struct instead of
1705         current_function_returns_pcc_struct.
1706         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1707         instead of cfun->calls_eh_return.
1708         (m32c_pushm_popm): Likewise.
1709         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1710         "extern" declaration.
1711
1712 2008-04-30  Richard Guenther  <rguenther@suse.de>
1713
1714         PR tree-optimization/21636
1715         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1716         constant address.
1717         (evaluate_stmt): Print the likely value.
1718         (ccp_visit_stmt): Avoid excessive vertical spacing.
1719
1720 2008-04-30  Rafael Espindola  <espindola@google.com>
1721
1722         * builtins.c (fold_call_expr): Return realret.
1723         * tree-ssa-threadedge.c
1724         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1725         __builtin_object_size.
1726
1727 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
1728
1729         * gcc.c (wrapper_string): New variable.
1730         (insert_wrapper): New function.
1731         (execute): New option -wrapper.
1732         * doc/invoke.texi (Overall Options): New driver option -wrapper.
1733
1734 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
1735
1736         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1737         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1738         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1739         from...
1740         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
1741         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1742         config/rs6000/e500crtres64gprctr.asm,
1743         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1744         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1745         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1746         config/rs6000/e500crtsav64gprctr.asm,
1747         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1748         config/rs6000/e500crtsavg64gprctr.asm: New files.
1749         * config/rs6000/t-ppccomm: Add build rules for new files.
1750         (LIB2FUNCS_STATIC_EXTRA): Add new files.
1751         * config/rs6000/t-netbsd: Add build rules for new files.
1752         (LIB2FUNCS_STATIC_EXTRA): New variable.
1753         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1754         (CRTSAVRES_DEFAULT_SPEC): Likewise.
1755         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
1756
1757 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
1758
1759         * config/i386/i386.c (ix86_builtin_type): Add
1760         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1761         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1762         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1763         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1764         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1765         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1766         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1767         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1768         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1769         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1770         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1771         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1772         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1773         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1774         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1775         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1776         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1777         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1778         V1DI_FTYPE_V2SI_V2SI.
1779         (bdesc_2arg): Moved to ...
1780         (bdesc_args): Here.
1781         (ix86_init_mmx_sse_builtins): Updated.
1782         (ix86_expand_args_builtin): Updated.  Take a pointer
1783         to const struct builtin_description.  Handle comparison
1784         builtin functions.
1785         (ix86_expand_sse_compare): Take a new argument for swapping operands.
1786         (ix86_expand_builtin): Updated.
1787
1788         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1789         (ssse3_pmaddubsw128): This.
1790         (ssse3_pmaddubswv4hi3): Renamed to ...
1791         (ssse3_pmaddubsw): This.
1792
1793         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1794         (__builtin_ia32_packssdw128): Likewise.
1795         (__builtin_ia32_packuswb128): Likewise.
1796         (__builtin_ia32_pmaddubsw): Likewise.
1797         (__builtin_ia32_pmaddubsw128): Likewise.
1798
1799 2008-04-30  Richard Guenther  <rguenther@suse.de>
1800
1801         PR tree-optimization/14847
1802         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1803         (recognize_bits_test): Use it.
1804         (recognize_single_bit_test): Likewise.
1805
1806 2008-04-30  Martin Jambor  <mjambor@suse.cz>
1807
1808         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1809         instead of setting number of formal parameters to zero.
1810         (ipcp_init_stage): Do not set the number of actual parameters to zero 
1811         either.
1812         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1813         which are called with variable number of arguments.
1814         (ipcp_insert_stage): Explicitely skipping all nodes which are
1815         called with variable number of arguments.
1816         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
1817         number of parameters.
1818
1819         * ipa-prop.h (struct ipa_node_params): Added flag
1820         called_with_var_arguments
1821         (ipa_set_param_count): Added.  Changed sole setter to use it.
1822         (ipa_get_param_count): Added.  All readers of param_count
1823         converted to use it instead.
1824         (ipa_set_called_with_variable_arg): Added.
1825         (ipa_is_called_with_var_arguments): Added.
1826         (ipa_get_ith_param): Added.  All readers of param_decls converted
1827         to use it instead.
1828         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
1829         changed to use it. 
1830         (ipa_get_cs_argument_count): Added, all readers of argument_count
1831         changed to cal it.
1832         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
1833         to use it.
1834         
1835         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1836         (struct ipcp_lattice): Renamed cval_type to type
1837         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1838
1839         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1840         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1841         (ipcp_insert_stage): Changed the type of variable cvalue to tree
1842         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1843         (build_const_val): Changed the type of parameter cvalue to tree
1844         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1845         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1846         
1847         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
1848         constant 
1849
1850         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1851         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1852         (ipa_add_method): Renamed to ipa_push_func_to_list
1853         (ipa_remove_method): Renamed to ipa_pop_func_from_list
1854         (ipa_callsite_param_count): Removed.
1855         (ipa_callsite_param_count_set): Removed.
1856         (ipa_callsite_param): Removed.
1857         (ipa_callsite_callee): Removed.
1858         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1859         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1860         (ipa_method_formal_count): Removed.
1861         (ipa_method_formal_count_set): Removed.
1862         (ipa_method_get_tree): Removed.
1863         (ipa_method_tree_map_create): Removed.
1864         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1865         (ipa_create_param_decls_array): Creates the array itself
1866         (ipa_create_param_decls_array): Temporary variable info instead of 
1867         a few dereferences.
1868         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1869         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1870         (get_type): Removed.
1871         (ipa_jf_get_info_type): Removed.
1872         (ipa_node_create): Renamed to ipa_create_node_params
1873         (ipa_free): Renamed to ipa_free_all_node_params
1874         (ipa_nodes_create): Renamed to ipa_create_all_node_params
1875         (ipa_edges_create): Renamed to ipa_create_all_edge_args
1876         (ipa_edges_free): Renamed to ipa_free_all_edge_args
1877         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1878         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
1879         ipa_free_all_edge_args
1880         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1881         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1882         (ipa_create_methodlist_node): Removed.
1883         (ipa_methodlist_method): Removed.
1884         (ipa_methodlist_method_set): Removed.
1885         (ipa_methodlist_next_method): Removed.
1886         (ipa_methodlist_next_method_set): Removed.
1887         (ipa_method_is_modified): Removed.
1888         (ipa_method_modify_create): Removed.
1889         (ipa_method_modify_init): Temporary variable info instead of a few 
1890         dereferences.
1891         (ipa_detect_param_modifications): Temporary variable info instead of 
1892         a few dereferences.
1893         (ipa_compute_jump_functions): Temporary variable info instead of 
1894         a few dereferences.
1895         (ipa_method_modify_set): Removed.
1896         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1897         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
1898         than craph_node as the first parameter.
1899         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1900         (ipa_method_modify_init): Removed.
1901         (ipa_compute_jump_functions): Added a temp variable instead of 
1902         repeatadly dereferencing the cgraph_edge.aux pointer
1903         (ipa_callsite_param_set_type): Removed.
1904         (ipa_compute_jump_functions): i renamed to index and moved to 
1905         an inner block
1906         (ipa_callsite_param_set_info_type_formal): Removed.
1907         (ipa_callsite_param_set_info_type): Removed.
1908         (ipa_callsite_param_map_create): Removed.
1909         (ipa_callsite_tree): Removed.
1910         (ipa_callsite_caller): Removed.
1911         (ipa_pop_func_from_list): return_method removed to return_func
1912
1913         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1914         prefixed all values with IPA_. Changed all users.
1915         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
1916         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
1917         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
1918         (union parameter_info): Renamed to jump_func_value.
1919         (union jump_func_value): Renamed value to constant
1920         (struct ipa_jump_func): Renamed info_type to value
1921         (struct ipa_node): Renamed to ipa_node_params
1922         (struct ipa_node_params): Renamed ipa_arg_num to param_count
1923         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1924         (struct ipa_node_params): Renamed ipa_mod to modified_flags
1925         (struct ipa_edge): Renamed to ipa_edge_args
1926         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1927         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1928         (struct ipa_methodlist): Renamed to ipa_func_list
1929         (struct ipa_func_list): method_p renamed to node, next_method
1930         renamed to next
1931         (ipa_methodlist_p): Removed, switched all users to struct pointer
1932         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1933
1934 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
1935
1936         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1937         (rs6000_emit_epilogue): Use backchain to restore only when we
1938         have a large frame.  Make use of frame pointer to restore if we
1939         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1940
1941 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
1942
1943         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1944         Add mode to zero_extract.
1945         (sign bit tests peepholes): (Ditto.).
1946
1947 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1948
1949         * config/i386/i386.c (ix86_builtins): Replace Prescott New
1950         Instructions in comments with SSE3.
1951         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
1952         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1953         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1954         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1955         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1956         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1957         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1958         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1959         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1960         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1961         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1962         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1963         (bdesc_sse_args): Renamed to ...
1964         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1965         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1966         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1967         IX86_BUILTIN_FABSQ.
1968         (bdesc_1arg): Moved to ...
1969         (bdesc_args): Here.
1970         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
1971         Instructions in comments with SSE3.
1972         (ix86_expand_sse_operands_builtin): Renamed to ...
1973         (ix86_expand_args_builtin): This.  Updated.
1974         (ix86_expand_unop1_builtin): Update comments.
1975         (ix86_expand_builtin): Updated.
1976
1977 2008-04-29  Richard Guenther  <rguenther@suse.de>
1978
1979         PR tree-optimization/36078
1980         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1981         Update virtual SSA form after cleaning up the CFG.
1982
1983 2008-04-29  Richard Guenther  <rguenther@suse.de>
1984
1985         PR middle-end/15255
1986         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1987
1988 2008-04-29  Richard Guenther  <rguenther@suse.de>
1989
1990         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1991         (compute_may_aliases): Do not call finalize_ref_all_pointers.
1992         (compute_flow_insensitive_aliasing): Do not treat
1993         PTR_IS_REF_ALL pointers special.
1994         (get_smt_for): Likewise.
1995         (may_alias_p): Re-structure.
1996         (is_escape_site): A ref-all pointer conversion is not an escape site.
1997         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1998         PTR_IS_REF_ALL pointers special.
1999         * tree-ssa-structalias.h (struct alias_info): Remove
2000         ref_all_symbol_mem_tag field.
2001         (PTR_IS_REF_ALL): Remove.
2002
2003 2008-04-29  Richard Guenther  <rguenther@suse.de>
2004
2005         PR middle-end/36077
2006         * fold-const.c (extract_muldiv_1): In combining division constants
2007         make sure to never overflow.
2008
2009 2008-04-29  Nick Clifton  <nickc@redhat.com>
2010
2011         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
2012
2013 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2014
2015         PR bootstrap/35169
2016         * optc-gen.awk: Work around HP-UX/IA awk bug.
2017
2018 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
2019
2020         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
2021         2008-04-25 commit.
2022
2023 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
2024
2025         PR target/36073
2026         * config/i386/i386.md
2027         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
2028         Change operand 1 predicate to nonimmediate_operand.
2029
2030 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
2031
2032         PR debug/36060
2033         * dwarf2out.c (struct die_struct): Mark as chain_circular through
2034         die_sub field.
2035         * gengtype.c (walk_type, write_func_for_structure): Handle
2036         chain_circular.
2037         * doc/gty.texi: Document chain_circular.
2038
2039 2008-04-28  Richard Guenther  <rguenther@suse.de>
2040
2041         PR tree-optimization/36066
2042         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
2043         SCEV and loop.
2044
2045 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
2046
2047         PR target/36064
2048         * config/i386/i386.md
2049         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
2050         Use match_scratch instead of match_operand for operands 3 and 4.
2051
2052 2008-04-27  Richard Guenther  <rguenther@suse.de>
2053
2054         PR tree-optimization/18754
2055         PR tree-optimization/34223
2056         * tree-pass.h (pass_complete_unrolli): Declare.
2057         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
2058         loop size before and after unconditionally of UL_NO_GROWTH in effect.
2059         Rewrite loop into loop closed SSA form if it is not already.
2060         (tree_unroll_loops_completely): Re-structure to iterate over
2061         innermost loops with intermediate CFG cleanups.
2062         Unroll outermost loops only if requested or the code does not grow
2063         doing so.
2064         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
2065         loops are available.
2066         (tree_vectorize): Instead do so here.
2067         (tree_complete_unroll): Also unroll outermost loops.
2068         (tree_complete_unroll_inner): New function.
2069         (gate_tree_complete_unroll_inner): Likewise.
2070         (pass_complete_unrolli): New pass.
2071         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
2072         uses outside of the loop.
2073         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
2074         form if it is available.  
2075         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
2076         * passes.c (init_optimization_passes): Schedule complete inner
2077         loop unrolling pass before the first CCP pass after final inlining.
2078
2079 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2080
2081         * targhooks.h (default_emutls_var_fields,
2082         default_emutls_var_init): Declare.
2083         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
2084         * target.h (struct gcc_target): Add struct emutls member.
2085         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
2086         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
2087         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
2088         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
2089         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
2090         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
2091         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
2092         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
2093         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
2094         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
2095         emit debug information.
2096         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
2097         * varasm.c: Include targhooks.h.
2098         (emutls_object_section, emutls_tmpl_section): New.
2099         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
2100         (EMUTLS_SEPARATOR): New.
2101         (prefix_name): New.
2102         (get_emutls_object_name): New.
2103         (default_emutls_var_fields): New, broken out of ...
2104         (get_emutls_object_type): ... here.  Adjust to use target hooks.
2105         (get_emutls_init_templ_addr): Adjust to use target hooks.
2106         (emutls_decl): Adjust to use target hooks.
2107         (emutls_finish): Likewise.
2108         (default_emutls_var_init): New, broken out of ...
2109         (assemble_variable): ... here.  Adjust to use target hooks.
2110         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
2111         SECCAT_EMUTLS_TMPL.
2112         * c-common.c (handle_section_attribute): Prevent overriding
2113         sections for emulated tls with special sections.
2114         * config/i386/i386.c (x86_64_elf_select_section): Add
2115         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
2116         (x86_64_elf_unique_section): Likewise.
2117         * config/vxworks.c: Include tree.h.
2118         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
2119         (vxworks_override_options): Set TLS scheme.
2120         * doc/tm.texi (Emulated TLS): New node.
2121
2122 2008-04-26  Simon Baldwin <simonb@google.com>
2123
2124         PR c/35652
2125         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
2126         with propagated string constants.
2127
2128 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
2129
2130         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
2131         constraint for operand 2 when operand 0 is memory operand.
2132         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
2133         operand 0 is memory operand.
2134         (fix_trunc<mode>_i387_with_temp): Ditto.
2135         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
2136         operand 2 when operand 1 is memory operand.
2137         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
2138         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
2139         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
2140         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2141         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
2142         operands 2,3 and 4 when operand 1 is memory operand.
2143         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
2144         is memory operand.
2145         (fistdi2_floor_with_temp): Ditto.
2146         (fist<mode>2_floor_with_temp): Ditto.
2147         (fistdi2_ceil_with_temp): Ditto.
2148         (fist<mode>2_ceil_with_temp): Ditto.
2149         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
2150
2151 2008-04-26  David Daney  <ddaney@avtrex.com>
2152
2153         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
2154         unspec_volitile.
2155         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
2156         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2157         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2158         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
2159         (compare_and_swap_12): New insn.
2160         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
2161         * config/mips/mips.c (mips_force_binary): New function.
2162         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
2163         (mips_expand_compare_and_swap_12): New function.
2164         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
2165
2166 2008-04-25  Jan Hubicka  <jh@suse.cz>
2167
2168         PR testsuite/35843
2169         * cfgexpand.c (pass_expand): Turn into RTL pass.
2170         * passes.c (execute_one_pass): Do pass typechecking after execution.
2171         * tree-pass.h (pass_expand): Turn into RTL pass.
2172
2173         * function.h (struct rtl_data): Move here fields
2174         accesses_prior_frames, calls_eh_return, saves_all_registers,
2175         has_nonlocal_goto, has_asm_statement, is_thunk,
2176         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
2177         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
2178         arg_pointer_save_area_init from struct function; turn into bool.
2179         (struct function): Move
2180         calls_eh_return, saves_all_registers, has_nonlocal_goto,
2181         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
2182         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
2183         tail_call_emit, arg_pointer_save_area_init
2184         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
2185         (current_function_returns_struct, current_function_returns_pcc_struct,
2186         current_function_calls_setjmp, current_function_calls_alloca,
2187         current_function_accesses_prior_frames,
2188         current_function_calls_eh_return, current_function_is_thunk,
2189         current_function_stdarg, current_function_profile,
2190         current_function_limit_stack, current_function_uses_pic_offset_table,
2191         current_function_uses_const_pool, current_function_has_nonlocal_label,
2192         current_function_saves_all_registers,
2193         current_function_has_nonlocal_goto,
2194         current_function_has_asm_statement): Remove accesor macros.
2195         * ra-conflict.c (global_conflicts): Update.
2196         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
2197         (suitable_for_tail_call_opt_p): Update.
2198         * builtins.c (expand_builtin_return_addr): Update.
2199         (expand_builtin_setjmp_setup): Update.
2200         (expand_builtin_nonlocal_goto): Update.
2201         * final.c (final_start_function): Update.
2202         (profile_function): Update.
2203         (leaf_function_p): Update.
2204         (only_leaf_regs_used): Update.
2205         * df-scan.c (df_get_exit_block_use_set): Update.
2206         * dojump.c (clear_pending_stack_adjust): Update.
2207         * tree-stdarg.c (gate_optimize_stdarg): Update.
2208         * gimple-low.c (lower_function_body): Update.
2209         * global.c (compute_regsets): Update.
2210         (global_alloc): Update.
2211         * dwarf2out.c (dwarf2out_begin_prologue): Update.
2212         * expr.c (expand_assignment): Update.
2213         * dse.c (dse_step0): Update.
2214         (dse_step1): Update.
2215         * c-decl.c (store_parm_decls): Update.
2216         * local-alloc.c (combine_regs): Update.
2217         (find_free_reg): Update.
2218         * function.c (assign_parms_augmented_arg_list): Update.
2219         (assign_parm_find_data_types): Update.
2220         (assign_parms): Update.
2221         (allocate_struct_function): Update.
2222         (expand_function_start): Update.
2223         (expand_function_end): Update.
2224         (get_arg_pointer_save_area): Update.
2225         (thread_prologue_and_epilogue_insns): Update.
2226         (rest_of_match_asm_constraints): Update.
2227         * stor-layout.c (variable_size): Update.
2228         * gcse.c (gcse_main): Update.
2229         (bypass_jumps): Update.
2230         * gimplify.c (gimplify_function_tree): Update.
2231         * calls.c (emit_call_1): Update.
2232         (expand_call): Update.
2233         * bt-load.c (compute_defs_uses_and_gen): Update.
2234         * except.c (sjlj_assign_call_site_values): Update.
2235         (sjlj_emit_function_enter): Update.
2236         (can_throw_external): Update.
2237         (set_nothrow_function_flags): Update.
2238         (expand_builtin_unwind_init): Update.
2239         (expand_eh_return): Update.
2240         (convert_to_eh_region_ranges): Update.
2241         (output_function_exception_table): Update.
2242         * emit-rtl.c (gen_tmp_stack_mem): Update.
2243         * cfgexpand.c (expand_used_vars): Update.
2244         (tree_expand_cfg): Update.
2245         * cfgcleanup.c (rest_of_handle_jump): Update.
2246         * explow.c (allocate_dynamic_stack_space): Update.
2247         * varasm.c (assemble_start_function): Update.
2248         (force_const_mem): Update.
2249         (mark_constant_pool): Update.
2250         * tree-optimize.c (tree_rest_of_compilation): Update.
2251         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
2252         * tree-cfg.c (notice_special_calls): Update.
2253         (is_ctrl_altering_stmt): Update.
2254         (tree_can_make_abnormal_goto): Update.
2255         (tree_purge_dead_abnormal_call_edges): Update.
2256         * config/alpha/predicates.md: Update.
2257         * config/alpha/alpha.c (alpha_sa_mask): Update.
2258         (alpha_sa_size): Update.
2259         (alpha_does_function_need_gp): Update.
2260         (alpha_expand_prologue): Update.
2261         (alpha_start_function): Update.
2262         (alpha_output_function_end_prologue): Update.
2263         (alpha_expand_epilogue): Update.
2264         * config/frv/frv.c (frv_stack_info): Update.
2265         (frv_expand_epilogue): Update.
2266         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
2267         (s390_register_info): Update.
2268         (s390_frame_info): Update.
2269         (s390_init_frame_layout): Update.
2270         (s390_can_eliminate): Update.
2271         (save_gprs): Update.
2272         * config/spu/spu.c (spu_split_immediate): Update.
2273         (need_to_save_reg): Update.
2274         (spu_expand_prologue): Update.
2275         (spu_expand_epilogue): Update.
2276         * config/sparc/sparc.md: Update.
2277         * config/sparc/sparc.c (eligible_for_return_delay): Update.
2278         (sparc_tls_got): Update.
2279         (legitimize_pic_address): Update.
2280         (sparc_emit_call_insn): Update.
2281         (sparc_expand_prologue): Update.
2282         (output_return): Update.
2283         (print_operand): Update.
2284         (sparc_function_ok_for_sibcall): Update.
2285         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
2286         * config/m32r/m32r.md: Update.
2287         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
2288         (m32r_compute_frame_size): Update.
2289         (m32r_expand_prologue): Update.
2290         (m32r_expand_epilogue): Update.
2291         (m32r_legitimize_pic_address): Update.
2292         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2293         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2294         * config/i386/i386.c (ix86_frame_pointer_required): Update.
2295         (gen_push): Update.
2296         (ix86_save_reg): Update.
2297         (ix86_compute_frame_layout): Update.
2298         (ix86_expand_prologue): Update.
2299         (ix86_expand_epilogue): Update.
2300         * config/sh/sh.c (output_stack_adjust): Update.
2301         (calc_live_regs): Update.
2302         (sh5_schedule_saves): Update.
2303         (sh_expand_prologue): Update.
2304         (sh_expand_epilogue): Update.
2305         (sh_setup_incoming_varargs): Update.
2306         (sh_allocate_initial_value): Update.
2307         (sh_get_pr_initial_val): Update.
2308         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2309         * config/sh/sh.md (label:): Update.
2310         * config/avr/avr.c (out_movhi_mr_r): Update.
2311         * config/crx/crx.h (enum): Update.
2312         * config/xtensa/xtensa.h (along): Update.
2313         * config/stormy16/stormy16.c Update.
2314         (xstormy16_compute_stack_layout): Update.
2315         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2316         (fr30_expand_prologue): Update.
2317         * config/cris/cris.c (cris_conditional_register_usage): Update.
2318         (cris_reg_saved_in_regsave_area): Update.
2319         (cris_initial_frame_pointer_offset): Update.
2320         (cris_simple_epilogue): Update.
2321         (cris_expand_prologue): Update.
2322         (cris_expand_epilogue): Update.
2323         (cris_expand_pic_call_address): Update.
2324         (cris_asm_output_symbol_ref): Update.
2325         (cris_asm_output_label_ref): Update.
2326         * config/cris/cris.md Update.
2327         * config/iq2000/iq2000.c (compute_frame_size): Update.
2328         (iq2000_expand_epilogue): Update.
2329         * config/mt/mt.h (save_direction): Update.
2330         * config/mn10300/mn10300.c (mn10300_function_value): Update.
2331         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2332         (ia64_secondary_reload_class): Update.
2333         * config/m68k/m68k.c (m68k_save_reg): Update.
2334         (m68k_expand_prologue): Update.
2335         (m68k_expand_epilogue): Update.
2336         (legitimize_pic_address): Update.
2337         * config/rs6000/rs6000.c (rs6000_got_register): Update.
2338         (first_reg_to_save): Update.
2339         (first_altivec_reg_to_save): Update.
2340         (compute_vrsave_mask): Update.
2341         (compute_save_world_info): Update.
2342         (rs6000_stack_info): Update.
2343         (spe_func_has_64bit_regs_p): Update.
2344         (rs6000_ra_ever_killed): Update.
2345         (rs6000_emit_eh_reg_restore): Update.
2346         (rs6000_emit_allocate_stack): Update.
2347         (rs6000_emit_prologue): Update.
2348         (rs6000_emit_epilogue): Update.
2349         (rs6000_output_function_epilogue): Update.
2350         (output_profile_hook): Update.
2351         (rs6000_elf_declare_function_name): Update.
2352         * config/rs6000/rs6000.h (rs6000_args): Update.
2353         * config/rs6000/rs6000.md: Update.
2354         * config/mcore/mcore.c (mcore_expand_prolog): Update.
2355         * config/arc/arc.c (arc_output_function_epilogue): Update.
2356         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2357         * config/darwin.c (machopic_function_base_name): Update.
2358         * config/score/score3.c (score3_compute_frame_size): Update.
2359         (rpush): Update.
2360         (rpop): Update.
2361         (score3_epilogue): Update.
2362         * config/score/score7.c (score7_compute_frame_size): Update.
2363         (score7_prologue): Update.
2364         (score7_epilogue): Update.
2365         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2366         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2367         * config/arm/arm.c (use_return_insn): Update.
2368         (require_pic_register): Update.
2369         (arm_load_pic_register): Update.
2370         (arm_compute_save_reg0_reg12_mask): Update.
2371         (arm_compute_save_reg_mask): Update.
2372         (thumb1_compute_save_reg_mask): Update.
2373         (output_return_instruction): Update.
2374         (arm_output_function_prologue): Update.
2375         (arm_output_epilogue): Update.
2376         (arm_get_frame_offsets): Update.
2377         (arm_expand_prologue): Update.
2378         (thumb_pushpop): Update.
2379         (thumb_exit): Update.
2380         (thumb1_expand_prologue): Update.
2381         (thumb1_expand_epilogue): Update.
2382         (arm_unwind_emit): Update.
2383         (arm_output_fn_unwind): Update.
2384         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2385         * config/arm/arm.md: Update.
2386         * config/pa/pa.md: Update.
2387         * config/pa/pa.c (legitimize_pic_address): Update.
2388         (compute_frame_size): Update.
2389         (hppa_expand_prologue): Update.
2390         (hppa_expand_epilogue): Update.
2391         (borx_reg_operand): Update.
2392         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2393         (HARD_REGNO_RENAME_OK): Update.
2394         * config/mips/mips.c (mips_global_pointer): Update.
2395         (mips_save_reg_p): Update.
2396         (mips_compute_frame_info): Update.
2397         (mips_frame_pointer_required): Update.
2398         (mips_expand_prologue): Update.
2399         (mips_expand_epilogue): Update.
2400         (mips_can_use_return_insn): Update.
2401         (mips_reorg_process_insns): Update.
2402         * config/v850/v850.c (compute_register_save_size): Update.
2403         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2404         * config/mmix/mmix.c (along): Update.
2405         (mmix_expand_epilogue): Update.
2406         * config/bfin/bfin.c (legitimize_pic_address): Update.
2407         (must_save_p): Update.
2408         (stack_frame_needed_p): Update.
2409         (add_to_reg): Update.
2410         (bfin_expand_prologue): Update.
2411         * stmt.c (expand_asm_operands): Update.
2412         * reload1.c (reload): Update.
2413         (init_elim_table): Update.
2414
2415 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
2416         
2417         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2418         
2419 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2420
2421         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
2422         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
2423         (mov<mode>): Removed.
2424         (*movv4sf_internal): Likewise.
2425         (*movv2df_internal): Likewise.
2426
2427 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2428
2429         * config.gcc (crx-*-elf): Remove deprecation.
2430
2431 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
2432
2433         * config/i386/cygming-crtend.c (register_frame_ctor): Register
2434         __gcc_deregister_frame with atexit.
2435         (deregister_frame_dtor): Remove.
2436
2437 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
2438             Nathan Sidwell  <nathan@codesourcery.com>
2439
2440         * config/rs6000/rs6000.opt (mspe): Remove Var property.
2441         (misel): Likewise.
2442         * config/rs6000/rs6000.h (rs6000_spe): Declare.
2443         (rs6000_isel): Likewise.
2444         * config/rs6000/rs6000.c (rs6000_spe): New variable.
2445         (rs6000_isel): New variable.
2446         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
2447
2448 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2449
2450         PR c++/35758
2451         * c-common.c (handle_vector_size_attribute): Call
2452         lang_hooks.types.reconstruct_complex_type instead of
2453         reconstruct_complex_type.
2454         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2455         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2456         * langhooks.h (struct lang_hooks_for_types): Add
2457         reconstruct_complex_type hook.
2458         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2459         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2460
2461 2008-04-24  Richard Guenther  <rguenther@suse.de>
2462
2463         * c-common.h (check_builtin_function_arguments): Declare.
2464         * c-common.c (validate_nargs): New function.
2465         (check_builtin_function_arguments): Likewise.
2466         * c-typeck.c (build_function_call): Call
2467         check_builtin_function_arguments.
2468         * builtins.c (fold_builtin_classify): Remove error reporting code.
2469         (fold_builtin_unordered_cmp): Likewise.
2470         (fold_builtin_1): Likewise.
2471         (fold_builtin_n): Likewise.
2472
2473 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2474
2475         PR tree-optimization/36008
2476         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2477         the original op1, rather than delta by step.
2478
2479 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
2480             Sebastian Pop  <sebastian.pop@amd.com>
2481
2482         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2483         eliminate_local_variables_stmt, eliminate_local_variables,
2484         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2485         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2486         of code delimited by two edges in the CFG.
2487         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2488         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2489         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
2490         the case of parallelisation of reductions.
2491         (expr_invariant_in_region_p): New.
2492
2493         * tree-flow.h (gather_blocks_in_sese_region): Declared.
2494         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2495
2496 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2497             Richard Guenther  <rguenther@suse.de>
2498
2499         PR tree-optimization/36034
2500         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2501         incapable of dealing with loads with gaps.
2502
2503 2008-04-24  Rafael Espindola  <espindola@google.com>
2504
2505         * tree-flow.h (vrp_evaluate_conditional): Change signature.
2506         * tree-ssa-propagate.c (fold_predicate_in): Update call to
2507         vrp_evaluate_conditional.
2508         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
2509         (vrp_evaluate_conditional): Split the cond argument.
2510         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2511         (simplify_stmt_for_jump_threading): Update call to
2512         vrp_evaluate_conditional.
2513
2514 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2515
2516         PR tree-optimization/35982
2517         * tree-vect-analyze.c (vect_check_interleaving): Check that the
2518         interleaved data-refs are of the same type.
2519
2520 2008-04-24  Danny Smith  <dannysmith@users.net>
2521
2522         * c-format.c (check_format_info_main): Use strncmp rather than a
2523         magic prefix to handle multichar length specs.
2524         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2525         Don't prefix "I64" and "I32" with '\0'.
2526
2527 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2528
2529         PR target/36015
2530         * config/i386/i386.c (init_cumulative_args): Don't pass anything
2531         in registers for -m32 only if stdarg_p (fntype).
2532
2533 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
2534
2535         PR rtl-optimization/36006
2536         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2537         temp to op0 in order to avoid invalid rtx sharing.
2538
2539 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2540
2541         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
2542         check TREE_INVARIANT.
2543         * tree-gimple.c (is_gimple_address): New.
2544         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2545         * tree-gimple.h (is_gimple_address): New.
2546         * tree.h (decl_address_invariant_p): New.
2547         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2548         (build_string): Likewise.
2549         (decl_address_invariant_p): New, from is_gimple_invariant_address.
2550         (tree_invariant_p_1): Likewise.
2551         (save_expr): Use it.
2552         (tree_invariant_p): New.
2553         (skip_simple_arithmetic): Use it.
2554         (stabilize_reference_1): Use it.
2555         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2556         simplify.
2557         (build1_stat): Drop code to compute TREE_INVARIANT.
2558         (build2_stat): Drop code to compute TREE_INVARIANT.
2559         (build3_stat): Drop code to compute TREE_INVARIANT.
2560         (build4_stat): Drop code to compute TREE_INVARIANT.
2561         (build5_stat): Drop code to compute TREE_INVARIANT.
2562         (build7_stat): Drop code to compute TREE_INVARIANT.
2563         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2564         * tree.h (struct tree_base): Remove invariant_flag.
2565         (TREE_INVARIANT): Remove.
2566         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2567         (fold_builtin_expect): Check TREE_CONSTANT.
2568         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2569         * c-tree.h (c_expr_to_decl): Drop third parameter.
2570         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2571         (build_c_cast): Don't set TREE_INVARIANT.
2572         (pop_init_level): Don't set TREE_INVARIANT.
2573         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2574         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2575         TREE_CONSTANT.
2576         (gimplify_init_constructor): Don't set TREE_INVARIANT.
2577         (gimplify_addr_expr): Adjust comment.
2578         * tree-mudflap.c (mf_build_string):
2579         * print-tree.c (print_node): Don't print TREE_INVARIANT.
2580         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2581         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2582         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2583         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2584         * langhooks.h (struct lang_hooks): Drop third parameter from
2585         expr_to_decl.
2586
2587 2008-04-23  Richard Guenther  <rguenther@suse.de>
2588
2589         PR tree-optimization/27799
2590         PR tree-optimization/32921
2591         PR tree-optimization/32624
2592         * tree-ssa-structalias.c (merge_smts_into): Only merge the
2593         SMTs aliases and the tag itself into the solution.
2594         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2595         merge the points-to solution back into the SMT aliases.
2596         (may_alias_p): Use alias_set_subset_of instead of
2597         aliases_conflict_p.  A pointer which points to
2598         memory with alias set zero may access any variable.
2599
2600 2008-04-23  Richard Guenther  <rguenther@suse.de>
2601
2602         * alias.c (alias_set_subset_of): Correctly handle asking
2603         if zero is a subset of an alias set with zero child.
2604         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2605         (compute_flow_insensitive_aliasing): Correctly walk all
2606         pointers.  Do not unnecessarily union sets.
2607
2608 2008-04-23  Richard Guenther  <rguenther@suse.de>
2609
2610         PR middle-end/36021
2611         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2612
2613 2008-04-22  Tomas Bily  <tbily@suse.cz>
2614
2615         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2616         unreachable case.
2617         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2618         NON_LVALUE_EXPR.
2619         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2620         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2621         * tree-inline.c (estimate_num_insns_1): Likewise.
2622         * varasm.c (const_hash_1, compare_constant, copy_constant)
2623         (compute_reloc_for_constant, output_addressed_constants): Likewise.
2624         * emit-rtl.c (component_ref_for_mem_expr)
2625         (set_mem_attributes_minus_bitpos): Likewise.
2626         * expr.c (highest_pow2_factor, expand_expr_real_1, )
2627         (is_aligning_offset): Likewise.
2628         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2629         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2630         * dojump.c (do_jump): Likewise.
2631         * builtins.c (get_pointer_alignment, get_memory_rtx)
2632         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2633         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
2634
2635 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
2636
2637         PR rtl-optimization/36017
2638         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2639         expanding the library call.
2640
2641 2008-04-22  Ian Lance Taylor  <iant@google.com>
2642
2643         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2644         than size_in_bytes.
2645
2646 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
2647
2648         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2649         of LR/CTR moves for Power6.
2650
2651 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
2652
2653         PR middle-end/36003
2654         * passes.c (init_optimization_passes): Remove
2655         pass_fast_rtl_byte_dce.
2656         
2657 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
2658
2659         PR target/29096
2660         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2661         builtin functions to generate faster code.
2662         (_mm_cvtpu16_ps): Ditto.
2663         (_mm_cvtpi32x2_ps): Ditto.
2664
2665 2008-04-22  Nick Clifton  <nickc@redhat.com>
2666
2667         * common.opt (ftree-loop-distribution): Add Optimization
2668         attribute.
2669
2670         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2671         (frv_expand_builtin_va_start): Likewise.
2672
2673         * config/arm/arm.c (thumb_find_work_register): Fix location of
2674         argument register count.
2675
2676 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2677
2678         Support scheduling for ColdFire V1 and V3 microarchitecture.
2679         Improve scheduling of multiplication instructions.
2680
2681         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
2682         (mac): New instruction attribute.
2683         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2684         (m68k_sched_mac): New variable.
2685         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2686         Handle cfv1 and cfv3.
2687         (max_insn_size): New static variable.
2688         (struct _sched_ib): New type.
2689         (sched_ib): New static variable.
2690         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2691         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
2692         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2693         Update.
2694         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2695         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
2696         new variables.  Update.
2697         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2698         Add modeling of cfv3 instruction buffer.  Update.
2699         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2700         * config/m68k/m68k.h (TUNE_CFV3): New macro.
2701         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2702         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2703         a particular reservation applies to.
2704         (type2): Reorganize attribute values.  Rename alu to alu_reg,
2705         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
2706         to mul_l and mul_w.
2707         (cf_ib_*): Simplify description of instruction buffer.
2708         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2709         (cf_mem): Split into cf_mem1 and cf_mem2.
2710         (cf_v2_move_??): Rename to cfv12_alu_??.
2711         (cf_v2_move_l_??): Rename to cfv12_omove_??.
2712         (cf_v2_mul_??): Remove reservations.
2713         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2714         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2715         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2716         appropriate place.
2717         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2718         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2719         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2720         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2721         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2722         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2723         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2724         expansions of the above reservations for instructions of sizes
2725         1, 2 and 3 words.
2726
2727 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2728
2729         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2730
2731 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
2732
2733         * coverage.c: Include tree-pass.h.
2734         (coverage_counter_alloc): Print da_file_name to the dump file.
2735
2736 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
2737
2738         * sbitmap.c (sbitmap_range_empty_p): New function.
2739         * sbitmap.h (sbitmap_range_empty_p): New function.
2740         * bitmap.h: Now includes obstack.h.
2741
2742 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2743             Kenneth Zadeck  <zadeck@naturalbridge.com>
2744
2745         * dbgcnt.def (ra_byte_scan): Added.
2746         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2747         when the last hit happens for a counter.  
2748         * timevar.def (TV_DF_BYTE_LR): New variable.
2749         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2750         * passes.c (pass_fast_rtl_byte_dce): New pass.
2751         * fwprop.c (update_df): Added mode to call df_ref_create.
2752         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2753         DF_REF_EXTRACT_OFFSET.
2754         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
2755         DF_BYTE_LR_OUT, df_byte_lr): New macro.
2756         (df_mm): New enum.
2757         (df_ref_extract): Added mode field.
2758         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2759         DF_REF_EXTRACT_OFFSET.
2760         (DF_REF_EXTRACT_MODE): New macro.
2761         (df_byte_lr_bb_info): New structure.
2762         (df_print_byte_regset, df_compute_accessed_bytes, 
2763         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2764         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2765         df_byte_lr_simulate_uses,
2766         df_byte_lr_simulate_artificial_refs_at_top,
2767         df_byte_lr_simulate_artificial_refs_at_end,
2768         df_compute_accessed_bytes): New function.
2769         (df_ref_create): Add parameter.
2770         (df_byte_lr_get_bb_info): New inline function.
2771         * df-scan.c (df_ref_record, df_uses_record,
2772         df_ref_create_structure): Added mode parameter.
2773         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
2774         df_defs_record, df_uses_record, df_get_conditional_uses,
2775         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
2776         df_entry_block_defs_collect, df_exit_block_uses_collect):
2777         Added mode parameter to calls to df_ref_record, df_uses_record,
2778         df_ref_create_structure.
2779         (df_ref_equal_p, df_ref_compare): Added test for modes.
2780         (df_ref_create_structure): Added code to set mode.  Renamed
2781         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2782         DF_REF_EXTRACT_OFFSET.
2783         * df-core.c (df_print_byte_regset): New function.
2784         * df-byte-scan.c: New file.
2785         * df-problems.c (df_rd_transfer_function): Removed unnecessary
2786         calls to BITMAP_FREE.  
2787         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2788         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2789         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
2790         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
2791         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2792         df_byte_lr_local_compute, df_byte_lr_init,
2793         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
2794         df_byte_lr_transfer_function, df_byte_lr_free, 
2795         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2796         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
2797         df_byte_lr_simulate_uses,
2798         df_byte_lr_simulate_artificial_refs_at_top,
2799         df_byte_lr_simulate_artificial_refs_at_end): New function.
2800         * dce.c (byte_dce_process_block): New function.
2801         (dce_process_block): au is now passed in rather than computed
2802         locally.  Changed loops that look at artificial defs to not look
2803         for conditional or partial ones, because there never are any.  
2804         (fast_dce): Now is able to drive byte_dce_process_block or 
2805         dce_process_block depending on the kind of dce being done.
2806         (rest_of_handle_fast_dce): Add parameter to fast_dce.
2807         (rest_of_handle_fast_byte_dce): New function.
2808         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2809         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2810
2811 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
2812
2813         PR fortran/35019
2814         * gcc.h: Added fortran options that take arguments to
2815         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2816         macros.
2817
2818 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2819
2820         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2821         scalarization if on the LHS and not a full access.
2822
2823 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2824
2825         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
2826
2827 2008-04-18  Rafael Espindola  <espindola@google.com>
2828
2829         * tree-vrp.c (find_case_label_index): Fix the binary search.
2830         (find_case_label_range): New.
2831         (vrp_visit_switch_stmt): Use find_case_label_range.
2832         (simplify_switch_using_ranges): Use find_case_label_range.
2833
2834 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2835
2836         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2837         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2838
2839 2008-04-18  Tom Tromey  <tromey@redhat.com>
2840
2841         PR libcpp/15500:
2842         * doc/cpp.texi (Implementation-defined behavior): Mention
2843         -finput-charset.
2844
2845 2008-04-18  Ian Lance Taylor  <iant@google.com>
2846
2847         * fold-const.c (pointer_may_wrap_p): New static function.
2848         (fold_comparison): Add another test for pointer overflow.  Use
2849         pointer_may_wrap_p to disable some false positives.
2850
2851 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
2852           
2853         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2854         (fname_as_string): Match updated cpp_interpret_string prototype.
2855         (fix_string_type): Support char16_t* and char32_t*.
2856         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2857         derivative) nodes.  Register as builtin if C++0x.
2858         (c_parse_error): Support CPP_CHAR{16,32}.
2859         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
2860         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2861         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2862         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2863         CTI_CHAR32_ARRAY_TYPE>: New elements.
2864         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2865         char32_type_node, signed_char32_type_node, char16_array_type_node,
2866         char32_array_type_node): New defines.
2867         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2868         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2869         (lex_string): Support CPP_STRING{16,32}, match updated
2870         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2871         (lex_charconst): Support CPP_CHAR{16,32}.
2872         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2873         and CPP_STRING{16,32}.
2874
2875 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2876
2877         PR bootstrap/35457
2878         * aclocal.m4: Regenerate.
2879         * configure: Regenerate.
2880
2881 2008-04-18  Jan Hubicka  <jh@suse.cz>
2882
2883         * except.c (dw2_size_of_call_site_table,
2884         sjlj_size_of_call_site_table): Use vector API for call_site_record.
2885
2886         * cgraphbuild.c (build_cgraph_edges): Update.
2887         * tree-pass.h: Update comment.
2888         * final.c (leaf_function_p): Update.
2889         (leaf_renumber_regs): Update.
2890         (rest_of_clean_state): Update.
2891         * omp-low.c (expand_omp_parallel): Update.
2892         * ipa-reference.c (analyze_function): Update.
2893         * reorg.c (find_end_label): Update.
2894         (optimize_skip): Update.
2895         (fill_simple_delay_slots): Update.
2896         (fill_simple_delay_slots): Update.
2897         (make_return_insns): Update.
2898         (dbr_schedule): Update.
2899         * gimple-low.c (record_vars_into): Update.
2900         * cfgbuild.c (make_edges): Update.
2901         * function.c (assign_stack_local): Update.
2902         (assign_parm_adjust_stack_rtl): Update.
2903         (locate_and_pad_parm): Update.
2904         (allocate_struct_function): Do not initialize stack_alignment_needed
2905         and preferred_stack_boundary here.
2906         (stack_protect_prologue): Update.
2907         (stack_protect_epilogue): Update.
2908         (expand_function_start): Initialize stack_alignment_needed,
2909         preferred_stack_boundary and max_jumptable_ents.
2910         (expand_function_end): Update.
2911         (free_after_compilation): Do not NULLify epilogue_delay_list.
2912         * function.h (struct rtl_data): Add stack_protect_guard,
2913         stack_alignment_needed,
2914         preferred_stack_boundary, epilogue_delay_list.
2915         (struct function): Remove value_histograms, stack_alignment_needed,
2916         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2917         last_label_uid,
2918         unexpanded_var_list, stack_protect_guard.
2919         (current_function_epilogue_delay_list): Remove.
2920         * ipa-type-escape.c (analyze_function): Update.
2921         * gimplify.c (pop_gimplify_context): Update comment.
2922         * calls.c (expand_call): Update.
2923         (emit_library_call_value_1): Update.
2924         * except.c (set_nothrow_function_flags): Update.
2925         * cfgexpand.c (get_decl_align_unit): Update.
2926         (create_stack_guard): Update.
2927         (estimated_stack_frame_size): Update.
2928         (expand_used_vars): Update.
2929         (tree_expand_cfg): Free histogram earliers, init expansion variables.
2930         * explow.c (allocate_dynamic_stack_space): Update.
2931         * tree-ssa-live.c (remove_unused_locals): Update.
2932         * varasm.c (mark_constant_pool): Update.
2933         * tree-inline.c (remap_decls): Update.
2934         (initialize_cfun): Update.
2935         (declare_return_variable): Update.
2936         (inline_forbidden_p): Update.
2937         (expand_call_inline): Update.
2938         (declare_inline_vars): Update.
2939         (tree_function_versioning): Update.
2940         * tree-flow.h (value_histograms): New.
2941         (VALUE_HISTOGRAMS): New macro.
2942         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2943         last_label_uid.
2944         * tree-cfg.c (set_bb_for_stmt): Update.
2945         (replace_by_duplicate_decl): Update.
2946         (move_block_to_fn): Update.
2947         (new_label_mapper): Update.
2948         (dump_function_to_file): Update.
2949         * ipa-struct-reorg.c (build_data_structure): Update.
2950         * cfgrtl.c (print_rtl_with_bb): Update.
2951         * reload1.c (reload): Update.
2952         (reload): Update.
2953         * config/i386/i386.c (setup_incoming_varargs_64,
2954         ix86_compute_frame_layout): Update.
2955         * config/arc/arc.c (arc_output_function_epilogue): Update.
2956
2957 2008-04-18  Marius Strobl <marius@FreeBSD.org>
2958
2959         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2960         for FreeBSD as well.
2961         * gthr-posix95.h: Likewise.
2962
2963 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
2964
2965         PR rtl-optimization/35838
2966         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2967         out the byte offset of the first subreg.
2968
2969 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
2970
2971         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2972         to split_ti instead of three separate calls with single member arrays.
2973         (subti3 splitter): Ditto.
2974         (adddi3 splitter): Ditto with split_di.
2975         (subdi3 splitter): Ditto.
2976         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2977         two separate calls with single member arrays.  Swap match_dup
2978         operands 1 and 2 to better fit into the array.
2979         (negdi2 splitter): Ditto with split_di.
2980         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
2981         two separate calls with single member arrays.  Swap match_dup operands
2982         6 and 7 to better fit into the array.
2983
2984 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2985
2986         * config/i386/i386.c (sse_builtin_type): New.
2987         (bdesc_sse_args): Likewise.
2988         (bdesc_sse_3arg): Removed.
2989         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2990         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2991         IX86_BUILTIN_ROUNDPS.
2992         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
2993         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
2994         IX86_BUILTIN_ROUNDPS.
2995         (ix86_expand_sse_4_operands_builtin): Removed.
2996         (ix86_expand_sse_operands_builtin): New.
2997         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2998         and CODE_FOR_sse4_1_roundps.
2999         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
3000         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
3001
3002 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
3003
3004         PR target/35907
3005         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
3006         regs before frame pop when needed.  If use_backchain_to_restore_sp
3007         then load backchain into a temp reg to restore vr and vrsave.  Add
3008         code to restore vr after frame pop if possible.
3009
3010 2008-04-17  Richard Guenther  <rguenther@suse.de>
3011
3012         * tree-vn.c (expressions_equal_p): Do not check type
3013         equality or compatibility before calling operand_equal_p.
3014         * fold-const.c (operand_equal_p): Check equivalence of
3015         integer constants before bailing out due to signedness or
3016         precision differences.
3017         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
3018         spurious differences in type qualification.  Ignore types
3019         for COMPONENT_REFs at all.
3020
3021 2008-04-17  Christian Bruel  <christian.bruel@st.com>
3022
3023         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
3024         msw_skip comparison.
3025         
3026 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
3027
3028         PR c/35739
3029         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
3030         reg type.
3031
3032         PR tree-optimization/35899
3033         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
3034         rather than TREE_OPERAND.
3035
3036 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
3037
3038         PR target/35944
3039         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
3040         temporary registers.  Change operand predicate to general_operand.
3041         (remainderxf3): Ditto.
3042
3043 2008-04-16  Richard Guenther  <rguenther@suse.de>
3044
3045         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
3046         * tree-affine.c (aff_combination_expand): Look through some
3047         conversions.
3048
3049 2008-04-15  Doug Kwan  <dougkwan@google.com>
3050
3051         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
3052         for hex printing.
3053         * tree-pretty-print.c (dump_generic_node): Ditto.
3054         * final.c (output_addr_const): Ditto.
3055         * dwarf2out.c (output_cfi): Ditto.
3056         * c-pretty-print.c (pp_c_integer_constant): Ditto.
3057         * print-rtl.c (print_rtx): Ditto.
3058         * print-tree.c (print_node_brief, print_node): Ditto.
3059         * c-common.c (match_case_to_enum_1): Ditto.
3060         * sched-vis.c (print_value): Ditto.
3061         * config/i386/i386.c (print_operand): Cast to long unsigned int
3062         for hex printing.
3063
3064 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
3065         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
3066         MS Windows VirtualProtect function.
3067
3068 2008-04-15  Jan Hubicka  <jh@suse.cz>
3069
3070         * gengtype.c (write_root): Param_is argument is OK.
3071         * expr.c (expand_expr_real_1): Update call of get_exception_*.
3072         * function.h: Include varray.h
3073         (rtl_eh): New stucture based on except.c one.
3074         (call_site_record): New forward declaration and vector type.
3075         * calls.c (emit_call_1): Do not call
3076         note_current_region_may_contain_throw.
3077         * except.c (eh_status): Remove cur_region, try_region since they are
3078         unused.
3079         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
3080         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
3081         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
3082         Remove call_site_data_used, call_site_data_size.
3083         Turn call_site_record into vector in function.h.
3084         (note_current_region_may_contain_throw): Remove.
3085         (get_exception_pointer, get_exception_filter): Do not take struct
3086         function argument; update.
3087         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
3088         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
3089         build_post_landing_pads, dw2_build_landing_pads,
3090         sjlj_assign_call_site_values, sjlj_mark_call_sites,
3091         sjlj_emit_function_enter, sjlj_emit_function_enter, 
3092         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
3093         sjlj_build_landing_pads, finish_eh_generation,
3094         remove_exception_handler_label, remove_eh_handler,
3095         maybe_remove_eh_handler, add_reachable_handler,
3096         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
3097         add_action_record, collect_one_action_chain, add_call_site,
3098         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
3099         sjlj_output_call_site_table, output_function_exception_table,
3100         * except.h (note_current_region_may_contain_throw): Remove
3101         (get_exception_pointer, get_exception_filter): Do not take struct
3102         function argument.
3103         * Makefile.in (GTFILES): Put varargs before struct function.
3104
3105 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3106
3107         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
3108         punt for STRING_CST.
3109         (get_constraint_for): Deal with STRING_CST here instead.
3110
3111 2008-04-15  Richard Guenther  <rguenther@suse.de>
3112
3113         * tree-ssa-propagate.c (substitute_and_fold): Substitute
3114         statements in a basic-block with a backward walk.  Do not
3115         substitute into dead statements but instead remove those.
3116
3117 2008-04-15  Richard Guenther  <rguenther@suse.de>
3118
3119         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
3120         to zero, thus disable creation of SFTs.
3121
3122 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3123
3124         * tree-predcom.c (suitable_reference_p): Return false if the
3125         reference can throw.
3126
3127 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
3128
3129         PR c/35751
3130         * c-decl.c (finish_decl): If extern or static var has variable
3131         size, set TREE_TYPE (decl) to error_mark_node.
3132
3133 2008-04-15  Rafael Espindola  <espindola@google.com>
3134
3135         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
3136         variable arg1.
3137
3138 2008-04-15  Richard Guenther  <rguenther@suse.de>
3139
3140         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
3141         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
3142         (visit_reference_op_load): Do walk vuse-vdef chains on
3143         vn_reference_lookup.
3144         (visit_reference_op_store): But do not here.
3145         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
3146         vn_reference_lookup.
3147         (vn_lookup_with_vuses): But do so here.
3148
3149 2008-04-14  Ian Lance Taylor  <iant@google.com>
3150
3151         * fold-const.c (fold_overflow_warning): Remove assertion.
3152
3153 2008-04-15  Ben Elliston  <bje@au.ibm.com>
3154
3155         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
3156         temp1 local variables.
3157
3158 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
3159
3160         PR target/35661
3161         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
3162         ".text.unlikely" section as executable.
3163
3164 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
3165
3166         * config/ia64/ia64.c (rtx_needs_barrier): Handle
3167         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
3168         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
3169         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
3170         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
3171         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
3172         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
3173
3174 2008-04-14  Ian Lance Taylor  <iant@google.com>
3175
3176         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
3177         * fold-const.c (fold_comparison): If appropriate, test
3178         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
3179         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
3180         reassociating a pointer type.
3181         * doc/invoke.texi (Optimize Options): Document that
3182         -fstrict-overflow applies to pointer wraparound.
3183
3184 2008-04-13  Jan Hubicka  <jh@suse.cz>
3185
3186         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
3187
3188 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
3189
3190         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
3191         we are going to "save the world".
3192
3193 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
3194
3195         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
3196         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
3197         operand 0 constraint, not "=".
3198
3199 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
3200
3201         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
3202
3203 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
3204
3205         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
3206         of size of positions_needed * CHAR_BIT.
3207
3208 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
3209
3210         PR middle-end/35897
3211         * dse.c (store_info): Change positions_needed to unsigned
3212         HOST_WIDE_INT.
3213         (lowpart_bitmask): New.
3214         (record_store): Cast to unsigned HOST_WIDE_INT for
3215         positions_needed.  Assert width <= size of positions_needed *
3216         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
3217         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
3218         lowpart_bitmask to set mask.
3219
3220 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
3221
3222         * config/bfin/constraints.md: New file.
3223         * config/bfin/bfin.md: Include it.
3224         (adddi3): Use satisfies_constraint functions instead of the old macros.
3225         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
3226         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
3227         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
3228         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
3229         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
3230         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
3231         EXTRA_CONSTRAINT): Delete.
3232         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
3233         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
3234         of the old macros.
3235         * config/bfin/bfin.c: Include "tm-constrs.h".
3236         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
3237         Use satisfies_constraint functions instead of the old macros.
3238         * doc/md.texi (Blackfin Constraints): Update file name reference.
3239
3240 2008-04-11  Richard Guenther  <rguenther@suse.de>
3241
3242         PR tree-optimization/35869
3243         * tree-vrp.c (execute_vrp): Move switch statement update after
3244         jump threading.  Schedule another cfg cleanup run.
3245
3246 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
3247
3248         PR c/35744
3249         * attribs.c (decl_attributes): Return early on errorneous node.
3250
3251 2008-04-10  Oleg Ryjkov  <olegr@google.com>
3252
3253         * tree.h (struct tree_base): Added a new flag default_def_flag.
3254         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
3255
3256 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3257
3258         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
3259
3260 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3261
3262         PR target/35768
3263         * pa.md: Define mode iterator P.  Define mode attribute dwc.
3264         (dcacheflush): Update pattern to use iterator P and attribute dwc.
3265         (icacheflush): Likewise.
3266         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
3267         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
3268
3269 2008-04-11  Ben Elliston  <bje@au.ibm.com>
3270
3271         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
3272
3273 2008-04-10  Rafael Espindola  <espindola@google.com>
3274
3275         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
3276         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
3277         (extract_range_from_expr): The same.
3278
3279 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
3280
3281         * config/mips/mips.md (GPR2): New mode iterator.
3282         (seq): Add comment.
3283         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
3284         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
3285         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
3286         Rewrite these to take two modes, the mode of comparison and the
3287         mode of the destination.
3288         * config/mips/mips.c (mips_expand_scc): Instead of having
3289         paradoxical subreg as destination, expand "narrowing" scc if mode
3290         of comparison is SI and target is requested in DI mode.
3291         (mips_emit_int_order_test): Update comment.  Make mode of
3292         comparison match CMP0 rather than TARGET.  When creating inverse
3293         target use mode of TARGET.
3294
3295 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
3296
3297         * gcov-dump.c (tag_summary): Only print summaries for the first
3298         GCOV_COUNTERS_SUMMABLE counters.
3299
3300 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
3301
3302         * config/i386/i386.md (absneg): New code iterator.
3303         (absnegprefix): New code attribute.
3304         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
3305         patterns using absneg code iterator.
3306         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
3307         using absneg code iterator.
3308         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
3309         *neg<mode>2 patterns using absneg code iterator.
3310         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3311         *negextendsfdf2 patterns using absneg code iterator.
3312         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
3313         *negextendsfxf2 patterns using absneg code iterator.
3314         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3315         *negextendsfdf2 patterns using absneg code iterator.
3316         * config/i386/sse.md (<code><mode>2): Macroize expander from
3317         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
3318
3319 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
3320
3321         * config/s390/s390.h: Remove the remains of the recent search
3322         & replace action of current_function_outgoing_args_size.
3323
3324 2008-04-10  Ira Rosen  <irar@il.ibm.com>
3325
3326         PR tree-optimization/35821
3327         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
3328         NEW_STMT_LIST is not NULL.
3329
3330 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
3331
3332         PR libstdc++/35597
3333         * toplev.c (process_options): Remove -ffunction-sections debugging
3334         warning.
3335
3336 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
3337
3338         PR middle-end/PR28690
3339         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
3340         than gen_rtx_fmt_ee to perform more canonicalizations.
3341
3342 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3343
3344         PR driver/35665
3345         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
3346
3347 2008-04-09  Richard Guenther  <rguenther@suse.de>
3348
3349         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
3350         (dump_function_to_file): Dump function arguments with types.
3351
3352 2008-04-08  Richard Guenther  <rguenther@suse.de>
3353
3354         * fold-const.c (fold_widened_comparison): Do not allow
3355         sign-changes that change the result.
3356
3357 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
3358
3359         PR target/35839
3360         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
3361         kinds of indirect references.
3362
3363 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
3364
3365         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
3366         GNU Fortran language string.
3367
3368 2008-04-08  Rafael Espindola  <espindola@google.com>
3369
3370         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
3371         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
3372         * tree.h (tree_call_nonnegative_warnv_p): New.
3373
3374 2008-04-08  Jan Hubicka  <jh@suse.cz>
3375
3376         * function.c (free_after_compilation): Clear out regno_reg_rtx
3377         pointer.