OSDN Git Service

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