OSDN Git Service

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