OSDN Git Service

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