OSDN Git Service

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