OSDN Git Service

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