OSDN Git Service

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