OSDN Git Service

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