OSDN Git Service

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