OSDN Git Service

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