OSDN Git Service

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