OSDN Git Service

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