OSDN Git Service

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