OSDN Git Service

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